<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://www.g4slv.info/dokuwiki/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>Make It Tea</title>
        <description></description>
        <link>https://www.g4slv.info/dokuwiki/</link>
        <lastBuildDate>Tue, 14 Jul 2026 07:01:15 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=logo.png</url>
            <title>Make It Tea</title>
            <link>https://www.g4slv.info/dokuwiki/</link>
        </image>
        <item>
            <title>Damasko DA36 Daily Rates (2016-2019)</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:da36dailyrates</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:start&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:damasko:start&quot; data-wiki-id=&quot;public:miscellany:watches:damasko:start&quot;&gt;Damasko DA36&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;damasko_da36_daily_rates_2016-2019&quot;&gt;Damasko DA36 Daily Rates (2016-2019)&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Created Friday 08 November 2019
&lt;/p&gt;

&lt;p&gt;
Serial Number : DA36.1981
&lt;/p&gt;

&lt;p&gt;
New : 02/11/16
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Date		Δntp(s)	Rate Error(s/d)		Comment
============================================
05/11/16	+1.0	+0.8
06/11/16	+1.7	+0.6
07/11/16	+1.9	+0.2
08/11/16	+2.6	+0.7
09/11/16	+2.8	+0.2
10/11/16	+3.2	+0.4
11/11/16	+2.6	-0.6
12/11/16	+2.7	+0.1
13/11/16	+2.8	+0.1
14/11/16	+3.5	+0.7
15/11/16	+4.9	+1.4
16/11/16	+5.3	+0.4
17/11/16	+5.3	+0.0
18/11/16	+6.8	+1.4
19/11/16	+8.5	+1.7
20/11/16	+8.9	+0.4
21/11/16	+10.1	+1.2
22/11/16	+10.5	+0.4
23/11/16	+11.5	+1.0
24/11/16	+11.8	+0.2
25/11/16	+12.1	+0.4
26/11/16	+13.2	+1.1
27/11/16	+13.4	+0.2
28/11/16	+14.7	+1.4
29/11/16	+15.8	+1.0
30/11/16	+17.3	+1.6
01/12/16	+19.3	+2.0
02/12/16	+19.7	+0.6		1 month old. Worn daily
03/12/16	+20.1	+0.4
04/12/16	+21.2	+1.1
05/12/16	+22.9	+1.8
06/12/16	+22.0	-0.8
07/12/16	+22.8	+0.7
08/12/16	+23.4	+0.7
09/12/16	+23.3	-0.2
10/12/16	+25.0	+1.7
11/12/16	+26.6	+1.6
12/12/16	+27.2	+0.7
13/12/16	+28.9	+1.6
14/12/16	+29.1	+0.2
15/12/16	+30.6	+1.5
16/12/16	+31.3	+0.6
17/12/16	+33.1	+1.9		Rate increasing?
18/12/16	+35.1	+2.0
19/12/16	+36.2	+1.0
20/12/16	+37.4	+1.2
21/12/16	+39.4	+2.0
22/12/16	+41.9	+2.5
23/12/16	+44.5	+2.6
24/12/16	+47.2	+2.7		Reset time to +0.1s
25/12/16	+1.2	+1.2
26/12/16	+3.6	+2.7
27/12/16	+5.3	+1.7
28/12/16	+6.7	+1.4
29/12/16	+9.8	+3.1		Biggest daily rate error so far
30/12/16	+12.1	+2.3

01/01/17	+14.3	+1.1
02/01/17	+16.9	+2.6		2 months old. Worn daily
03/01/17	+18.5	+1.8
04/01/17	+18.4	-0.1
05/01/17	+20.7	+2.3
06/01/17	+20.9	+0.2
07/01/17	+21.8	+0.9
08/01/17	+23.3	+1.4
09/01/17	+23.8	+0.5
10/01/17	+24.3	+0.5

Gap in recording....

09/02/17	-5.1	+0.2		3 months old. Worn daily
10/02/17	-6.1	-1.0		Rate decreasing?
11/02/17	-6.3	-0.2
12/02/17	-6.9	-0.6
13/02/17	-7.3	-0.4
14/02/17	-7,3	+0.0
15/02/17	-7.6	-0.2
16/02/17	-7.8	-0.2
17/02/17	-8.5	+0.8
18/02/17	-7.2	+1.8
19/02/17	-7.6	-0.4
20/02/17	-8.5	-1.0
21/02/17	-9.2	-0.6
22/02/17	-10.4	-0.9

24/02/17	-10.0	+0.2
25/02/17	-9.3	+0.7
26/02/17	-8.4	+0.9
27/02/17	-7.4	+1.1
28/02/17	-7.2	+0.2
01/03/17	-7.7	-0.5
02/03/17	-7.6	-0.2		4 months old. Worn daily.
03/03/17	-6.7	+0.9
04/03/17	-8.0	-1.3
05/03/17	-7.4	+0.6
06/03/17	-7.9	-0.6
07/03/17	-7.8	+0.2
08/03/17	-5.7	+2.1
09/03/17	-4.0	+1.7
10/03/17	-4.8	-0.9
11/03/17	-4.2	+0.6
12/03/17	-4.4	-0.2
13/03/17	-5.5	-1.2
14/03/17	-4.5	+1.0
15/03/17	-3.7	+0.8
16/03/17	-3.7	+0.0
17/03/17	-3.9	-0.3
18/03/17	-4.3	-0.3
19/03/17	-3.8	+0.4
20/03/17	-3.0	+0.8
21/03/17	-1.9	+1.1
22/03/19	-1.2	+0.7
23/03/17	-0.8	+0.5
24/03/17	-1.5	-0.8
25/03/17	-0.4	+1.0
26/03/17	-0.6	---		Reset to DST. No rate yet
27/03/17	-1.1	-0.5
28/03/17	-2.4	-1.4
29/03/17	-1.7	+0.7
30/03/17	-4.8	-2.8
31/03/17	-3.9	+0.7
01/04/17	-4.6	-0.7
02/04/17	-4.9	-0.2		5 months old. Worn daily
03/04/17	-4.5	+0.3
04/04/17	-4.0	+0.5
05/04/17	-4.1	-0.1
06/04/17	-4.4	-0.3
07/04/17	-5.1	-0.7
08/04/17	-5.5	-0.4
09/04/17	-6.8	-1.2
10/04/17	-5.5	+1.4
11/04/17	-4.4	+1.0
12/04/17	-3.7	+0.7
13/04/17	-3.7	-0.1
14/04/17	-2.8	+0.9
15/04/17	-4.3	-1.4
16/04/17	-3.7	+0.5
17/04/17	-3.4	+0.4
18/04/17	-4.2	-0.9
19/04/17	-4.2	+0.0
20/04/17	-6.4	-2.1
21/04/17	-6.2	+0.2
22/04/17	-6.9	-0.7
23/04/17	-7.0	-0.1
24/04/17	-7.1	-0.1
25/04/17	-5.9	+1.3
26/04/17	-6.1	-0.2
27/04/17	-5.8	+0.3
28/04/17	-5.0	+0.8
29/04/17	-4.0	+1.0
30/04/17	-1.9	+2.0
01/05/17	-1.9	+0.0
02/05/17	-1.8	+0.1		6 months old. Worn daily

gap in recording

23/05/17	-37.0	-2.0		average over period 26/03/17 -- 23/05/17 = -1/6 s/d

29/05/17	-44.0	-1.0

03/06/17	-49.4	-1.2		7 months old. Worn daily. Time reset to +15s
04/06/17	+14.9	+0.3
05/06/17	+12.4	-2.6
06/06/17	+11.8	-0.6
07/06/17	+10.3	-1.4

gap in recording

26/06/17	-18.3	-2.1		average since 03/06/17 (23 days) = -1.4 s/d

gap in recording

11/08/17	+2.4	-2.9		9 months old. Worn daily
12/08/17	+1.0	-1.2
14/08/17	-4.3	-2.8
16/08/17	-8.4	-2.0
19/08/17	-15.6	-2.5
20/08/17	-18.2	-2.4		Rate decreasing?
21/08/17	-20.3	-2.3
22/08/17	-23.2	-2.9
23/08/17	-25.7	-2.5		Seems consistent &amp;lt; -2 s/d after 9 months daily wear
24/08/17	-28.5	-2.8
25/08/17	-30.7	-2.1
26/08/17	-33.6	-2.9
27/08/17	-42.3	-8.7		not worn for 24 hours. dial up. reset to +39.8s
28/08/17	+36.2	-4.0
29/08/17	+32.4	-3.8
30/08/17	+31.1	-1.3
31/08/17	+27.8	-3.3
01/09/17	+24.5	-3.3
02/09/17	+22.2	-2.5		10 months old. Worn daily
03/09/17	+18.8	-3.2
04/09/17	+17.2	-1.6
05/09/17	+14.6	-2.6
06/09/17	+13.3	-1.3
07/09/17	+9.0	-4.4		Biggest daily error so far.
08/09/17	+6.1	-2.8
09/09/17	+3.8	-2.3
10/09/17	+0.0	-3.6
11/09/17	-1.0	-1.0
12/09/17	-4.0	-3.1		after dial up 24 hours. manual wind 20 turns.
14/09/17	-9.0	-1.1
15/09/17	-11.8	-2.8
16/09/17	-16.3			no rate yet - new period started on new &amp;#039;phone
17/09/17	-21.1	-3.4
18/09/17	-25.8	-5.2		rate decreasing further?
19/09/17	-29.6	-3.7
20/09/17	-34.1	-4.3
21/09/17	-38.4	-4.3
22/09/17	-41.8	-3.4
23/09/17	-44.8	-2.9
24/09/17	-49.4	-4.4
25/09/17	-55.3	-6.5		biggest daily error so far
26/09/17	-58.6	-3.2
27/09/17	-61.2	-2.6
28/09/17	-64.0	-2.7
29/09/17	-67.5	-3.6		reset to +59.7s
30/09/17	+56.8	-2.8
01/10/17	+52.9	-3.9
02/10/17	+49.6	-3.4		11 months old. Worn daily
03/10/17	+46.4	-3.2
04/10/17	+43.3	-3.1
05/10/17	+40.5	-2.7
06/10/17	+37.6	-3.1
07/10/17	+32.2	-5.6

14/10/17	+8.9	-2.0
15/10/17	+6.4	-3.7
16/10/17	+3.9	-2.6
17/10/17	+0.2	-3.7
18/10/17	+1.6	+1.5		dial down overnight. positive rate!
19/10/17	-1.6	-3.0
20/10/17	-4.3	-2.7
21/10/17	-6.3	-1.9
22/10/17	-7.6	-1.3
23/10/17	-10.4	-3.0
24/10/17	-12.2	-1.9
25/10/17	-12.1	+0.1		dial down overnight
26/10/17	-12.6	-0.5		dial down overnight
27/10/17	-14.1	-1.5		dial down overnight
28/10/17	-14.5	-0.4
29/10/17	-17.9	-3.2		DST ends. Reset to +59.6s
30/10/17	+57.4	-2.4
31/10/17	+55.9	-1.5
01/11/17	+53.7	-1.9
02/11/17	+50.8	-2.9		12 months old. Worn daily. rate now average -2.1 s/d
03/11/17	+48.3	-3.0
04/11/17	+45.1	-3.1
05/11/17	+41.5	-3.5
06/11/17	+37.8	-3.6
07/11/17	+34.3	-3.7		rate dropping below -3 s/d
08/11/17	+30.3	-4.0
09/11/17	+26.6	-3.5
10/11/17	+23.2	-3.7
11/11/17	+22.7	-0.5
12/11/17	+19.9	-2.8
14/11/17	+13.1	-3.4
15/11/17	+9.7	-3.4
16/11/17	+6.2	-3.5
17/11/17	+2.7	-3.5
18/11/17	-0.8	-3.4
19/11/17	-4.6	-3.9
20/11/17	-7.3	-3.0
21/11/17	-9.5	-2.2
22/11/17	-12.2	-2.6
24/11/17	-18.9	-3.4
25/11/17	-21.4	-2.6
26/11/17	-22.8	-1.2
27/11/17	-25.7	-3.0
28/11/17	-27.8	-2.1
29/11/17	-30.6	-2.7
30/11/17	-33.6	-3.3
01/12/17	-36.1	-2.4		reset to ~ +60 s
02/12/17	+55.8	-3.5		13 months old. Worn daily
03/12/17	+54.3	-1.5
04/12/17	+51.1	-3.3
05/12/17	+48.4	-2.7
06/12/17	+45.5	-2.9
07/12/17	+42.0	-3.5
08/12/17	+39.7	-2.2
09/12/17	+34.3	-2.1
11/12/17	+32.4	-2.1
12/12/17	+30.8	-1.6		9-up overnight
13/12/17	+28.9	-1.9		9-up overnight
14/12/17	+27.2	-1.6		9-up overnight
15/12/17	+26.0	-1.3		9-up overnight
16/12/17	+24.8	-1.2		12-up overnight
17/12/17	+24.1	-0.6		12-up overnight
18/12/17	+22.0	-2.3
19/12/17	+20.9	-1.1		__1st attempt to regulate → __
20/12/17	+22.1	+4.0		after regulation and dial-down overnight
21/12/17	+22.5	+0.4		dial-up overnight (usual position)
22/12/17	+22.7	+0.1		regulation seems to have corrected rate error
23/12/17	+22.3	-0.4		time reset to -0.3 s
24/12/17	-0.2	+0.1
25/12/17	-0.1	+0,1
26/12/17	+0.4	+0.5
27/12/17	+0.6	+0.2
28/12/17	+1.6	+1.0
29/12/17	+1.6	+0.0
30/12/17	+5.8	+4.0		dial up for previous afternoon and overnight = fast rate
31/12/17	+0.6	-5.5		6-up for previous afternoon &amp;amp; overnight to slow rate and correct for yesterday
01/01/18	-0.1	-0.6
02/01/18	+1.9	+2.0		14 months old. Regulated once so far (19/12/17). Worn daily
03/01/18	+2.7	+0.9
04/01/18	+3.0	+0.3
05/01/18	+5.2	+2.2
06/01/18	+7.0	+1.6
07/01/18	+7.9	+1.0
08/01/18	+7.1	-0.9		6-up overnight micro-regulation...
09/01/18	+6.7	-0.4		6-up overnight
10/01/18	+6.4	-0.3		6-up overnight
11/01/18	+5.3	-1.0		6-up overnight
12/01/18	+3.1	-2.3		6-up overnight
13/01/18	+4.7	+1.6		back to dial-up overnight
14/01/18	+4.3	-0.4		6-up evening / dial-up overnight
15/01/18	+1.4	-2.7		dial up overnight. strange rate?
16/01/18	-3.0	-4.8		rate dropping again?
17/01/18	-6.2	-3.3		??
18/01/18	-8.8	-2.6		?
19/01/18	-11.0	-2.2
20/01/18	-16.1	-5.1		???
21/01/18	-19.2	-3.0		??
22/01/18	-22.2	-3.7		__regulated later in day to attempt to correct recent -ve rate__
23/01/18	-22.1	+0.8		timegrapher showed odd spells of low amplitude.
24/01/18	-20.5	+1.5
25/01/18	-17.6	+2.8
26/01/18	-16.0	+1.7
27/01/18	-12.2	+3.5
28/01/18	-8.7	+3.5		going +ve now!!
29/01/18	-8.0	+0.7
30/01/18	-4.5	+3.5
31/01/18	-6.6	-2.0		6-up overnight
01/02/18	-4.3	+2.4
02/02/18	-2.5	+1.8		15 months old. Regulated twice now (19/12/17 and 22/01/18)
03/02/18	-4.5	-2.3		3-up overnight
04/02/18	-3.2	+1.3
05/02/18	-1.0	+2.4
06/02/18	-2.2	-1.3
07/02/18	-1.2	+0.9
08/02/18	+3.0	+4.2
09/02/18	+2.6	-0.4
10/02/18	+4.4	+1.7
11/02/18	-17.0	-19.5		6-up from 4pm yesterday &amp;amp; overnight. big loss in this position
12/02/18	-14.5	+2.8
13/02/18	-12.4	+2.1
14/02/18	-13.1	-0.7
15/02/18	-11.4	+1.7
16/02/18	-12.2	-0.7		seems to be getting more variable over time.
17/02/18	-9.7	+2.3
18/02/18	-14.2	-4.4		dial up from yesterday afternoon. power low?
19/02/18	-15.2	-1.0		dial up from 1600 previous day until 0800
20/02/18	-12.6	+2.8
21/02/18	-12.6	+0.0
22/02/18	-6.9	+5.4		rate increasing now!!?
23/02/18	-2.1	+5.3
24/02/18	+3.3	+5.0
25/02/18	+7.8	+4.6
26/02/18	+13.5	+5.7
27/02/18	+19.6	+6.2
28/02/18	+25.2	+5.7
01/03/18	+33.6	+8.3		?! reset to -1.1s
02/03/18	+4.7	+5.9		16 months old. Worn daily. rate more variable and increasing?
03/03/18	+12.1	+6.9
04/03/18	+18.3	+6.5
05/03/18	+24.1	+5.8
06/03/18	+31.9	+8.1
07/03/18	+37.2	+5.4
08/03/18	+44.6	+6.9		__Regulated for 3rd time__ to reduce rate.
09/03/18	+44.4	-0.1
10/03/18	+42.8	-1.6		too far?
11/03/18	+41.9	-0.9
12/03/18	+38.2	-3.8		worn 24/7
13/03/18	+36.0	-2.3
14/03/18	+34.1	-1.8
15/03/18	+32.9	-1.2
16/03/18	+30.5	-2.6
17/03/18	+27.7	-2.8
18/03/18	+25.2	-2.3
19/03/18	+22.8	-2.5
20/02/18	+19.3	-3.4
21/03/18	+18.4	-0.9
22/03/18	+17.7	-0.7
23/03/18	+13.8	-4.1		__regulated for 4th time__ to increase rate
24/03/18	+13.2	-0.5
25/03/18	+12.6	-0.6		reset to DST. -0.7s
26/03/18	+0.3	+1.2
27/03/18	+0.5	+0.2
28/03/18	+0.7	+0.1
29/03/18	+1.8	+1.0
30/03/18	+1.2	-0.6
31/03/18	+3.0	+1.8
01/04/18	+5.2	+2.1
02/04/18	+5.1	-0.1		17 months old. Worn daily. 
03/04/18	+5.1	+0.0
04/04/18	+4.9	-0.3
05/04/18	+4.7	-0.2
06/04/18	+4.6	-0.1
07/04/18	+4.2	-0.3
08/04/18	+3.0	-1.2
09/04/18	+3.5	+0.4
10/04/18	+2.8	-0.6
11/04/18	+1.9	-1.0
12/04/18	+1.7	-0.2
14/04/18	-1.6	-1.6
15/04/18	-2.1	-0.5
16/04/18	-2.6	-0.5
17/04/18	-3.4	-0.9
18/04/18	-3.9	-0.5
19/04/18	-8.3	-4.2		??!
20/04/18	-8.5	-0.2
21/04/18	-8.4	+0.1
22/04/18	-8.4	+0.0
23/04/18	-9.1	-0.7
24/04/18	-9.8	-0.7
25/04/18	-10.9	-1.1
26/04/18	-10.7	+0.2
28/04/18	-11.1	-0.2
29/04/18	-11.6	-0.5
01/05/18	-12.0	-1.1
07/05/18	-17.8	-2.0		time reset. 18 months old.
08/05/18	-1.5	-1.0

Big break for heart attack and recovery.....

17/07/18	-12.7	-6.7		first day back after 2 month break. 20 months old
18/07/18	-15.0	-2.5
19/07/18	-18.2	-3.3
20/07/18	-24.3	-6.0		???!
21/07/18	-27.2	-2.5
22/07/18	-27.9	-0.8
23/07/18	-29.9	-2.1		variable day to day?
24/07/18	-33.2	-3.3
25/07/18	-24.8	-1.5
26/07/18	-37.2	-2.5
27/07/18	-38.8	-1.5
28/07/18	-40.9	-2.2
29/07/18	-42.9	-1.9
30/07/18	-47.9	-5.4
31/07/18	-49.1	-1.2
01/08/18	-51.2	-2.0
02/08/18	-52.5	-1.4		21 months old.
03/08/18	-54.9	-2.3		time reset to +28.5
04/08/18	+27.4	-1.1
05/08/18	+26.2	-1.1
06/08/18	+17.0	-9.8		???!!!
07/08/18	+14.9	-2.0
08/08/18	+12.6	-2.4
09/08/18	+10.5	-2.0
10/08/18	+9.1	-1.4
11/08/18	+6.2	-3.0
12/08/18	+9.7	+3.1		dial down overnight
13/08/18	+9.1	-0.7
14/08/18	+10.3	+1.1		dial down overnight
15/08/18	+12.4	+2.1		dial down overnight
16/08/18	+12.6	+0.2		dial down overnight
17/08/18	+12.4	-0.2		dial down overnight
18/08/18	+12.4	+0.0		dial down overnight
19/08/18	+9.1	-3.3		dial down overnight ???
20/08/18	+8.1	-1.1		dial down overnight
21/08/18	+5.5	-2.6		dial down overnight ?? slowing??
22/08/18	+6.0	+0.5		dial down overnight
23/08/18	+4.3	-1.6		dial down overnight
24/08/18	+2.6	-1.7		12-up overnight
25/08/18	+0.5	-2.0		dial up overnight (usual position)
26/08/18	-1.1	-1.6
27/08/18	-1.2	-0.1
28/08/18	-3.6	-2.4
29/08/18	-5.7	-2.1
30/08/18	-36.3	-31.4		????? Massive loss in one day!!! Rate and amplitude errors v. bad on Timegrapher.

Put aside until October 2019!!

Tested and worn.... no obvious problems. Still suspicious of winding/power issues.

31/10/19	-2.2	-3.3
01/11/19	-4.2	-2.0
02/11/19	-6.7	-2.3		2 years old. 13 months un-wound after observed problems Aug 2018.
03/11/19	-7.5	-0.8		dial down overnight
04/11/19	-8.5	-1.0		dial down overnight
05/11/19	Power reserve test in progress....
06/11/19	-3.6			new period after power reserve test (33:52 running time off-wrist)
07/11/19	-6.1	-2.6
08/11/19	-7.5	-1.6		dial down overnight
09/11/19	-9.5	-1.7		dial down overnight
10/11/19	-11.9	-2.4		dial down overnight
11/11/19	-14.1	-2.3		dial up overnight. Low amp. observed during the previous day?
12/11/19	-16.2	-2.2		Overnight on winder. Low amp. observed during the previous day
13/11/19	-18.6	-2.3		overnight on winder. being consistent day → day despite amplitude concerns.
14/11/19	-21.0	-2.3		overnight on winder.

New period - fault re-appearing

14/11/19	-32.6	-44.9 		(21:04:32) on winder for previous hour. 2 seconds lost.    	      
15/11/19	-45.2	-19.5  		(17:36:45) on TG since 06:30.... variable amp. &amp;amp; poor rate


&lt;/pre&gt;

&lt;p&gt;
Page Updated: 30/12/25 09:55 GMT
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:watch&amp;amp;do=showtag&amp;amp;tag=watch&quot; class=&quot;wikilink1&quot; title=&quot;tag:watch&quot; rel=&quot;tag&quot;&gt;watch&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:damasko&amp;amp;do=showtag&amp;amp;tag=damasko&quot; class=&quot;wikilink1&quot; title=&quot;tag:damasko&quot; rel=&quot;tag&quot;&gt;damasko&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Damasko DA36 Daily Rates (2016-2019)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;damasko_da36_daily_rates_2016-2019&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 30 Dec 2025 09:55:07 +0000</pubDate>
        </item>
        <item>
            <title>REU Export</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:swl:reu_export</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:swl:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:swl:start&quot; data-wiki-id=&quot;public:radio:swl:start&quot;&gt;SWL Pages&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;reu_export&quot;&gt;REU Export&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; Export of my previous REU loggings &lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
Retrieved 12/07/22
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://rxx.classaxe.com/en/reu/signals&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://rxx.classaxe.com/en/reu/signals&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://rxx.classaxe.com/en/reu/signals&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;REU Export&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;reu_export&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-148&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;reu&quot;&gt;1. REU&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;REU signals for John Pumford - Green on 2022-07-12
(913 records sorted by Frequency and ID)
DT - Logged between 10am and 2pm local time
----------------------------------------------------------------------------------------------------------------
KHz      ID         Type         Logs Latest     DT    KM    Mi   PWR GSQ    SP ITU Location
----------------------------------------------------------------------------------------------------------------
263      QY         NDB             2 2010-11-21  N  4032  2505   500 GN06af NS CAN Sydney
267      FNO        NDB             2 2010-11-23  N   382   237    25 JO29ni    NOR Haugesund / Karmoy / Foyno
270      FLO        NDB             2 2008-10-07  N  3097  1924       HM49jk    AZR Santa Cruz Das Flores
274      SAL        NDB             5 2010-11-24  N  5143  3196  3000 HK86mq    CPV Sal Island / Amilcar Cabral
275      VG         NDB             2 2010-11-22  N   398   247       JO29qg    NOR Haugesund / Karmoy / Vaga
276      YHR        NDB             4 2010-12-05  Y  3697  2297   500 GO00el QC CAN Chevery
276.5    BW         NDB             2 2007-09-22  N  1012   629    25 JO43ib    DEU Bremen
277      CHT        NDB             2 2007-09-22  N   965   600    25 IO91ro    ENG Chiltern
280      QX         NDB             2 2010-11-24  N  3536  2197  1000 GN28px NL CAN Gander
300      SC         NDB             1 2010-11-22  N   982   610       JO78sk    SWE Linkoping / Malmen And Saab
305      LT         NDB             4 2010-12-05  Y  2981  1852  1000 FR82vm NU CAN Alert Bay
305      YQ         NDB             1 2010-12-05  Y  4782  2971   500 EO38as MB CAN Churchill / Eastern Creek
305.7    DA         NDB             1 2007-09-09  N   826   513   100 IP35fg    ISL Dalatangi
309      LG         NDB             1 2007-09-20  N   827   514       JO68ik    SWE Satenas / Tune
310      TRL        NDB             2 2010-11-22  Y   286   178       JP10up    XOE Troll Platform
315.5    SS         NDB             3 2010-11-22  Y    27    17       IP90jl    SHE Scatsta
316      BGU        NDB             2 2010-11-22  N   708   440       JO59pu    NOR Bergerud
316      BJO        NDB             2 2010-11-22  N  1790  1112    50 JQ94nm    BRI Bjornoya / Bear Isl
316      BRR        NDB             1 2007-09-09  Y   501   311       IO67ga    SCT Barra
317      HG         NDB             1 2010-11-23  N   744   462       JP53ml    NOR Hegra
319      VAR        NDB             4 2010-11-22  Y   439   273    25 JO28tp    NOR Stavanger / Sola / Varhaug
320      DO         NDB             2 2010-11-22  Y   817   508       IP24up    ISL Djupivogur
320      HA         NDB             1 2007-09-20  N  1106   687    25 JO42vl    DEU Hannover / East
321      ABY        NDB             1 2007-09-09  Y  1175   730       JN19jx    FRA Albert / Bray
321      VO         NDB             4 2008-08-03  Y   847   526       JO45pf    DNK Vojens / Skrydstrup
322      GDN        NDB             1 2010-11-24  N  1366   849       JO94hi    POL Gdansk
322      KOR        NDB             1 2010-11-21  N  1450   901       KP20mi    FIN Helsinki / Malmi / Korso
323      DX         NDB             1 2010-12-05  Y   201   125       JP01tg    XOE Shell / Esso Dunlin A Platform
323      GT         NDB             1 2008-08-10  N  1001   622    25 JO43xr    DEU Hamburg / North
323      SBL        NDB             1 2007-09-09  Y   723   449       IO93js    ENG Sherburn-In-Elmet
323      SMA        NDB             4 2008-08-10  N  3086  1917       HM76jx    AZR Vila Do Porto / Santa Maria Isl
323      UWP        NDB             1 2007-09-27  N  3619  2248  1000 GN37ah NL CAN Argentia
324      AS         NDB             1 2008-08-10  N  1424   885       KP25eq    FIN Kemi / Tornio
324      ML         NDB             1 2007-09-09  N   822   511       JO56fh    DNK Aarhus
324      ON         NDB             1 2008-08-10  N  1022   635       JO88eo    SWE Norrkoping
325      DIS        NDB             1 2008-08-29  N                             XUU UNID
325      JOE        NDB             2 2010-11-22  N  1647  1023       KP42rq    FIN Joensuu
325      NF         NDB             2 2010-11-22  N   825   512       IP35dd    ISL Nordfjordur
325      PG         NDB             1 2010-11-22  N   820   509       JO68fg    SWE Trollhattan / Vanersborg
326      FSK        NDB             1 2008-10-07  N  1120   696       JP77ng    NOR Fauske
326      SUI        NDB             2 2010-11-22  N  1377   856       KP21am    FIN Tampere / Pirkkala / Suinu
326      YW         NDB             3 2010-11-22  Y   641   398       JO25fk    XOE Tyra West Platform
327      CRA        NDB             1 2008-04-16  Y    88    55       IP80ps    XOE Clair Fixed Platform
327      MVC        NDB             1 2007-09-09  N  1109   689       JO10hn    FRA Merville / Calonne
327      Y          NDB             1 2007-09-12  N   870   540       JP72eb    SWE Sveg
328      CL         NDB             2 2008-08-03  N   598   372       IO84ow    ENG Carlisle
328      HIG        NDB             1 2007-09-20  N  1876  1166   200 IN93cj    ESP San Sebastian
328      IVR        NDB             3 2008-08-03  Y   340   211       IO77xm    SCT Inverness
328      VJ         NDB             2 2008-08-03  N   751   467       JO45fx    DNK Stauning
329      IB         NDB             1 2008-10-07  N  1451   902       KO29hj    EST Tallinn
329      NMS        NDB             1 2008-08-10  N   826   513       JP54vl    NOR Namsos
329      VX         NDB             1 2010-11-22  N  1008   627       JO76iu    SWE Vaxjo / Kronoberg
329      YEK        NDB             1 2010-11-23  N  4610  2865   500 EP21xc NU CAN Arviat
330      HN         NDB             1 2008-08-03  N   836   520       IP24jg    ISL Hornafjordur
330      LNA        NDB             1 2010-11-22  N  1050   653       JO89qm    SWE Lena
330      SKS        NDB             2 2010-11-22  N   828   515       JO69pj    SWE Karlstad
332      OY         NDB             1 2008-10-07  N   680   423       IO64wq    NIR Belfast / Aldergrove
332      YFM        NDB             1 2010-11-23  N  4210  2616  2000 FO33dr QC CAN La Grande 4
333      GFC        NDB             4 2010-11-22  Y   230   143    50 JP11df    XOE Statoil Gullfaks C Platform
333.5    HRD        NDB             1 2007-09-15  N   199   123       JO09pd    XOE Harding B Platform
333.5    VOG        NDB             1 2010-11-23  N  1834  1140       JN44lx    ITA Voghera (PV)
334      OPA        NDB             1 2010-11-22  N   717   445       JP50se    NOR Oslo / Gardermoen / Oppaker
335      WCO        NDB             1 2010-11-22  N   936   582       IO91mu    ENG Westcott
336      AQ         NDB             4 2010-11-22  Y   351   218       IO87td    SCT Aberdeen
336      BTA        NDB             4 2010-11-22  Y   374   232       JP20pb    NOR Bergen / Flesland / Bratta
336      HWB        NDB             2 2008-04-16  Y   549   341       JO26di    XOE Harald B Platform
337      KAJ        NDB             1 2010-11-22  N  1550   963       KP34sg    FIN Kajaani / Koutaniemi
337      MY         NDB             3 2010-11-22  Y   388   241       IP62ec    FRO Myggenaes
338      FNY        NDB             2 2008-08-03  Y   755   469       IO93ll    ENG Robin Hood / Doncaster / Finningley
338      OA         NDB             1 2010-11-22  N   930   578       JO77bt    SWE Jonkoping
339      LS         NDB             2 2008-08-03  Y   416   259       JP21wj    NOR Forde / Bringeland / Langeneset
339      V          NDB             1 2010-11-22  N  1330   826       KP13nq    FIN Kokkola / Kruunupyy
340      HAW        NDB             1 2010-11-21  N   793   493       IO83me    WLS Hawarden
340      HEI        NDB             4 2010-11-21  Y   714   444    50 JP35ph    XOE Heidrun
340      KAI        NDB             1 2010-11-21  N  1550   963       KP30nv    FIN Utti / Kaipi
340      YY         NDB             1 2008-09-24  N  4307  2676   500 FN58un QC CAN Mont Joli
341      EDN        NDB             3 2008-08-03  Y   489   304       IO85ix    SCT Edinburgh
341      LO         NDB             2 2008-08-03  Y   808   502       JO45pr    DNK Billund
341      NKS        NDB             1 2010-11-21  N   834   518       JO69rm    SWE Karlstad
341      POR        NDB             1 2010-11-21  N  1254   779       KP01um    FIN Pori
342      LL         NDB             4 2010-11-21  Y   591   367       JP41pa    NOR Leirin / Fagernes
343      HBC        NDB             2 2008-08-03  Y   652   405       JO25mm    XOE Halfdan B / Maersk
344      HN         NDB             1 2007-09-15  N   941   584    25 JO44uh    DEU Hohn
344      WCK        NDB             3 2010-11-21  Y   223   138    25 IO88lk    SCT Wick
345      BN         NDB             2 2010-11-21  N   590   366       JO48ch    NOR Kristiansand / Kjevik / Birkeland
345      FT         NDB             3 2010-11-21  Y   398   247       JP21si    NOR Forde / Bringeland / Fleten
345      STM        NDB             2 2008-04-16  Y  1009   627       JP66vg    NOR Strommen / Mo I Rana
346      AU         NDB             3 2008-08-03  Y   770   478       JO45co    DNK Stauning
346      GS         NDB             1 2010-11-21  N  1008   626       JP80ln    SWE Gavle / Sandviken
346      MI         NDB             1 2010-11-21  N  1533   952       KP31mr    FIN Mikkeli / Korpikoski
346      WLU        NDB             1 2007-09-30  N  1281   796    15 JN39an    LUX Luxembourg
347      CVT        NDB             1 2007-09-30  N  1330   826       JN28ds    FRA Chalons / Vatry
347      JAD        NDB             1 2008-08-03  N   466   290       JO16bm    XOE Jade Platform
347      MSK        NDB             1 2010-11-21  N   700   435       JP50pk    NOR Morskogen
347.5    TD         NDB             2 2008-04-16  Y   635   394       IO94in    ENG Teeside
348      ATF        NDB             4 2010-11-21  Y   359   223    25 IO87wb    SCT Aberdeen / Dyce
348      SAD        NDB             1 2010-11-14  N  1130   702       JP68tc    NOR Leknes / Sandsund
348      VG         NDB             4 2010-11-21  Y   367   228       IP62jb    FRO Vagar
349      SPA        NDB             4 2010-11-21  Y   285   177    25 JO08wi    XOE Sleipner A platform
349      TAR        NDB             4 2010-11-21  Y   691   429       JP43rt    NOR Orland / Tarva
350      DF         NDB             5 2010-11-23  N  3672  2281  1000 GN19ge NL CAN Deer Lake
350      FU         NDB             1 2010-11-21  N  1012   629    25 JO43xo    DEU Hamburg West
350      LAA        NDB             1 2010-11-14  N  1447   899       KP24ox    FIN Oulu / Laanila
350      RB         NDB             3 2010-12-02  N  3774  2345  3000 EQ24mr NU CAN Resolute Bay
350      WA         NDB             1 2010-11-14  N  1374   854       KO18gg    EST Kuressaare
350.5    AMZ        NDB             2 2010-11-22  Y   290   180       JO07hv    XOE Aoka Mizu FPSO
351      OV         NDB             2 2010-11-21  N  1166   724       JO97er    SWE Visby
351      SBH        NDB             4 2010-11-21  N    43    27       IO99iv    SHE Sumburgh Head
352      NT         NDB             4 2008-08-03  Y   579   360    90 IO95eb    ENG Newcastle
352      PSJ        NDB             1 2010-11-21  N  1316   817       KP12lp    FIN Seinajoki
352      TRF        NDB             1 2010-11-21  N   651   405       JO59dw    NOR Tyrifjord
352.5    DD         NDB             1 2007-10-27  N  1045   649   100 JO11ke    BEL Oostende
353      KIL        NDB             3 2010-11-21  Y   955   593    25 JO54bi    DEU Kiel / Holtenau
353      OBA        NDB             4 2010-11-21  Y   235   146       JP10jl    XOE Oseberg A platform
354      CGC        NDB             1 2010-11-22  N  1623  1008    50 IN95uq    FRA Cognac / Chateaubernard
355      J          NDB             1 2010-11-22  N  1571   976       KP32we    FIN Varkaus
355      ONW        NDB             1 2010-11-21  N  1076   669       JO21ge    BEL Antwerpen / Deurne
355      PIK        NDB             4 2010-11-21  Y   558   347       IO75rm    SCT Prestwick
355      RK         NDB             1 2010-11-22  N  1145   711       HP84xd    ISL Reykjavik
356      AY         NDB             4 2010-12-04  N  3442  2139    25 GO11wj NL CAN St Anthony
356      RSY        NDB             2 2010-11-21  N  1278   794       JN19ia    FRA Paris / Charles De Gaulle
356      WBA        NDB             1 2010-11-21  N   863   536       IO82um    ENG Wolverhampton
356      ZF         NDB             2 2010-12-04  N  5247  3260  1000 DP22sj NT CAN Yellowknife
356.5    SHU        NDB             1 2007-09-30  N  1581   982       JN37qa    SUI Schupberg For Bern / Belp
357      KD         NDB             2 2007-09-15  N   835   519       JO45qk    DNK Kolding / Vamdrup
357      SEP        NDB             1 2010-11-21  N  1255   780       KP03ud    FIN Vaasa / Seppi
358      GRK        NDB             4 2010-11-21  N   708   440    25 JP53dk    NOR Trondheim / Vaernes / Grakallen
358      LF4H       NDB             1 2011-09-03  N   219   136       JO19cn    XOE Heimdal Platform
358      LT         NDB             1 2010-11-22  N  1101   684       JO00tm    FRA Le Touquet / Paris-Plage
358      RNN        NDB             1 2010-11-22  N  1616  1004       JN26ac    FRA Roanne / Renaison
358      WC         NDB             2 2008-08-03  N   823   511       JO23dn    XOE Nam / FA1 Platform
359      LK         NDB             1 2010-11-21  N   849   528       JO68nk    SWE Lidkoping / Ekgarden
359      LOR        NDB             2 2007-09-30  N  1396   867   100 IN87gs    FRA Lorient / Lann Bihoue
359.5    CDN        NDB             2 2010-11-22  N  1369   851    25 JN08qb    FRA Chateaudun
360      ASK        NDB             3 2010-11-22  N   367   228    50 JP20ok    NOR Bergen / Flesland / Askoey
360      HT         NDB             1 2007-09-27  N  3071  1908       HM58qm    AZR Horta / Faial Island
360      OS         NDB             1 2010-11-22  N   809   502       JO57wt    SWE Goteborg / Save
360      SL         NDB             3 2008-08-03  N   850   528       IP24hj    ISL Svinafell for Hornafjordhur
360      ULV        NDB             2 2008-08-03  N   907   564       JP65bp    NOR Bronnoysund / Ulvingen
360.5    MAK        NDB             2 2008-08-03  N  1077   669       JO10rx    BEL Mackel for Brussels Ntl
361      GUY        NDB             2 2010-11-22  N  1207   750       IN89qk    GSY Guernsey
361      LIE        NDB             2 2010-11-22  N  1307   812       KP10fm    FIN Turku / Lieto
361      RO         NDB             2 2010-11-22  N  1321   821       KP13ma    FIN Kauhava
361      SRN        NDB             1 2008-08-28  N   573   356       JO26cb    XOE South Arne Platform
362      BVK        NDB             4 2010-11-22  Y   444   276       JP22vf    NOR Orsta-Volda / Hovden / Baatvik
362      CTE        NDB             1 2007-09-30  N  2211  1374       IN80rj    ESP Castejon
362      JAN        NDB             4 2010-11-22  Y  1232   766    50 IQ50rx    JMY Jan Mayen
362      NN         NDB             2 2010-11-22  N  1017   632       JO89ij    SWE Eskilstuna / Kjula
362.5    SND        NDB             1 2010-11-22  N   977   607    25 JO01in    ENG Southend-On-Sea
363      OEM        NDB             3 2010-11-22  N  1029   639       JO75bx    SWE Kristianstad / Everod
363      PI         NDB             1 2007-09-21  N  1515   941    50 JN06eq    FRA Poitiers / Biard
364      NW         NDB             1 2010-11-22  N  1039   646       JO88js    SWE Stockholm / Skavsta / Nykoping
364      RSO        NDB             1 2010-11-22  N  1274   792       JN19ea    FRA Paris / Charles de Gaulle
364      VNA        NDB             1 2010-11-22  N  1173   729       JP93wt    SWE Vanja
365      ES         NDB             2 2008-08-03  N   859   533       IP25sf    ISL Egilsstadir
365      KIM        NDB             1 2007-09-08  N   749   465       IO93tn    ENG Kirmington
365      ODD        NDB             1 2007-09-08  N  1230   764       JP88bj    NOR Harstad / Narvik / Evenes / Odden
365      VS         NDB             1 2010-11-22  N  1348   837       KP11rj    FIN Tampere / Pirkkala / Vesilahti
366      KM         NDB             1 2010-11-22  N  1095   681       JO86cr    SWE Kalmar
366      SF         NDB             1 2010-11-22  N   874   543       JO68pb    SWE Falkoping
366      UTH        NDB             3 2010-11-22  N   690   429       JP43sr    NOR Orland / Uthaug
368      FN         NDB             1 2010-11-22  N   629   391       JO49sd    NOR Finndal / Skien
368      RK         NDB             1 2010-11-22  N   944   587       JO55xo    DNK Copenhagen / Roskilde
368      UW         NDB             2 2010-11-22  N   501   312       IO85fv    SCT Edinburgh
368.5    ELU        NDB             3 2010-11-22  N  1276   793    15 JN39eq    LUX Luxembourg-Berg
369      NL         NDB             1 2010-11-22  N   839   521       JO67er    SWE Goteborg / Landvetter
369      STG        NDB             3 2010-11-22  N   456   284       JP31eu    NOR Stegen
370      JR         NDB             1 2007-09-21  N  1571   976    25 KP32wd    FIN Varkaus / Joroinen
370      KS         NDB             2 2008-08-03  N   317   197   100 IO87ep    SCT Kinloss
370      OHT        NDB             1 2010-11-22  N  1077   669       JO89wn    SWE Stockholm / Arlanda
370      PSA        NDB             1 2010-12-03  N  1344   835    25 JN49qu    DEU Spessart
371      BRS        NDB             4 2010-11-22  N   573   356    50 JP33tc    NOR Bremsnes for Kristiansund / Kvernberget
371      HAA        NDB             2 2010-11-22  N   685   426       JP50mt    NOR Hamar / Stafsberg
371      MGL        NDB             1 2007-09-11  N  3027  1881       HM77er    AZR Ponta Delgada / Sao Miguel Island
372      L          NDB             1 2007-09-29  N  1501   933       JO70dc    CZE Prague / Ruzyne / Liboc
372      NOR        NDB             1 2010-12-03  N   950   590    30 JO43js    DEU Nordholz
372      ODR        NDB             5 2010-11-21  N   585   364       JO38xd    NOR Kristiansand / Kjevik / Odderoy
372      OZN        NDB             8 2010-11-21  N  2267  1408       GP80kb    GRL Prins Christian Sund / Kitaa
372      YCO        NDB             1 2007-11-18  N  4805  2986  1000 DP27kt NU CAN Coppermine / Kugluktuk
373      KEM        NDB             2 2010-11-22  N  1439   894    25 KP25hu    FIN Kemi-Tornio / Hirmula
373      NW         NDB             1 2007-09-12  N  1125   699    15 JO21wa    HOL Maastricht / Beek
374      BL         NDB             2 2010-11-22  N   412   256       JP21vj    NOR Forde / Bringeland
374      CBN        NDB             1 2010-11-22  N   499   310       IO85ax    SCT Cumbernauld
374      FLV        NDB             1 2008-08-05  N  1066   662       JP67vd    NOR Bodo / Fleinvaer
375      FR         NDB             1 2008-10-07  N  1268   788       KP01xk    FIN Pori / Vanhakyla
375      HET        NDB             2 2008-10-07  N  1490   926       KP18sk    FIN Enontekio / Hetta
375      SNR        NDB             2 2010-11-22  N   233   145       JP11bk    XOE Snorre
375      TR         NDB             2 2010-11-22  N   488   303    50 JO16pp    XOE Phillips / Tor E Platform
376      HP         NDB             1 2008-08-29  N   784   487       JO45em    DNK Esbjerg
376      PVQ        NDB             1 2010-12-02  N  5276  3278   260 BQ50sf AK ALS Put River Deadhorse
376      TL         NDB             2 2008-08-04  N    17    10       IP90je    SHE Lerwick / Tingwall / Shetland Isl.
377      KN         NDB             1 2010-12-02  N  1008   626       JO88bo    SWE Norrkoping / Kungsangen
377      PA         NDB             1 2008-08-29  N  1500   932       KP26tl    FIN Rovaniemi / Niskapera
377      SM         NDB             1 2008-08-29  N   865   538       JP70ev    SWE Mora / Siljan
378      RSY        NDB             2 2010-11-22  N   416   259       JO29td    NOR Stavanger / Sola / Rennesoy
379      REK        NDB             2 2010-11-22  N   371   231   100 JP21kn    NOR Reksten
380      ULA        NDB             2 2010-11-22  N   432   268    50 JO17kc    XOE Ula / BP Platform
381      ESP        NDB             1 2010-11-21  N  1439   894       KP20jf    FIN Helsinki / Vantaa / Espoo
381      RG         NDB             1 2010-11-21  N   706   439       JO59mh    NOR Rygge / Tune
382      YSR        NDB             1 2010-11-22  N  3562  2213       EQ72rx NU CAN Nanisivik
383      ALD        NDB             1 2010-11-21  N  1173   729    50 IN89vr    GSY Alderney
383      ERK        NDB             1 2010-11-21  N  1097   681       JO99ev    SWE Erken
383      SHD        NDB             1 2008-08-04  N   302   187       IO97cn    SCT Scotstown Head
383.5    GUL        NDB             1 2010-11-21  N  1147   712    15 JO20wt    HOL Gulpen
384      HNS        NDB             2 2008-08-04  N   425   264       JP21uv    NOR Sandane / Anda / Hoynes
384      NS         NDB             1 2010-11-22  N   908   564       JO78af    SWE Skovde
384      PMR        NDB             1 2010-12-03  N  1920  1193       JN03tc    FRA Pamiers / Les Pujols
384      SLG        NDB             1 2010-11-21  N   793   493       IO54qg    IRL Sligo
384      TY         NDB             1 2010-11-21  N   800   497       JP60mc    SWE Torsby / Fryklanda
385      AVN        NDB             1 2010-11-24  N  1703  1058       KO24pp    LTU Vilnius
385      BO         NDB             1 2010-12-03  N  2107  1309    40 JN74pe    HRV Zadar / Bokanjac
385      KV         NDB             1 2010-11-22  N  1422   884       KP21lu    FIN Halli / Talasniemi
386      BZ         NDB             1 2010-11-22  N   950   590    50 IO91er    ENG Brize Norton
386      LK         NDB             3 2008-10-07  N  1470   913   300 KO29lj    EST Tallinn / Ulemiste
387      AV         NDB             1 2010-11-22  N  1886  1172    20 IN73am    ESP Asturias / Aviles
387      CML        NDB             1 2010-11-21  N   945   587    50 IO62gk    IRL Clonmel
387      JL         NDB             1 2010-11-21  N  1556   967       KP33ub    FIN Kuopio
387      SOK        NDB             1 2010-11-21  N   625   388       JP40wf    NOR Oslo / Gardermoen / Sokna
388      COR        NDB             2 2010-11-21  N  1061   659       JO89rg    SWE Corner for Bromma
388      KRU        NDB             1 2010-11-21  N  1335   830       KP13ot    FIN Kokkola-Pietarsaari / Kruunupyy
388.5    CDF        NDB             1 2010-11-21  N   994   617    10 IO81hj    WLS Cardiff
389      HN         NDB             2 2010-11-22  N   452   281       JP32ad    NOR Orsta-Volda / Hovden
389      MR         NDB             2 2010-11-21  N   625   388       JO49sg    NOR Skien / Geiteryggen / Myra
389      PX         NDB             1 2010-11-22  N  1684  1046    25 JN05ke    FRA Perigueux / Bassillac
390      JT         NDB             3 2010-11-14  N  3791  2355   450 GN08on NL CAN Stephenville
390      LV         NDB             1 2010-11-21  N   786   488       JO69hp    SWE Arvika
390.5    ITR        NDB             2 2010-11-22  N  1911  1188       JN23lm    FRA Istres / Le Tube
391      BV         NDB             1 2010-11-22  N  1220   758    20 JN19al    FRA Beauvais / Tille
391      CC         NDB             1 2010-11-22  N  1561   970       JN26kr    FRA Chalon / Champforgeuil
391      DDP        NDB             4 2010-11-23  N  6856  4260  2000 FK68tl PR PTR San Juan / Dorado / Luiz Munoz Marin Intl
392      AS         NDB             1 2007-09-21  N  1415   879       IN97wn    FRA Angers / Avrille
392      GDY        NDB             2 2010-11-22  N  1177   732       JP90xe    FIN Mariehamn / Godby
392      KF         NDB             1 2010-11-24  N  1173   729       HP83px    ISL Keflavik
392      RAN        NDB             1 2008-08-05  N  1597   992       KP41aa    FIN Lappeenranta / Ranta
393      BD         NDB             1 2010-11-22  N  1706  1060       IN94rw    FRA Bordeaux / Merignac
393      TAT        NDB             2 2010-11-22  N   517   321       JP32kq    NOR Molde / Aro / Tautra
394      DND        NDB             2 2010-11-22  N   437   272    25 IO86kk    SCT Dundee
394      JOK        NDB             2 2007-09-21  N  1298   807       KP12hl    FIN Kauhajoki
394      NB         NDB             1 2010-11-22  N  1076   669       JO89vj    SWE Stockholm / Bromma
395      B          NDB             1 2010-11-22  N  1884  1170       IN83li    ESP Bilbao
395      KW         NDB             1 2008-08-05  N   164   102       IO88nx    ORK Kirkwall / Orkney Isl.
396      HYV        NDB             2 2007-09-22  N  1427   887       KP20in    FIN Hyvinkaa
396      JC         NDB             3 2010-11-14  N  3384  2103   500 GO04se NL CAN Rigolet
396      YG         NDB             2 2010-11-21  N   691   430       JO59ji    NOR Rygge / Enge
397      NF         NDB             3 2010-11-22  N   885   550       JO68tf    SWE Falkoping
398      AL         NDB             2 2010-11-22  Y   483   300       JP32co    NOR Alesund / Vigra
398      ESS        NDB             2 2010-11-22  N  1329   826       KP13np    FIN Kokkola-Pietarsaari /Kruunupyy / Esse
398      GL         NDB             2 2010-11-22  Y   734   456       JO47uc    DNK Aalborg
398      OK         NDB             1 2007-09-22  N   828   514       IO53pw    IRL Connaught
398      PEO        NDB             1 2007-09-22  N  1052   654       JO88mt    SWE Stockhlom / Skavsta / Peola
399      NGY        NDB             2 2010-11-22  N   588   365    80 IO75ve    SCT New Galloway for Prestwick
399.5    ONO        NDB             2 2010-11-22  N  1042   647    25 JO11lf    BEL Oostende
400      EN         NDB             1 2010-11-22  N   928   577       JO79mg    SWE Orebro
400      NTD        NDB             1 2010-11-22  N   594   369       JO49no    NOR Notodden
400.5    COD        NDB             1 2007-09-22  N  1823  1133       JN45sf    ITA Codogno (LO)
401      BBA        NDB             1 2008-08-05  N   460   286    50 IO67hl    SCT Benbecula
401      BPL        NDB             1 2007-09-22  N  2461  1529       JN81gc    ITA Bari / Palese (BA)
401      COA        NDB             1 2010-11-24  N  1936  1203   250 IN53ui    ESP La Coruna
401      JP         NDB             1 2010-11-22  N  1664  1034       KP42vp    FIN Joensuu / Marjosarkka
401      RBU        NDB             1 2010-11-24  N   734   456       JP52sm    NOR Roros / Rambu
401.5    BET        NDB             1 2010-11-24  N  1041   647       JO32qg    DEU Rheine / Bentlage
402      FNR        NDB             2 2007-09-12  N   760   472       IO54vl    IRL Finner Army Camp / Bundoran
402      KB         NDB             1 2007-09-14  N   834   518       JO13wi    XOE Placid K12-B Platform
402      LX         NDB             2 2010-11-25  N  1020   634       JO89ig    SWE Eskilstuna / Kjula
402      OP         NDB             1 2010-11-22  N  1105   686       JO20hw    BEL Brussels National
402      TH         NDB             2 2010-11-22  N   790   491       JP60ke    SWE Torsby
402.5    LBA        NDB             2 2010-11-22  N   713   443    45 IO93eu    ENG Leeds / Bradford
403      LPS        NDB             1 2007-09-22  N  1563   971       JN37jb    SUI Les Eplatures
404      DA         NDB             1 2010-09-28  N   666   414       JO59dg    NOR Torp / Dalen / Sandefjord
404      KG         NDB             1 2010-11-22  N  1227   762       JP78rp    NOR Stokmarknes / Kjerringnes
404      LRD        NDB             2 2010-11-25  N  2085  1295   250 JN01hn    ESP Lerida
404      LW         NDB             1 2010-11-22  N  1281   796    50 JN39co    LUX Luxembourg
404      VNG        NDB             1 2010-09-28  N   450   280       JP31hd    NOR Vangsnes
404      YSL        NDB             1 2007-09-27  N  4390  2728  1000 FN67be NB CAN St Leonard
405      AV         NDB             1 2010-09-28  N   813   505       JO57wr    SWE Goteborg / Save
405      GRW        NDB             1 2010-11-25  N  1449   900    25 JN59xq    DEU Grafenwohr
406.5    BOT        NDB             2 2010-11-22  N  1101   684    25 JO31mn    DEU Bottrop
407      GAR        NDB             2 2010-09-28  N   809   503    50 IO63sm    IRL Dublin / Garristown
407      LUP        NDB             1 2010-11-25  N  1523   946    30 JN48wf    DEU Laupheim
407      PN         NDB             2 2010-11-24  N  1401   870       KO05nx    LTU Palanga
407      SRT        NDB             1 2010-11-24  N  3498  2173       JM81he    LBY Sirte
408      BRK        NDB             2 2010-11-22  N  1788  1111       JN88ib    AUT Wien / Schwechat / Bruck
409      SG         NDB             2 2010-09-28  N   828   515       JO68ij    SWE Satenas / Tune
410      C          NDB             1 2010-11-24  N  1942  1206       IN53th    ESP La Coruna
410      LMKL       NDB             1 2008-08-05  N   358   222       JP20mj    XOE Havila Troll / Offshore Tug
410      SI         NDB             1 2010-11-24  N  1667  1036       JN67lt    AUT Salzburg
413.5    DLS        NDB             3 2010-11-22  N  1243   772    50 JO62qo    DEU Berlin / Tempelhof / Lubars
414      BRI        NDB             1 2010-11-14  N   990   615       IO81pj    ENG Bristol / Filton
414      HD         NDB             2 2010-11-22  N   949   590       JP66gb    NOR Sandnessjoen / Stokka / Hestad
414      SJA        NDB             1 2010-11-22  N  1334   829       JP89vd    NOR Bardufoss / Senja
414      SLB        NDB             1 2010-09-28  N   687   427       JP50la    NOR Oslo / Gardermoen / Solberg
415      OL         NDB             1 2007-09-22  N   997   620       JO78vj    SWE Linkoping / Saab
416      POZ        NDB             2 2009-06-11  N  2295  1426    40 KN04no    SRB Beograd / Pozarevac
416      R          NDB             1 2010-09-28  N   786   488       JO69hp    SWE Arvika
417      AH         NDB             2 2010-09-28  N   946   588       JO66kg    SWE Angelholm / Barkakra
417      LI         NDB             1 2010-11-22  N  1118   694    25 JO31ki    DEU Dusseldorf
417      R          NDB             1 2010-09-28  N  1008   626       JP80lo    SWE Gavle / Sandviken
417      SNO        NDB             1 2010-11-22  N  1989  1236   200 IN52sv    ESP Santiago
418      L          NDB             1 2010-09-28  N  1465   910    25 KO29kj    EST Tallin / Ulemiste
418      MK         NDB             2 2010-11-22  N  1056   656       JO10ax    FRA Calais / Dunkerque
419      HY         NDB             1 2010-11-22  N  1258   781       KP02vx    FIN Vaasa / Langskog
419      RA         NDB             3 2010-11-22  N   641   398       JO25fk    XOE Tyra East A Platform
419      RD         NDB             1 2010-11-22  N  1009   627       JO89hm    SWE Vasteras / Hasslo
419      WUN        NDB             1 2010-11-22  N  1094   679    25 JO42rl    DEU Wunstorf
420      LGS        NDB             2 2010-11-22  N   793   493       JO13aj    XOE Conoco Loggs Platform
420      PF         NDB             1 2007-08-20  N   220   137       JO08cl    XOE Talisman / Piper Bravo Platform
421      BUR        NDB             1 2007-09-10  N   974   605       IO91pm    ENG Burnham
421      MF         NDB             2 2010-09-28  N   919   571       JO66jp    SWE Halmstad
422      UR         NDB             2 2010-11-21  N  1561   970    50 JO70we    CZE Hradec Kralove / Upir
423      FE         NDB             3 2010-11-21  N   878   546       JO55fm    DNK Odense / Beldringe
423      FOR        NDB             1 2009-06-11  N  1995  1239       JN54xf    ITA Forli (FC)
423      ZO         NDB             1 2010-11-22  N  2454  1525       KN03ue    SRB Nis / Zitoradja
423.5    EDR        NDB             1 2008-08-04  N   192   119       JP01pi    XOE Shell Expro / Eider Platform
424      PIS        NDB             1 2010-11-21  N  1989  1236       JN75wo    HRV Zagreb / Pleso / Pisarovina
425      ERT        NDB             1 2010-11-21  N  1287   799       JO50kx    DEU Erfurt
425      OU         NDB             1 2010-09-28  N  1190   739       KP03cu    SWE Umea
426      GBG        NDB             1 2010-11-22  N  1861  1156   100 JN76vv    AUT Gleichenberg for Graz
426      HWQ        NDB             2 2010-11-21  N   830   516       JO03va    XOE Hewett A Platform
426      PW         NDB             1 2008-08-05  N   557   346       IO75pn    SCT Prestwick
426      SH         NDB             1 2010-11-22  N   898   558       IO82nf    ENG Shobdon
427      BRU        NDB             1 2010-11-21  N  1153   717       JO52hh    DEU Braunschweig
427      HDY        NDB             3 2010-09-28  N   652   405       JO25mm    XOE Halfdan Platform / Maersk
427      LUE        NDB             2 2010-11-21  N  1055   656       JP82vv    SWE Kramfors / Lunde
427      RY         NDB             1 2010-11-21  N  1631  1013       IN95no    FRA Royan / Medis
428      CTX        NDB             1 2010-11-21  N  1497   930    50 JN06vw    FRA Chateauroux / Deols
428      TGM        NDB             1 2010-11-21  N  2272  1412       KN26dk    ROU Targu Mures / Vidrasau
429      LOS        NDB             2 2010-11-22  N  2045  1271    40 JN74fm    HRV Losinj
429      SSD        NDB             1 2007-09-09  N   937   582       JO01cv    ENG London / Stansted
430      LU         NDB             1 2010-11-22  N  3566  2215       LN01to    GEO Batumi
430      OG         NDB             1 2010-11-21  N  2065  1283       KP93bv    RUS Onega
430      SN         NDB             1 2010-11-21  N  1594   990       JN26bh    FRA St Yan
431      SAY        NDB             4 2010-11-21  Y   356   221       IO68uf    SCT Stornoway
432      AKU        NDB             2 2010-11-21  N  1654  1028       KP38tq    FIN Ivalo / Akujarvi
432      G          NDB             1 2007-09-11  N  1432   890       KO29cg    EST Amari
432      PK         NDB             2 2010-11-21  N  1572   977       JO70va    CZE Pardubice / Prvek
433.5    HEN        NDB             2 2010-11-21  N   946   588    25 IO91os    ENG Henton
434      GR         NDB             2 2010-11-14  N  1859  1155       KO69et    RUS Gorka
434      MV         NDB             1 2010-11-21  N  1332   828       JN18ln    FRA Melun / Villaroche
434      THN        NDB             1 2007-09-11  N  1106   687    15 JO21ve    HOL Thorn
435      SM         NDB             2 2010-11-22  N  2254  1400       KO62ge    UKR Semenivka
438      PE         NDB             1 2010-11-14  N  1865  1159       KN09fb    SVK Poprad / Tatry East
440      PIA        NDB             1 2010-11-14  N  1869  1161       JN44vu    ITA San Giorgio Piacentino (PC)
441      CK         NDB             2 2010-11-22  N  1696  1054    50 JN89qj    CZE Prerov
444      NRD        NDB             2 2010-11-21  N  1460   907       JO92eu    POL Inowroclaw
445      TU         NDB             1 2009-06-11  N  2197  1365    50 JN94fl    BIH Tuzla
448      HLV        NDB             1 2010-11-14  N  1711  1063       JN89sh    CZE Holesov
452      ANS        NDB             1 2010-11-14  N  1439   894       JN59hh    DEU Ansbach
456      SEG        NDB             1 2008-04-09  N  2098  1303       KN06bg    HNG Szeged
458      LP         NDB             1 2010-11-22  N  1517   943       KO04vo    KAL Chernyakhovsk
468      FTZ        NDB             3 2010-11-14  N  1218   757    25 JO41pc    DEU Fritzlar
473      FHA        NDB             2 2008-08-05  N  1568   974       JN47sq    DEU Friedrichshafen / Lawental
474      BIA        NDB             7 2011-09-05  N  1859  1155       KO10bc    POL Rzeszow / Jasionka
474.5    SA         NDB             1 2011-09-06  N  1245   774       JO84ek    POL Darlowo
475      PT         NDB             1 2011-09-05  N  2705  1681       LO01cr    RUS Petrovskoye
477      RP         NDB             1 2010-11-14  N  1767  1098       JN88nl    SVK Malacky - Kuchyna
478      MF         NDB             1 2011-09-05  N  2415  1501       KO96ta    RUS Larionovo
478      NGT        NDB             1 2007-09-20  N  1477   918       JO82xi    POL Powidz
478      NTG        NDB             1 2008-08-05  N  1473   915       JO82wi    POL Powidz
480      CP         NDB             1 2010-11-14  N  3606  2240       LO93jk    RUS Magnitogorsk
480      VIB        NDB             1 2010-11-22  N  2183  1356       JN62ak    ITA Viterbo (VT)
484      HOF        NDB             1 2010-11-14  N  1388   862    25 JO50vg    DEU Hof
485      CW         NDB             1 2010-11-14  N  2538  1577       LO05uu    RUS Krasnaya Gorbatka
485      IA         NDB             2 2010-11-22  N  2207  1371    60 KN05ab    SRB Indija
488      ILM        NDB             3 2010-11-14  N  1414   878       JN59el    DEU Illesheim
488      NPR        NDB             2 2010-11-22  N  1645  1022       KO01bn    POL Tomaszow-Mazowiecki / Porter
489      NK         NDB             2 2010-11-22  N  1432   890       JO82lh    POL Poznan / Krzesiny / Kamera
490      DVI        NDB             1 2007-09-20  N  1510   938       JN47gx    DEU Donaueschingen - Villingen
490      KO         NDB             1 2010-11-22  N  2254  1400       KO50lw    UKR Koshany
492      TBV        NDB             3 2010-11-14  N  1630  1013       JN89it    CZE Moravska / Trebova
493      KR         NDB             1 2010-11-14  N  3147  1955       KN95na    RUS Krasnodar
494      NOW        NDB             2 2010-11-22  N  1348   838       JO94gn    POL Oksywie
494      NWO        NDB             1 2007-09-23  N  1341   833       JO94fo    POL Oksywie
495      AW         NDB             1 2010-11-22  N  3429  2131       LN24at    RUS Budennovsk
495      PA         NDB             1 2010-11-14  N  2247  1396    50 KN04hv    SRB Pancevo
505      WC         NDB             1 2008-09-24  N  3580  2224       MO06xk    RUS Kamensk-Uralskiy
507      ND         NDB             1 2010-11-22  N  3144  1954       LN05cs    RUS Bolshevik
508      Z          NDB             1 2010-11-14  N  1767  1098       JN99hf    SVK Zilina / Hlinik
512      NA         NDB             1 2007-09-25  N  3871  2405       MO13qc    KAZ Narimanovka / Qostanay
514.5    LA         NDB             1 2010-11-24  N  1668  1036       JN89cd    CZE Namest Nad Oslavou
517      ARD        NDB             2 2010-11-14  N  2149  1335       KN06ne    ROU Arad
517      JBR        NDB             2 2010-11-14  N  1977  1229       JN97wl    HNG Jaszbereny
518      $01F       Navtex          1 2010-11-14  N  1435   892       KO29el    EST Tallinn
518      $02G       Navtex          2 2011-11-29  N  2707  1682       IM76fb    ESP Tarifa
518      $02I       Navtex          6 2011-11-29  N  3713  2307       IL18tk    CNR Las Palmas
518      $02R       Navtex         20 2011-12-12  N  2466  1532       IM58lo    POR Penalva
518      $03A       Navtex          7 2011-12-13  N  2077  1291       JN63ns    ITA Mondolfo / Pesaro
518      $03A       Navtex         11 2011-12-10  N  3119  1938       KN84xo    RUS Novorossiysk
518      $03B       Navtex         27 2011-12-13  N  2630  1634       JM16pt    ALG Alger
518      $03D       Navtex          9 2011-11-29  N  2976  1849       KN41lb    TUR Istanbul
518      $03E       Navtex         13 2011-12-08  N  3301  2051       KN81cj    TUR Samsun
518      $03F       Navtex         16 2011-12-07  N  3600  2237       KM66fd    TUR Antalya
518      $03H       Navtex         15 2011-12-13  N  3387  2104       KM25uh    GRC Irakleion
518      $03I       Navtex         13 2011-12-13  N  3120  1939       KM38dg    TUR Izmir
518      $03J       Navtex         13 2011-12-10  N  2738  1701       KN33vb    BUL Varna
518      $03K       Navtex         12 2011-12-08  N  2731  1697       JM99wo    GRC Kerkyra
518      $03L       Navtex          4 2011-12-11  N  2917  1812       KM29ov    GRC Limnos
518      $03M       Navtex         23 2011-12-13  N  3743  2326       KM64hr    CYP Cyprus
518      $03N       Navtex          7 2011-12-06  N  3969  2466       KM41we    EGY Alexandria
518      $03O       Navtex          6 2011-12-10  N  2943  1829  1000 JM75fu    MLT Malta
518      $03P       Navtex         23 2011-12-13  N  4035  2507       KM72nv    ISR Haifa
518      $03Q       Navtex         13 2011-12-12  N  2248  1397       JN83fe    HRV Split
518      $03R       Navtex         22 2011-12-13  N  2243  1394       JN41qf    SAR La Maddalena
518      $03R       Navtex          3 2010-11-24  N  2282  1418       JN61fo    ITA Rome
518      $03T       Navtex          5 2011-12-08  N  2454  1525       JM49of    SAR Cagliari
518      $03V       Navtex          9 2011-12-08  N  2819  1752       JM77of    SCY Augusta
518      $03W       Navtex          2 2011-12-12  N  1973  1226       JN23xc    FRA La Garde (Toulon)
518      $03W       Navtex         25 2011-12-12  N  3545  2202       LN35ss    RUS Astrakhan
518      $03X       Navtex          6 2011-12-08  N  2398  1490       JM08cr    ESP Cabo de la Nao
518      $04A       Navtex         11 2011-11-29  N  6953  4320       EL95to FL USA Miami
518      $04B       Navtex          4 2011-11-27  N  5467  3397   500 FM72qi    BER Bermuda Harbour
518      $04C       Navtex         10 2011-12-13  N  4069  2528       FO60we QC CAN Moisie (Sept-Iles)
518      $04F       Navtex          5 2011-12-08  N  4976  3092       FN41rr MA USA Boston
518      $04G       Navtex          6 2011-11-22  N  7076  4396       EL59av LA USA New Orleans
518      $04M       Navtex          2 2011-12-12  N  2422  1505       GP60rq    GRL Simiutaq (Cape Farewell)
518      $04N       Navtex          8 2011-11-29  N  5706  3545       FM16xr VA USA Portsmouth
518      $04O       Navtex         15 2011-12-12  N  3528  2192       GN37po NL CAN Robin Hood Bay (St. John&amp;#039;s)
518      $04Q       Navtex         29 2011-12-13  N  4031  2504       GN06be NS CAN Port Caledonia (Sydney)
518      $04R       Navtex         11 2011-12-11  N  6892  4282       FK68ll PR PTR San Juan
518      $04U       Navtex          6 2011-12-10  N  4570  2839       FN63wr NS CAN Chebogue (Fundy)
518      $04W       Navtex         12 2011-12-12  N  2588  1608       GP34xb    GRL Nuuk
518      $04X       Navtex          6 2011-12-11  N  3337  2074       GO13lr NL CAN Cartwright (Labrador)
518      $09A       Navtex          2 2010-12-09  N  5188  3223       LL58jx    IRN Bushehr
518      $09B       Navtex         25 2011-12-13  N  5438  3379       LL56fd    BHR Bahrain
518      $09M       Navtex          1 2010-11-16  N  6104  3793       LL93go    OMA Muscat
518      $09V       Navtex          9 2011-12-07  N  4666  2899       KL76dc    EGY Quseir
518      $09X       Navtex          9 2011-11-29  N  4147  2577       KM60el    EGY Ismailia
518      $11N       Navtex          1 2010-12-11  N  9057  5627       OL63sd    CHN Guangzhou
518      $19A       Navtex          6 2011-12-10  Y  2050  1274       JQ68tb    SVB Svalbard
518      $19V       Navtex          1 2010-11-17  N  1846  1147       KQ50ni    NOR Vardo
518      $20F       Navtex         39 2011-12-13  Y  2172  1349       LP04gn    RUS Arkhangelsk
518      TM         NDB             1 2008-08-29  N  2688  1670  1000 KN77it    UKR Tomakivka
520      NW         NDB             3 2010-11-22  N  1567   974       JO91ox    POL Leczyca
520      OO         NDB             1 2008-08-28  N  2226  1383       KO74ef    RUS Shaykovka
525      PL         NDB             1 2010-11-14  N  1753  1089       KO59es    RUS Pulkovo / St.Petersburg
525      WRW        NDB             2 2010-11-14  N  1534   953       JO81lb    POL Wroclaw / Strachowice
544      LF5U       NDB             1 2010-11-13  N   497   309       JO16om    XOE Ekofisk 2
544      LF6F       NDB             1 2010-11-13  N                             XOE Eldfisk B
570      LF5F       NDB             1 2010-11-24  N   246   153       JO19ee    XOE Balder FPU
598      LF4Q       NDB             1 2010-11-13  N   276   172       JP10ru    XOE Snorre B
615      OM         NDB             1 2008-08-23  Y   649   403       JO25fi    XOE Gorm C Platform
615      STB        NDB             2 2010-11-24  Y   204   127       JP01ve    XOE Statfjord B Platform
2177     002050480  DSC             1 2014-03-18  N  1049   652  1000 JO11ne    BEL Oostende Radio
2177     002191000  DSC            15 2014-10-04  Y   905   562       JO55rt    DNK Lyngby Radio
2177     002311000  DSC             5 2014-10-03  Y   343   213       IP61ox    FRO Torshavn Radio
2177     002371000  DSC             4 2014-07-18  N  2991  1859       KM07ro    GRC Olympia Radio
2177     002510100  DSC             1 2014-10-04  N  1135   705       HP94bb    ISL Reykjavik Radio
2177     002570000  DSC             1 2018-08-14  N                             NOR Public Correspondance
2177     002570100  DSC             7 2014-04-04  Y   680   423       JO59hk    NOR Tjome Radio
2177     002570300  DSC            15 2014-10-03  Y   439   273       JO28tp    NOR Rogaland Radio
2177     002570500  DSC            15 2014-10-03  Y   379   236       JP21mn    NOR Floroe Radio
2177     002570700  DSC             3 2014-04-04  N  1095   680       JP77eg    NOR Bodoe Radio
2187.5   000008040  DSC             4 2018-10-13  Y                             XUU UNID
2187.5   000064320  DSC             2 2018-10-14  N                             XUU UNID
2187.5   000304000  DSC             4 2018-09-27  N                             XUU UNID
2187.5   000400003  DSC             1 2014-05-03  N                             XUU UNID
2187.5   001204021  DSC             1 2014-04-27  N                             XUU UNID
2187.5   002040100  DSC            12 2019-12-30  N  3030  1883       HM77dr    AZR Ponta Delgada Radio
2187.5   002050480  DSC           101 2019-12-29  Y  1049   652  1000 JO11ne    BEL Oostende Radio
2187.5   002059981  DSC            26 2015-04-20  Y  1044   649       JO11gd    BEL MRCC Oostende
2187.5   002070810  DSC            87 2019-12-31  N  2738  1701       KN33vb    BUL Varna Radio
2187.5   002091000  DSC            55 2019-12-01  N  3742  2325  5000 KM65pb    CYP Cyprus Radio
2187.5   002111240  DSC            82 2019-12-29  Y  1015   630   250 JO43jb    DEU Bremen Rescue Radio
2187.5   002130100  DSC             1 2018-10-13  N  3562  2213       LN01tp    GEO Batumi Radio
2187.5   002150100  DSC             6 2012-02-23  N  2943  1829       JM75fu    MLT Malta Radio
2187.5   002191000  DSC           104 2019-12-29  Y   905   562       JO55rt    DNK Lyngby Radio
2187.5   002240991  DSC             8 2018-09-15  N  2117  1315       JN11bi    ESP Barcelona Radio
2187.5   002240993  DSC            32 2019-12-24  Y  2019  1255       IN52mq    ESP MRCC Finisterre
2187.5   002240994  DSC            51 2019-12-01  N  2712  1685   250 IM76fa    ESP MRCC Tarifa
2187.5   002240996  DSC             6 2014-07-01  N  1884  1170       IN83li    ESP MRCC Bilbao
2187.5   002240997  DSC             1 2011-12-25  N  1879  1168       IN73dn    ESP MRCC Gijon
2187.5   002241001  DSC             1 2012-01-22  N  2702  1679       IM76gc    ESP Algeciras Radio
2187.5   002241002  DSC            20 2019-12-03  N  2622  1629       IM86vq    ESP Almeria Radio
2187.5   002241004  DSC             2 2016-05-21  N  2317  1440       IM99uk    ESP MRCC Valencia
2187.5   002241007  DSC             2 2018-10-23  N  3704  2302       IL18vl    CNR MRCC Tenerife
2187.5   002241021  DSC            25 2018-10-13  Y  1873  1164       IN83ok    ESP Bilbao Radio
2187.5   002241022  DSC           110 2019-12-29  Y  1939  1204       IN53si    ESP Coruna Radio
2187.5   002241023  DSC            26 2012-11-18  N  2641  1641       IM76qo    ESP Malaga Radio
2187.5   002241024  DSC           107 2019-12-29  N  2397  1489       IM98wr    ESP Valencia Radio
2187.5   002241026  DSC           118 2019-12-29  N  3768  2341       IL27es    CNR Las Palmas Radio
2187.5   002275000  DSC            68 2019-12-29  Y  1408   875       IN87jp    FRA CROSS Etel
2187.5   002275100  DSC            64 2019-12-29  Y  1064   661       JO00tu    FRA CROSS Gris Nez
2187.5   002275200  DSC            68 2019-12-29  Y  1177   731       IN99bq    FRA CROSS Jobourg
2187.5   002275300  DSC            88 2019-12-31  Y  1331   827       IN78ll    FRA CROSS Corsen
2187.5   002275400  DSC            87 2019-12-29  N  1973  1226       JN23xc    FRA CROSS La Garde
2187.5   002275420  DSC             3 2018-10-20  N  2154  1338       JN41jw    COR Aspretto
2187.5   002279114  DSC             2 2014-11-19  N  1437   893       IN87wi    FRA Test ANFR SR Donges
2187.5   002301000  DSC            88 2019-12-29  Y  1179   733       JP90xc    FIN Mariehamm Radio
2187.5   002302000  DSC            54 2019-12-29  Y  1459   906       KP20nd    FIN Helsinki Radio
2187.5   002303000  DSC            14 2014-10-01  Y  1227   762       KP03nh    FIN Raippaluoto Radio (Vaasa)
2187.5   002311000  DSC            98 2019-12-29  Y   343   213       IP61ox    FRO Torshavn Radio
2187.5   002320001  DSC           105 2019-12-29  Y    23    14       IP90kd    SHE Shetland Radio (Lerwick)
2187.5   002320002  DSC             4 2018-09-03  Y                             SCT UK Coastguard
2187.5   002320003  DSC             2 2015-09-13  Y                             SCT UK Coastguard
2187.5   002320004  DSC           104 2019-12-29  Y   349   217       IO87xd    SCT Aberdeen Radio
2187.5   002320005  DSC             8 2019-12-29  Y                             SCT UK Coastguard
2187.5   002320006  DSC             3 2018-09-28  N   584   363                 ENG UK Coastguard
2187.5   002320007  DSC            98 2019-12-29  Y   691   429       IO94xc    ENG Humber Radio
2187.5   002320008  DSC            11 2019-12-29  Y   874   543                 ENG UK Coastguard
2187.5   002320009  DSC            60 2019-12-31  Y   951   591       JO01pu    ENG Thames Radio
2187.5   002320010  DSC            20 2019-12-29  Y  1029   639       JO01pd    ENG Dover Radio
2187.5   002320011  DSC            20 2019-12-29  Y  1060   658       IO90xs    ENG Solent Radio
2187.5   002320012  DSC             4 2018-09-28  Y  1061   659                 ENG UK Coastguard
2187.5   002320013  DSC            29 2019-12-27  Y  1120   696    25           ENG UK Coastguard
2187.5   002320014  DSC            96 2019-12-29  Y  1168   726       IN79jx    ENG Falmouth Radio
2187.5   002320016  DSC            21 2019-12-01  Y   984   611                 WLS UK Coastguard
2187.5   002320017  DSC            84 2019-12-29  Y   981   609       IO71kq    WLS Milford Haven Radio
2187.5   002320018  DSC            21 2019-12-29  Y   798   496       IO73ph    ENG Holyhead Radio
2187.5   002320019  DSC            10 2019-12-24  Y   756   470                 ENG UK Coastguard
2187.5   002320021  DSC            83 2019-12-29  Y   668   415       IO74eq    NIR Belfast Radio
2187.5   002320022  DSC            41 2019-12-30  Y   520   323                 SCT UK Coastguard
2187.5   002320023  DSC             2 2018-09-29  Y   486   302                 SCT UK Coastguard
2187.5   002320024  DSC            94 2019-12-29  Y   335   208       IO68vl    SCT Stornoway Radio
2187.5   002320204  DSC             4 2018-09-16  Y  1033   642   150 JO01pc    ENG Snargate Radio Dover
2187.5   002371000  DSC           109 2019-12-29  N  2991  1859       KM07ro    GRC Olympia Radio
2187.5   002387010  DSC             1 2014-04-05  N  1966  1222       JN75fh    HRV Rijeka Radio
2187.5   002391000  DSC             1 2013-10-25  N  3030  1883       KM18tb    GRC Aspropirgos Radio (Hellenic CG)
2187.5   002392000  DSC             3 2018-09-28  N  3041  1890       KM17ux    GRC Piraeus Radio
2187.5   002442000  DSC           105 2019-12-29  Y   974   605       JO22dc    HOL Netherlands CG Radio
2187.5   002470001  DSC            88 2016-05-08  Y  2272  1411       JN61is    ITA Roma Radio
2187.5   002470002  DSC           101 2019-12-29  Y  2660  1653       JM68ne    SCY Palermo Radio
2187.5   002470119  DSC             9 2020-01-03  N  2103  1307       JN63sp    ITA Ancona Radio
2187.5   002470120  DSC             8 2019-12-30  N  2815  1749       JM77og    SCY Augusta Radio
2187.5   002470121  DSC             3 2019-12-29  N  2473  1536       JN81kc    ITA Bari Radio
2187.5   002470123  DSC             8 2020-01-03  N  2211  1374       JN52vc    ITA Civitavecchia Radio
2187.5   002470124  DSC            15 2019-12-29  N  2689  1671       JM89nb    ITA Crotone Radio
2187.5   002470125  DSC             6 2019-12-26  Y  1896  1178       JN44lj    ITA Genova Radio
2187.5   002470128  DSC             8 2019-12-03  N  2700  1677       JM67hq    SCY Mazara del Vallo Radio
2187.5   002470133  DSC             2 2018-09-30  N  2265  1407       JN40dt    ITA Porto Torres Radio
2187.5   002470135  DSC             2 2020-01-03  N  1906  1184       JN65vq    ITA Trieste Radio
2187.5   002500100  DSC            80 2019-12-29  Y   649   403       IO65hi    IRL Malin Head Radio
2187.5   002500200  DSC            93 2019-12-29  Y  1081   672       IO41tv    IRL Valentia Radio
2187.5   002510100  DSC            97 2019-12-29  Y  1135   705       HP94bb    ISL Reykjavik Radio
2187.5   002516200  DSC             3 2019-12-28  N  1141   709       HP94ad    ISL Reykjavik CG
2187.5   002550100  DSC             2 2018-10-05  N  3271  2033       IM12np    MDR Funchal Radio
2187.5   002570000  DSC            74 2019-12-29  Y                             NOR Public Correspondance
2187.5   002570100  DSC            78 2019-12-29  Y   680   423       JO59hk    NOR Tjome Radio
2187.5   002570200  DSC            11 2019-12-19  Y   526   327       JO38ib    NOR Farsund Radio
2187.5   002570300  DSC           103 2019-12-29  Y   439   273       JO28tp    NOR Rogaland Radio
2187.5   002570400  DSC            19 2019-12-29  Y   350   218       JP20kr    NOR Bergen Radio
2187.5   002570500  DSC           103 2019-12-30  Y   379   236       JP21mn    NOR Floroe Radio
2187.5   002570600  DSC             9 2018-09-12  Y   687   427       JP43sq    NOR Orlandet Radio
2187.5   002570700  DSC           100 2019-12-29  Y  1095   680       JP77eg    NOR Bodoe Radio
2187.5   002570800  DSC            67 2019-12-29  Y  1846  1147       KQ50ni    NOR Vardo Radio
2187.5   002570900  DSC            10 2020-01-01  N  2118  1316       JQ68sr    SVB Svalbard Radio
2187.5   002573550  DSC             6 2015-08-29  Y  1846  1147       KQ50ni    NOR Vardo Radio
2187.5   002610210  DSC           106 2019-12-29  Y  1248   775       JO84gm    POL Witowo Radio
2187.5   002611300  DSC             1 2014-11-07  N                             XUE UNID
2187.5   002618102  DSC             3 2019-12-29  Y  1245   774       JO84gn    POL Polish Rescue Radio
2187.5   002620001  DSC            24 2015-09-06  N  2463  1530       JN92na    MNE Bar Radio
2187.5   002630100  DSC            13 2019-12-23  N  2461  1529       IM58iq    POR Lisboa Radio
2187.5   002640570  DSC            46 2019-12-02  Y  2685  1668       KN44hc    ROU Constanta Radio
2187.5   002651000  DSC             6 2019-12-02  Y                             SWE UNID
2187.5   002652000  DSC            85 2019-12-29  Y  1130   702       JO99ig    SWE Stockholm Radio
2187.5   002653000  DSC            98 2019-12-29  Y   829   515       JO57xl    SWE Goteborg Radio
2187.5   002653300  DSC             1 2019-12-28  Y                                 UNID
2187.5   002653500  DSC             7 2019-12-16  Y  1130   702       JO99ig    SWE Stockholm Radio
2187.5   002711000  DSC           115 2019-12-29  Y  2976  1849       KN40jx    TUR Istanbul Radio
2187.5   002712000  DSC            52 2020-01-02  N  3301  2051       KN81cj    TUR Samsun Radio
2187.5   002713000  DSC            44 2019-12-05  N  3600  2237       KM66fd    TUR Antalya Radio
2187.5   002714000  DSC             1 2012-01-05  N  2952  1834       KN30fc    TUR Canakkale Radio
2187.5   002715000  DSC            57 2019-12-30  N  3120  1939       KM38dg    TUR Izmir Radio
2187.5   002723660  DSC            24 2019-12-28  N  2593  1611       KN56jk    UKR Odessa Radio
2187.5   002731197  DSC             6 2019-12-29  Y  3316  2060       MQ61ag    RSE Sabetta Pt YNAO
2187.5   002733700  DSC            94 2019-12-29  Y  1740  1081       KO59cv    RUS Saint Petersburg Radio
2187.5   002733733  DSC             5 2013-10-22  N  7678  4771       QN06wo    RSE Yuzno-Sakhalinsk Radio
2187.5   002734411  DSC            89 2019-12-29  Y  3099  1925       KN84uq    RUS Novorossiysk Radio
2187.5   002734414  DSC            73 2019-12-29  Y  2172  1349       LP04gn    RUS Arkhangelsk Radio
2187.5   002734417  DSC            59 2019-12-30  Y  1451   902       KO04ir    KAL Kaliningrad Radio
2187.5   002734419  DSC           100 2019-12-29  Y  3543  2201       LN35tu    RUS Astrakhan Radio
2187.5   002734420  DSC            16 2019-12-30  N  1862  1157       KP68ls    RUS Murmansk Radio
2187.5   002734423  DSC            11 2014-04-27  N  3761  2337       LN33ra    RUS Makhachkala Radio
2187.5   002734446  DSC            79 2019-12-29  N  3009  1870       KN85je    RUS Taman Radio
2187.5   002734487  DSC            67 2019-12-30  N  2965  1842       KN97le    RUS Taganrog Radio
2187.5   002750100  DSC            30 2020-01-01  Y  1513   940       KO27ba    LVA Riga Rescue Radio
2187.5   002760100  DSC            19 2019-12-03  Y  1451   902       KO29hj    EST Tallinn North Radio
2187.5   002760120  DSC             8 2019-12-26  Y  1371   852       KO18ff    EST Kuressaare West Radio
2187.5   002761000  DSC            29 2019-12-29  Y  1333   828       KO08xm    EST Undva MRCC Tallinn
2187.5   002770330  DSC            47 2019-12-29  Y  1399   869       KO06na    LTU Klaipeda Rescue Centre
2187.5   003061000  DSC            22 2019-12-27  N  7595  4719  1000 FK52ne    ATN Curacao Radio
2187.5   003100001  DSC            13 2019-12-01  N  5468  3397       FM72pj    BER Bermuda Harbour Radio
2187.5   003313000  DSC            98 2019-12-29  Y  2566  1594       GP39fg    GRL Aasiaat Radio
2187.5   003314000  DSC             1 2011-11-14  N  1893  1176       HP15eo    GRL Angmagssalik Radio
2187.5   003669931  DSC             1 2012-01-22  N  5142  3195       FN31ng CT USA New Haven Radio
2187.5   003669990  DSC             1 2013-12-02  N  7859  4883       CM87pw CA USA CAMSPAC Pt Reyes
2187.5   003669991  DSC            24 2014-04-01  N  4983  3096       FN41rp MA USA COMMSTA Boston
2187.5   003669995  DSC            40 2014-04-05  Y  5706  3545       FM16xr VA USA COMMSTA Portsmouth
2187.5   003669997  DSC            14 2014-03-20  N  6953  4320       EL95to FL USA COMMSTA Miami
2187.5   003669998  DSC            23 2014-04-05  N  7076  4396       EL59av LA USA COMMSTA New Orleans
2187.5   003669999  DSC             6 2014-02-28  N                             USA USCG Group station
2187.5   004121100  DSC             1 2018-10-14  N  7659  4759       OM89ra    CHN Tianjin Radio
2187.5   004121400  DSC             2 2013-11-24  N  7962  4947       PM07qm    CHN Yantai Radio
2187.5   004122100  DSC            54 2019-12-27  N  8612  5351       PM01sc    CHN Shanghai Radio
2187.5   004122200  DSC             3 2013-11-24  N  8059  5007       PM06fe    CHN Qingdao Radio
2187.5   004122600  DSC             2 2011-12-14  N  9028  5609       OL96pa    CHN Fuzhou Radio
2187.5   004122700  DSC             1 2011-12-11  N  9123  5669       OL94bn    CHN Xiamen Radio
2187.5   004123100  DSC            37 2019-12-05  N  9053  5625       OL63rd    CHN Guangzhou Radio
2187.5   004123200  DSC             1 2011-12-06  N  9181  5704       OL83ii    CHN Shantou Radio
2187.5   004123300  DSC             1 2011-12-29  N  9104  5657       OL51ed    CHN Zhanjiang Radio
2187.5   004123400  DSC             3 2011-12-17  N  9007  5596       OL41ml    CHN Beihai Radio
2187.5   004123600  DSC             7 2011-12-31  N  9219  5728       OK49hc    CHN Basuo Radio
2187.5   004123700  DSC             1 2014-02-25  N  9346  5807       OK48rf    CHN Sanya Radio
2187.5   004162019  DSC            11 2019-12-26  N  9223  5730       PL05vd    TWN Chilung Keelung Radio
2187.5   004192203  DSC             3 2013-11-22  N  7321  4549       MK68jw    IND Mumbai Radio
2187.5   004225601  DSC             1 2018-10-26  N  4610  2864       LM66qu    IRN Amir Abad Radio
2187.5   004231000  DSC             6 2014-10-05  N  4113  2555       LN40wj    AZE Baku Radio
2187.5   004232020  DSC             1 2014-04-01  N                             XUU UNID
2187.5   004280001  DSC            57 2019-12-03  N  4039  2510  1500 KM72mt    ISR Haifa Radio
2187.5   004310601  DSC             1 2018-10-20  N  8700  5405       PM64hg    JPN Hiroshima Coast Guard Radio
2187.5   004661010  DSC            49 2018-09-27  N  5538  3441       LL55sq    QAT Doha Radio
2187.5   005250000  DSC             1 2019-12-03  N 11599  7207       OI33kv    INS Jakarta Radio
2187.5   005671000  DSC            39 2019-12-05  N  9351  5810       OK03hn    THA Bangkok Radio
2187.5   005741040  DSC             5 2018-09-21  N  8953  5563       OL30iu    VTN Hai Phong Radio XVG
2187.5   005742080  DSC             1 2013-11-20  N  9920  6164       OK42og    VTN Nha Trang Radio XVN
2187.5   005743030  DSC             4 2019-12-01  N  9999  6212       OK30nj    VTN Ho Chi Minh Ville Radio XVS
2187.5   006052110  DSC            60 2019-12-02  N  2637  1639       JM16nr    ALG Alger Radio
2187.5   006221111  DSC             2 2014-03-28  N  3969  2466       KM41we    EGY Alexandria Radio
2187.5   006221112  DSC            58 2018-10-13  N  4666  2899       KL76dc    EGY Kosseir Radio
2187.5   006221113  DSC            10 2019-12-02  N  4065  2526       KM61dg    EGY Port Said Radio
2187.5   006221121  DSC             1 2013-10-21  N                             EGY UNID
2187.5   006402000  DSC             1 2014-04-01  N                             XUU UNID
2187.5   006601000  DSC             1 2013-12-11  N 10375  6446       LG79tc    REU La Reunion CROSS
2187.5   007010003  DSC             1 2018-10-26  N 12063  7495       GF11fw    ARG Mar del Plata
2187.5   008700000  DSC             1 2018-09-18  N                             XUU UNID
2187.5   219000333  DSC             2 2018-10-05  Y   744   462       JO57gq    DNK XPB3047 Skaw Star
2187.5   219015591  DSC             6 2019-12-16  N   726   451   250 JO47uf    DNK Sailor Examiner XPE3307 Pandrup
2187.5   228040600  DSC             7 2019-12-30  Y  1437   893       IN87wi    FRA Test ANFR SR Donges
2187.5   235899980  DSC             1 2018-10-03  Y  1061   659       IO90ar    ENG RNLI College Poole
2187.5   237673000  DSC             2 2016-05-15  N  3041  1890       KM17ux    GRC Piraeus JRCC
2187.5   258999039  DSC             1 2018-09-21  N  1397   868       JP99ip    NOR Tromso Marine College LJ2P
2187.5   258999089  DSC             1 2018-08-14  N   389   242       JO29pj    NOR Karmsund Vid.Skol LJ2B
2187.5   258999139  DSC             1 2018-09-18  Y   576   358       JP33uc    NOR Kristiansund
4207.5   000016100  DSC             1 2019-12-29  N                             XUU UNID
4207.5   002070810  DSC             6 2019-12-29  N  2738  1701       KN33vb    BUL Varna Radio
4207.5   002091000  DSC            19 2019-12-25  N  3742  2325  5000 KM65pb    CYP Cyprus Radio
4207.5   002241022  DSC             4 2019-12-29  N  1939  1204       IN53si    ESP Coruna Radio
4207.5   002320204  DSC             3 2018-03-27  N  1033   642       JO01pc    ENG Snargate Radio Dover
4207.5   002371000  DSC            50 2019-12-29  Y  2991  1859       KM07ro    GRC Olympia Radio
4207.5   002392000  DSC             1 2018-03-30  N  3041  1890       KM17ux    GRC Piraeus Radio
4207.5   002510100  DSC             1 2011-12-13  Y  1135   705       HP94bb    ISL Reykjavik Radio
4207.5   002640570  DSC             9 2012-01-07  N  2685  1668       KN44hc    ROU Constanta Radio
4207.5   002711000  DSC            62 2019-12-29  Y  2976  1849       KN40jx    TUR Istanbul Radio
4207.5   002714000  DSC             1 2012-01-05  N  2952  1834       KN30fc    TUR Canakkale Radio
4207.5   002719000  DSC             1 2011-12-22  N  3081  1914       KN51vj    TUR Zonguldak Radio
4207.5   002733700  DSC            12 2019-12-29  N  1740  1081       KO59cv    RUS Saint Petersburg Radio
4207.5   002733733  DSC             3 2011-12-27  N  7678  4771       QN06wo    RSE Yuzno Sakhalinsk Radio
4207.5   002750100  DSC             1 2016-05-15  N  1513   940       KO27ba    LVA Riga Rescue Radio
4207.5   002770330  DSC             1 2019-12-15  N  1399   869       KO06na    LTU Klaipeda RCC
4207.5   003160023  DSC             4 2019-12-15  N  3360  2088       FP53rr NU CAN Iqaluit Radio
4207.5   003669899  DSC             4 2020-01-01  N  6650  4132       BO37rs AK ALS Kodiak Radio
4207.5   003669990  DSC             3 2019-12-30  N  7859  4883       CM87pw CA USA CAMSPAC Pt Reyes
4207.5   003669991  DSC            43 2020-01-01  Y  4983  3096       FN41rp MA USA COMMSTA Boston
4207.5   003669992  DSC             1 2012-01-03  N  6842  4251       FK68wl PR PTR San Juan Radio
4207.5   003669993  DSC             2 2011-12-27  N 10687  6640       BL01wk HI HWA CAMSPAC Honolulu
4207.5   003669995  DSC            50 2019-12-29  N  5706  3545       FM16xr VA USA COMMSTA Portsmouth
4207.5   003669997  DSC            36 2020-01-01  N  6953  4320       EL95to FL USA COMMSTA Miami
4207.5   003669998  DSC            33 2019-12-30  Y  7076  4396       EL59av LA USA COMMSTA New Orleans
4207.5   003669999  DSC             1 2012-01-05  N                             USA USCG Group Station
4207.5   004122100  DSC            37 2019-12-29  Y  8612  5351       PM01sc    CHN Shanghai Radio
4207.5   004122300  DSC             1 2011-12-16  N  8162  5071       OM94pq    CHN Lianyungang Radio
4207.5   004122700  DSC             2 2011-12-26  N  9119  5666       OL94bo    CHN Xiamen Radio
4207.5   004123200  DSC             1 2011-12-21  Y  9181  5704       OL83ii    CHN Shantou Radio
4207.5   004123300  DSC             7 2012-01-07  Y  9104  5657       OL51ed    CHN Zhanjiang Radio
4207.5   004123500  DSC             2 2011-12-27  N  9211  5723       OL50da    CHN Haikou Radio
4207.5   004123600  DSC            12 2012-01-03  N  9219  5728       OK49hc    CHN Basuo Radio
4207.5   004162019  DSC             9 2019-11-09  Y  9223  5730       PL05vd    TWN Chilung Keelung Radio
4207.5   004231000  DSC             1 2016-05-09  N  4113  2555       LN40wj    AZE Baku Radio
4207.5   004232020  DSC             1 2014-04-01  N                             XUU UNID
4207.5   004310001  DSC             3 2019-12-29  N  8779  5454       PM95vp    JPN Tokyo CG Radio
4207.5   004773500  DSC             4 2011-12-27  N  9182  5705       OL72df    CHN Hong Kong Marine Rescue Radio
4207.5   005030001  DSC            24 2019-12-29  Y 14274  8869       PG03gp WE AUS Charleville / Wiluna Radio
4207.5   005250001  DSC             1 2011-12-14  N 12014  7465       OI62it    INS Surabaya Radio
4207.5   005671000  DSC            30 2019-12-29  N  9351  5810       OK03hn    THA Bangkok Radio
4207.5   005741040  DSC             4 2019-12-27  N  8953  5563       OL30iu    VTN Hai Phong Radio XVG
4207.5   005742030  DSC             1 2018-02-19  N  9497  5901       OK46cb    VTN Da Nang Radio XVT
4207.5   005742080  DSC            14 2014-09-29  Y  9920  6164       OK42og    VTN Nha Trang Radio XVN
4207.5   005743020  DSC             2 2011-12-16  N 10003  6215       OK30ni    VTN Vung Tau Radio XVR
4207.5   005743030  DSC             3 2019-12-30  N  9999  6212       OK30nj    VTN Ho Chi Minh Ville Radio XVS
4207.5   006010001  DSC             2 2018-02-18  N 10602  6588       JF96ii    AFS Cape Town Radio
4207.5   006221111  DSC            12 2014-04-04  N  3969  2466       KM41we    EGY Alexandria Radio
4207.5   007010008  DSC             1 2018-02-10  N 13213  8210       FE64gd    ARG Comodoro Rivadavia
4207.5   007100001  DSC             3 2019-12-30  N 10012  6221       GG87da    BRA Rio de Janeiro Radio
4207.5   007100002  DSC             2 2018-03-25  N  8147  5062       HI21mw    BRA Recife Radio
4207.5   007100003  DSC             1 2016-05-19  N  8647  5373       GI06av    BRA Manaus Radio
4207.5   007250230  DSC             1 2016-05-20  N 13057  8113       FE38ji    CHL Puerto Montt Radio
4207.5   007250380  DSC             1 2016-05-17  N 14062  8737       FD64nu    CHL Punta Arenas Radio
4207.5   007251860  DSC             1 2016-05-09  N 12166  7559       FF46ew    CHL Valparaiso Radio
4207.5   219015591  DSC             2 2016-05-12  N   726   451       JO47uf    DNK Sailor Examiner XPE3307 Pandrup
4207.5   228040600  DSC             3 2019-12-30  Y  1437   893       IN87wi    FRA Test ANFR SR Donges
6312     000016100  DSC             1 2019-11-13  N                             XUU UNID
6312     002059981  DSC             1 2014-03-31  N  1044   649       JO11gd    BEL MRCC Oostende
6312     002070810  DSC             4 2019-12-23  N  2738  1701       KN33vb    BUL Varna Radio
6312     002241022  DSC             1 2015-05-04  N  1939  1204       IN53si    ESP Coruna Radio
6312     002279114  DSC             1 2014-10-03  N  1437   893       IN87wi    FRA Test ANFR SR Donges
6312     002320204  DSC             3 2018-03-26  N  1033   642       JO01pc    ENG Snargate Radio Dover
6312     002371000  DSC            46 2019-12-29  Y  2991  1859       KM07ro    GRC Olympia Radio
6312     002392000  DSC             1 2018-02-10  N  3041  1890       KM17ux    GRC Piraeus Radio
6312     002510100  DSC             1 2015-06-24  N  1135   705       HP94bb    ISL Reykjavik Radio
6312     002640570  DSC             4 2018-08-17  Y  2685  1668       KN44hc    ROU Constanta Radio
6312     002711000  DSC            44 2019-12-29  Y  2976  1849       KN40jx    TUR Istanbul Radio
6312     002719000  DSC             1 2011-12-22  N  3081  1914       KN51vj    TUR Zonguldak Radio
6312     003160023  DSC             4 2019-12-20  N  3360  2088       FP53rr NU CAN Iqaluit Radio
6312     003660003  DSC             1 2015-05-04  N  6900  4287       EM50xq AL USA Mobile Radio WLO
6312     003660093  DSC             2 2014-02-24  N  7373  4581       EL29hs TX USA Houston Radio
6312     003669899  DSC             4 2013-11-30  N  6650  4132       BO37rs AK ALS Kodiak Radio
6312     003669990  DSC             3 2019-12-16  Y  7859  4883       CM87pw CA USA CAMSPAC Pt Reyes
6312     003669991  DSC            28 2016-05-12  Y  4983  3096       FN41rp MA USA COMMSTA Boston
6312     003669993  DSC             4 2013-12-01  Y 10687  6640       BL01wk HI HWA CAMSPAC Honolulu
6312     003669995  DSC            36 2019-12-29  Y  5706  3545       FM16xr VA USA COMMSTA Portsmouth
6312     003669997  DSC            22 2019-12-29  Y  6953  4320       EL95to FL USA COMMSTA Miami
6312     003669998  DSC            27 2020-01-02  Y  7076  4396       EL59av LA USA COMMSTA New Orleans
6312     004122100  DSC            22 2019-12-29  Y  8612  5351       PM01sc    CHN Shanghai Radio
6312     004162019  DSC             2 2011-12-20  N  9223  5730       PL05vd    TWN Chilung Keelung Radio
6312     004231000  DSC             1 2015-06-20  N  4113  2555       LN40wj    AZE Baku Radio
6312     004310001  DSC             7 2019-10-30  Y  8779  5454       PM95vp    JPN Tokyo Coast Guard Radio
6312     004773500  DSC             2 2013-11-29  Y  9182  5705       OL72df    CHN Hong Kong Marine Rescue Radio
6312     005030001  DSC            34 2019-12-29  Y 14274  8869       PG03gp WE AUS Charleville / Wiluna Radio
6312     005120010  DSC             4 2011-12-22  Y 17628 10953       RF81fd    NZL Taupo Radio
6312     005250001  DSC             1 2011-12-14  N 12014  7465       OI62it    INS Surabaya Radio
6312     005250008  DSC             1 2014-02-24  N 11871  7376       OI53ea    INS Semarang Radio
6312     005671000  DSC            16 2019-12-29  Y  9351  5810       OK03hn    THA Bangkok Radio
6312     005741040  DSC             7 2019-12-23  Y  8953  5563       OL30iu    VTN Hai Phong Radio XVG
6312     005742080  DSC            11 2019-12-28  Y  9920  6164       OK42og    VTN Nha Trang Radio XVN
6312     005743030  DSC             5 2019-12-29  N  9999  6212       OK30nj    VTN Ho Chi Minh Ville Radio XVS
6312     006010001  DSC            10 2019-12-29  N 10602  6588       JF96ii    AFS Cape Town Radio
6312     006221111  DSC             5 2014-02-24  N  3969  2466       KM41we    EGY Alexandria Radio
6312     006452700  DSC             7 2019-12-28  N 10384  6452       LG89rt    MAU Mauritius Radio
6312     007010003  DSC             2 2019-12-28  N 12063  7495       GF11fw    ARG Mar del Plata Radio
6312     007010008  DSC             1 2016-05-17  N 13213  8210       FE64gd    ARG Comodoro Rivadavia
6312     007100001  DSC             7 2019-12-29  N 10012  6221       GG87da    BRA Rio de Janeiro Radio
6312     007100002  DSC             6 2018-03-25  N  8147  5062       HI21mw    BRA Recife Radio
6312     007100003  DSC             5 2019-12-29  N  8647  5373       GI06av    BRA Manaus Radio
6312     007251860  DSC             3 2020-01-02  N 12166  7559       FF46ew    CHL Valparaiso Radio
6312     007703870  DSC             2 2018-03-26  N 11693  7265       GF15ud    URG Montevideo Radio
6312     219000333  DSC             1 2019-11-07  Y   744   462       JO57gq    DNK XPB3047 Skaw Star
6312     219015591  DSC             4 2019-12-15  Y   726   451       JO47uf    DNK Sailor Examiner XPE3307 Pandrup
6312     228040600  DSC             1 2016-05-11  N  1437   893       IN87wi    FRA Test ANFR SR Donges
8414.5   000109000  DSC             1 2014-02-24  Y                             XUU UNID
8414.5   002059981  DSC             1 2015-05-13  Y  1044   648       JO11je    BEL MRCC Ostende
8414.5   002070810  DSC             4 2019-12-29  N  2738  1701       KN33vb    BUL Varna Radio
8414.5   002091000  DSC             5 2019-12-29  Y  3742  2325  5000 KM65pb    CYP Cyprus Radio
8414.5   002130100  DSC             1 2014-06-22  N  3562  2213       LN01tp    GEO Batumi Radio
8414.5   002240991  DSC             2 2014-02-24  Y  2117  1315       JN11bi    ESP Barcelona Radio
8414.5   002241022  DSC            81 2019-12-29  Y  1939  1204       IN53si    ESP Coruna Radio
8414.5   002241026  DSC             3 2014-05-29  Y  3768  2341       IL27es    CNR Las Palmas Radio
8414.5   002279114  DSC             1 2014-09-10  N  1437   893       IN87wi    FRA Test ANFR SR Donges
8414.5   002320204  DSC            10 2018-08-29  Y  1033   642       JO01pc    ENG Snargate Radio Dover
8414.5   002371000  DSC            64 2019-12-29  Y  2991  1859       KM07ro    GRC Olympia Radio
8414.5   002387010  DSC             1 2018-02-26  Y  1966  1222       JN75fh    HRV Rijeka Radio
8414.5   002392000  DSC             1 2015-06-16  N  3041  1890       KM17ux    GRC Piraeus Radio
8414.5   002510100  DSC             2 2014-07-04  Y  1135   705       HP94bb    ISL Reykjavik Radio
8414.5   002640570  DSC            21 2015-07-01  Y  2685  1668       KN44hc    ROU Constanta Radio
8414.5   002710001  DSC             1 2016-05-11  N                             TUR UNID
8414.5   002711000  DSC            90 2019-12-29  Y  2976  1849       KN40jx    TUR Istanbul Radio
8414.5   002733700  DSC             4 2016-05-21  N  1740  1081       KO59cv    RUS Saint Petersburg Radio
8414.5   002734444  DSC             1 2016-05-14  N  2640  1641       LO26ah    RUS Nizhniy Novgorod Radio
8414.5   002750100  DSC             4 2018-08-30  Y  1509   937       KO27aa    LVA Riga rescue Radio
8414.5   003160023  DSC            24 2019-12-15  Y  3360  2088  5000 FP53rr NU CAN Iqaluit Radio
8414.5   003660003  DSC            55 2018-03-28  Y  6900  4287       EM50xq AL USA Mobile Radio WLO
8414.5   003669899  DSC            11 2019-12-15  N  6650  4132       BO37rs AK ALS Kodiak Radio
8414.5   003669990  DSC            17 2019-12-31  Y  7859  4883       CM87pw CA USA CAMSPAC Pt Reyes
8414.5   003669991  DSC            69 2018-09-01  Y  4983  3096       FN41rp MA USA COMMSTA Boston
8414.5   003669993  DSC            12 2014-10-04  Y 10687  6640       BL01wk HI HWA CAMSPAC Honolulu
8414.5   003669995  DSC            70 2019-12-29  Y  5706  3545       FM16xr VA USA COMMSTA Portsmouth
8414.5   003669997  DSC            62 2019-12-29  Y  6953  4320       EL95to FL USA COMMSTA Miami
8414.5   003669998  DSC            69 2019-12-19  Y  7076  4396       EL59av LA USA COMMSTA New Orleans
8414.5   003669999  DSC            20 2015-06-13  N                             USA USCG Group station
8414.5   004122100  DSC            65 2019-12-15  Y  8612  5351       PM01sc    CHN Shanghai Radio
8414.5   004162019  DSC            17 2019-12-18  Y  9223  5730       PL05vd    TWN Chilung Keelung Radio
8414.5   004225100  DSC             1 2014-04-15  N  4960  3082       LM40mk    IRN Bandar Eman Khomeyni
8414.5   004225202  DSC             1 2014-04-27  N  5425  3371       LL67hl    IRN Asaluyeh Radio
8414.5   004225300  DSC             2 2016-05-22  N  5641  3505       LL87ac    IRN Bandar E Shahid Rajaei
8414.5   004225600  DSC             4 2015-05-01  N  4524  2811       LM56rp    IRN Now Shahr Radio
8414.5   004225601  DSC             2 2018-02-25  N  4610  2864       LM66qu    IRN Amir Abad Radio
8414.5   004231000  DSC             4 2016-05-12  N  4113  2555       LN40wj    AZE Baku Radio
8414.5   004310001  DSC            12 2019-12-16  N  8779  5454       PM95vp    JPN Tokyo Coast Guard Radio
8414.5   004401001  DSC             1 2013-11-16  Y  8167  5074       PM37hk    KOR Incheon Coast Guard Radio
8414.5   004661010  DSC            32 2018-08-30  N  5538  3441       LL55sq    QAT Doha Radio
8414.5   004773500  DSC            11 2016-05-15  Y  9182  5705       OL72df    CHN Hong Kong Marine Rescue
8414.5   005030001  DSC            85 2019-12-15  Y 14873  9241       PG30gp WE AUS Charleville / Wiluna Radio
8414.5   005120010  DSC             5 2016-05-20  N 17628 10953       RF81fd    NZL Taupo Radio
8414.5   005250000  DSC             2 2019-12-20  Y 11599  7207       OI33kv    INS Jackarta Radio
8414.5   005250006  DSC             1 2013-08-31  N 12433  7725       PI46ch    INS Amboina Radio
8414.5   005250008  DSC            10 2015-06-21  N 11871  7376       OI53ea    INS Semarang Radio
8414.5   005250033  DSC             1 2016-05-21  N 11590  7201       OI23xl    INS Cigading Radio
8414.5   005671000  DSC            45 2019-12-16  Y  9351  5810       OK03hn    THA Bangkok Radio
8414.5   005741040  DSC            61 2019-12-15  Y  8953  5563       OL30iu    VTN Hai Phong Radio XVG
8414.5   005742030  DSC            39 2018-08-29  Y  9497  5901       OK46cb    VTN Da Nang Radio XVT
8414.5   005742080  DSC            18 2016-05-14  N  9920  6164       OK42og    VTN Nha Trang Radio XVN
8414.5   005743020  DSC             8 2016-05-15  N 10003  6215       OK30ni    VTN Vung Tau Radio XVR
8414.5   005743030  DSC            20 2018-09-01  Y  9999  6212       OK30nj    VTN Ho Chi Minh Ville Radio XVS
8414.5   006010001  DSC            33 2018-08-30  N 10602  6588       JF96ii    AFS Cape Town Radio
8414.5   006221111  DSC            43 2019-10-27  N  3969  2466       KM41we    EGY Alexandria Radio
8414.5   006402000  DSC             1 2014-04-01  N                             XUU UNID
8414.5   006452700  DSC            52 2019-10-27  N 10384  6452       LG89rt    MAU Mauritius Radio
8414.5   006540000  DSC             1 2014-02-13  N  4828  3000       IK28ac    MTN Nouakchott Radio
8414.5   007010003  DSC             2 2018-03-25  N 12063  7495       GF11fw    ARG Mar del Plata Radio
8414.5   007100001  DSC            33 2018-03-27  N 10012  6221       GG87da    BRA Rio de Janerio Radio
8414.5   007100002  DSC            23 2018-08-29  N  8147  5062       HI21mw    BRA Recife Radio
8414.5   007100003  DSC             6 2018-08-25  N  8647  5373       GI06av    BRA Manaus Radio
8414.5   007250380  DSC             4 2014-04-27  N 14027  8715       FD46nu    CHL Punta Arenas
8414.5   007251860  DSC             7 2018-03-30  N 12166  7559       FF46ew    CHL Valparaiso Radio
8414.5   007600125  DSC             4 2018-08-25  N 10397  6460       FH17kw    PRU Callao Radio
8414.5   007600129  DSC             6 2016-05-11  N 10622  6600       FH32xx    PRU Mollendo Radio
8414.5   007703870  DSC             1 2016-05-19  N 11693  7265       GF15ud    URG Montevideo Radio
8414.5   008133968  DSC             1 2014-04-28  N                             XUU UNID
8414.5   219015591  DSC             7 2018-09-01  Y   726   451   250 JO47uf    DNK Sailor Examiner XPE3307 Pandrup
8414.5   219055000  DSC             1 2015-05-07  N   744   462       JO57gq    DNK XPA6880 Skawskip
8414.5   228040600  DSC             1 2016-05-11  N  1437   893       IN87wi    FRA Test ANFR SR Donges
8414.5   237673000  DSC             8 2016-05-08  N  3041  1890       KM17ux    GRC Piraeus Joint JRCC
8414.5   258999039  DSC             1 2016-05-20  Y  1397   868       JP99ip    NOR Tromso Marine College LJ2P
12577    002240991  DSC             1 2014-05-20  Y  2117  1315       JN11bi    ESP Barcelona Radio
12577    002241022  DSC            60 2018-08-25  Y  1939  1204       IN53si    ESP Coruna Radio
12577    002241026  DSC             4 2015-05-12  Y  3768  2341       IL27es    CNR Las Palmas Radio
12577    002279114  DSC             2 2014-09-04  Y  1437   893       IN87wi    FRA Test ANFR SR Donges
12577    002320204  DSC             2 2016-05-14  Y  1033   642       JO01pc    ENG Snargate Radio Dover
12577    002371000  DSC            16 2018-08-25  Y  2991  1859       KM07ro    GRC Olympia Radio
12577    002387010  DSC             1 2014-09-25  Y  1966  1222       JN75fh    HRV Rijeka Radio
12577    002391000  DSC             2 2016-05-12  N  3030  1883       KM18tb    GRC Aspropirgos Radio
12577    002510100  DSC             2 2014-07-03  Y  1135   705       HP94bb    ISL Reykjavik Radio
12577    002711000  DSC            63 2018-08-25  Y  2976  1849       KN40jx    TUR Istanbul Radio
12577    002733717  DSC             1 2014-08-30  Y  3508  2180       NQ03gm    RSE Dikson Radio
12577    002733718  DSC             1 2014-08-30  N  4855  3017       PQ41kq    RSE Tiksi Radio
12577    003160023  DSC            24 2018-08-25  Y  3360  2088  5000 FP53rr NU CAN Iqaluit Radio
12577    003660003  DSC            39 2018-03-26  Y  6900  4287       EM50xq AL USA Mobile Radio
12577    003669899  DSC            23 2018-03-27  N  6650  4132       BO37rs AK ALS Kodiak Radio
12577    003669990  DSC            21 2016-05-13  N  7859  4883       CM87pw CA USA CAMSPAC Pt Reyes
12577    003669991  DSC            45 2016-05-11  Y  4983  3096       FN41rp MA USA COMMSTA Boston
12577    003669993  DSC            16 2015-06-12  Y 10687  6640       BL01wk HI HWA CAMSPAC Honolulu
12577    003669995  DSC            60 2018-08-25  Y  5706  3545       FM16xr VA USA COMMSTA Portsmouth
12577    003669997  DSC            46 2018-03-04  Y  6953  4320       EL95to FL USA COMMSTA Miami
12577    003669998  DSC            49 2016-05-12  Y  7076  4396       EL59av LA USA COMMSTA New Orleans
12577    003669999  DSC            20 2015-08-02  Y                             USA USCG Group station
12577    004121100  DSC             1 2014-07-31  N  7659  4759       OM89ra    CHN Tianjin Radio
12577    004122100  DSC            61 2018-08-25  Y  8612  5351       PM01sc    CHN Shanghai Radio
12577    004162019  DSC             5 2018-08-18  Y  9223  5730       PL05vd    TWN Chilung Keelung Radio
12577    004192203  DSC             2 2015-04-30  Y  7321  4549       MK68jw    IND Mumbai Radio
12577    004225100  DSC             3 2015-05-04  N  4960  3082       LM40mk    IRN Bandar Eman Khomeyni
12577    004225202  DSC             2 2014-04-28  Y  5425  3371       LL67hl    IRN Asaluyeh Radio
12577    004225300  DSC             3 2016-05-21  N  5641  3505       LL87ac    IRN Bandar E Shahid Rajaei
12577    004225600  DSC             3 2014-09-30  Y  4524  2811       LM56rp    IRN Now Shahr Radio
12577    004225601  DSC             1 2014-04-28  N  4610  2864       LM66qu    IRN Amir Abad Radio
12577    004231000  DSC             8 2015-08-03  Y  4113  2555       LN40wj    AZE Baku Radio
12577    004232020  DSC             1 2014-03-23  Y                             AZE UNID
12577    004310001  DSC            27 2018-03-26  Y  8779  5454       PM95vp    JPN Tokyo Coast Guard Radio
12577    004773500  DSC            15 2018-08-25  Y  9182  5705       OL72df    CHN Hong Kong Marine Rescue
12577    005030000  DSC             1 2014-03-22  N                             AUS UNID
12577    005030001  DSC            64 2018-08-25  Y 14873  9241  1000 PG30gp WE AUS Charleville / Wiluna Radio
12577    005038819  DSC             1 2014-05-19  N 16690 10370       QF32mc VI AUS SEAMEC  EG TAFE Base station
12577    005062001  DSC             1 2014-09-30  N                             XUU UNID
12577    005120010  DSC            15 2015-06-14  Y 17628 10953       RF81fd    NZL Taupo Radio
12577    005250007  DSC             3 2015-07-02  N 12835  7975       QI07il    INS Jayapura Radio
12577    005250030  DSC             1 2015-06-29  N 11877  7380       OI42mf    INS Cilacap Radio
12577    005671000  DSC             1 2015-05-03  N  9351  5810       OK03hn    THA Bangkok Radio
12577    005741040  DSC            61 2018-08-25  Y  8953  5563       OL30iu    VTN Hai Phong Radio XVG
12577    005742100  DSC             1 2015-05-09  N 10011  6220       OK41nh    VTN Phan Rang Radio
12577    005743030  DSC            21 2018-08-25  Y  9999  6212       OK30nj    VTN Ho Chi Minh Ville Radio XVS
12577    006010001  DSC            26 2018-02-20  N 10602  6588       JF96ii    AFS Cape Town Radio
12577    006221111  DSC            27 2014-10-05  Y  3969  2466       KM41we    EGY Alexandria Radio
12577    006452700  DSC            26 2015-06-13  N 10384  6452       LG89rt    MAU Mauritius Radio
12577    007010003  DSC             1 2015-05-02  N 12063  7495       GF11fw    ARG Mar del Plata Radio
12577    007010008  DSC             1 2014-04-23  N 13213  8210       FE64gd    ARG Comodoro Rivadavia
12577    007100001  DSC            32 2018-08-25  N 10012  6221       GG87da    BRA Rio de Janeiro Radio
12577    007100002  DSC            35 2018-08-25  N  8147  5062       HI21mw    BRA Recife Radio
12577    007100003  DSC            10 2018-08-25  N  8647  5373       GI06av    BRA Manaus Radio
12577    007251860  DSC            14 2016-05-10  Y 12166  7559       FF46ew    CHL Valparaiso Radio
12577    007703870  DSC             2 2016-05-19  N 11693  7265       GF15ud    URG Montevideo Radio
12577    219015591  DSC             4 2018-08-26  Y   726   451   250 JO47uf    DNK Sailior Examiner XPE3307 Pandrup
12577    228040600  DSC             1 2016-05-17  N  1437   893       IN87wi    FRA Test ANFR SR Donges
12577    237673000  DSC            18 2016-05-21  Y  3041  1890       KM17ux    GRC Piraeus JRCC
16804.5  002279114  DSC             1 2014-09-30  N  1437   893       IN87wi    FRA Test ANFR SR Donges
16804.5  002320204  DSC             2 2016-05-19  Y  1033   642       JO01pc    ENG Snargate Radio Dover
16804.5  002371000  DSC            27 2016-05-08  Y  2991  1859       KM07ro    GRC Olympia Radio
16804.5  002391000  DSC             1 2014-05-28  N  3030  1883       KM18tb    GRC Aspropirgos Radio (Hellenic CG)
16804.5  002711000  DSC            53 2018-03-25  Y  2976  1849       KN40jx    TUR Istanbul Radio
16804.5  002711002  DSC             1 2015-07-07  N                             TUR UNID
16804.5  002760100  DSC             1 2014-05-19  N  1451   902       KO29hj    EST Tallinn Radio
16804.5  003160023  DSC            13 2015-06-16  Y  3360  2088  5000 FP53rr NU CAN Iqaluit Radio
16804.5  003660120  DSC             1 2015-05-02  N                             USA UNID
16804.5  003669899  DSC            12 2015-06-12  N  6650  4132       BO37rs AK ALS Kodiak Radio
16804.5  003669990  DSC            18 2015-06-21  Y  7859  4883       CM87pw CA USA CAMSPAC Pt Reyes
16804.5  003669991  DSC            40 2016-05-11  Y  4983  3096       FN41rp MA USA COMMSTA Boston
16804.5  003669993  DSC            21 2016-05-12  Y 10687  6640       BL01wk HI HWA CAMSPAC Honolulu
16804.5  003669995  DSC            50 2016-05-10  Y  5706  3545       FM16xr VA USA COMMSTA Portsmouth
16804.5  003669997  DSC            35 2016-05-09  Y  6953  4320       EL95to FL USA COMMSTA Miami
16804.5  003669998  DSC            45 2016-05-12  Y  7076  4396       EL59av LA USA COMMSTA New Orleans
16804.5  003669999  DSC            16 2016-05-17  Y                             USA USCG Group Station
16804.5  004122100  DSC            43 2018-03-25  Y  8612  5351       PM01sc    CHN Shanghai Radio
16804.5  004162019  DSC             5 2016-05-12  Y  9223  5730       PL05vd    TWN Chilung Keelung Radio
16804.5  004192203  DSC             1 2016-05-12  N  7321  4549       MK68jw    IND Mumbai Radio
16804.5  004225100  DSC             2 2014-10-04  N  4960  3082       LM40mk    IRN Bandar Eman Khomeyni
16804.5  004225202  DSC             1 2014-04-28  N  5425  3371       LL67hl    IRN Asaluyeh Radio
16804.5  004225300  DSC             1 2016-05-14  N  5641  3505       LL87ac    IRN Bandar E Shahid Rajaei
16804.5  004225600  DSC             2 2015-06-26  N  4524  2811       LM56rp    IRN Now Shahr Radio
16804.5  004225601  DSC             3 2015-04-19  Y  4610  2864       LM66qu    IRN Amir Abad Radio
16804.5  004231000  DSC             3 2015-08-03  Y  4113  2555       LN40wj    AZE Baku Radio
16804.5  004310001  DSC            24 2016-05-11  Y  8779  5454       PM95vp    JPN Tokyo Coast Guard Radio
16804.5  004773500  DSC            10 2016-05-19  Y  9182  5705       OL72df    CHN Hong Kong Marine Rescue
16804.5  005030001  DSC            53 2018-03-29  Y 14873  9241       PG30gp WE AUS Charleville / Wiluna Radio
16804.5  005120010  DSC            15 2015-04-30  Y 17628 10953       RF81fd    NZL Taupo Radio
16804.5  005741040  DSC            44 2018-03-29  Y  8953  5563       OL30iu    VTN Hai Phong Radio XVG
16804.5  005743030  DSC             8 2018-03-05  Y  9999  6212       OK30nj    VTN Ho Chi Minh Ville Radio XVS
16804.5  006010001  DSC            13 2018-02-11  Y 10602  6588       JF96ii    AFS Cape Town Radio
16804.5  006221111  DSC            22 2014-10-05  Y  3969  2466       KM41we    EGY Alexandria Radio
16804.5  006221120  DSC             2 2016-05-12  Y  4147  2577       KM60el    EGY Ismalia Radio
16804.5  006452700  DSC             2 2014-10-03  N 10384  6452       LG89rt    MAU Mauritius Radio
16804.5  007010003  DSC             1 2015-04-29  N 12063  7495       GF11fw    ARG Mar del Plata Radio
16804.5  007100001  DSC            21 2018-03-25  N 10012  6221       GG87da    BRA Rio de Janeiro Radio
16804.5  007100002  DSC            28 2018-08-17  Y  8147  5062       HI21mw    BRA Recife Radio
16804.5  007100003  DSC             5 2018-03-27  N  8647  5373       GI06av    BRA Manaus Radio
16804.5  007251860  DSC             5 2015-06-13  Y 12166  7559       FF46ew    CHL Valparaiso Radio
16804.5  007703870  DSC             2 2016-05-19  N 11693  7265       GF15ud    URG Montevideo Radio
16804.5  219015591  DSC             1 2016-05-20  Y   726   451   250 JO47uf    DNK Sailor Examiner XPE3307 Pandrup
16804.5  237673000  DSC             9 2015-06-15  Y  3041  1890       KM17ux    GRC Piraeus Joint JRCC&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;1. REU&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;reu&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;149-91668&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;section_two&quot;&gt;Section Two&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 12/07/22 18:35&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Section Two&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;section_two&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;91669-91738&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;91739-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 06:39:56 +0000</pubDate>
        </item>
        <item>
            <title>DM42 Progs</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:progs:dm42_progs</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:progs:start&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:progs:start&quot; data-wiki-id=&quot;public:calculator:progs:start&quot;&gt;Programs&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;dm42_progs&quot;&gt;DM42 Progs&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Using the Swiss Micros online encode/decode tool   
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://technical.swissmicros.com/decoders/dm42/index.php&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://technical.swissmicros.com/decoders/dm42/index.php&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://technical.swissmicros.com/decoders/dm42/index.php&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
to convert a “RAW” file into readable text:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;00 { 110-Byte Prgm }
01▸LBL &amp;quot;SWR&amp;quot;
02 INPUT &amp;quot;Fwd&amp;quot;
03 INPUT &amp;quot;Ref&amp;quot;
04 RCL &amp;quot;Ref&amp;quot;
05 RCL÷ &amp;quot;Fwd&amp;quot;
06 SQRT
07 STO &amp;quot;RHO&amp;quot;
08 1
09 RCL+ &amp;quot;RHO&amp;quot;
10 1
11 RCL- &amp;quot;RHO&amp;quot;
12 ÷
13 STO &amp;quot;SWR&amp;quot;
14 RCL &amp;quot;RHO&amp;quot;
15 LOG
16 20
17 ×
18 +/-
19 STO &amp;quot;RL&amp;quot;
20 VIEW &amp;quot;Ref&amp;quot;
21 PSE
22 VIEW &amp;quot;Fwd&amp;quot;
23 PSE
24 VIEW &amp;quot;RL&amp;quot;
25 PSE
26 VIEW &amp;quot;SWR&amp;quot;
27 PSE
28 RCL &amp;quot;Ref&amp;quot;
29 RCL &amp;quot;Fwd&amp;quot;
30 RCL &amp;quot;RL&amp;quot;
31 RCL &amp;quot;SWR&amp;quot;
32 END&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;00 { 41-Byte Prgm }
01▸LBL &amp;quot;.flc&amp;quot;
02 MVAR &amp;quot;freq&amp;quot;
03 MVAR &amp;quot;C&amp;quot;
04 MVAR &amp;quot;L&amp;quot;
05 RCL &amp;quot;L&amp;quot;
06 RCL &amp;quot;C&amp;quot;
07 ×
08 SQRT
09 PI
10 ×
11 2
12 ×
13 1/X
14 RCL &amp;quot;freq&amp;quot;
15 -
16 END&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;00 { 280-Byte Prgm }
01▸LBL &amp;quot;LCC&amp;quot;
02 INPUT &amp;quot;Vcc&amp;quot;
03 INPUT &amp;quot;PWR&amp;quot;
04 INPUT &amp;quot;freq&amp;quot;
05 RCL &amp;quot;Vcc&amp;quot;
06 X^2
07 RCL &amp;quot;PWR&amp;quot;
08 2
09 ×
10 ÷
11 STO &amp;quot;RL&amp;quot;
12 RCL &amp;quot;RL&amp;quot;
13 50
14 X≤Y?
15 XEQ &amp;quot;LCC&amp;quot;
16 RCL÷ &amp;quot;RL&amp;quot;
17 1
18 -
19 SQRT
20 STO &amp;quot;Qmin&amp;quot;
21 VIEW &amp;quot;Qmin&amp;quot;
22 PSE
23▸LBL 01
24 INPUT &amp;quot;Q&amp;quot;
25 RCL &amp;quot;Qmin&amp;quot;
26 X≥Y?
27 GTO 01
28 RCL &amp;quot;freq&amp;quot;
29 2
30 ×
31 PI
32 ×
33 STO &amp;quot;w&amp;quot;
34 RCL &amp;quot;Q&amp;quot;
35 X^2
36 1
37 +
38 RCL× &amp;quot;RL&amp;quot;
39 STO &amp;quot;B&amp;quot;
40 50
41 ÷
42 1
43 -
44 SQRT
45 STO &amp;quot;A&amp;quot;
46 RCL &amp;quot;Q&amp;quot;
47 RCL× &amp;quot;RL&amp;quot;
48 STO &amp;quot;XL&amp;quot;
49 RCL &amp;quot;B&amp;quot;
50 RCL &amp;quot;Q&amp;quot;
51 RCL- &amp;quot;A&amp;quot;
52 ÷
53 STO &amp;quot;XC1&amp;quot;
54 RCL &amp;quot;A&amp;quot;
55 50
56 ×
57 STO &amp;quot;XC2&amp;quot;
58 RCL &amp;quot;XL&amp;quot;
59 RCL÷ &amp;quot;w&amp;quot;
60 STO &amp;quot;L&amp;quot;
61 RCL &amp;quot;w&amp;quot;
62 RCL× &amp;quot;XC1&amp;quot;
63 1/X
64 STO &amp;quot;C1&amp;quot;
65 RCL &amp;quot;w&amp;quot;
66 RCL× &amp;quot;XC2&amp;quot;
67 1/X
68 STO &amp;quot;C2&amp;quot;
69 &amp;quot;Load&amp;quot;
70 AVIEW
71 PSE
72 VIEW &amp;quot;RL&amp;quot;
73 PSE
74 &amp;quot;Inductor&amp;quot;
75 AVIEW
76 PSE
77 VIEW &amp;quot;L&amp;quot;
78 PSE
79 &amp;quot;Shunt Cap&amp;quot;
80 AVIEW
81 PSE
82 VIEW &amp;quot;C2&amp;quot;
83 PSE
84 &amp;quot;Series Cap&amp;quot;
85 AVIEW
86 PSE
87 VIEW &amp;quot;C1&amp;quot;
88 PSE
89 RCL &amp;quot;RL&amp;quot;
90 RCL &amp;quot;L&amp;quot;
91 RCL &amp;quot;C2&amp;quot;
92 RCL &amp;quot;C1&amp;quot;
93 END&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;00 { 290-Byte Prgm }
01▸LBL &amp;quot;LCL&amp;quot;
02 INPUT &amp;quot;Vcc&amp;quot;
03 INPUT &amp;quot;PWR&amp;quot;
04 INPUT &amp;quot;freq&amp;quot;
05 RCL &amp;quot;Vcc&amp;quot;
06 X^2
07 RCL &amp;quot;PWR&amp;quot;
08 2
09 ×
10 ÷
11 STO &amp;quot;RL&amp;quot;
12 RCL &amp;quot;RL&amp;quot;
13 50
14 X≤Y?
15 XEQ &amp;quot;LCL&amp;quot;
16 RCL÷ &amp;quot;RL&amp;quot;
17 1
18 -
19 SQRT
20 STO &amp;quot;Qmin&amp;quot;
21 VIEW &amp;quot;Qmin&amp;quot;
22 PSE
23▸LBL 01
24 INPUT &amp;quot;Q&amp;quot;
25 RCL &amp;quot;Qmin&amp;quot;
26 X≥Y?
27 GTO 01
28 RCL &amp;quot;freq&amp;quot;
29 2
30 ×
31 PI
32 ×
33 STO &amp;quot;w&amp;quot;
34 RCL &amp;quot;Q&amp;quot;
35 X^2
36 1
37 +
38 RCL× &amp;quot;RL&amp;quot;
39 STO &amp;quot;A&amp;quot;
40 50
41 ÷
42 1
43 -
44 SQRT
45 STO &amp;quot;B&amp;quot;
46 RCL &amp;quot;RL&amp;quot;
47 RCL× &amp;quot;Q&amp;quot;
48 STO &amp;quot;XL1&amp;quot;
49 RCL &amp;quot;B&amp;quot;
50 50
51 ×
52 STO &amp;quot;XL2&amp;quot;
53 RCL &amp;quot;A&amp;quot;
54 RCL &amp;quot;Q&amp;quot;
55 RCL+ &amp;quot;B&amp;quot;
56 ÷
57 STO &amp;quot;XC&amp;quot;
58 RCL &amp;quot;XL1&amp;quot;
59 RCL÷ &amp;quot;w&amp;quot;
60 STO &amp;quot;L1&amp;quot;
61 RCL &amp;quot;XL2&amp;quot;
62 RCL÷ &amp;quot;w&amp;quot;
63 STO &amp;quot;L2&amp;quot;
64 RCL &amp;quot;XC&amp;quot;
65 RCL× &amp;quot;w&amp;quot;
66 1/X
67 STO &amp;quot;C&amp;quot;
68 &amp;quot;Load&amp;quot;
69 AVIEW
70 PSE
71 VIEW &amp;quot;RL&amp;quot;
72 PSE
73 &amp;quot;Input Inductor&amp;quot;
74 AVIEW
75 PSE
76 VIEW &amp;quot;L1&amp;quot;
77 PSE
78 &amp;quot;Shunt Cap&amp;quot;
79 AVIEW
80 PSE
81 VIEW &amp;quot;C&amp;quot;
82 PSE
83 &amp;quot;Output Inductor&amp;quot;
84 AVIEW
85 PSE
86 VIEW &amp;quot;L2&amp;quot;
87 PSE
88 RCL &amp;quot;RL&amp;quot;
89 RCL &amp;quot;L1&amp;quot;
90 RCL &amp;quot;C&amp;quot;
91 RCL &amp;quot;L2&amp;quot;
92 END&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;00 { 260-Byte Prgm }
01▸LBL &amp;quot;DTC&amp;quot;
02 INPUT &amp;quot;Z&amp;quot;
03 INPUT &amp;quot;Fmin&amp;quot;
04 INPUT &amp;quot;Fmax&amp;quot;
05 INPUT &amp;quot;L&amp;quot;
06 INPUT &amp;quot;Qu&amp;quot;
07 RCL &amp;quot;Fmin&amp;quot;
08 RCL× &amp;quot;Fmax&amp;quot;
09 SQRT
10 2
11 ×
12 PI
13 ×
14 STO &amp;quot;w&amp;quot;
15 RCL &amp;quot;L&amp;quot;
16 RCL &amp;quot;w&amp;quot;
17 X^2
18 ×
19 1/X
20 STO &amp;quot;Co&amp;quot;
21 RCL &amp;quot;w&amp;quot;
22 RCL &amp;quot;Fmax&amp;quot;
23 RCL- &amp;quot;Fmin&amp;quot;
24 2
25 ×
26 PI
27 ×
28 ÷
29 STO &amp;quot;Ql&amp;quot;
30 RCL &amp;quot;Co&amp;quot;
31 RCL &amp;quot;Ql&amp;quot;
32 2
33 SQRT
34 ×
35 ÷
36 STO &amp;quot;C12&amp;quot;
37 RCL &amp;quot;Ql&amp;quot;
38 2
39 SQRT
40 ×
41 STO &amp;quot;Qj&amp;quot;
42 RCL &amp;quot;Qj&amp;quot;
43 1/X
44 RCL &amp;quot;Qu&amp;quot;
45 1/X
46 -
47 1/X
48 STO &amp;quot;Qej&amp;quot;
49 RCL× &amp;quot;w&amp;quot;
50 RCL× &amp;quot;L&amp;quot;
51 STO &amp;quot;Rej&amp;quot;
52 RCL &amp;quot;Rej&amp;quot;
53 RCL× &amp;quot;Z&amp;quot;
54 RCL &amp;quot;Z&amp;quot;
55 X^2
56 -
57 SQRT
58 RCL× &amp;quot;w&amp;quot;
59 1/X
60 STO &amp;quot;Cjl&amp;quot;
61 RCL &amp;quot;Co&amp;quot;
62 RCL- &amp;quot;Cjl&amp;quot;
63 RCL- &amp;quot;C12&amp;quot;
64 STO &amp;quot;Cj&amp;quot;
65 &amp;quot;Tank Cap&amp;quot;
66 AVIEW
67 PSE
68 VIEW &amp;quot;Cj&amp;quot;
69 PSE
70 &amp;quot;Coupling Cap&amp;quot;
71 AVIEW
72 PSE
73 VIEW &amp;quot;C12&amp;quot;
74 PSE
75 &amp;quot;End Cap&amp;quot;
76 AVIEW
77 PSE
78 VIEW &amp;quot;Cjl&amp;quot;
79 PSE
80 RCL &amp;quot;Fmin&amp;quot;
81 RCL &amp;quot;Cj&amp;quot;
82 RCL &amp;quot;C12&amp;quot;
83 RCL &amp;quot;Cjl&amp;quot;
84 END&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;00 { 49-Byte Prgm }
01▸LBL &amp;quot;.VppdBm&amp;quot;
02 MVAR &amp;quot;Vpp&amp;quot;
03 MVAR &amp;quot;dBm&amp;quot;
04 RCL &amp;quot;Vpp&amp;quot;
05 X^2
06 400
07 ÷
08 1ᴇ-3
09 ÷
10 LOG
11 10
12 ×
13 RCL &amp;quot;dBm&amp;quot;
14 -
15 END&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;00 { 40-Byte Prgm }
01▸LBL &amp;quot;.LXl&amp;quot;
02 MVAR &amp;quot;L&amp;quot;
03 MVAR &amp;quot;freq&amp;quot;
04 MVAR &amp;quot;XL&amp;quot;
05 RCL &amp;quot;freq&amp;quot;
06 RCL× &amp;quot;L&amp;quot;
07 2
08 ×
09 PI
10 ×
11 RCL &amp;quot;XL&amp;quot;
12 -
13 END&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;00 { 42-Byte Prgm }
01▸LBL &amp;quot;.CXc&amp;quot;
02 MVAR &amp;quot;XC&amp;quot;
03 MVAR &amp;quot;freq&amp;quot;
04 MVAR &amp;quot;C&amp;quot;
05 RCL &amp;quot;XC&amp;quot;
06 RCL× &amp;quot;freq&amp;quot;
07 RCL× &amp;quot;C&amp;quot;
08 2
09 ×
10 PI
11 ×
12 1
13 -
14 END&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;00 { 45-Byte Prgm }
01▸LBL &amp;quot;.S→RL&amp;quot;
02 MVAR &amp;quot;RL&amp;quot;
03 MVAR &amp;quot;SWR&amp;quot;
04 RCL &amp;quot;SWR&amp;quot;
05 1
06 -
07 RCL &amp;quot;SWR&amp;quot;
08 1
09 +
10 ÷
11 LOG
12 20
13 ×
14 +/-
15 RCL- &amp;quot;RL&amp;quot;
16 END&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;00 { 58-Byte Prgm }
01▸LBL &amp;quot;.S→RF&amp;quot;
02 MVAR &amp;quot;Ref&amp;quot;
03 MVAR &amp;quot;Fwd&amp;quot;
04 MVAR &amp;quot;SWR&amp;quot;
05 1
06 RCL &amp;quot;Ref&amp;quot;
07 RCL÷ &amp;quot;Fwd&amp;quot;
08 SQRT
09 +
10 1
11 RCL &amp;quot;Ref&amp;quot;
12 RCL÷ &amp;quot;Fwd&amp;quot;
13 SQRT
14 -
15 ÷
16 RCL- &amp;quot;SWR&amp;quot;
17 END&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;00 { 37-Byte Prgm }
01▸LBL &amp;quot;.VppW&amp;quot;
02 MVAR &amp;quot;Vpp&amp;quot;
03 MVAR &amp;quot;Watt&amp;quot;
04 RCL &amp;quot;Vpp&amp;quot;
05 X^2
06 400
07 ÷
08 RCL- &amp;quot;Watt&amp;quot;
09 END&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;00 { 160-Byte Prgm }
01▸LBL &amp;quot;OpBPF&amp;quot;
02 INPUT &amp;quot;freq&amp;quot;
03 INPUT &amp;quot;BW&amp;quot;
04 INPUT &amp;quot;Gain&amp;quot;
05 INPUT &amp;quot;C&amp;quot;
06 RCL &amp;quot;freq&amp;quot;
07 RCL÷ &amp;quot;BW&amp;quot;
08 STO &amp;quot;Q&amp;quot;
09 RCL &amp;quot;freq&amp;quot;
10 2
11 ×
12 PI
13 ×
14 STO &amp;quot;w&amp;quot;
15 RCL &amp;quot;Gain&amp;quot;
16 RCL &amp;quot;C&amp;quot;
17 RCL &amp;quot;Q&amp;quot;
18 2
19 ×
20 RCL &amp;quot;w&amp;quot;
21 RCL× &amp;quot;C&amp;quot;
22 ÷
23 STO &amp;quot;R3&amp;quot;
24 RCL &amp;quot;Q&amp;quot;
25 RCL &amp;quot;Gain&amp;quot;
26 RCL× &amp;quot;w&amp;quot;
27 RCL× &amp;quot;C&amp;quot;
28 ÷
29 STO &amp;quot;R1&amp;quot;
30 RCL &amp;quot;Q&amp;quot;
31 RCL &amp;quot;Q&amp;quot;
32 X^2
33 2
34 ×
35 RCL- &amp;quot;Gain&amp;quot;
36 RCL× &amp;quot;w&amp;quot;
37 RCL× &amp;quot;C&amp;quot;
38 ÷
39 STO &amp;quot;R2&amp;quot;
40 VIEW &amp;quot;R1&amp;quot;
41 PSE
42 VIEW &amp;quot;R2&amp;quot;
43 PSE
44 VIEW &amp;quot;R3&amp;quot;
45 RCL &amp;quot;freq&amp;quot;
46 RCL &amp;quot;R1&amp;quot;
47 RCL &amp;quot;R2&amp;quot;
48 RCL &amp;quot;R3&amp;quot;
49 END&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;00 { 51-Byte Prgm }
01▸LBL &amp;quot;.PD&amp;quot;
02 MVAR &amp;quot;R1&amp;quot;
03 MVAR &amp;quot;R2&amp;quot;
04 MVAR &amp;quot;Vin&amp;quot;
05 MVAR &amp;quot;Vout&amp;quot;
06 RCL &amp;quot;Vin&amp;quot;
07 RCL &amp;quot;R1&amp;quot;
08 RCL+ &amp;quot;R2&amp;quot;
09 ÷
10 RCL &amp;quot;Vout&amp;quot;
11 RCL÷ &amp;quot;R2&amp;quot;
12 -
13 END&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;00 { 178-Byte Prgm }
01 GTO &amp;quot;.S←→RL&amp;quot;
02▸LBL &amp;quot;Lmat&amp;quot;
03 INPUT &amp;quot;Rlo&amp;quot;
04 INPUT &amp;quot;Rhi&amp;quot;
05 RCL &amp;quot;Rhi&amp;quot;
06 RCL &amp;quot;Rlo&amp;quot;
07 X≥Y?
08 XEQ &amp;quot;Lmat&amp;quot;
09 RCL &amp;quot;Rhi&amp;quot;
10 RCL÷ &amp;quot;Rlo&amp;quot;
11 1
12 -
13 SQRT
14 STO &amp;quot;Q&amp;quot;
15 RCL× &amp;quot;Rlo&amp;quot;
16 STO &amp;quot;XL&amp;quot;
17 RCL &amp;quot;Rhi&amp;quot;
18 RCL÷ &amp;quot;Q&amp;quot;
19 STO &amp;quot;XC&amp;quot;
20 INPUT &amp;quot;freq&amp;quot;
21 RCL &amp;quot;freq&amp;quot;
22 2
23 ×
24 PI
25 ×
26 STO &amp;quot;w&amp;quot;
27 RCL &amp;quot;XL&amp;quot;
28 RCL÷ &amp;quot;w&amp;quot;
29 STO &amp;quot;L&amp;quot;
30 RCL &amp;quot;XC&amp;quot;
31 RCL× &amp;quot;w&amp;quot;
32 1/X
33 STO &amp;quot;C&amp;quot;
34 &amp;quot;Q&amp;quot;
35 AVIEW
36 PSE
37 VIEW &amp;quot;Q&amp;quot;
38 PSE
39 &amp;quot;Inductor&amp;quot;
40 AVIEW
41 PSE
42 VIEW &amp;quot;L&amp;quot;
43 PSE
44 &amp;quot;Capacitor&amp;quot;
45 AVIEW
46 PSE
47 VIEW &amp;quot;C&amp;quot;
48 PSE
49 RCL &amp;quot;Rlo&amp;quot;
50 RCL &amp;quot;Rhi&amp;quot;
51 RCL &amp;quot;L&amp;quot;
52 RCL &amp;quot;C&amp;quot;
53 END&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;00 { 251-Byte Prgm }
01▸LBL &amp;quot;Tmat&amp;quot;
02 INPUT &amp;quot;Rhi&amp;quot;
03 INPUT &amp;quot;Rlo&amp;quot;
04 INPUT &amp;quot;freq&amp;quot;
05 RCL &amp;quot;Rhi&amp;quot;
06 RCL &amp;quot;Rlo&amp;quot;
07 X&amp;gt;Y?
08 XEQ &amp;quot;Tmat&amp;quot;
09 RCL &amp;quot;Rhi&amp;quot;
10 RCL÷ &amp;quot;Rlo&amp;quot;
11 1
12 -
13 SQRT
14 STO &amp;quot;Qmin&amp;quot;
15 VIEW &amp;quot;Qmin&amp;quot;
16 PSE
17▸LBL 01
18 INPUT &amp;quot;Q&amp;quot;
19 RCL &amp;quot;Qmin&amp;quot;
20 X≥Y?
21 GTO 01
22 RCL &amp;quot;Q&amp;quot;
23 X^2
24 1
25 +
26 RCL× &amp;quot;Rlo&amp;quot;
27 STO &amp;quot;A&amp;quot;
28 RCL÷ &amp;quot;Rhi&amp;quot;
29 1
30 -
31 SQRT
32 STO &amp;quot;B&amp;quot;
33 RCL &amp;quot;Rlo&amp;quot;
34 RCL× &amp;quot;Q&amp;quot;
35 STO &amp;quot;XL1&amp;quot;
36 RCL &amp;quot;Rhi&amp;quot;
37 RCL× &amp;quot;B&amp;quot;
38 STO &amp;quot;XL2&amp;quot;
39 RCL &amp;quot;A&amp;quot;
40 RCL &amp;quot;Q&amp;quot;
41 RCL+ &amp;quot;B&amp;quot;
42 ÷
43 STO &amp;quot;XC&amp;quot;
44 RCL &amp;quot;freq&amp;quot;
45 2
46 ×
47 PI
48 ×
49 STO &amp;quot;w&amp;quot;
50 RCL &amp;quot;XL1&amp;quot;
51 RCL÷ &amp;quot;w&amp;quot;
52 STO &amp;quot;L1&amp;quot;
53 RCL &amp;quot;XL2&amp;quot;
54 RCL÷ &amp;quot;w&amp;quot;
55 STO &amp;quot;L2&amp;quot;
56 RCL &amp;quot;XC&amp;quot;
57 RCL× &amp;quot;w&amp;quot;
58 1/X
59 STO &amp;quot;C&amp;quot;
60 &amp;quot;L hi&amp;quot;
61 AVIEW
62 PSE
63 VIEW &amp;quot;L1&amp;quot;
64 PSE
65 &amp;quot;C shunt&amp;quot;
66 AVIEW
67 PSE
68 VIEW &amp;quot;C&amp;quot;
69 PSE
70 &amp;quot;L low&amp;quot;
71 AVIEW
72 PSE
73 VIEW &amp;quot;L2&amp;quot;
74 PSE
75 RCL &amp;quot;Q&amp;quot;
76 RCL &amp;quot;L1&amp;quot;
77 RCL &amp;quot;C&amp;quot;
78 RCL &amp;quot;L2&amp;quot;
79 END&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;00 { 135-Byte Prgm }
01▸LBL &amp;quot;Piatt&amp;quot;
02 INPUT &amp;quot;Att&amp;quot;
03 INPUT &amp;quot;Z&amp;quot;
04 RCL &amp;quot;Att&amp;quot;
05 20
06 +/-
07 ÷
08 10^X
09 STO &amp;quot;A&amp;quot;
10 1
11 RCL+ &amp;quot;A&amp;quot;
12 1
13 RCL- &amp;quot;A&amp;quot;
14 ÷
15 RCL× &amp;quot;Z&amp;quot;
16 STO &amp;quot;R1&amp;quot;
17 1
18 RCL &amp;quot;A&amp;quot;
19 X^2
20 -
21 2
22 RCL× &amp;quot;A&amp;quot;
23 ÷
24 RCL× &amp;quot;Z&amp;quot;
25 STO &amp;quot;R2&amp;quot;
26 &amp;quot;Shunt R1&amp;quot;
27 AVIEW
28 PSE
29 VIEW &amp;quot;R1&amp;quot;
30 PSE
31 &amp;quot;Series R2&amp;quot;
32 AVIEW
33 PSE
34 VIEW &amp;quot;R2&amp;quot;
35 PSE
36 &amp;quot;Shunt R3&amp;quot;
37 AVIEW
38 PSE
39 VIEW &amp;quot;R1&amp;quot;
40 PSE
41 RCL &amp;quot;Att&amp;quot;
42 RCL &amp;quot;R1&amp;quot;
43 RCL &amp;quot;R2&amp;quot;
44 RCL &amp;quot;R1&amp;quot;
45 END&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;00 { 144-Byte Prgm }
01▸LBL &amp;quot;MPad&amp;quot;
02 INPUT &amp;quot;Zh&amp;quot;
03 INPUT &amp;quot;Zl&amp;quot;
04 RCL &amp;quot;Zl&amp;quot;
05 RCL÷ &amp;quot;Zh&amp;quot;
06 STO &amp;quot;A&amp;quot;
07 1
08 RCL- &amp;quot;A&amp;quot;
09 SQRT
10 RCL× &amp;quot;Zh&amp;quot;
11 STO &amp;quot;R1&amp;quot;
12 RCL &amp;quot;Zl&amp;quot;
13 1
14 RCL- &amp;quot;A&amp;quot;
15 SQRT
16 ÷
17 STO &amp;quot;R2&amp;quot;
18 RCL &amp;quot;A&amp;quot;
19 1/X
20 1
21 -
22 SQRT
23 RCL &amp;quot;A&amp;quot;
24 1/X
25 SQRT
26 +
27 X^2
28 1/X
29 LOG
30 10
31 ×
32 +/-
33 STO &amp;quot;G&amp;quot;
34 &amp;quot;Loss&amp;quot;
35 AVIEW
36 PSE
37 VIEW &amp;quot;G&amp;quot;
38 PSE
39 &amp;quot;Series R(hiZ)&amp;quot;
40 AVIEW
41 PSE
42 VIEW &amp;quot;R1&amp;quot;
43 PSE
44 &amp;quot;Shunt R(loZ)&amp;quot;
45 AVIEW
46 PSE
47 VIEW &amp;quot;R2&amp;quot;
48 PSE
49 RCL &amp;quot;G&amp;quot;
50 RCL &amp;quot;R1&amp;quot;
51 RCL &amp;quot;R2&amp;quot;
52 END&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;00 { 141-Byte Prgm }
01▸LBL &amp;quot;Tatt&amp;quot;
02 INPUT &amp;quot;Att&amp;quot;
03 INPUT &amp;quot;Z&amp;quot;
04 RCL &amp;quot;Att&amp;quot;
05 20
06 ÷
07 10^X
08 STO &amp;quot;G&amp;quot;
09 RCL &amp;quot;G&amp;quot;
10 1
11 -
12 RCL &amp;quot;G&amp;quot;
13 1
14 +
15 ÷
16 RCL× &amp;quot;Z&amp;quot;
17 STO &amp;quot;R1&amp;quot;
18 STO &amp;quot;R2&amp;quot;
19 RCL &amp;quot;G&amp;quot;
20 RCL &amp;quot;G&amp;quot;
21 X^2
22 1
23 -
24 ÷
25 RCL× &amp;quot;Z&amp;quot;
26 2
27 ×
28 STO &amp;quot;R3&amp;quot;
29 &amp;quot;Series R1&amp;quot;
30 AVIEW
31 PSE
32 VIEW &amp;quot;R1&amp;quot;
33 PSE
34 &amp;quot;Shunt R3&amp;quot;
35 AVIEW
36 PSE
37 VIEW &amp;quot;R3&amp;quot;
38 PSE
39 &amp;quot;Series R2&amp;quot;
40 AVIEW
41 PSE
42 VIEW &amp;quot;R2&amp;quot;
43 PSE
44 RCL &amp;quot;Att&amp;quot;
45 RCL &amp;quot;R1&amp;quot;
46 RCL &amp;quot;R3&amp;quot;
47 RCL &amp;quot;R2&amp;quot;
48 END&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;00 { 151-Byte Prgm }
01▸LBL &amp;quot;Bias&amp;quot;
02 INPUT &amp;quot;Vcc&amp;quot;
03 INPUT &amp;quot;Hfe&amp;quot;
04 INPUT &amp;quot;Ie&amp;quot;
05 RCL &amp;quot;Vcc&amp;quot;
06 12
07 ÷
08 STO &amp;quot;Ve&amp;quot;
09 0.7
10 +
11 STO &amp;quot;Vb&amp;quot;
12 RCL &amp;quot;Ve&amp;quot;
13 RCL÷ &amp;quot;Ie&amp;quot;
14 STO &amp;quot;Re&amp;quot;
15 RCL &amp;quot;Ie&amp;quot;
16 RCL÷ &amp;quot;Hfe&amp;quot;
17 STO &amp;quot;Ib&amp;quot;
18 RCL &amp;quot;Vb&amp;quot;
19 10
20 RCL× &amp;quot;Ib&amp;quot;
21 ÷
22 STO &amp;quot;R2&amp;quot;
23 RCL &amp;quot;Vcc&amp;quot;
24 RCL- &amp;quot;Vb&amp;quot;
25 11
26 RCL× &amp;quot;Ib&amp;quot;
27 ÷
28 STO &amp;quot;R1&amp;quot;
29 RCL &amp;quot;Vcc&amp;quot;
30 2
31 ÷
32 STO &amp;quot;Vc&amp;quot;
33 RCL &amp;quot;Vcc&amp;quot;
34 RCL- &amp;quot;Vc&amp;quot;
35 RCL÷ &amp;quot;Ie&amp;quot;
36 STO &amp;quot;Rc&amp;quot;
37 RCL &amp;quot;R1&amp;quot;
38 RCL &amp;quot;R2&amp;quot;
39 RCL &amp;quot;Rc&amp;quot;
40 RCL &amp;quot;Re&amp;quot;
41 END&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;00 { 26-Byte Prgm }
01▸LBL &amp;quot;FIB&amp;quot;
02 STO &amp;quot;N&amp;quot;
03 1
04 ENTER
05 0
06▸LBL A
07 +
08 LASTX
09 X&amp;lt;&amp;gt;Y
10 DSE &amp;quot;N&amp;quot;
11 GTO A
12 END&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;00 { 10-Byte Prgm }
01▸LBL &amp;quot;Eng3&amp;quot;
02 ENG 03
03 END&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;00 { 10-Byte Prgm }
01▸LBL &amp;quot;Fix6&amp;quot;
02 FIX 06
03 END&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;00 { 19-Byte Prgm }
01▸LBL &amp;quot;SM&amp;quot;
02 STO 00
03 0
04 STO 01
05▸LBL 01
06 RCL 00
07 STO+ 01
08 DSE 00
09 GTO 01
10 RCL 01
11 END&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;00 { 49-Byte Prgm }
01▸LBL &amp;quot;BM&amp;quot;
02 0
03 STO 02
04 1.01234ᴇ6
05 STO 00
06 2.345
07 STO 01
08▸LBL 02
09 RCL 01
10 RCL 00
11 ×
12 RCL 01
13 -
14 RCL 00
15 ÷
16 RCL 01
17 ×
18 3.5
19 ÷
20 SQRT
21 1
22 STO+ 02
23 GTO 02
24 END&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;00 { 33-Byte Prgm }
01▸LBL &amp;quot;BMT&amp;quot;
02 56.26
03 STO 00
04 0
05 STO 02
06▸LBL 04
07 RCL 00
08 SIN
09 ASIN
10 COS
11 ACOS
12 TAN
13 ATAN
14 LN
15 E^X
16 1
17 STO+ 02
18 GTO 04
19 END&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;00 { 64-Byte Prgm }
01▸LBL &amp;quot;P→S&amp;quot;
02 RECT
03 INPUT &amp;quot;Rp&amp;quot;
04 INPUT &amp;quot;Xp&amp;quot;
05 RCL &amp;quot;Rp&amp;quot;
06 RCL÷ &amp;quot;Xp&amp;quot;
07 STO &amp;quot;Q&amp;quot;
08 X^2
09 1
10 +
11 RCL &amp;quot;Rp&amp;quot;
12 X&amp;lt;&amp;gt;Y
13 ÷
14 STO &amp;quot;Rs&amp;quot;
15 RCL &amp;quot;Q&amp;quot;
16 ×
17 STO &amp;quot;Xs&amp;quot;
18 RCL &amp;quot;Rs&amp;quot;
19 RCL &amp;quot;Xs&amp;quot;
20 COMPLEX
21 STO &amp;quot;Zs&amp;quot;
22 END&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;00 { 51-Byte Prgm }
01▸LBL &amp;quot;S→P&amp;quot;
02 RECT
03 INPUT &amp;quot;Rs&amp;quot;
04 INPUT &amp;quot;Xs&amp;quot;
05 RCL÷ &amp;quot;Rs&amp;quot;
06 STO &amp;quot;Q&amp;quot;
07 X^2
08 1
09 +
10 RCL× &amp;quot;Rs&amp;quot;
11 STO &amp;quot;Rp&amp;quot;
12 RCL÷ &amp;quot;Q&amp;quot;
13 STO &amp;quot;Xp&amp;quot;
14 RCL &amp;quot;Rp&amp;quot;
15 RCL &amp;quot;Xp&amp;quot;
16 END&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;00 { 97-Byte Prgm }
01▸LBL &amp;quot;Z→&amp;quot;
02 RECT
03 INPUT &amp;quot;Rs&amp;quot;
04 INPUT &amp;quot;Xs&amp;quot;
05 RCL &amp;quot;Rs&amp;quot;
06 RCL &amp;quot;Xs&amp;quot;
07 COMPLEX
08 STO &amp;quot;Zs&amp;quot;
09 50
10 -
11 RCL &amp;quot;Zs&amp;quot;
12 50
13 +
14 ÷
15 STO &amp;quot;Rho&amp;quot;
16 ABS
17 STO &amp;quot;P&amp;quot;
18 1
19 RCL+ &amp;quot;P&amp;quot;
20 1
21 RCL- &amp;quot;P&amp;quot;
22 ÷
23 STO &amp;quot;S&amp;quot;
24 RCL &amp;quot;P&amp;quot;
25 LOG
26 20
27 ×
28 STO &amp;quot;Rl&amp;quot;
29 RCL &amp;quot;Zs&amp;quot;
30 RCL &amp;quot;Rho&amp;quot;
31 RCL &amp;quot;S&amp;quot;
32 RCL &amp;quot;Rl&amp;quot;
33 POLAR
34 RTN
35 END&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;00 { 92-Byte Prgm }
01▸LBL &amp;quot;PIXCIR&amp;quot;
02 MVAR &amp;quot;R&amp;quot;
03 MVAR &amp;quot;X&amp;quot;
04 MVAR &amp;quot;Y&amp;quot;
05 VARMENU &amp;quot;PIXCIR&amp;quot;
06 STOP
07 EXITALL
08 2
09 STO &amp;quot;GrMod&amp;quot;
10 1
11 360
12 1ᴇ3
13 ÷
14 +
15 STO 01
16 CLLCD
17▸LBL 01
18 RCL &amp;quot;Y&amp;quot;
19 RCL &amp;quot;R&amp;quot;
20 RCL 01
21 IP
22 SIN
23 ×
24 -
25 RCL &amp;quot;X&amp;quot;
26 RCL &amp;quot;R&amp;quot;
27 RCL 01
28 IP
29 COS
30 ×
31 +
32 PIXEL
33 RCL 01
34 ISG 01
35 GTO 01
36 XEQ &amp;quot;PIXCIR&amp;quot;
37 END&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;00 { 204-Byte Prgm }
01▸LBL &amp;quot;BFil&amp;quot;
02 ENG 03
03 SF 00
04 INPUT &amp;quot;MHz&amp;quot;
05 1ᴇ6
06 ×
07 STO &amp;quot;F&amp;quot;
08 INPUT &amp;quot;N&amp;quot;
09 X&amp;lt;0?
10 CF 00
11 XEQ 06
12▸LBL 01
13 RCL &amp;quot;I&amp;quot;
14 IP
15 XEQ 00
16 FS? 00
17 1/X
18 STO IND &amp;quot;I&amp;quot;
19 ISG &amp;quot;I&amp;quot;
20 GTO 01
21 &amp;quot;Coefficients&amp;quot;
22 AVIEW
23 STOP
24 GTO 07
25▸LBL 08
26 RCL IND &amp;quot;I&amp;quot;
27 RCL &amp;quot;F&amp;quot;
28 2
29 ×
30 PI
31 ×
32 ÷
33 RTN
34▸LBL 07
35 XEQ 06
36▸LBL 03
37 RCL &amp;quot;I&amp;quot;
38 IP
39 2
40 ÷
41 FP
42 FS? 00
43 GTO 09
44 GTO 10
45▸LBL 09
46 &amp;quot;HPF&amp;quot;
47 AVIEW
48 X=0?
49 GTO 05
50 GTO 04
51 RTN
52▸LBL 10
53 &amp;quot;LPF&amp;quot;
54 AVIEW
55 X=0?
56 GTO 04
57 GTO 05
58 RTN
59▸LBL 04
60 XEQ 08
61 50
62 ×
63 STO IND &amp;quot;I&amp;quot;
64 ISG &amp;quot;I&amp;quot;
65 GTO 03
66 RTN
67▸LBL 05
68 XEQ 08
69 50
70 ÷
71 STO IND &amp;quot;I&amp;quot;
72 ISG &amp;quot;I&amp;quot;
73 GTO 03
74 RTN
75▸LBL 06
76 RCL &amp;quot;N&amp;quot;
77 ABS
78 1000
79 ÷
80 1
81 +
82 STO &amp;quot;I&amp;quot;
83 RTN
84▸LBL 00
85 2
86 ×
87 1
88 -
89 180
90 ×
91 RCL &amp;quot;N&amp;quot;
92 ABS
93 2
94 ×
95 ÷
96 SIN
97 2
98 ×
99 RTN
100 END

&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DM42 Progs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dm42_progs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-11924&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;page_info&quot;&gt;Page Info&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Page created Thu May 26 17:32:54 2022 by John Pumford-Green
&lt;/p&gt;

&lt;p&gt;
Page last updated: 24/01/26 08:08 GMT
&lt;/p&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 24/04/23 16:08&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Back to &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:progs:dm42_progs&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:progs:dm42_progs&quot; data-wiki-id=&quot;public:calculator:progs:dm42_progs&quot;&gt;Top&lt;/a&gt; of page&lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Page Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;page_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:30,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;11925-12115&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:calculator&amp;amp;do=showtag&amp;amp;tag=calculator&quot; class=&quot;wikilink1&quot; title=&quot;tag:calculator&quot; rel=&quot;tag&quot;&gt;calculator&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:dm42&amp;amp;do=showtag&amp;amp;tag=dm42&quot; class=&quot;wikilink1&quot; title=&quot;tag:dm42&quot; rel=&quot;tag&quot;&gt;dm42&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:30,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;12116-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sat, 24 Jan 2026 08:08:10 +0000</pubDate>
        </item>
        <item>
            <title>DM15L Progs</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:progs:dm15l_progs</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:progs:start&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:progs:start&quot; data-wiki-id=&quot;public:calculator:progs:start&quot;&gt;Programs&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;dm15l_progs&quot;&gt;DM15L Progs&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Dumps taken from the DM15L using a serial console session in Putty. 
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:guides:dm15l_start&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:guides:dm15l_start&quot; data-wiki-id=&quot;public:calculator:guides:dm15l_start&quot;&gt;DM15L Startup Keys &amp;amp; Serial Console&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DM15L Progs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dm15l_progs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-157&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;stock_swiss_micros_firmware&quot;&gt;Stock Swiss Micros Firmware&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Dumps are also converted to readable program listings using the Swiss Micros online encode/decode tool at &lt;a href=&quot;https://technical.swissmicros.com/decoders/nut/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://technical.swissmicros.com/decoders/nut/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://technical.swissmicros.com/decoders/nut/&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Stock Swiss Micros Firmware&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;stock_swiss_micros_firmware&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;158-359&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;normal_complex_z_to&quot;&gt;Normal  + &amp;quot;Complex Z to.....&amp;quot;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;code&gt;LBL E&lt;/code&gt; converts &lt;code&gt;Z=R±jX&lt;/code&gt; to &lt;code&gt;RL&lt;/code&gt;, &lt;code&gt;SWR&lt;/code&gt;, &lt;code&gt;|ρ|∠ρ&lt;/code&gt;, &lt;code&gt;|Z|∠Z&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Data input :
&lt;/p&gt;

&lt;p&gt;
if  &lt;code&gt;Z = R + j X&lt;/code&gt;, put &lt;code&gt;R&lt;/code&gt; in Y-stack and &lt;code&gt;X&lt;/code&gt; in X-stack and then run &lt;code&gt;LBL E&lt;/code&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; R &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; X  (and &lt;kbd class=&quot;__keyboard&quot;&gt;CHS&lt;/kbd&gt; as needed)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;F&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;E&lt;/kbd&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Results appear:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Stack X → Return Loss&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Stack Y → SWR&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Stack Z → (Re) |ρ| (Im) ∠ρ&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Stack T → (Re) |Z| (Im) ∠Z&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;DM15_M1B
04  000000fffff000  00000000000008  0000000000000c  00000996010eae
08  00000000000000  2faf8befbe2280  00000000000000  00000000000000
10  91000000000000  00000000000000  00000000000000  02875000000998
14  f0000000000000  1b2d2d2d2d2d2d  000000000002ef  00000000000000
18  00000000000000  0000000000007f  00000000a00000  01900000000001
1c  02232142865997  01800000000002  02232142865997  01004474273000
20  05302556024001  00000000000000  00000000000000  00000000000000
ec  00000000000000  00000000000000  00000000000000  0000000000b237
f0  36a43433a43231  44db43e1a43433  42db41e1a43231  47c3fcf0f2bc35
f4  46fda5cff185cf  f145b3db44db43  fdfaf0f5a43231  fbf0f5a4323141
f8  c5420eb23344fc  c3f0f2bcfdfaf1  33fbf143fda2cf  f182cff142cafd
fc  0ab2c3fcf0f2bc  fdfaf132fbf142  0bb2fdfbf132fa  f142ccfdf0f20c
A: 000000fffff000  B: 000000fffffeae  C: 00000996010eae
S: 00000000000000
M: 00000000000000  N: 00000000000000  G: 04
&lt;/pre&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_2d13a53cccf5c8b46f606f7b278e4407_1&quot;&gt;Decoded Dump &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_2d13a53cccf5c8b46f606f7b278e4407_1&quot;&gt;&lt;pre class=&quot;code&quot;&gt;
001  LBL C        | 42,21,13
002  2            |        2
003  0            |        0
004  /            |       10
005  10^x         |       13
006  STO 2        |    44  2
007  1            |        1
008  +            |       40
009  RCL 2        |    45  2
010  1            |        1
011  -            |       30
012  /            |       10
013  RTN          |   43  32
014  LBL B        | 42,21,12
015  STO 2        |    44  2
016  1            |        1
017  -            |       30
018  RCL 2        |    45  2
019  1            |        1
020  +            |       40
021  /            |       10
022  LOG          |   43  13
023  2            |        2
024  0            |        0
025  *            |       20
026  CHS          |       16
027  RTN          |   43  32
028  LBL A        | 42,21,11
029  /            |       10
030  sqrt         |       11
031  STO 2        |    44  2
032  1            |        1
033  RCL+2        | 45,40, 2
034  1            |        1
035  RCL-2        | 45,30, 2
036  /            |       10
037  STO 3        |    44  3
038  1            |        1
039  -            |       30
040  RCL 3        |    45  3
041  1            |        1
042  +            |       40
043  /            |       10
044  LOG          |   43  13
045  2            |        2
046  0            |        0
047  CHS          |       16
048  *            |       20
049  STO 4        |    44  4
050  RCL 3        |    45  3
051  RTN          |   43  32
052  LBL E        | 42,21,15
053  STO 2        |    44  2
054  x&amp;lt;&amp;gt;y         |       34
055  STO 1        |    44  1
056  RCL 1        |    45  1
057  RCL 2        |    45  2
058  I            |   42  25
059  5            |        5
060  0            |        0
061  -            |       30
062  RCL 1        |    45  1
063  RCL 2        |    45  2
064  I            |   42  25
065  5            |        5
066  0            |        0
067  +            |       40
068  /            |       10
069  STO 3        |    44  3
070  Re&amp;lt;&amp;gt;Im       |   42  30
071  STO 4        |    44  4
072  Re&amp;lt;&amp;gt;Im       |   42  30
073  ABS          |   43  16
074  STO 5        |    44  5
075  1            |        1
076  RCL+5        | 45,40, 5
077  1            |        1
078  RCL-5        | 45,30, 5
079  /            |       10
080  STO 6        |    44  6
081  RCL 5        |    45  5
082  LOG          |   43  13
083  2            |        2
084  0            |        0
085  *            |       20
086  CHS          |       16
087  STO 7        |    44  7
088  RCL 1        |    45  1
089  RCL 2        |    45  2
090  I            |   42  25
091  -&amp;gt;P          |     43 1
092  STO 1        |    44  1
093  Re&amp;lt;&amp;gt;Im       |   42  30
094  STO 2        |    44  2
095  RCL 3        |    45  3
096  RCL 4        |    45  4
097  I            |   42  25
098  -&amp;gt;P          |     43 1
099  STO 3        |    44  3
100  Re&amp;lt;&amp;gt;Im       |   42  30
101  STO 4        |    44  4
102  RCL 1        |    45  1
103  RCL 2        |    45  2
104  I            |   42  25
105  RCL 3        |    45  3
106  RCL 4        |    45  4
107  I            |   42  25
108  RCL 6        |    45  6
109  RCL 7        |    45  7
110  RTN          |   43  32&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Normal  + \&amp;quot;Complex Z to.....\&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;normal_complex_z_to&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;360-4996&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;normal&quot;&gt;&amp;quot;Normal&amp;quot;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;### 27/7/22 ####
# This is the usual set of 3 useful tool progs I have in the DM15L for quick calculation/conversion
# of antenna parameters.
#&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Ref Power &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; Fwd Power &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;A&lt;/kbd&gt; → SWR &lt;kbd class=&quot;__keyboard&quot;&gt;x&amp;lt;&amp;gt;y&lt;/kbd&gt; RL&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; SWR &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;B&lt;/kbd&gt; →  Return Loss&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Return Loss &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;C&lt;/kbd&gt; → SWR&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;DM15_M1B
00  03400000000001  01000000000001  08000000000000  00000000000000
04  155000000ff000  00000000000008  0000000000000c  00002000010eae
08  00000000000000  2faf0bde7aa28f  000080bcbcaf80  00000000000000
10  00000000000000  01000000000001  00000000000000  03400000000001
14  f7365289440000  1b2d2d2d2d2d2d  000000000004f8  00000000000000
18  00000000000000  0000000000007f  00000000a00000  01387265622000
1c  01387265622000  01579783596001  05000000000001  02500000000003
20  01800000000002  00000000000000  00000000000000  00000000000000
f8  000000b23344fc  c3f0f2bcfdfaf1  33fbf143fda2cf  f182cff142cafd
fc  0ab2c3fcf0f2bc  fdfaf132fbf142  0bb2fdfbf132fa  f142ccfdf0f20c
A: 155000000ff000  B: 155000000ffeae  C: 00002000010eae
S: 00000000000000
M: 00000000000000  N: 05500000000001  G: 06
&lt;/pre&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_2d13a53cccf5c8b46f606f7b278e4407_2&quot;&gt;Decoded dump &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_2d13a53cccf5c8b46f606f7b278e4407_2&quot;&gt;&lt;pre class=&quot;code&quot;&gt;
LBL C
20

/
10^x
STO 2
1
+
RCL 2
1
-
/
RTN
LBL B
STO 2
1
-
RCL 2
1
+
/
LOG
20

*
CHS
RTN
LBL A
/
sqrt
STO 2
1
RCL+2
1
RCL-2
/
STO 3
1
-
RCL 3
1
+
/
LOG
20

CHS
*
STO 4
RCL 3
RTN
&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;001  LBL C        | 42,21,13
002  2            |        2
003  0            |        0
004  /            |       10
005  10^x         |       13
006  STO 2        |    44  2
007  1            |        1
008  +            |       40
009  RCL 2        |    45  2
010  1            |        1
011  -            |       30
012  /            |       10
013  RTN          |   43  32
014  LBL B        | 42,21,12
015  STO 2        |    44  2
016  1            |        1
017  -            |       30
018  RCL 2        |    45  2
019  1            |        1
020  +            |       40
021  /            |       10
022  LOG          |   43  13
023  2            |        2
024  0            |        0
025  *            |       20
026  CHS          |       16
027  RTN          |   43  32
028  LBL A        | 42,21,11
029  /            |       10
030  sqrt         |       11
031  STO 2        |    44  2
032  1            |        1
033  RCL+2        | 45,40, 2
034  1            |        1
035  RCL-2        | 45,30, 2
036  /            |       10
037  STO 3        |    44  3
038  1            |        1
039  -            |       30
040  RCL 3        |    45  3
041  1            |        1
042  +            |       40
043  /            |       10
044  LOG          |   43  13
045  2            |        2
046  0            |        0
047  CHS          |       16
048  *            |       20
049  STO 4        |    44  4
050  RCL 3        |    45  3
051  RTN          |   43  32

&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\&amp;quot;Normal\&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;normal&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;4997-7916&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;n-queens_benchmark_27_7_22&quot;&gt;N-Queens Benchmark 27/7/22&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;DM15_M1B
00  08000000000000  08000000000000  00000000000000  00000000000000
04  065140fffff000  00000000000008  0000000000000c  00000000999eae
08  00000000000000  22af8d9e7e0080  00000000000000  00000000000000
10  08000000000000  08000000000000  01000000000000  01000000000000
14  f0000000000537  1b2d2d2d2d2d2d  000000000007f7  00000000000000
18  00000000000000  0000000000007f  00000000a00000  04000000000000
1c  01000000000000  03000000000000  06000000000000  02000000000000
20  07000000000000  05000000000000  00000000000000  08000000000000
24  08760000000002  00000000000000  00000000000000  00000000000000
f4  00000000000000  00000000000000  00000000000000  b25104137030a0
f8  dff1117086bddf  f19730031276fb  3930b313ecfb86  c4973986973010
fc  ec39a9dff10249  3091dff1019650  973080dff11475  50300060f8a50a
A: 065140fffff000  B: 065140fffffeae  C: 00000000999eae
S: 00000000000000
M: aaaaaaaaaaaaaa  N: 06514000000000  G: 04
&lt;/pre&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_2d13a53cccf5c8b46f606f7b278e4407_3&quot;&gt;Decoded Dump &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_2d13a53cccf5c8b46f606f7b278e4407_3&quot;&gt;&lt;pre class=&quot;code&quot;&gt;LBL A
CLR_REG
8
STO .0
LBL 0
RCL 0
RCL .0
TEST 5
GTO 4
1
STO+0
RCL 0
STO I
RCL .0
STO (i)
LBL 1
1
STO+.1
RCL 0
STO 9
LBL 2
1
STO-9
RCL 9
x=0
GTO 0
RCL 0
STO I
RCL (i)
RCL 9
STO I
R_down
RCL (i)
-
x=0
GTO 3
ABS
RCL 0
RCL 9
-
TEST 6
GTO 2
LBL 3
RCL 0
STO I
1
STO-(i)
RCL (i)
TEST 0
GTO 1
1
STO-0
RCL 0
TEST 0
GTO 3
LBL 4
RCL .1
RTN
&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;
001  LBL A        | 42,21,11
002  CLR_REG      |   42  34
003  8            |        8
004  STO .0       |    44 .0
005  LBL 0        | 42,21, 0
006  RCL 0        |    45  0
007  RCL .0       |    45 .0
008  TEST 5       | 43,30, 5
009  GTO 4        |    22  4
010  1            |        1
011  STO+0        | 44,40, 0
012  RCL 0        |    45  0
013  STO I        |   44  25
014  RCL .0       |    45 .0
015  STO (i)      |   44  24
016  LBL 1        | 42,21, 1
017  1            |        1
018  STO+.1       | 44,40,.1
019  RCL 0        |    45  0
020  STO 9        |    44  9
021  LBL 2        | 42,21, 2
022  1            |        1
023  STO-9        | 44,30, 9
024  RCL 9        |    45  9
025  x=0          |   43  20
026  GTO 0        |    22  0
027  RCL 0        |    45  0
028  STO I        |   44  25
029  RCL (i)      |   45  24
030  RCL 9        |    45  9
031  STO I        |   44  25
032  R_down       |       33
033  RCL (i)      |   45  24
034  -            |       30
035  x=0          |   43  20
036  GTO 3        |    22  3
037  ABS          |   43  16
038  RCL 0        |    45  0
039  RCL 9        |    45  9
040  -            |       30
041  TEST 6       | 43,30, 6
042  GTO 2        |    22  2
043  LBL 3        | 42,21, 3
044  RCL 0        |    45  0
045  STO I        |   44  25
046  1            |        1
047  STO-(i)      | 44,30,24
048  RCL (i)      |   45  24
049  TEST 0       | 43,30, 0
050  GTO 1        |    22  1
051  1            |        1
052  STO-0        | 44,30, 0
053  RCL 0        |    45  0
054  TEST 0       | 43,30, 0
055  GTO 3        |    22  3
056  LBL 4        | 42,21, 4
057  RCL .1       |    45 .1
058  RTN          |   43  32
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;N-Queens Benchmark 27\/7\/22&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;n-queens_benchmark_27_7_22&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:6,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;7917-10978&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;savage_benchmark_23_01_26&quot;&gt;Savage Benchmark 23/01/26&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;DM15_M1B
00  01000000000000  01000000000000  01000000000000  00000000000000
04  32499970322000  00000000000008  0000000000000c  40997997010eae
08  00000000000000  3ebeefb6e4228f  e79282e8bc2ac0  00000000000000
10  00000000000000  08000000000000  06000000000000  02498970322003
14  f0000000000504  1b2d2d2d2d2d2d  000000000001fc  00000000000000
18  00000000000000  0000000000007f  00000000a00000  06000000000000
1c  04000000000000  07000000000000  05000000000000  03000000000000
20  00000000000000  00000000000000  04000000000000  08000000000000
24  02100000000001  00000000000000  00000000000000  00000000000000
fc  000000000000b2  1b82fac9b9cbbb  caba0bc1c1c1f1  40f9f9f4f2e80a
A: 32499970322000  B: 32499970322eae  C: 40997997010eae
S: 00000000000000
M: 00000000000000  N: 02499970322003  G: 09
&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Savage Benchmark 23\/01\/26&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;savage_benchmark_23_01_26&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;10979-11832&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;updated_butterworth_program_12_2_22&quot;&gt;UPDATED &amp;quot;Butterworth&amp;quot; program 12/2/22&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;############################
#
#  Updated 12/2/22 : change to reduce amount of looping/storing 
#  Sub routine &amp;quot;LBL 8&amp;quot; changed
DM15_M1B
00  05108827280994  05000000000999  05000000000999  00000000000000
04  24547fff912000  00000000000008  0000000000000c  00012012012eae
08  00000000000000  b6000a9eda000f  e6220040000000  00000000000000
10  07000000000000  05108827295994  08007000000000  05000000000001
14  f0000000012435  1b2d2d2d2d2d2d  000000000006f1  00000000000000
18  00000000000000  0000000000007f  00000000a00300  07293277408990
1c  01261776142994  04547284088990  01261776142994  07293277408990
20  05108827280994  01103787069994  04026420096990  08509227540993
24  02583151782990  04031222906993  05481145266989  07025940305993
28  09506412356989  00000000000000  00000000000000  00000000000000
2c  03500000000006  00000000000000  00000000000000  00000000000000
f0  00000000000000  00b2fcf2c7fdfc  f230fcf0f8f1fb  f1fcf200171195
f4  96ce50ff20eb87  012640b340ff72  c56930ff83ff0a  17b2139596fdf0
f8  f52805b2139596  fcf0f5280410ff  1950ffa3fdf2eb  87032607b297fa
fc  f1fdf0f0f0f130  06b21514ec00ff  b21415ec09b2fd  fcb6fcf2598608
A: 24547fff912000  B: 24547fff912eae  C: 00012012012eae
S: 00000100000000
M: 05108827280994  N: 04547284088990  G: 23
&lt;/pre&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_2d13a53cccf5c8b46f606f7b278e4407_4&quot;&gt;Dump above decoded at Swiss micros &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_2d13a53cccf5c8b46f606f7b278e4407_4&quot;&gt;&lt;pre class=&quot;code&quot;&gt;001  LBL 8        | 42,21, 8
002  RCL (i)      |   45  24
003  RCL .9       |    45 .9
004  2            |        2
005  *            |       20
006  PI           |   43  26
007  *            |       20
008  /            |       10
009  RTN          |   43  32
010  LBL 9        | 42,21, 9
011  x=0          |   43  20
012  GTO 5        |    22  5
013  GTO 4        |    22  4
014  RTN          |   43  32
015  LBL .0       | 42,21,.0
016  x=0          |   43  20
017  GTO 4        |    22  4
018  GTO 5        |    22  5
019  RTN          |   43  32
020  LBL 6        | 42,21, 6
021  RCL 0        |    45  0
022  1            |        1
023  0            |        0
024  0            |        0
025  0            |        0
026  /            |       10
027  1            |        1
028  +            |       40
029  STO I        |   44  25
030  RTN          |   43  32
031  LBL 7        | 42,21, 7
032  GSB 6        |    32  6
033  LBL 3        | 42,21, 3
034  RCL I        |   45  25
035  INT          |   43  44
036  2            |        2
037  /            |       10
038  FRAC         |   42  44
039  F? 0         | 43, 6, 0
040  GTO 9        |    22  9
041  GTO .0       |    22 .0
042  LBL 4        | 42,21, 4
043  GSB 8        |    32  8
044  5            |        5
045  0            |        0
046  *            |       20
047  STO (i)      |   44  24
048  ISG I        | 42, 6,25
049  GTO 3        |    22  3
050  RTN          |   43  32
051  LBL 5        | 42,21, 5
052  GSB 8        |    32  8
053  5            |        5
054  0            |        0
055  /            |       10
056  STO (i)      |   44  24
057  ISG I        | 42, 6,25
058  GTO 3        |    22  3
059  RTN          |   43  32
060  GTO 7        |    22  7
061  LBL A        | 42,21,11
062  ENG 3        | 42, 9, 3
063  SF 0         | 43, 4, 0
064  STO .9       |    44 .9
065  x&amp;lt;&amp;gt;y         |       34
066  TEST 2       | 43,30, 2
067  CF 0         | 43, 5, 0
068  ABS          |   43  16
069  STO 0        |    44  0
070  GSB 6        |    32  6
071  LBL 1        | 42,21, 1
072  RCL I        |   45  25
073  INT          |   43  44
074  GSB 0        |    32  0
075  F? 0         | 43, 6, 0
076  1/x          |       15
077  STO (i)      |   44  24
078  ISG I        | 42, 6,25
079  GTO 1        |    22  1
080  GTO 7        |    22  7
081  LBL 0        | 42,21, 0
082  2            |        2
083  *            |       20
084  1            |        1
085  -            |       30
086  1            |        1
087  8            |        8
088  0            |        0
089  *            |       20
090  RCL 0        |    45  0
091  2            |        2
092  *            |       20
093  /            |       10
094  SIN          |       23
095  2            |        2
096  *            |       20
097  RTN          |   43  32

&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;UPDATED \&amp;quot;Butterworth\&amp;quot; program 12\/2\/22&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;updated_butterworth_program_12_2_22&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:10,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;11833-16037&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;dump&quot;&gt;Dump&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;################################

DM15_M1B
00  01040000000003  01750000000002  01750000000002  00000000000000
04  08200000910000  00000000000008  0000000000000c  00002000009eae
08  00000000000000  2faf8bf9fe2280  be220040bcaf80  00000000000000
10  00000000000000  00000000000000  00000000000000  06283185308000
14  f7365289446075  1b2d2d2d2d2d2d  000000000007f2  000000000003ff
18  00000000000000  0000000000007f  00000000a00000  01924950591000
1c  01924950591000  01000000000001  05000000000001  02500000000003
20  01800000000002  00000000000000  00000000000000  00000000000000
f0  00000000000000  00000000000000  b23344fcc3f0f2  bcfdfaf133fbf1
f4  43fda2cff182cf  f142cafd0ab2c3  fcf0f2bcfdfaf1  32fbf1420bb2fd
f8  fbf132faf142cc  fdf0f20cb2fcf0  f1bcfdc3f3c6f1  fdf0f5ba0db2ca
fc  fcf0f5fcc3f3c6  f1ccfdf0f10eb2  c3fcf0f2bcfdfa  f1c5fbf1c1c100
A: 08200000910000  B: 08200000910eae  C: 00002000009eae
S: 00000100000000
M: 00000000000990  N: 08200000000990  G: 19
&lt;/pre&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_2d13a53cccf5c8b46f606f7b278e4407_5&quot;&gt;Dump above decoded @ Swiss Micros &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_2d13a53cccf5c8b46f606f7b278e4407_5&quot;&gt;&lt;pre class=&quot;code&quot;&gt;
# https://technical.swissmicros.com/decoders/nut/
#
001  LBL 0        | 42,21, 0
002  ENTER        |       36
003  ENTER        |       36
004  1            |        1
005  -            |       30
006  x&amp;lt;&amp;gt;y         |       34
007  1            |        1
008  +            |       40
009  /            |       10
010  LOG          |   43  13
011  2            |        2
012  0            |        0
013  *            |       20
014  CHS          |       16
015  RTN          |   43  32
016  LBL E        | 42,21,15
017  1            |        1
018  0            |        0
019  /            |       10
020  10^x         |       13
021  1            |        1
022  EEX          |       26
023  3            |        3
024  CHS          |       16
025  *            |       20
026  5            |        5
027  0            |        0
028  *            |       20
029  sqrt         |       11
030  RTN          |   43  32
031  LBL D        | 42,21,14
032  x^2          |   43  11
033  5            |        5
034  0            |        0
035  /            |       10
036  1            |        1
037  EEX          |       26
038  3            |        3
039  CHS          |       16
040  /            |       10
041  LOG          |   43  13
042  1            |        1
043  0            |        0
044  *            |       20
045  RTN          |   43  32
046  LBL C        | 42,21,13
047  2            |        2
048  0            |        0
049  /            |       10
050  10^x         |       13
051  STO 2        |    44  2
052  1            |        1
053  +            |       40
054  RCL 2        |    45  2
055  1            |        1
056  -            |       30
057  /            |       10
058  RTN          |   43  32
059  LBL B        | 42,21,12
060  STO 2        |    44  2
061  1            |        1
062  -            |       30
063  RCL 2        |    45  2
064  1            |        1
065  +            |       40
066  /            |       10
067  LOG          |   43  13
068  2            |        2
069  0            |        0
070  *            |       20
071  CHS          |       16
072  RTN          |   43  32
073  LBL A        | 42,21,11
074  /            |       10
075  sqrt         |       11
076  STO 2        |    44  2
077  1            |        1
078  RCL+2        | 45,40, 2
079  1            |        1
080  RCL-2        | 45,30, 2
081  /            |       10
082  STO 3        |    44  3
083  1            |        1
084  -            |       30
085  RCL 3        |    45  3
086  1            |        1
087  +            |       40
088  /            |       10
089  LOG          |   43  13
090  2            |        2
091  0            |        0
092  CHS          |       16
093  *            |       20
094  STO 4        |    44  4
095  RCL 3        |    45  3
096  RTN          |   43  32
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Dump&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dump&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:12,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;16038-19936&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;dump1&quot;&gt;Dump&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;
######################################################


DM15
00  01544068044001  01544068044001  01544068044001  00000000000000
04  1154407ffff000  00000000000008  0000000000000c  00000000000eae
08  00000000000000  362f0d9e8a808f  00000000002a00  00000000000000
10  00000000000000  00000000000000  00000000000000  02000000000001
14  f0000000000027  c0d2d2d2d2d2d2  000000000004f8  00000000000000
18  00000000000000  0000000000007f  00000000a00000  00000000000000
c0  01406828223000  01406828223000  01544068044001  00000000000000
f8  000000b23344fc  c3f0f2bcfdfaf1  33fbf143fda2cf  f182cff142cafd
fc  0ab2c3fcf0f2bc  fdfaf132fbf142  0bb2fdfbf132fa  f142ccfdf0f20c
A: 1154407ffff000  B: 1154407ffffeae  C: 00000000000eae
S: 00000000000000
M: 15440680436000  N: 01544068044001  G: 04
&lt;/pre&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_2d13a53cccf5c8b46f606f7b278e4407_6&quot;&gt;Decode of Dump above &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_2d13a53cccf5c8b46f606f7b278e4407_6&quot;&gt;&lt;pre class=&quot;code&quot;&gt;#
001  LBL C        | 42,21,13
002  2            |        2
003  0            |        0
004  /            |       10
005  10^x         |       13
006  STO 2        |    44  2
007  1            |        1
008  +            |       40
009  RCL 2        |    45  2
010  1            |        1
011  -            |       30
012  /            |       10
013  RTN          |   43  32
014  LBL B        | 42,21,12
015  STO 2        |    44  2
016  1            |        1
017  -            |       30
018  RCL 2        |    45  2
019  1            |        1
020  +            |       40
021  /            |       10
022  LOG          |   43  13
023  2            |        2
024  0            |        0
025  *            |       20
026  CHS          |       16
027  RTN          |   43  32
028  LBL A        | 42,21,11
029  /            |       10
030  sqrt         |       11
031  STO 2        |    44  2
032  1            |        1
033  RCL+2        | 45,40, 2
034  1            |        1
035  RCL-2        | 45,30, 2
036  /            |       10
037  STO 3        |    44  3
038  1            |        1
039  -            |       30
040  RCL 3        |    45  3
041  1            |        1
042  +            |       40
043  /            |       10
044  LOG          |   43  13
045  2            |        2
046  0            |        0
047  CHS          |       16
048  *            |       20
049  STO 4        |    44  4
050  RCL 3        |    45  3
051  RTN          |   43  32
########################################################################

&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Dump&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dump1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:14,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;19937-22359&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit10&quot; id=&quot;dump_23_12_21&quot;&gt;Dump 23/12/21&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;### 23/12/21
# A = Stack Y -&amp;gt; Ref, Stack X -&amp;gt;Fwd -&amp;gt; [f][A] -&amp;gt; Stack Y = RL, Stack X = SWR
# B = SWR -&amp;gt; RL
# C = RL -&amp;gt; SWR
# D = PiAttn : (y = attn, x = Zo) -&amp;gt; [f][D] -&amp;gt; (y = series R, x = shunt Rs)
# E = Fibonacci Number x = n -&amp;gt; f(n)
# 


DM15_M1B
00  03400000000001  01000000000001  08000000000000  00000000000000
04  155000000ff000  00000000000008  0000000000000c  00002000010eae
08  00000000000000  2faf0bde7aa28f  000080bcbcaf80  00000000000000
10  00000000000000  01000000000001  00000000000000  03400000000001
14  f7365289446057  1b2d2d2d2d2d2d  000000000001f1  00000000000000
18  00000000000000  0000000000007f  00000000a00000  01387265622000
1c  01387265622000  01579783596001  05000000000001  02500000000003
20  01800000000002  00000000000000  00000000000000  00000000000000
f0  00000000000000  000000000000b2  3344fcc3f0f2bc  fdfaf133fbf143
f4  fda2cff182cff1  42cafd0ab2c3fc  f0f2bcfdfaf132  fbf1420bb2fdfb
f8  f132faf142ccfd  f0f20cb2333444  c0cffdc2cff2fb  ba32f143c0cffd
fc  a2cff182cff142  ccfdc3f0f241c5  400db21182c5b1  fa01f0c1f1400e
A: 155000000ff000  B: 155000000ffeae  C: 00002000010eae
S: 00000000000000
M: 00000000000000  N: 05500000000001  G: 06
&lt;/pre&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_2d13a53cccf5c8b46f606f7b278e4407_7&quot;&gt;Decode of dump above &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_2d13a53cccf5c8b46f606f7b278e4407_7&quot;&gt;&lt;pre class=&quot;code&quot;&gt;
# 
#
001  LBL E        | 42,21,15
002  STO 0        |    44  0
003  1            |        1
004  ENTER        |       36
005  0            |        0
006  LBL 1        | 42,21, 1
007  +            |       40
008  LSTx         |   43  36
009  x&amp;lt;&amp;gt;y         |       34
010  DSE 0        | 42, 5, 0
011  GTO 1        |    22  1
012  RTN          |   43  32
013  LBL D        | 42,21,14
014  STO 0        |    44  0
015  x&amp;lt;&amp;gt;y         |       34
016  STO 1        |    44  1
017  2            |        2
018  0            |        0
019  CHS          |       16
020  /            |       10
021  10^x         |       13
022  STO 2        |    44  2
023  1            |        1
024  RCL+2        | 45,40, 2
025  1            |        1
026  RCL-2        | 45,30, 2
027  /            |       10
028  RCL*0        | 45,20, 0
029  STO 3        |    44  3
030  1            |        1
031  RCL 2        |    45  2
032  x^2          |   43  11
033  -            |       30
034  2            |        2
035  RCL*2        | 45,20, 2
036  /            |       10
037  RCL*0        | 45,20, 0
038  STO 4        |    44  4
039  RCL 4        |    45  4
040  RCL 3        |    45  3
041  RTN          |   43  32
042  LBL C        | 42,21,13
043  2            |        2
044  0            |        0
045  /            |       10
046  10^x         |       13
047  STO 2        |    44  2
048  1            |        1
049  +            |       40
050  RCL 2        |    45  2
051  1            |        1
052  -            |       30
053  /            |       10
054  RTN          |   43  32
055  LBL B        | 42,21,12
056  STO 2        |    44  2
057  1            |        1
058  -            |       30
059  RCL 2        |    45  2
060  1            |        1
061  +            |       40
062  /            |       10
063  LOG          |   43  13
064  2            |        2
065  0            |        0
066  *            |       20
067  CHS          |       16
068  RTN          |   43  32
069  LBL A        | 42,21,11
070  /            |       10
071  sqrt         |       11
072  STO 2        |    44  2
073  1            |        1
074  RCL+2        | 45,40, 2
075  1            |        1
076  RCL-2        | 45,30, 2
077  /            |       10
078  STO 3        |    44  3
079  1            |        1
080  -            |       30
081  RCL 3        |    45  3
082  1            |        1
083  +            |       40
084  /            |       10
085  LOG          |   43  13
086  2            |        2
087  0            |        0
088  CHS          |       16
089  *            |       20
090  STO 4        |    44  4
091  RCL 3        |    45  3
092  RTN          |   43  32
=======================================================================
#
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Dump 23\/12\/21&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dump_23_12_21&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:16,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;22360-26372&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit11&quot; id=&quot;dump_10_2_22&quot;&gt;Dump 10/2/22&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;
#
#    10 Feb 2022
#    Butterworth Filter designer
#    enter filter order (n) into Y register (+ = HPF, - = LPF) , 
#    enter Freq into X register
#    execute program with [f] [A]
#    Values for each component are obtained from registers R1 -&amp;gt; Rn 

DM15_M1B
00  02251666050002  03218976343993  03218976343993  00000000000000
04  16640fff000000  00000000000008  0000000000000c  00012012012eae
08  00000000000000  36800bdf7e820f  bef20200000000  00000000000000
10  05000000000000  03218976343993  06005000000000  02000000000000
14  f0000000012377  1b2d2d2d2d2d2d  000000000005f0  00000000000000
18  00000000000000  0000000000007f  00000000a00300  04918158214989
1c  09947183945992  04918158214989  03218976343993  01103787069994
20  04547284088990  01103787069994  04026420096990  08509227540993
24  02583151782990  04031222906993  05481145266989  07025940305993
28  09506412356989  00000000000000  00000000000000  00000000000000
2c  04000000000007  00000000000000  00000000000000  00000000000000
f0  0000b2fcf2c7fd  fcf230fcf0f8f1  fbf1fcf2001811  9596ce50ff20eb
f4  87012640b340ff  72c56930ff83ff  0a17129596fdfc  b6fcf25986eb87
f8  022608b2139596  fdf0f58605b213  9596fcf0f58604  10ff1950ffa3fd
fc  f2eb87032607b2  97faf1fdf0f0f0  f13006b21514ec  00ffb21415ec09
A: 16640fff000000  B: 16640fff000eae  C: 00012012012eae
S: 00000100000000
M: 02000000000001  N: 06639528095001  G: 23
&lt;/pre&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_2d13a53cccf5c8b46f606f7b278e4407_8&quot;&gt;Decode of dump above &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_2d13a53cccf5c8b46f606f7b278e4407_8&quot;&gt;&lt;pre class=&quot;code&quot;&gt;=====================================================================
001  LBL 9        | 42,21, 9
002  x=0          |   43  20
003  GTO 5        |    22  5
004  GTO 4        |    22  4
005  RTN          |   43  32
006  LBL .0       | 42,21,.0
007  x=0          |   43  20
008  GTO 4        |    22  4
009  GTO 5        |    22  5
010  RTN          |   43  32
011  LBL 6        | 42,21, 6
012  RCL 0        |    45  0
013  1            |        1
014  0            |        0
015  0            |        0
016  0            |        0
017  /            |       10
018  1            |        1
019  +            |       40
020  STO I        |   44  25
021  RTN          |   43  32
022  LBL 7        | 42,21, 7
023  GSB 6        |    32  6
024  LBL 3        | 42,21, 3
025  RCL I        |   45  25
026  INT          |   43  44
027  2            |        2
028  /            |       10
029  FRAC         |   42  44
030  F? 0         | 43, 6, 0
031  GTO 9        |    22  9
032  GTO .0       |    22 .0
033  LBL 4        | 42,21, 4
034  RCL (i)      |   45  24
035  5            |        5
036  0            |        0
037  *            |       20
038  STO (i)      |   44  24
039  ISG I        | 42, 6,25
040  GTO 3        |    22  3
041  RTN          |   43  32
042  LBL 5        | 42,21, 5
043  RCL (i)      |   45  24
044  5            |        5
045  0            |        0
046  /            |       10
047  STO (i)      |   44  24
048  ISG I        | 42, 6,25
049  GTO 3        |    22  3
050  RTN          |   43  32
051  LBL 8        | 42,21, 8
052  GSB 6        |    32  6
053  LBL 2        | 42,21, 2
054  RCL I        |   45  25
055  INT          |   43  44
056  RCL (i)      |   45  24
057  RCL .9       |    45 .9
058  2            |        2
059  *            |       20
060  PI           |   43  26
061  *            |       20
062  /            |       10
063  STO (i)      |   44  24
064  ISG I        | 42, 6,25
065  GTO 2        |    22  2
066  GTO 7        |    22  7
067  LBL A        | 42,21,11
068  ENG 3        | 42, 9, 3
069  SF 0         | 43, 4, 0
070  STO .9       |    44 .9
071  x&amp;lt;&amp;gt;y         |       34
072  TEST 2       | 43,30, 2
073  CF 0         | 43, 5, 0
074  ABS          |   43  16
075  STO 0        |    44  0
076  GSB 6        |    32  6
077  LBL 1        | 42,21, 1
078  RCL I        |   45  25
079  INT          |   43  44
080  GSB 0        |    32  0
081  F? 0         | 43, 6, 0
082  1/x          |       15
083  STO (i)      |   44  24
084  ISG I        | 42, 6,25
085  GTO 1        |    22  1
086  GTO 8        |    22  8
087  LBL 0        | 42,21, 0
088  2            |        2
089  *            |       20
090  1            |        1
091  -            |       30
092  1            |        1
093  8            |        8
094  0            |        0
095  *            |       20
096  RCL 0        |    45  0
097  2            |        2
098  *            |       20
099  /            |       10
100  SIN          |       23
101  2            |        2
102  *            |       20
103  RTN          |   43  32&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Dump 10\/2\/22&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dump_10_2_22&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:18,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;26373-30910&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit12&quot; id=&quot;dump_07_02_25&quot;&gt;Dump 07/02/25&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;
###############
# 7 Feb 2025
# LBL A = y : ref/ x : fwd fA -&amp;gt; y : RL / x : SWR
# LBL B = SWR -&amp;gt; RL
# LBL C = RL -&amp;gt; SWR
# LBL D = Gas calc (tare ENTER gross ENTER cylinder &amp;quot;full gas weight&amp;quot; (i.e. 6/13/19kg) f D -&amp;gt; percentage full
# LBL E = DTT Freq &amp;lt;-&amp;gt; Channel conversion

DM15_M1B
00  09806650000000  02200000000001  03060000000002  00000000000000
04  066261ff934000  00000000000008  0000000000000c  00000991000eae
08  00000000000000  39a287df7e2200  dba00240000000  00000000000000
10  01579783596001  01579783596001  00000000000000  08000000000000
14  f0000000000014  1b2d2d2d2d2d2d  000000000005f0  00000000000000
18  00000000000000  0000000000007f  00000000a00000  01387265619000
1c  01387265622000  01579783596001  00000000000000  00000000000000
f0  0000b2fdfbf1c5  faf1c1c1ccfdf0  f20cb2c3fcf0f2  bcfdfaf1c5fbf1
f4  c1c10bb23344c3  fcf0f2bcfdfaf1  33fbf143fda2cf  f182cff142cafd
f8  0ab2fcf0f0f1fd  32fbc531fcf4f5  f4c0fafdf6f1fc  f0f0f1a3c5ebc1
fc  40c441c4420db2  faf6f0f3fcf809  b2fdf8fbf6f0f3  1978c5f6f0f30e
A: 066261ff934000  B: 066261ff934eae  C: 00000991000eae
S: 00000100000000
M: 03060000000002  N: 06626070150966  G: 04
&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Dump 07\/02\/25&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dump_07_02_25&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:20,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;30911-32090&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit13&quot; id=&quot;work_tools_23_01_26&quot;&gt;Work Tools 23/01/26&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;
###################################
#
#   Label A = DTT : Freq / Channel conversion
#   Label B = Gas : Tare/Gross/Size to calculate percentage-full
#   Label C = Return Loss to SWR conversion
#   Label D = SWR to Return Loss conversion
#   Label E = Reflected &amp;amp; Forward power to Return Loss and SWR calculation

DM15_M1B
00  03060000000002  04925000000001  04925000000001  00000000000000
04  2698000000f000  00000000000008  0000000000000c  00002001001eae
08  00000000000000  bfaf0bfe7e228f  02f082bcbcaf80  00000000000000
10  04002000000001  03650000000001  06000000000000  03060000000002
14  f0000000000100  1b2d2d2d2d2d2d  000000000005f0  00000000000000
18  00000000000000  0000000000007f  00000000a00000  01622214211999
1c  01387265622000  01579783596001  05000000000000  03000000000000
20  00000000000000  00000000000000  04000000000000  08000000000000
24  02100000000001  00000000000000  00000000000000  00000000000000
f0  0000b2faf6f0f3  fcf809b2fdf8fb  f6f0f31978c5f6  f0f30ab2fcf0f0
f4  f1fd32fbc531fc  f4f5f4c0fafdf6  f1fcf0f0f1a3c5  ebc140c441c442
f8  0bb2c3fcf0f2bc  fdfaf1c5fbf1c1  c10db2fdfbf1c5  faf1c1c1ccfdf0
fc  f20cb23344c3fc  f0f2bcfdfaf133  fbf143fda2cff1  82cff142cafd0e
A: 2698000000f000  B: 2698000000feae  C: 00002001001eae
S: 00000000000000
M: 06980000000000  N: 06980000000002  G: 06
&lt;/pre&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_2d13a53cccf5c8b46f606f7b278e4407_9&quot;&gt;Decoded Dump &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_2d13a53cccf5c8b46f606f7b278e4407_9&quot;&gt;&lt;pre class=&quot;code&quot;&gt;001  LBL E        | 42,21,15
002  /            |       10
003  sqrt         |       11
004  STO 2        |    44  2
005  1            |        1
006  RCL+2        | 45,40, 2
007  1            |        1
008  RCL-2        | 45,30, 2
009  /            |       10
010  STO 3        |    44  3
011  1            |        1
012  -            |       30
013  RCL 3        |    45  3
014  1            |        1
015  +            |       40
016  /            |       10
017  LOG          |   43  13
018  2            |        2
019  0            |        0
020  *            |       20
021  CHS          |       16
022  STO 4        |    44  4
023  RCL 3        |    45  3
024  RTN          |   43  32
025  LBL C        | 42,21,13
026  2            |        2
027  0            |        0
028  /            |       10
029  10^x         |       13
030  ENTER        |       36
031  ENTER        |       36
032  1            |        1
033  +            |       40
034  x&amp;lt;&amp;gt;y         |       34
035  1            |        1
036  -            |       30
037  /            |       10
038  RTN          |   43  32
039  LBL D        | 42,21,14
040  ENTER        |       36
041  ENTER        |       36
042  1            |        1
043  -            |       30
044  x&amp;lt;&amp;gt;y         |       34
045  1            |        1
046  +            |       40
047  /            |       10
048  LOG          |   43  13
049  2            |        2
050  0            |        0
051  *            |       20
052  CHS          |       16
053  RTN          |   43  32
054  LBL B        | 42,21,12
055  STO 2        |    44  2
056  R_down       |       33
057  STO 1        |    44  1
058  R_down       |       33
059  STO 0        |    44  0
060  ENTER        |       36
061  INT          |   43  44
062  x&amp;lt;&amp;gt;y         |       34
063  FRAC         |   42  44
064  1            |        1
065  0            |        0
066  0            |        0
067  *            |       20
068  1            |        1
069  6            |        6
070  /            |       10
071  +            |       40
072  .            |       48
073  4            |        4
074  5            |        5
075  4            |        4
076  *            |       20
077  RCL 1        |    45  1
078  x&amp;lt;&amp;gt;y         |       34
079  -            |       30
080  RCL 2        |    45  2
081  /            |       10
082  1            |        1
083  0            |        0
084  0            |        0
085  *            |       20
086  RTN          |   43  32
087  LBL A        | 42,21,11
088  3            |        3
089  0            |        0
090  6            |        6
091  x&amp;lt;&amp;gt;y         |       34
092  TEST 8       | 43,30, 8
093  GTO 9        |    22  9
094  3            |        3
095  0            |        0
096  6            |        6
097  -            |       30
098  8            |        8
099  /            |       10
100  RTN          |   43  32
101  LBL 9        | 42,21, 9
102  8            |        8
103  *            |       20
104  3            |        3
105  0            |        0
106  6            |        6
107  +            |       40
108  RTN          |   43  32

&lt;/pre&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;LBL A&lt;/code&gt; = DTT  &lt;code&gt;MHz&lt;/code&gt; or &lt;code&gt;Channel No&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;A&lt;/kbd&gt; → &lt;code&gt;Channel No&lt;/code&gt; or &lt;code&gt;MHz&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;LBL B&lt;/code&gt; = Gas :  &lt;code&gt;tare weight&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; &lt;code&gt;gross kg&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; &lt;code&gt;cylinder size kg&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;B&lt;/kbd&gt; → Fill percentage &lt;code&gt;%&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;LBL C&lt;/code&gt; = &lt;code&gt;Return Loss dB&lt;/code&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;C&lt;/kbd&gt; → &lt;code&gt;SWR&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;LBL D&lt;/code&gt; = &lt;code&gt;SWR&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;D&lt;/kbd&gt; → &lt;code&gt;Return Loss dB&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;LBL E&lt;/code&gt; = &lt;code&gt;Reflected Power&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; &lt;code&gt;Forward Power&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;E&lt;/kbd&gt; → &lt;code&gt;Return Loss dB&lt;/code&gt; (y),  &lt;code&gt;SWR&lt;/code&gt; (x)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Work Tools 23\/01\/26&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;work_tools_23_01_26&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:21,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;32091-37190&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit14&quot; id=&quot;solve_with_an_integral&quot;&gt;Solve with an Integral&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; from HP34C manual pp233&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Solves Bessel function for Bessel-zero mod. index value&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;
DM15_M1B
00  02404827787000  00000000000000  01570796327996  30001fd33ff996
04  024048fffff000  00000000000008  0000000000000c  40999997000eae
08  00000000000000  2fbf8db6e42080  00000000000040  00000000000000
10  02404827787000  00000000000000  00000000000000  95139629874993
14  00000000000000  1b2d2d2d2d2d2d  000000000006fd  00000000000000
18  00000000000000  0000000000007f  00000000a00000  00000000000000
fc  00000000000000  00b2fdb6c8fc30  c703b2b170a2ed  b333efb6f0400a
A: 024048fffff000  B: 024048fffffeae  C: 40999997000eae
S: 00000000000000
M: 000000000060fd  N: 02404827787000  G: 04

&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;

LBL A
STO 0
0
PI
∫ 3
ABS
         // THIS IS A METHOD OF RESTRICTING SOLVE TO A CERTAIN ACCURACY TO REDUCE THE TIME..
x&amp;lt;=y?    // y has the Integration accuracy estimate. We test if our &amp;quot;zero&amp;quot; is &amp;lt;= this. No point in trying further. Limits search time
CLx      // if our current guess for &amp;quot;zero&amp;quot; is better than the integration accuracy estimate we wipe &amp;quot;x&amp;quot; to an &amp;quot;actual&amp;quot; zero so that the SOLVE will complete
x≠0?     // if it wasn&amp;#039;t &amp;quot;zero&amp;quot; we replace the last estimate of the integration and the SOLVE continues
LASTx
RTN

LBL 3
SIN
RCL 0
*
COS
PI
/
RTN
&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; be in &lt;code&gt;RAD&lt;/code&gt; angle mode&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; put initial guesses of &lt;kbd class=&quot;__keyboard&quot;&gt;0&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;1&lt;/kbd&gt; and then &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;SOLVE&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;A&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; first bessel zero at mod index &lt;code&gt;2.405&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Solve with an Integral&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;solve_with_an_integral&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:23,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;37191-38713&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit15&quot; id=&quot;program_dumps_for_lf15c&quot;&gt;Program dumps for LF15C&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Program dumps for LF15C&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;program_dumps_for_lf15c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:25,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;38714-38750&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit16&quot; id=&quot;firmware_details&quot;&gt;Firmware details&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:3rd:lf15c&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:3rd:lf15c&quot; data-wiki-id=&quot;public:calculator:3rd:lf15c&quot;&gt;LF15C - firmware for the DM15&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Start of thread : &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046.html&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046.html&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.hpmuseum.org/forum/thread-20046.html&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Serial Port dump info : &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046-post-194697.html#pid194697&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046-post-194697.html#pid194697&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.hpmuseum.org/forum/thread-20046-post-194697.html#pid194697&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Serial Port settings&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Rate : 57600&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Data : 8 bit&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Stop : 1 bit&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Parity : None&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Flow Control : None&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; To extract a dump from calculator press and hold &lt;kbd class=&quot;__keyboard&quot;&gt;STO&lt;/kbd&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; the non-zero digits can be copy/pasted into a text file for storage&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; To upload a previously saved dump &lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; copy it to clipboard and then &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; press and hold &lt;kbd class=&quot;__keyboard&quot;&gt;RCL&lt;/kbd&gt; until the terminal shows &lt;code&gt;Paste PrgMemory:&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; in Putty &lt;kbd class=&quot;__keyboard&quot;&gt;Shift&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;Fn&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;Insert&lt;/kbd&gt; to paste clipboard text into terminal&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Firmware details&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;firmware_details&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:25,&amp;quot;secid&amp;quot;:16,&amp;quot;range&amp;quot;:&amp;quot;38751-39508&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit17&quot; id=&quot;butterworth_filter&quot;&gt;Butterworth Filter&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

43 8 17 255 17 19 30 39 103 39 40 86 43 9 118 12 7 5 7 4 86 43 10 118 12 7 4 7 5 86 43 6 17 0 26 25 25 25 40 26 37 13 254 86 43 7 6 6 43 3 17 254 93 30 40 53 115 0 7 9 7 10 43 4 6 8 31 25 39 13 255 75 254 7 3 86 43 5 6 8 31 25 40 13 255 75 254 7 3 86 7 7 43 100 76 3 107 0 13 19 14 118 3 111 0 104 13 0 6 6 43 1 17 254 93 6 0 115 0 20 13 255 75 254 7 1 7 7 43 0 30 39 26 38 26 32 25 39 17 0 30 39 40 11 30 39 86 0 

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Order n (+ is HPF, - is LPF) → y&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Frequency (Hz) → X&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;A&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Results are in R01 … R0n&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Butterworth Filter&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;butterworth_filter&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:25,&amp;quot;secid&amp;quot;:17,&amp;quot;range&amp;quot;:&amp;quot;39509-40087&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit18&quot; id=&quot;benchmarks&quot;&gt;Benchmarks&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;savage_8-queens_hp_maths_and_hp_trig&quot;&gt;Savage, 8-queens, HP Maths and HP Trig&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;

43 77 31 35 29 30 35 13 0 25 13 2 43 78 17 0 11 91 15 95 19 99 88 8 26 121 2 7 78 86 43 104 25 13 2 26 29 25 26 30 34 27 23 35 13 0 30 29 34 27 31 13 1 43 2 17 1 17 0 39 17 1 38 17 0 40 17 1 39 34 29 31 40 4 26 121 2 7 2 86 43 88 54 32 13 10 43 80 17 0 17 10 118 6 7 84 26 121 0 17 0 13 254 17 10 13 255 43 81 26 121 11 17 0 13 9 43 82 26 122 9 17 9 118 12 7 80 17 0 13 254 17 255 17 9 13 254 10 17 255 38 118 12 7 83 104 17 0 17 9 38 118 7 7 82 43 83 17 0 13 254 26 122 255 17 255 118 1 7 81 26 122 0 17 0 118 1 7 83 43 84 17 11 58 86 43 100 112 30 27 36 36 13 0 26 22 22 22 43 101 84 4 88 8 99 19 37 71 0 7 101 58 86 0 

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:benchmarking:start#the_savage_benchmark&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:benchmarking:start&quot; data-wiki-id=&quot;public:calculator:benchmarking:start&quot;&gt;Savage&lt;/a&gt; is prog &lt;code&gt;A&lt;/code&gt; : &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;A&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:benchmarking:start#n-queens&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:benchmarking:start&quot; data-wiki-id=&quot;public:calculator:benchmarking:start&quot;&gt;8-Queens&lt;/a&gt; is prog &lt;code&gt;88&lt;/code&gt; : &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;LBL&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;8&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;8&lt;/kbd&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Both the above use &lt;code&gt;runTime&lt;/code&gt; to measure execution time - returns result in y and time in x&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:benchmarking:start#hp_museum_maths_benchmark&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:benchmarking:start&quot; data-wiki-id=&quot;public:calculator:benchmarking:start&quot;&gt;HP Museum Maths Benchmark&lt;/a&gt; is prog &lt;code&gt;E&lt;/code&gt; : &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;E&lt;/kbd&gt;. &lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Run for 60 seconds, press &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt; and find result in reg 02 &lt;kbd class=&quot;__keyboard&quot;&gt;RCL&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;0&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;2&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:benchmarking:start#hp_museum_trig_benchmark&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:benchmarking:start&quot; data-wiki-id=&quot;public:calculator:benchmarking:start&quot;&gt;HP Museum Trig Benchmark&lt;/a&gt; is prog &lt;code&gt;77&lt;/code&gt; :  &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;LBL&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;7&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;7&lt;/kbd&gt;. &lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Run for 60 seconds, press &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt; and find result in reg 02 &lt;kbd class=&quot;__keyboard&quot;&gt;RCL&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;0&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;2&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Benchmarks&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;benchmarks&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:25,&amp;quot;secid&amp;quot;:18,&amp;quot;range&amp;quot;:&amp;quot;40088-41572&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit19&quot; id=&quot;work_tools&quot;&gt;Work Tools&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

43 104 40 4 13 2 26 125 2 26 126 2 40 13 3 26 38 17 3 26 37 40 92 30 25 39 24 17 3 86 43 103 22 22 26 38 14 26 37 40 92 30 25 39 24 86 43 102 30 25 40 12 22 22 26 37 14 26 38 40 86 43 101 13 2 10 13 1 10 13 0 22 93 14 53 26 25 25 39 26 35 40 37 29 27 31 27 39 17 1 14 38 17 2 40 26 25 25 39 86 43 100 34 25 31 14 118 8 7 1 32 39 34 25 35 37 86 43 1 34 25 35 38 32 40 86 0

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; LBL A = DTT (Channel ↔ Freq )&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; LBL B = Gas&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; LBL C = Return Loss → SWR&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; LBL D = SWR → Return Loss&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; LBL E = Reflected Power &amp;amp; Forward Power → Return Loss &amp;amp; SWR&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Work Tools&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;work_tools&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:25,&amp;quot;secid&amp;quot;:19,&amp;quot;range&amp;quot;:&amp;quot;41573-42155&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit20&quot; id=&quot;work_tools_benchmarks&quot;&gt;Work Tools &amp;amp; Benchmarks&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

43 55 31 35 29 30 35 13 0 25 13 2 43 56 17 0 11 91 15 95 19 99 88 8 26 121 2 7 56 86 43 44 25 13 2 26 29 25 26 30 34 27 23 35 13 0 30 29 34 27 31 13 1 43 45 17 1 17 0 39 17 1 38 17 0 40 17 1 39 34 29 31 40 4 26 121 2 7 45 86 43 88 54 32 13 10 43 80 17 0 17 10 118 6 7 84 26 121 0 17 0 13 254 17 10 13 255 43 81 26 121 11 17 0 13 9 43 82 26 122 9 17 9 118 12 7 80 17 0 13 254 17 255 17 9 13 254 10 17 255 38 118 12 7 83 104 17 0 17 9 38 118 7 7 82 43 83 17 0 13 254 26 122 255 17 255 118 1 7 81 26 122 0 17 0 118 1 7 83 43 84 17 11 58 86 43 66 112 30 27 36 36 13 0 26 22 22 22 43 67 84 4 88 8 99 19 37 71 0 7 67 58 86 43 104 40 4 13 2 26 125 2 26 126 2 40 13 3 26 38 17 3 26 37 40 92 30 25 39 24 17 3 86 43 103 22 22 26 38 14 26 37 40 92 30 25 39 24 86 43 102 30 25 40 12 22 22 26 37 14 26 38 40 86 43 101 13 2 10 13 1 10 13 0 22 93 14 53 26 25 25 39 26 35 40 37 29 27 31 27 39 17 1 14 38 17 2 40 26 25 25 39 86 43 100 34 25 31 14 118 8 7 1 32 39 34 25 35 37 86 43 1 34 25 35 38 32 40 86 0 0

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; LBL A = DTT (Channel ↔ Freq )&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; LBL B = Gas&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; LBL C = Return Loss → SWR&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; LBL D = SWR → Return Loss&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; LBL E = Reflected Power &amp;amp; Forward Power → Return Loss &amp;amp; SWR&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:benchmarking:start#the_savage_benchmark&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:benchmarking:start&quot; data-wiki-id=&quot;public:calculator:benchmarking:start&quot;&gt;Savage&lt;/a&gt; is prog is prog &lt;code&gt;66&lt;/code&gt; : &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;LBL&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;6&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;6&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:benchmarking:start#n-queens&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:benchmarking:start&quot; data-wiki-id=&quot;public:calculator:benchmarking:start&quot;&gt;8-Queens&lt;/a&gt; is prog &lt;code&gt;88&lt;/code&gt; : &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;LBL&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;8&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;8&lt;/kbd&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Both the above use &lt;code&gt;runTime&lt;/code&gt; to measure execution time - returns result in y and time in x&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:benchmarking:start#hp_museum_maths_benchmark&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:benchmarking:start&quot; data-wiki-id=&quot;public:calculator:benchmarking:start&quot;&gt;HP Museum Maths Benchmark&lt;/a&gt; is prog is prog &lt;code&gt;44&lt;/code&gt; : &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;LBL&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;4&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;4&lt;/kbd&gt; &lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Run for 60 seconds, press &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt; and find result in reg 02 &lt;kbd class=&quot;__keyboard&quot;&gt;RCL&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;0&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;2&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:benchmarking:start#hp_museum_trig_benchmark&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:benchmarking:start&quot; data-wiki-id=&quot;public:calculator:benchmarking:start&quot;&gt;HP Museum Trig Benchmark&lt;/a&gt; is prog &lt;code&gt;55&lt;/code&gt; :  &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;LBL&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;5&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;5&lt;/kbd&gt;. &lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Run for 60 seconds, press &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt; and find result in reg 02 &lt;kbd class=&quot;__keyboard&quot;&gt;RCL&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;0&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;2&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Work Tools &amp;amp; Benchmarks&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;work_tools_benchmarks&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:25,&amp;quot;secid&amp;quot;:20,&amp;quot;range&amp;quot;:&amp;quot;42156-44224&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit21&quot; id=&quot;dot_cross_uvec&quot;&gt;Dot/Cross/Uvec&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

43 12 22 104 40 86 43 11 13 99 10 13 98 55 17 99 39 17 98 17 99 55 39 38 30 78 40 86 43 10 13 98 10 13 99 17 98 55 39 17 98 17 99 55 39 37 30 40 86 0 0 

&lt;/p&gt;

&lt;p&gt;
* Dot Product of 2 complex numbers in y and x
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;|Y||X|Cosθ&lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; Y = Y&lt;sub&gt;re&lt;/sub&gt; + j Y&lt;sub&gt;im&lt;/sub&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; X = X&lt;sub&gt;re&lt;/sub&gt; + j X&lt;sub&gt;im&lt;/sub&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; Dot Product Y ⋅ X = Y&lt;sub&gt;re&lt;/sub&gt;X&lt;sub&gt;re&lt;/sub&gt; + Y&lt;sub&gt;im&lt;/sub&gt;X&lt;sub&gt;im&lt;/sub&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Another way without splitting the complex number into its real &amp;amp; imaginary parts&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Dot Product Y ⋅ X = (Y&lt;sup&gt;*&lt;/sup&gt;.X + Y.X&lt;sup&gt;*&lt;/sup&gt;) / 2&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;LBL&lt;/kbd&gt; &lt;code&gt;10&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Cross Product of 2 complex numbers in y and x&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;|Y||X|Sinθ&lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; Y = Y&lt;sub&gt;re&lt;/sub&gt; + j Y&lt;sub&gt;im&lt;/sub&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; X = X&lt;sub&gt;re&lt;/sub&gt; + j X&lt;sub&gt;im&lt;/sub&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; Cross Product Y ⊗ X = Y&lt;sub&gt;re&lt;/sub&gt;X&lt;sub&gt;im&lt;/sub&gt; - Y&lt;sub&gt;im&lt;/sub&gt;X&lt;sub&gt;re&lt;/sub&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Another way without splitting the complex number into its real &amp;amp; imaginary parts&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Cross Product Y ⊗ X = (Y&lt;sup&gt;*&lt;/sup&gt;.X - Y.X&lt;sup&gt;*&lt;/sup&gt;) / 2i&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;LBL&lt;/kbd&gt; &lt;code&gt;11&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Unit Vector of a complex number in x : &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;LBL&lt;/kbd&gt; &lt;code&gt;12&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;dot_product&quot;&gt;Dot Product&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;LBL 10
STO 98
R↓
STO 99
RCL 98
f (i)
x
RCL 98
RCL 99
f (i)
x
+
2
/
RTN
&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;cross_product&quot;&gt;Cross Product&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;LBL 11
STO 99
R↓
STO 98
f (i)
RCL 99
x
RCL 98
RCL 99
f (i)
x
-
2
f Re&amp;lt;&amp;gt;Im
/
RTN
&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;uvec&quot;&gt;UVEC&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;
LBL 12
ENTER
ABS
/
RTN
&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Dot\/Cross\/Uvec&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dot_cross_uvec&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:25,&amp;quot;secid&amp;quot;:21,&amp;quot;range&amp;quot;:&amp;quot;44225-45709&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit22&quot; id=&quot;work_tools_dot_cross_uvec&quot;&gt;Work Tools &amp;amp; Dot/Cross/UVEC&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;

43 104 40 4 13 2 26 125 2 26 126 2 40 13 3 26 38 17 3 26 37 40 92 30 25 39 24 13 4 17 3 86 43 102 30 25 40 12 22 22 26 37 14 26 38 40 86 43 103 22 22 26 38 14 26 37 40 92 30 25 39 24 86 43 101 13 2 10 13 1 10 13 0 22 93 14 53 26 25 25 39 26 35 40 37 29 27 31 27 39 17 1 14 38 17 2 40 26 25 25 39 86 43 100 34 25 35 14 118 9 7 9 34 25 35 38 32 40 86 43 9 32 39 34 25 35 37 86 43 12 22 104 40 86 43 11 13 99 10 13 98 55 17 99 39 17 98 17 99 55 39 38 30 78 40 86 43 10 13 98 10 13 99 17 98 55 39 17 98 17 99 55 39 37 30 40 86 0 0 

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;LBL A&lt;/code&gt; = DTT  &lt;code&gt;MHz&lt;/code&gt; or &lt;code&gt;Channel No&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;A&lt;/kbd&gt; → &lt;code&gt;Channel No&lt;/code&gt; or &lt;code&gt;MHz&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;LBL B&lt;/code&gt; = Gas :  &lt;code&gt;tare weight&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; &lt;code&gt;gross kg&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; &lt;code&gt;cylinder size kg&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;B&lt;/kbd&gt; → Fill percentage &lt;code&gt;%&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;LBL C&lt;/code&gt; = &lt;code&gt;Return Loss dB&lt;/code&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;C&lt;/kbd&gt; → &lt;code&gt;SWR&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;LBL D&lt;/code&gt; = &lt;code&gt;SWR&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;D&lt;/kbd&gt; → &lt;code&gt;Return Loss dB&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;LBL E&lt;/code&gt; = &lt;code&gt;Reflected Power&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; &lt;code&gt;Forward Power&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;E&lt;/kbd&gt; → &lt;code&gt;Return Loss dB&lt;/code&gt; (y),  &lt;code&gt;SWR&lt;/code&gt; (x)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;LBL 10&lt;/code&gt; = Dot Product&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;LBL 11&lt;/code&gt; = Cross Product&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;LBL 12&lt;/code&gt; = Unit Vector&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Work Tools &amp;amp; Dot\/Cross\/UVEC&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;work_tools_dot_cross_uvec&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:28,&amp;quot;secid&amp;quot;:22,&amp;quot;range&amp;quot;:&amp;quot;45710-46937&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit23&quot; id=&quot;solve_with_an_integral1&quot;&gt;Solve with an Integral&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; from HP34C manual pp233&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Solves Bessel function for Bessel-zero mod. index value&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; differs from the DM15L (HP15C) version because the Integration Accuracy estimate is &lt;em&gt;very small&lt;/em&gt; so the test of &lt;code&gt;x &amp;lt; = y?&lt;/code&gt; will never be true&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; instead we store a required &lt;code&gt;ACC&lt;/code&gt; value (much like in the HP42S/DM42) in R001 and test against &lt;em&gt;this&lt;/em&gt; instead&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;memory_dump&quot;&gt;Memory Dump&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;

43 100 13 0 25 103 79 3 104 17 1 118 8 98 118 1 102 86 43 3 11 17 0 39 15 103 40 86 0 0 

&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;code&quot;&gt;Code&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;

LBL A
STO 0
0
PI
∫ 3
ABS
RCL 1
x&amp;gt;y? // test if current guess (y) is better (lower) than our required accuracy (x)
CLx   // if it is, we&amp;#039;re near enough, put a real zero in x
x≠0   // if it isn&amp;#039;t zero we need to continue
LASTx // put back the last guess into x and the SOLVE goes on
RTN


LBL 3
SIN
RCL 0
*
COS
PI
/
RTN
&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; be in &lt;code&gt;RAD&lt;/code&gt; angle mode&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; put your &lt;code&gt;ACC&lt;/code&gt; value in &lt;code&gt;R001&lt;/code&gt; (e.g. 0.0001 or 0.00001)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; put initial guesses of &lt;kbd class=&quot;__keyboard&quot;&gt;1&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;2&lt;/kbd&gt; and then &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;SOLVE&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;A&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; first bessel zero at mod index &lt;code&gt;2.4048&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Solve with an Integral&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;solve_with_an_integral1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:28,&amp;quot;secid&amp;quot;:23,&amp;quot;range&amp;quot;:&amp;quot;46938-48072&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit24&quot; id=&quot;integrate_tests&quot;&gt;Integrate Tests&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
The 12 Integration examples from the PPC ROM handbook section &lt;code&gt;IG&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;

43 12 84 24 26 37 14 24 30 37 39 4 86 43 11 28 16 14 84 24 26 37 4 39 14 24 30 37 26 34 22 30 40 16 40 86 43 10 84 24 26 37 4 86 43 9 30 20 24 16 86 43 8 88 15 86 43 7 35 25 25 103 39 37 4 14 4 37 14 11 84 35 25 25 39 14 40 86 43 6 24 27 37 14 39 4 86 43 5 4 14 26 38 40 14 88 20 38 86 43 4 88 86 43 3 103 39 11 86 43 2 4 86 43 1 27 14 84 26 37 40 86 0 0

&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;SCI04&lt;/code&gt; display mode
&lt;/p&gt;

&lt;p&gt;
12 programs. Set limits and then execute &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;∫&lt;/kbd&gt; &lt;code&gt;prog number&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
For example for program 1 
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;0&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;1&lt;/kbd&gt;  &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;∫&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;0&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;1&lt;/kbd&gt; gives answer &lt;code&gt;3.1416&lt;/code&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Limits  0 → 1 answer 3.1416&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Limits  0 → 1 answer 6.6667 E-1&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Limits  0 → 1 answer 6.3662 E-1 (rads mode)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Limits  0 → 1 answer -1.000&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Limits  0 → 1 answer 3.6490 E-2&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Limits  0 → 2 answer 3.1416&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Limits  0 → π answer 2.1102 E1&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Limits  0 → 1 answer 5.0000 E-1 (rads mode)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Limits  0 → 1 answer 2.0000&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Limits  0 → 1 answer 7.8540 E-1&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Limits -1 → 1 answer 2.3857 E-2&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Limits -1 → 1 answer 2.2033&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
Using &lt;code&gt;FIX10&lt;/code&gt; still allows the integrations to complete almost instantly except for Program 8 which takes around 8 seconds!
&lt;/p&gt;

&lt;p&gt;
Dropping to &lt;code&gt;FIX08&lt;/code&gt; and program 8 integration completes almost instantaneously too.
Strangely Program 8 has some odd behaviour regarding display precision.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;FIX04&lt;/code&gt; → &lt;code&gt;FIX07&lt;/code&gt; → instantaneous answer 0.5000….&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;FIX08&lt;/code&gt; → instantaneous answer 0.50000….&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;FIX09&lt;/code&gt; → 8 seconds  answer 0.499964689&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;FIX10&lt;/code&gt; → 8 seconds  answer 0.4999747623&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;FIX11&lt;/code&gt; → 10 seconds answer 0.49999489949&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;FIX12&lt;/code&gt; → 10 seconds answer 0.499999962001&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;FIX13&lt;/code&gt; → instantaneous answer 0.5000……&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;FIX14&lt;/code&gt; → instantaneous answer 0.500000……&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;FIX15&lt;/code&gt; → instantaneous answer 0.5000000……&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Integrate Tests&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;integrate_tests&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:29,&amp;quot;secid&amp;quot;:24,&amp;quot;range&amp;quot;:&amp;quot;48073-50006&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit25&quot; id=&quot;page_info&quot;&gt;Page Info&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Page created Thu May 26 17:35:39 2022 by John Pumford-Green
&lt;/p&gt;

&lt;p&gt;
Page last updated: 16/04/26 16:01 BST
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Page Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;page_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:29,&amp;quot;secid&amp;quot;:25,&amp;quot;range&amp;quot;:&amp;quot;50007-50124&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit26&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:calculator&amp;amp;do=showtag&amp;amp;tag=calculator&quot; class=&quot;wikilink1&quot; title=&quot;tag:calculator&quot; rel=&quot;tag&quot;&gt;calculator&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:dm15l&amp;amp;do=showtag&amp;amp;tag=dm15l&quot; class=&quot;wikilink1&quot; title=&quot;tag:dm15l&quot; rel=&quot;tag&quot;&gt;dm15l&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:lf15c&amp;amp;do=showtag&amp;amp;tag=lf15c&quot; class=&quot;wikilink1&quot; title=&quot;tag:lf15c&quot; rel=&quot;tag&quot;&gt;lf15c&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:29,&amp;quot;secid&amp;quot;:26,&amp;quot;range&amp;quot;:&amp;quot;50125-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 16 Apr 2026 15:01:20 +0000</pubDate>
        </item>
        <item>
            <title>VPS Notes</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:vps_tips_tricks</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:start&quot; class=&quot;wikilink1&quot; title=&quot;public:computers:archive:start&quot; data-wiki-id=&quot;public:computers:archive:start&quot;&gt;Archive&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;vps_notes&quot;&gt;VPS Notes&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;div class=&quot;plugin_note notetip&quot;&gt;GM4SLV.ORG.UK VPS : New VPS created 6&lt;sup&gt;th&lt;/sup&gt; March 2025
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; To separate my personal wiki site from yaddnet.org server&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Wiki backed-up and moved from yaddnet.org to new gm4slv.org.uk VPS&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SSL Certificate replaced to enable HTTPS&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;VPS Notes&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;vps_notes&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;16-304&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;new_vpsmarch_2025&quot;&gt;New VPS : March 2025&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; New VPS 1 obtained at Fasthosts&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;Type:Virtual Machine
Size:vps 1 2 60
Cpu:1 vCore
RAM:2 GB
Disk:60 GB NVMe SSD&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;Distributor ID: Ubuntu
Description:    Ubuntu 24.04.1 LTS
Release:        24.04
Codename:       noble&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Installed PHP and Apache2&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code bash&quot;&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;gm4slv:~ $ php &lt;span class=&quot;re5&quot;&gt;--version&lt;/span&gt;
PHP 8.3.6 &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;cli&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;built: Dec  &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2024&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;:&lt;span class=&quot;nu0&quot;&gt;36&lt;/span&gt;:&lt;span class=&quot;nu0&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;NTS&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
Copyright &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;c&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; The PHP Group
Zend Engine v4.3.6, Copyright &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;c&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; Zend Technologies
    with Zend OPcache v8.3.6, Copyright &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;c&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;, by Zend Technologies&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; configured SSL per previous method &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:ssl_install_vps&quot; class=&quot;wikilink1&quot; title=&quot;public:computers:archive:ssl_install_vps&quot; data-wiki-id=&quot;public:computers:archive:ssl_install_vps&quot;&gt;SSL Install on VPS&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; changed SSH port from default 22 to a &lt;em&gt;new&lt;/em&gt; port, changed VPS firewall to suit new SSH port&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Ubunto OS brought up to date: &lt;code&gt;sudo apt-get update&lt;/code&gt; and &lt;code&gt;sudo apt-get upgrade&lt;/code&gt; and &lt;code&gt;sudo apt-get dist-upgrade&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;New VPS : March 2025&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;new_vpsmarch_2025&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;305-1148&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;dokuwiki_security&quot;&gt;Dokuwiki Security&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; previous installations used .htaccess to prevent web access to data/conf/lib/bin etc. directories&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; this time I decided not to use .htaccess but to follow the alternative instructions in &lt;a href=&quot;https://www.dokuwiki.org/security&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.dokuwiki.org/security&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.dokuwiki.org/security&lt;/a&gt; to use &lt;strong&gt;LocationMatch&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Dokuwiki Security&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dokuwiki_security&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1149-1436&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;locationmatch_method&quot;&gt;LocationMatch method&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Apache is told which directories (data, conf, bin, inc, vendor) to make private. The downside is that this configuration might need altering if new directories are added during &lt;code&gt;dokuwiki&lt;/code&gt; upgrades. 
&lt;/p&gt;

&lt;p&gt;
add to &lt;code&gt;/etc/apache2/apache2.conf&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code apache&quot;&gt;&amp;lt;&lt;span class=&quot;kw3&quot;&gt;LocationMatch&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;/(data|conf|bin|inc|vendor)/&amp;quot;&lt;/span&gt;&amp;gt;
    &lt;span class=&quot;kw1&quot;&gt;Order&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;allow&lt;/span&gt;,&lt;span class=&quot;kw1&quot;&gt;deny&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;Deny&lt;/span&gt; from &lt;span class=&quot;kw2&quot;&gt;all&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;Satisfy&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;All&lt;/span&gt;
&amp;lt;/&lt;span class=&quot;kw3&quot;&gt;LocationMatch&lt;/span&gt;&amp;gt;&lt;/pre&gt;

&lt;p&gt;
&lt;code&gt;sudo service apache2 restart&lt;/code&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;LocationMatch method&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;locationmatch_method&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1437-1883&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;htaccess_method&quot;&gt;.htaccess method&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
the secured directories in &lt;code&gt;dokuwiki&lt;/code&gt; have suitable .htaccess files already. Apache needs to betold to allow them to alter behaviour 
&lt;/p&gt;
&lt;pre class=&quot;code apache&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;AllowOverride&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;All&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
add to &lt;code&gt;/etc/apache2/apache2.conf&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code apache&quot;&gt;         &amp;lt;&lt;span class=&quot;kw3&quot;&gt;Directory&lt;/span&gt; /var/www/html&amp;gt;
                &lt;span class=&quot;kw1&quot;&gt;Options&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;Indexes&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;FollowSymLinks&lt;/span&gt; MultiViews
                &lt;span class=&quot;kw1&quot;&gt;AllowOverride&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;All&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;Order&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;allow&lt;/span&gt;,&lt;span class=&quot;kw1&quot;&gt;deny&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;allow&lt;/span&gt; from &lt;span class=&quot;kw2&quot;&gt;all&lt;/span&gt;
        &amp;lt;/&lt;span class=&quot;kw3&quot;&gt;Directory&lt;/span&gt;&amp;gt;&lt;/pre&gt;

&lt;p&gt;
&lt;code&gt;sudo service apache2 restart&lt;/code&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;.htaccess method&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;htaccess_method&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1884-2393&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;ssh_security&quot;&gt;SSH Security&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Configured &lt;code&gt;sshd&lt;/code&gt; to disallow password-logins and only accept public-key authentication&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; be careful to check the files in &lt;code&gt;/etc/ssh/sshd_conf.d&lt;/code&gt; for hidden config options!&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; uploaded public keys from &lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Puttygen for &lt;a href=&quot;https://www.putty.org/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.putty.org/&quot; rel=&quot;ugc nofollow noopener&quot;&gt; putty&lt;/a&gt; on laptop&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://connectbot.org/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://connectbot.org/&quot; rel=&quot;ugc nofollow noopener&quot;&gt; ConnectBot &lt;/a&gt; app on phone&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; saved both in &lt;code&gt;~/.ssh/authorized_keys&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; now only logins with a valid public key will succeed. &lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; In the event of a loss of the public keys it&amp;#039;s still possible to gain access via Fasthosts account dashboard&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; → then reconfigure sshd to accept password logins again until new keys can be uploaded.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;SSH Security&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;ssh_security&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:6,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;2394-3077&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;renew_ssl_certificate&quot;&gt;06/04/25 : Renew SSL certificate&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Same procedure as before&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Download “Certificate” → &lt;code&gt;signed.crt&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Download “Intermediate Certificate” → &lt;code&gt;ca.pem&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Upload via WinSCP to VPS&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Copy old &lt;code&gt;/usr/local/ssl/signed.crt&lt;/code&gt; → &lt;code&gt;signed.crt.old&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Copy old &lt;code&gt;/usr/local/ssl/ca.pem&lt;/code&gt; → &lt;code&gt;ca.pem.old&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Copy new files into &lt;code&gt;/usr/local/ssl&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Restart Apache&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; There were 2 “Intermediate Certificate” for download from Fast Hosts… &lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; I used the one named &lt;code&gt;7D5B5126B476BA11DB74160BBC530DA7.cer&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; This is the same as the one used when I renewed &lt;code&gt;YaddNet.org&lt;/code&gt; SSL &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:radio:2025:yaddnet_ssl_renewal&quot; class=&quot;wikilink2&quot; title=&quot;public:computers:radio:2025:yaddnet_ssl_renewal&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;public:computers:radio:2025:yaddnet_ssl_renewal&quot;&gt;yaddnet_ssl_renewal&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; It seems that the intermediate certificate is not unique to the domain being secured, it&amp;#039;s a certificate that verifies the identity of the authenticator of the domain&amp;#039;s SSL certificate.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;update_on_two_intermediate_certificates_05_07_25&quot;&gt;UPDATE ON TWO INTERMEDIATE CERTIFICATES 05/07/25&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
I&amp;#039;ve discovered that the 2 Intermediate Certificates are necessary to complete the &lt;em&gt;chain&lt;/em&gt; of authority.
&lt;/p&gt;

&lt;p&gt;
What should be done is to join them together into one &lt;em&gt;ca.pem&lt;/em&gt; file (and in the correct order…. )
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;root&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;wiki:&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;g4slv&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ssl&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;# cat 397A66CC2756362E0DAA87CA6EABE3B1.cer 00D27FBBC1DE359E5216AD6149586099C4.cer &amp;gt; ca.pem&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;root&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;wiki:&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;g4slv&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ssl&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;# cp ca.pem /usr/local/ssl&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;root&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;wiki:&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;g4slv&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ssl&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;# systemctl restart apache2&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Check correct SSL operation at &lt;a href=&quot;https://www.ssllabs.com/ssltest/analyze.html&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.ssllabs.com/ssltest/analyze.html&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.ssllabs.com/ssltest/analyze.html&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;06\/04\/25 : Renew SSL certificate&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;renew_ssl_certificate&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:6,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;3078-4532&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;old_information_below_is_for_historical_information&quot;&gt;Old information below is for historical information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;plugin_note notewarning&quot;&gt;GM4SLV.ORG.UK VPS : CANCELLED AND DELETED 9&lt;sup&gt;th&lt;/sup&gt; October 2024
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Wiki functionality easily provided by yaddnet.org VPS&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; wiki pages &amp;amp; data transferred to yaddnet.org &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Fasthosts deleted VPS following telephone confirmation&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; deletion/cancellation not possible via Control Panel&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; telephone call-back needed to confirm&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;&lt;pre class=&quot;code&quot;&gt;OS      : Debian 10 (Buster)
RAM     : 0.5GB
Network : 400MB 
SSD     : 10GB

IP Address : 213.171.209.127
Hostname   : gm4slv.org.uk
Open Ports : ssh, http, https

Domain Name  : gm4slv.org.uk
Renewal date : 3/4/2024&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Old information below is for historical information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;old_information_below_is_for_historical_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;4533-5197&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;access_via_fasthosts&quot;&gt;Access via FastHosts&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; browse to &lt;a href=&quot;https://admin.fasthosts.co.uk/Servers/VPS/1116040162&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://admin.fasthosts.co.uk/Servers/VPS/1116040162&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://admin.fasthosts.co.uk/Servers/VPS/1116040162&lt;/a&gt; and login with credentials&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Access via FastHosts&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;access_via_fasthosts&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;5198-5327&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit10&quot; id=&quot;installing_ssl_for_https&quot;&gt;Installing SSL for HTTPS&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Installing SSL for HTTPS&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;installing_ssl_for_https&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;5328-5364&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit11&quot; id=&quot;create_certificates&quot;&gt;Create Certificates&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_dc78831d92782d10f5135857362be425_1&quot;&gt;First : obtain SSL Certificates &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_dc78831d92782d10f5135857362be425_1&quot;&gt;&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; generate CSR on the server itself: &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;pre class=&quot;code bash&quot;&gt;openssl req &lt;span class=&quot;re5&quot;&gt;-new&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-newkey&lt;/span&gt; rsa:&lt;span class=&quot;nu0&quot;&gt;2048&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-nodes&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-keyout&lt;/span&gt; gm4slv.org.uk.key &lt;span class=&quot;re5&quot;&gt;-out&lt;/span&gt; gm4slv.org.uk.csr &lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Use “gm4slv.org.uk” as CN (NOT &lt;a href=&quot;http://www.gm4slv.org.uk&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;http://www.gm4slv.org.uk&quot; rel=&quot;ugc nofollow noopener&quot;&gt;www.gm4slv.org.uk&lt;/a&gt;)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; on Fasthosts control panel - apply for SSL certificate and get to the page where the CSR is pasted into a box&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; paste the CSR file contents into the box and click “&amp;lt;whatever the button says&amp;gt;”&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; fill in the rest of the form with email/name/phone number etc.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; add file to root of www as verification, as directed at Fasthosts site….&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=server:screenshot_2022-05-04_21.02.56.png&quot; class=&quot;media wikilink2&quot; title=&quot;server:screenshot_2022-05-04_21.02.56.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=400&amp;amp;tok=076b47&amp;amp;media=server:screenshot_2022-05-04_21.02.56.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; download &lt;strong&gt;both&lt;/strong&gt; certificate files from Fasthosts Control Panel&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Create Certificates&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;create_certificates&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;5365-6123&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit12&quot; id=&quot;configure_apache&quot;&gt;Configure APACHE&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_dc78831d92782d10f5135857362be425_2&quot;&gt;Second : configure Apache to use HTTPS &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_dc78831d92782d10f5135857362be425_2&quot;&gt;&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; copy self generated gm4slv.org.uk.key from the “openssl” command to &lt;code&gt;/usr/local/ssl/&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; copy the *crt for the newly obtained &lt;em&gt;signed&lt;/em&gt; *.crt file renamed as signed.crt to &lt;code&gt;/usr/local/ssl&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; copy the “intermediate” file to &lt;code&gt;/usr/local/ssl/&lt;/code&gt; (renamed as ca.pem)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; edit apache config… looks like &lt;code&gt;/etc/apache2/sites-available/default-ssl.conf&lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; SSLCertificateFile      /usr/local/ssl/signed.crt&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; SSLCertificateKeyFile /usr/local/ssl/gm4slv.org.uk.key&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; SSLCertificateChainFile /usr/local/ssl/ca.pem&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; make symlink  &lt;code&gt;sites-enabled/default-ssl.conf&lt;/code&gt; pointing to &lt;code&gt;sites-available/default-ssl.conf&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;a2enmod ssl&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; restart apache2&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; will it be listening on port 443? yes&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; open firewall port 443 on Fasthost control panel&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Can I reach it with &lt;code&gt;&lt;a href=&quot;https://gm4slv.org.uk&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://gm4slv.org.uk&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://gm4slv.org.uk&lt;/a&gt;&lt;/code&gt;? yes&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Can I still reach it with &lt;code&gt;&lt;a href=&quot;http://gm4slv.org.uk&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;http://gm4slv.org.uk&quot; rel=&quot;ugc nofollow noopener&quot;&gt;http://gm4slv.org.uk&lt;/a&gt;&lt;/code&gt;? yes&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; force redirect of plain HTTP:&lt;em&gt; to HTTPS:&lt;/em&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; add to &lt;code&gt;000-default.conf&lt;/code&gt;:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code apache&quot;&gt;        &lt;span class=&quot;kw1&quot;&gt;ServerName&lt;/span&gt; gm4slv.org.uk
        &lt;span class=&quot;kw1&quot;&gt;ServerAlias&lt;/span&gt; www.gm4slv.org.uk
        &lt;span class=&quot;kw1&quot;&gt;Redirect&lt;/span&gt; permanent / https://gm4slv.org.uk/
&amp;nbsp;&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; taken from &lt;a href=&quot;https://linuxize.com/post/redirect-http-to-https-in-apache/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://linuxize.com/post/redirect-http-to-https-in-apache/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://linuxize.com/post/redirect-http-to-https-in-apache/&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; restart apache2&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; verify SSL access ok - yes&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; verify non-SSL is redirected to SSL - yes&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Configure APACHE&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;configure_apache&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;6124-7507&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit13&quot; id=&quot;confirm_proper_security&quot;&gt;Confirm proper security&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Browse to &lt;a href=&quot;https://gm4slv.org.uk&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://gm4slv.org.uk&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://gm4slv.org.uk&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
 &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=server:screenshot_2022-05-04_22.00.14.png&quot; class=&quot;media wikilink2&quot; title=&quot;server:screenshot_2022-05-04_22.00.14.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=400&amp;amp;tok=668a8c&amp;amp;media=server:screenshot_2022-05-04_22.00.14.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Confirm proper security&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;confirm_proper_security&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:10,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;7508-7641&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit14&quot; id=&quot;renew_ssl_certificate1&quot;&gt;20/04/23 Renew SSL Certificate&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; new Signed and CA (intermediate) certificates obtained and installed in /usr/local/ssl&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;20\/04\/23 Renew SSL Certificate&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;renew_ssl_certificate1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:10,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;7642-7777&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit15&quot; id=&quot;hardware_upgrade_20_4_23&quot;&gt;Hardware Upgrade 20/4/23&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Original configuration VPS XS : 500MB RAM and 10GB SSD @ £1 per month (plus VAT)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Upgrade to VPS S : 1GB RAM and 20GB SSD @ £3 per month (plus VAT)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; VPS rebooted for upgrade&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RAM seems to have increased to 1GB but reported &amp;#039;df -h&amp;#039; still shows 7.5GB total for / and 1.9GB for Swap. This is only 10GB. &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Perhaps more time is needed for VM to catch up and expand the Virtual Hard Drive?&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Gotcha…. the Virtual Drive was increased to 20GB, but not the partition or the filesystem… the only way to get a full 20GB was to  “rebuild” the VPS….&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; took a backup of the dokuwiki files (rsync mirrored them to shack PC). Hit “Rebuild” and built a new VPS. Applied for replacement SSL keys (had to make a new CSR/KEY first)…&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Used rsync to send back the dokuwiki files (from the shack PC mirror)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; set up Apache2 to use the new SSL certificates…&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; VPS is now rebuilt and all wiki files restored &amp;amp; Apache2 uses HTTPS.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Hardware Upgrade 20\/4\/23&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hardware_upgrade_20_4_23&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:10,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;7778-8771&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit16&quot; id=&quot;debian_upgrade_15_2_24&quot;&gt;Debian Upgrade 15/2/24&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Upgraded from Buster (10) → Bullseye (11)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Upgraded Dokuwiki (this needed PHP7.4 from Buster, which is why the Debian upgrade was necessary) to the newest version (Release 2024-02-06a “Kaos”)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Upgraded from Bullseye (11) → Bookwork (12) - might as well get to &lt;code&gt;STABLE&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Debian Upgrade 15\/2\/24&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;debian_upgrade_15_2_24&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:10,&amp;quot;secid&amp;quot;:16,&amp;quot;range&amp;quot;:&amp;quot;8772-9091&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit17&quot; id=&quot;debian_upgrade_16_2_24&quot;&gt;Debian Upgrade 16/2/24&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Upgraded to Trixie (testing)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co4&quot;&gt;gm4slv@gm4slv:~$ &lt;/span&gt;lsb_release &lt;span class=&quot;re5&quot;&gt;-a&lt;/span&gt;
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Linux trixie&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sid
Release:        n&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;a
Codename:       trixie&lt;/pre&gt;
&lt;pre class=&quot;code bash&quot;&gt;deb http:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;deb.debian.org&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;debian trixie main contrib non-free non-free-firmware
deb-src http:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;deb.debian.org&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;debian trixie main contrib non-free non-free-firmware
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;#deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#deb-src http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware&lt;/span&gt;
&amp;nbsp;
deb http:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;deb.debian.org&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;debian-security trixie-security main contrib non-free non-free-firmware
deb-src http:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;deb.debian.org&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;debian-security trixie-security main contrib non-free non-free-firmware&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Dokuwiki still working correctly with latest versions of Apache and PHP &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co4&quot;&gt;gm4slv@gm4slv:~$ &lt;/span&gt;php &lt;span class=&quot;re5&quot;&gt;--version&lt;/span&gt;
PHP 8.2.12 &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;cli&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;built: Jan  &lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2024&lt;/span&gt; 06:&lt;span class=&quot;nu0&quot;&gt;21&lt;/span&gt;:&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;NTS&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
Copyright &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;c&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; The PHP Group
Zend Engine v4.2.12, Copyright &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;c&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; Zend Technologies
    with Zend OPcache v8.2.12, Copyright &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;c&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;, by Zend Technologies&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Debian Upgrade 16\/2\/24&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;debian_upgrade_16_2_24&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:10,&amp;quot;secid&amp;quot;:17,&amp;quot;range&amp;quot;:&amp;quot;9092-10265&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit18&quot; id=&quot;gm4slvorguk_domain_renewed&quot;&gt;2024 gm4slv.org.uk domain renewed&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 03/04/24 Domain Name auto-renewed for 2 years until April 2026&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 04/04/24 SSL Certificate auto-renewed for 1 year until May 2025&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;2024 gm4slv.org.uk domain renewed&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;gm4slvorguk_domain_renewed&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:13,&amp;quot;secid&amp;quot;:18,&amp;quot;range&amp;quot;:&amp;quot;10266-10448&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit19&quot; id=&quot;install_renewed_ssl_certificate&quot;&gt;04/04/24 : Install Renewed SSL Certificate&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; SSL Certificates &lt;strong&gt;Auto Renewed&lt;/strong&gt; by Fasthosts&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; download new certificates from Fasthosts control panel:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; New “Certificate” downloaded and renamed “signed.crt”&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; New “Intermediate Certificate” downloaded and renamed “ca.pem”&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; copied both → VPS $HOME dir via SCP&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; On VPS →&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; copied current &lt;strong&gt;/usr/local/ssl/ca.pem&lt;/strong&gt; → &lt;strong&gt;ca_old.pem&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; copied current &lt;strong&gt;/usr/local/ssl/signed.crt&lt;/strong&gt; → &lt;strong&gt;signed_old.crt&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; copied new ca.pem from $HOME to &lt;strong&gt;/usr/local/ssl/ca.pem&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; copied new signed.crt from $HOME to &lt;strong&gt;/usr/local/ssl/signed.crt&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; restarted apache &lt;code&gt;sudo service apache2 restart&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; check new valid certificate now in use in web browser&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Acomputers%3Aarchive%3Avps_tips_tricks&amp;amp;media=public:computers:screenshot_2024-04-04_07.24.16.png&quot; class=&quot;media&quot; title=&quot;public:computers:screenshot_2024-04-04_07.24.16.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=400&amp;amp;tok=ad1d3a&amp;amp;media=public:computers:screenshot_2024-04-04_07.24.16.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Validity Issued on &amp;amp; Expires on dates now show new certificate is in use&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Page Updated : 04/06/26 08:20 BST
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:vps&amp;amp;do=showtag&amp;amp;tag=vps&quot; class=&quot;wikilink1&quot; title=&quot;tag:vps&quot; rel=&quot;tag&quot;&gt;vps&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:linux&amp;amp;do=showtag&amp;amp;tag=linux&quot; class=&quot;wikilink1&quot; title=&quot;tag:linux&quot; rel=&quot;tag&quot;&gt;linux&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:ssl&amp;amp;do=showtag&amp;amp;tag=ssl&quot; class=&quot;wikilink1&quot; title=&quot;tag:ssl&quot; rel=&quot;tag&quot;&gt;ssl&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;04\/04\/24 : Install Renewed SSL Certificate&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;install_renewed_ssl_certificate&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:13,&amp;quot;secid&amp;quot;:19,&amp;quot;range&amp;quot;:&amp;quot;10449-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 07:20:09 +0000</pubDate>
        </item>
        <item>
            <title>Watchcheck Python code</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:watchcheck</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;watchcheck_python_code&quot;&gt;Watchcheck Python code&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
I wrote a small python2 application to keep track of a watch/clock&amp;#039;s 
daily rate error. It&amp;#039;s a console-only mimic of an Android app that
I use on my phone to track my watch timekeeping.
&lt;/p&gt;

&lt;p&gt;
I wrote it mainly as a &lt;em&gt;thought-experiment&lt;/em&gt; rather than as a fully functional
piece of code.
&lt;/p&gt;

&lt;p&gt;
You put the application in a directory specific to the watch and execute it from that
directory. the data from each measurement is stored in a &lt;strong&gt;json&lt;/strong&gt; file in the same directory.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt; update 23/01/26 &lt;/strong&gt;  I&amp;#039;ve modified the code to run under Python 3 - using the tool &lt;code&gt;2to3&lt;/code&gt; and a minor manual tweak.
&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_0bfab14a76b53f246a8f5e0f71d5e5ed_1&quot;&gt;watchcheck.py in Python 3 &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_0bfab14a76b53f246a8f5e0f71d5e5ed_1&quot;&gt;&lt;dl class=&quot;file&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?do=export_code&amp;amp;id=public:miscellany:watches:watchcheck&amp;amp;codeblock=0&quot; title=&quot;Download Snippet&quot; class=&quot;mediafile mf_py&quot;&gt;watchcheck.py&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code file python&quot;&gt;&lt;span class=&quot;co1&quot;&gt;# a text-terminal version of the WatchCheck app&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;## to track error, daily error rate of timepieces.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# auto update?&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; json
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; write_file&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;text&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    filename &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;logfile.txt&amp;quot;&lt;/span&gt;
    f &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;filename&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;a+&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    timenow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strftime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;%d/%m/%Y %H:%M:%S&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;gmtime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    log &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;timenow&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    f.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;log&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    f.&lt;span class=&quot;me1&quot;&gt;close&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_delta&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strftime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Current Time = %H:%M&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    h &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strftime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;%H&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    w &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Watch time %s:&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;h&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;w&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    date &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strftime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;%Y/%m/%d&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    s &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; date + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + h +&lt;span class=&quot;st0&quot;&gt;&amp;quot;:&amp;quot;&lt;/span&gt;+ w +&lt;span class=&quot;st0&quot;&gt;&amp;quot;:00&amp;quot;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw2&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Press enter when seconds = 0 &amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    watchtime &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mktime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strptime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;s&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%Y/%m/%d %H:%M:%S&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;timetuple&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    record_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strftime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;%Y/%m/%d %H:%M:%S&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    timenow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; watchtime - timenow
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; record_time&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;delta
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; watch_stat&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
        saved_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;error_list.json&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; json.&lt;span class=&quot;me1&quot;&gt;load&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;saved_error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;error_list&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;:
        first_record &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        latest_record &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        previous_record &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        first_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; first_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        first_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; first_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        latest_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; 
        latest_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        previous_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; previous_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        previous_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; previous_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        FMT &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;%Y/%m/%d %H:%M:%S&#039;&lt;/span&gt;
&amp;nbsp;
        t_latest &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strptime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;latest_time&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FMT&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        t_previous &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strptime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;previous_time&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FMT&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        t_first &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strptime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;first_time&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FMT&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        tdelta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; t_latest - t_previous
        full_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; t_latest - t_first
&amp;nbsp;
        elapsed_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tdelta.&lt;span class=&quot;me1&quot;&gt;total_seconds&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        full_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; full_delta.&lt;span class=&quot;me1&quot;&gt;total_seconds&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;First record time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; first_time&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;First record delta &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; first_delta&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Previous record time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; previous_time&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Previous record delta &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; previous_delta&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest record time &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; latest_time&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest record delta &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; latest_delta&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Overall elapsed time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; full_delta&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest elapsed time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; tdelta&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# Current Error rate&lt;/span&gt;
        time_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_delta - previous_delta
        error_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; time_error / elapsed_time
        daily_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_rate * &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        ppm_daily &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_rate * &lt;span class=&quot;nu0&quot;&gt;1000000&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# Overall Error rate&lt;/span&gt;
        total_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_delta - first_delta
        average_error_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; total_error / full_time
&amp;nbsp;
        average_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; average_error_rate * &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        ppm_overall &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; average_error_rate * &lt;span class=&quot;nu0&quot;&gt;1000000&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest delta change &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; time_error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest elapsed time %d seconds &amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;elapsed_time&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Daily PPM : %0.3f&amp;quot;&lt;/span&gt; % ppm_daily&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Daily rate error: %0.1f s/d &amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;daily_rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Total Time %d seconds&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;full_time&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Total error &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; total_error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Total PPM : %0.3f&amp;quot;&lt;/span&gt; % ppm_overall&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Total rate error: %0.1f s/d&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;average_rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;========================================================&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot; Delta : %+0.1f s | Rate : %+0.1f s/d | Average : %+0.1f s/d&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;latest_delta&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; daily_rate&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; average_rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;========================================================&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\t&lt;/span&gt;%+0.1f&lt;span class=&quot;es0&quot;&gt;\t&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\t&lt;/span&gt;%+0.1f&lt;span class=&quot;es0&quot;&gt;\t&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\t&lt;/span&gt;%+0.1f&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;latest_delta&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; daily_rate&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; average_rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        write_file&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;text&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;No rate yet&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; new_record&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
        saved_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;error_list.json&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; json.&lt;span class=&quot;me1&quot;&gt;load&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;saved_error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
    s&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_delta&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;%s &lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;Delta %0.1f seconds&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;s&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; delta&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    last_data&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;s&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;delta&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    error_list.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;last_data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#print error_list&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;with&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;error_list.json&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;w&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;as&lt;/span&gt; outfile:
        json.&lt;span class=&quot;me1&quot;&gt;dump&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;error_list&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; outfile&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; delete_last&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
        saved_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;error_list.json&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; json.&lt;span class=&quot;me1&quot;&gt;load&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;saved_error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    error_list.&lt;span class=&quot;me1&quot;&gt;pop&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;with&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;error_list.json&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;w&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;as&lt;/span&gt; outfile:
        json.&lt;span class=&quot;me1&quot;&gt;dump&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;error_list&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; outfile&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; menu&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Wire2waves WatchCheck.....&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;=========================&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;N : New Record&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;D : Delete Last&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;S : Stats&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;Q : Quit&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    choice &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Command &amp;gt; : &amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;upper&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; choice &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;N&amp;quot;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;New&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        new_record&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        watch_stat&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        menu&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; choice &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;S&amp;quot;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Stat&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        watch_stat&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        menu&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; choice &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;D&amp;quot;&lt;/span&gt;:
        delete_last&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        watch_stat&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        menu&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; choice &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Q&amp;quot;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;?&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        menu&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
menu&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_0bfab14a76b53f246a8f5e0f71d5e5ed_2&quot;&gt;original watchcheck.py in python 2 &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_0bfab14a76b53f246a8f5e0f71d5e5ed_2&quot;&gt;&lt;dl class=&quot;file&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?do=export_code&amp;amp;id=public:miscellany:watches:watchcheck&amp;amp;codeblock=1&quot; title=&quot;Download Snippet&quot; class=&quot;mediafile mf_py&quot;&gt;watchcheck.py&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code file python&quot;&gt;&lt;span class=&quot;co1&quot;&gt;#! /usr/bin/env python&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;## a text-terminal version of the WatchCheck app&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;## to track error, daily error rate of timepieces.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# auto update?&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; json
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; write_file&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;text&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    filename &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;logfile.txt&amp;quot;&lt;/span&gt;
    f &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;filename&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;a+&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    timenow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strftime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;%d/%m/%Y %H:%M:%S&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;gmtime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    log &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;timenow&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    f.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;log&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    f.&lt;span class=&quot;me1&quot;&gt;close&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_delta&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strftime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Current Time = %H:%M&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    h &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strftime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;%H&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    w &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;raw_input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Watch time %s:&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;h&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; w
&amp;nbsp;
    date &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strftime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;%Y/%m/%d&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    s &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; date + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + h +&lt;span class=&quot;st0&quot;&gt;&amp;quot;:&amp;quot;&lt;/span&gt;+ w +&lt;span class=&quot;st0&quot;&gt;&amp;quot;:00&amp;quot;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw2&quot;&gt;raw_input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Press enter when seconds = 0 &amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    watchtime &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mktime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strptime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;s&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%Y/%m/%d %H:%M:%S&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;timetuple&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    record_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strftime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;%Y/%m/%d %H:%M:%S&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    timenow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; watchtime - timenow
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; record_time&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;delta
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; watch_stat&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
        saved_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;error_list.json&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; json.&lt;span class=&quot;me1&quot;&gt;load&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;saved_error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;error_list&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;:
        first_record &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        latest_record &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        previous_record &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        first_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; first_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        first_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; first_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        latest_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; 
        latest_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        previous_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; previous_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        previous_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; previous_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        FMT &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;%Y/%m/%d %H:%M:%S&#039;&lt;/span&gt;
&amp;nbsp;
        t_latest &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strptime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;latest_time&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FMT&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        t_previous &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strptime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;previous_time&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FMT&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        t_first &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strptime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;first_time&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FMT&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        tdelta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; t_latest - t_previous
        full_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; t_latest - t_first
&amp;nbsp;
        elapsed_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tdelta.&lt;span class=&quot;me1&quot;&gt;total_seconds&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        full_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; full_delta.&lt;span class=&quot;me1&quot;&gt;total_seconds&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;First record time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; first_time
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;First record delta &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; first_delta
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Previous record time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; previous_time
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Previous record delta &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; previous_delta
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest record time &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; latest_time
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest record delta &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; latest_delta
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Overall elapsed time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; full_delta
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest elapsed time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; tdelta
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# Current Error rate&lt;/span&gt;
        time_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_delta - previous_delta
        error_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; time_error / elapsed_time
        daily_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_rate * &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        ppm_daily &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_rate * &lt;span class=&quot;nu0&quot;&gt;1000000&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# Overall Error rate&lt;/span&gt;
        total_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_delta - first_delta
        average_error_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; total_error / full_time
&amp;nbsp;
        average_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; average_error_rate * &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        ppm_overall &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; average_error_rate * &lt;span class=&quot;nu0&quot;&gt;1000000&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest delta change &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; time_error
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest elapsed time %d seconds &amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;elapsed_time&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Daily PPM : %0.3f&amp;quot;&lt;/span&gt; % ppm_daily
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Daily rate error: %0.1f s/d &amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;daily_rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Total Time %d seconds&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;full_time&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Total error &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; total_error
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Total PPM : %0.3f&amp;quot;&lt;/span&gt; % ppm_overall
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Total rate error: %0.1f s/d&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;average_rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;========================================================&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; Delta : %+0.1f s | Rate : %+0.1f s/d | Average : %+0.1f s/d&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;latest_delta&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; daily_rate&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; average_rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;========================================================&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
        text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\t&lt;/span&gt;%+0.1f&lt;span class=&quot;es0&quot;&gt;\t&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\t&lt;/span&gt;%+0.1f&lt;span class=&quot;es0&quot;&gt;\t&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\t&lt;/span&gt;%+0.1f&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;latest_delta&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; daily_rate&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; average_rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        write_file&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;text&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;No rate yet&amp;quot;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; new_record&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
        saved_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;error_list.json&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; json.&lt;span class=&quot;me1&quot;&gt;load&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;saved_error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
    s&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_delta&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%s &lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;Delta %0.1f seconds&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;s&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; delta&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    last_data&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;s&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;delta&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    error_list.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;last_data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#print error_list&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;with&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;error_list.json&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;wb&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;as&lt;/span&gt; outfile:
        json.&lt;span class=&quot;me1&quot;&gt;dump&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;error_list&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; outfile&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; delete_last&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
        saved_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;error_list.json&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; json.&lt;span class=&quot;me1&quot;&gt;load&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;saved_error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    error_list.&lt;span class=&quot;me1&quot;&gt;pop&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;with&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;error_list.json&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;wb&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;as&lt;/span&gt; outfile:
        json.&lt;span class=&quot;me1&quot;&gt;dump&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;error_list&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; outfile&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; menu&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Wire2waves WatchCheck.....&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=========================&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;N : New Record&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;D : Delete Last&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;S : Stats&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;Q : Quit&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;
    choice &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;raw_input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Command &amp;gt; : &amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;upper&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; choice &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;N&amp;quot;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;New&amp;quot;&lt;/span&gt;
        new_record&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        watch_stat&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        menu&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; choice &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;S&amp;quot;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Stat&amp;quot;&lt;/span&gt;
        watch_stat&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        menu&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; choice &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;D&amp;quot;&lt;/span&gt;:
        delete_last&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        watch_stat&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        menu&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; choice &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Q&amp;quot;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;?&amp;quot;&lt;/span&gt;
        menu&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
menu&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;p&gt;
Running it for the first time, with no previous records stored, looks like this:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
Wire2waves WatchCheck.....
=========================

N : New Record
D : Delete Last
S : Stats
Q : Quit

Command &amp;gt; : n
New
Current Time = 10:18
Watch time 10:19
19
Press enter when seconds = 0

2022/05/04 10:19:30

Delta -30.2 seconds&lt;/pre&gt;

&lt;p&gt;
and the first time-delta is stored in the &lt;code&gt;error_list.json&lt;/code&gt; file like this:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[[&amp;quot;2022/05/04 10:19:30&amp;quot;, -30.179980039596558]]&lt;/pre&gt;

&lt;p&gt;
Running it again, after only 10 minutes looks like this:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Command &amp;gt; : n
New
Current Time = 10:30
Watch time 10:30
30
Press enter when seconds = 0

2022/05/04 10:30:30

Delta -30.2 seconds
First record time  2022/05/04 10:19:30
First record delta  -30.1799800396

Previous record time  2022/05/04 10:19:30
Previous record delta  -30.1799800396

Latest record time  2022/05/04 10:30:30
Latest record delta  -30.1998269558

Overall elapsed time  0:11:00
Latest elapsed time  0:11:00

Latest delta change  -0.0198469161987
Latest elapsed time 660 seconds

Daily PPM : -30.071
Daily rate error: -2.6 s/d

Total Time 660 seconds
Total error  -0.0198469161987
Total PPM : -30.071
Total rate error: -2.6 s/d

========================================================
 Delta : -30.2 s | Rate : -2.6 s/d | Average : -2.6 s/d
========================================================&lt;/pre&gt;

&lt;p&gt;
The &lt;code&gt;error_list.json&lt;/code&gt; file now looks like:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;[[&amp;quot;2022/05/04 10:19:30&amp;quot;, -30.179980039596558], [&amp;quot;2022/05/04 10:30:30&amp;quot;, -30.199826955795288]]&lt;/pre&gt;

&lt;p&gt;
There&amp;#039;s also a small utility called &lt;code&gt;watchstat.py&lt;/code&gt; that reads the &lt;code&gt;error_list.json&lt;/code&gt; file to calculate and
display the data
&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_0bfab14a76b53f246a8f5e0f71d5e5ed_3&quot;&gt;original watchstat.py in python 2 &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_0bfab14a76b53f246a8f5e0f71d5e5ed_3&quot;&gt;&lt;dl class=&quot;file&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?do=export_code&amp;amp;id=public:miscellany:watches:watchcheck&amp;amp;codeblock=6&quot; title=&quot;Download Snippet&quot; class=&quot;mediafile mf_py&quot;&gt;watchstat.py&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code file python&quot;&gt;&lt;span class=&quot;co1&quot;&gt;#! /usr/bin/env python&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;## a text-terminal version of the WatchCheck app&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;## to track error, daily error rate of timepieces.&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; json
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; watch_stat&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
        saved_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;error_list.json&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; json.&lt;span class=&quot;me1&quot;&gt;load&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;saved_error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;error_list&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;:
        first_record &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        latest_record &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        previous_record &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        first_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; first_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        first_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; first_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        latest_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; 
        latest_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        previous_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; previous_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        previous_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; previous_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        FMT &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;%Y/%m/%d %H:%M:%S&#039;&lt;/span&gt;
&amp;nbsp;
        t_latest &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strptime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;latest_time&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FMT&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        t_previous &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strptime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;previous_time&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FMT&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        t_first &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strptime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;first_time&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FMT&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        tdelta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; t_latest - t_previous
        full_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; t_latest - t_first
&amp;nbsp;
        elapsed_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tdelta.&lt;span class=&quot;me1&quot;&gt;total_seconds&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        full_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; full_delta.&lt;span class=&quot;me1&quot;&gt;total_seconds&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;First record time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; first_time
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;First record delta &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; first_delta
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Previous record time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; previous_time
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Previous record delta &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; previous_delta
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest record time &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; latest_time
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest record delta &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; latest_delta
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Overall elapsed time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; full_delta
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest elapsed time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; tdelta
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# Current Error rate&lt;/span&gt;
        time_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_delta - previous_delta
        error_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; time_error / elapsed_time
        daily_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_rate * &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        ppm_daily &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_rate * &lt;span class=&quot;nu0&quot;&gt;1000000&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# Overall Error rate&lt;/span&gt;
        total_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_delta - first_delta
        average_error_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; total_error / full_time
&amp;nbsp;
        average_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; average_error_rate * &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        ppm_overall &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; average_error_rate * &lt;span class=&quot;nu0&quot;&gt;1000000&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest delta change &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; time_error
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest elapsed time %d seconds &amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;elapsed_time&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Daily PPM : %0.3f&amp;quot;&lt;/span&gt; % ppm_daily
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Daily rate error: %0.1f s/d &amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;daily_rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Total Time %d seconds&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;full_time&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Total error &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; total_error
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Total PPM : %0.3f&amp;quot;&lt;/span&gt; % ppm_overall
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Total rate error: %0.1f s/d&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;average_rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;========================================================&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; Delta : %0.1f s | Rate : %0.1f s/d | Average : %0.1f s/d&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;latest_delta&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; daily_rate&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; average_rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;========================================================&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;No rate yet&amp;quot;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
watch_stat&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_0bfab14a76b53f246a8f5e0f71d5e5ed_4&quot;&gt;watchstat.py in python 3 &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_0bfab14a76b53f246a8f5e0f71d5e5ed_4&quot;&gt;&lt;dl class=&quot;file&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?do=export_code&amp;amp;id=public:miscellany:watches:watchcheck&amp;amp;codeblock=7&quot; title=&quot;Download Snippet&quot; class=&quot;mediafile mf_py&quot;&gt;watchstat.py&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code file python&quot;&gt;&lt;span class=&quot;co1&quot;&gt;## a text-terminal version of the WatchCheck app&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;## to track error, daily error rate of timepieces.&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; json
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; watch_stat&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
        saved_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;error_list.json&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; json.&lt;span class=&quot;me1&quot;&gt;load&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;saved_error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
        error_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;error_list&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;:
        first_record &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        latest_record &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        previous_record &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        first_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; first_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        first_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; first_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        latest_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; 
        latest_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        previous_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; previous_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        previous_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; previous_record&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        FMT &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;%Y/%m/%d %H:%M:%S&#039;&lt;/span&gt;
&amp;nbsp;
        t_latest &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strptime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;latest_time&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FMT&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        t_previous &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strptime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;previous_time&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FMT&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        t_first &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;datetime&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strptime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;first_time&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; FMT&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        tdelta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; t_latest - t_previous
        full_delta &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; t_latest - t_first
&amp;nbsp;
        elapsed_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tdelta.&lt;span class=&quot;me1&quot;&gt;total_seconds&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        full_time &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; full_delta.&lt;span class=&quot;me1&quot;&gt;total_seconds&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;First record time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; first_time&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;First record delta &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; first_delta&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Previous record time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; previous_time&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Previous record delta &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; previous_delta&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest record time &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; latest_time&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest record delta &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; latest_delta&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Overall elapsed time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; full_delta&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest elapsed time &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; tdelta&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# Current Error rate&lt;/span&gt;
        time_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_delta - previous_delta
        error_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; time_error / elapsed_time
        daily_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_rate * &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        ppm_daily &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; error_rate * &lt;span class=&quot;nu0&quot;&gt;1000000&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# Overall Error rate&lt;/span&gt;
        total_error &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; latest_delta - first_delta
        average_error_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; total_error / full_time
&amp;nbsp;
        average_rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; average_error_rate * &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;*&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        ppm_overall &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; average_error_rate * &lt;span class=&quot;nu0&quot;&gt;1000000&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest delta change &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; time_error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Latest elapsed time %d seconds &amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;elapsed_time&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Daily PPM : %0.3f&amp;quot;&lt;/span&gt; % ppm_daily&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Daily rate error: %0.1f s/d &amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;daily_rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Total Time %d seconds&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;full_time&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Total error &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; total_error&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Total PPM : %0.3f&amp;quot;&lt;/span&gt; % ppm_overall&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Total rate error: %0.1f s/d&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;average_rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;========================================================&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot; Delta : %0.1f s | Rate : %0.1f s/d | Average : %0.1f s/d&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;latest_delta&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; daily_rate&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; average_rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;========================================================&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;No rate yet&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
watch_stat&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;p&gt;
Running watchstat.py on the newly updated &lt;code&gt;error_list.json&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;gm4slv@laptop:~/watchcheck_damasko $ python watchstat.py
First record time  2022/05/04 10:19:30
First record delta  -30.1799800396

Previous record time  2022/05/04 10:19:30
Previous record delta  -30.1799800396

Latest record time  2022/05/04 10:30:30
Latest record delta  -30.1998269558

Overall elapsed time  0:11:00
Latest elapsed time  0:11:00

Latest delta change  -0.0198469161987
Latest elapsed time 660 seconds

Daily PPM : -30.071
Daily rate error: -2.6 s/d

Total Time 660 seconds
Total error  -0.0198469161987
Total PPM : -30.071
Total rate error: -2.6 s/d

========================================================
 Delta : -30.2 s | Rate : -2.6 s/d | Average : -2.6 s/d
========================================================&lt;/pre&gt;

&lt;p&gt;
&lt;code&gt;watchcheck.py&lt;/code&gt; also creates a log file on each run.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;04/05/2022 09:30:30     -30.2           -2.6            -2.6&lt;/pre&gt;

&lt;p&gt;
The fields are “date time”, current error, error in seconds per day since last record, average error in seconds per day since the start.
&lt;/p&gt;

&lt;p&gt;
This mimics the behaviour of the Android Watchcheck app
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:watches:screenshot_20220504-104043.png&quot; class=&quot;media&quot; title=&quot;public:watches:screenshot_20220504-104043.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=400&amp;amp;tok=bef9cf&amp;amp;media=public:watches:screenshot_20220504-104043.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
 &lt;em&gt;&lt;a href=&quot;mailto:&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#64;&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#46;&amp;#112;&amp;#108;&amp;#117;&amp;#115;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&quot; class=&quot;mail&quot; title=&quot;&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#64;&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#46;&amp;#112;&amp;#108;&amp;#117;&amp;#115;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&quot;&gt;John Pumford-Green&lt;/a&gt; Wed May  4 09:09:09 2022&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Page Updated : 23/01/26 14:13 GMT
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:python&amp;amp;do=showtag&amp;amp;tag=python&quot; class=&quot;wikilink1&quot; title=&quot;tag:python&quot; rel=&quot;tag&quot;&gt;python&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:watch&amp;amp;do=showtag&amp;amp;tag=watch&quot; class=&quot;wikilink1&quot; title=&quot;tag:watch&quot; rel=&quot;tag&quot;&gt;watch&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 23 Jan 2026 14:13:10 +0000</pubDate>
        </item>
        <item>
            <title>YaDDNet : Running Costs</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:yaddnet:yaddnet_running_costs</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:yaddnet:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:yaddnet:start&quot; data-wiki-id=&quot;public:radio:topics:yaddnet:start&quot;&gt;YaDDNet&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;yaddnetrunning_costs&quot;&gt;YaDDNet : Running Costs&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;YaDDNet : Running Costs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;yaddnetrunning_costs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;18-56&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;expected_costs&quot;&gt;Expected Costs&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Expected Costs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;expected_costs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;57-84&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;costs_for_2024&quot;&gt;Costs for 2024&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;strong&gt; April 2024 → December 31&lt;sup&gt;st&lt;/sup&gt; 2024&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Initial offer price for &lt;strong&gt;VPS L&lt;/strong&gt; = £1.20 per month for first 3 months&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; April 2024 : £1.20&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; May 2024 : £1.20&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; June 2024 : £1.20&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;VPS L&lt;/strong&gt; then £12.00 from July 2024 onwards&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 6 months at £12.00 = £72&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;yaddnet.org&lt;/code&gt; domain : annual renewal (&lt;em&gt;due 27/09/24&lt;/em&gt;) : £19.19&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Paid 27/09/24&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; SSL certificate 1 year : £42&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt; Paid 14/04/24&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; renewal due : April 2025&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;strong&gt; Total Paid for 2024 &lt;/strong&gt; = £136.79
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Costs for 2024&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;costs_for_2024&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;85-625&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;costs_for_2025&quot;&gt;Costs for 2025&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;strong&gt;January 1&lt;sup&gt;st&lt;/sup&gt; 2025 → December 31&lt;sup&gt;st&lt;/sup&gt; 2025&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;VPS L&lt;/strong&gt; price increase 1st April 2025 → £13.44 per month&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Jan, Feb, Mar (@£12 per month) = £36&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; April → Dec (@£13.44 per month)  = £120.96. &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Total VPS rental for 2025 = £156.96&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; SSL Certificate renewal due April 2025, estimated cost £42&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:yaddnet:yaddnet_ssl_renewal&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:yaddnet:yaddnet_ssl_renewal&quot; data-wiki-id=&quot;public:radio:topics:yaddnet:yaddnet_ssl_renewal&quot;&gt;renewal complete&lt;/a&gt; : March 15&lt;sup&gt;th&lt;/sup&gt; 2025&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Paid:  £42&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;yaddnet.org&lt;/code&gt; domain renewal due Sept. 2025&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Paid : £20.53&lt;/strong&gt; 27/9/25&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;strong&gt;Total estimated cost for 2025 &lt;/strong&gt; = £219.49
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Costs for 2025&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;costs_for_2025&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;626-1221&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;actual_costs_2025&quot;&gt;Actual Costs 2025&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;strong&gt;A Negative Balance indicates my personal incurred cost &lt;/strong&gt;
&lt;/p&gt;
&lt;div class=&quot;table sectionedit6&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Date&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Item&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;In Amount&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Cost&lt;/th&gt;&lt;th class=&quot;col4&quot;&gt;Balance&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;01/01/25 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 2024 Balance Carried Forward &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;£8.43&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; £8.43 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;13/01/25 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; VPS &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;&lt;span style=&#039;color:red; &#039;&gt;£12.00&lt;/span&gt;&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;&lt;span style=&#039;color:red; &#039;&gt;-£3.57&lt;/span&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 01/02/25 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Donation received &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;£18.86 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;£15.29 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;13/02/25 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; VPS &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;&lt;span style=&#039;color:red; &#039;&gt;£12.00&lt;/span&gt;&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;£3.29&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;15/03/25 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; SSL Renewal &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;&lt;span style=&#039;color:red; &#039;&gt;£42.00&lt;/span&gt;&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;&lt;span style=&#039;color:red; &#039;&gt;-£38.71&lt;/span&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;18/03/25 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; VPS &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;&lt;span style=&#039;color:red; &#039;&gt;£12.00&lt;/span&gt;&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;&lt;span style=&#039;color:red; &#039;&gt;-£50.71&lt;/span&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;15/04/25 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Donation received &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; £15.99 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;span style=&#039;color:red; &#039;&gt;-£34.72&lt;/span&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;16/04/25&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; VPS &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;&lt;span style=&#039;color:red; &#039;&gt;£13.44&lt;/span&gt;&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;&lt;span style=&#039;color:red; &#039;&gt;-£48.16&lt;/span&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;23/04/25 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Donation Received &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; £23.65 &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;span style=&#039;color:red; &#039;&gt;-£24.51&lt;/span&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;13/05/25&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; VPS &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;&lt;span style=&#039;color:red; &#039;&gt;£13.44&lt;/span&gt;&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;&lt;span style=&#039;color:red; &#039;&gt;-£37.95&lt;/span&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row11&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;13/06/25&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; VPS &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;&lt;span style=&#039;color:red; &#039;&gt;£13.44&lt;/span&gt;&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;&lt;span style=&#039;color:red; &#039;&gt;-£51.39&lt;/span&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row12&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;13/07/25&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; VPS &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;&lt;span style=&#039;color:red; &#039;&gt;£13.44&lt;/span&gt;&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;&lt;span style=&#039;color:red; &#039;&gt;-£64.83&lt;/span&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row13&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;13/08/25&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; VPS &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;&lt;span style=&#039;color:red; &#039;&gt;£13.44&lt;/span&gt;&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;&lt;span style=&#039;color:red; &#039;&gt;-£78.27&lt;/span&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row14&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;13/09/25&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; VPS &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;&lt;span style=&#039;color:red; &#039;&gt;£13.44&lt;/span&gt;&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;&lt;span style=&#039;color:red; &#039;&gt;-£91.71&lt;/span&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row15&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;15/09/25&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Donation Received &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; £14.07 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;span style=&#039;color:red; &#039;&gt;-£77.64&lt;/span&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row16&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;27/09/25&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Domain Name renewal &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;&lt;span style=&#039;color:red; &#039;&gt;£20.53&lt;/span&gt;&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;&lt;span style=&#039;color:red; &#039;&gt;-£98.17&lt;/span&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row17&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;16/10/25&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; VPS &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;&lt;span style=&#039;color:red; &#039;&gt;£13.44&lt;/span&gt;&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;&lt;span style=&#039;color:red; &#039;&gt;-£111.61&lt;/span&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row18&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;18/11/25&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; VPS &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;&lt;span style=&#039;color:red; &#039;&gt;£13.44&lt;/span&gt;&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;&lt;span style=&#039;color:red; &#039;&gt; -£125.05&lt;/span&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row19&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;17/12/25&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; VPS &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;&lt;span style=&#039;color:red; &#039;&gt;£13.44&lt;/span&gt;&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;&lt;span style=&#039;color:red; &#039;&gt; -£138.49&lt;/span&gt; &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;1314-2744&amp;quot;} --&gt;&lt;div class=&quot;table sectionedit7&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Opening Balance&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Donations&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Costs&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Balance&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;£8.43&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;£72.57&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;&lt;span style=&#039;color:red; &#039;&gt;£219.39&lt;/span&gt;&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;&lt;span style=&#039;color:red; &#039;&gt;-£138.49&lt;/span&gt;&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;2746-2861&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Actual Costs 2025&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;actual_costs_2025&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1222-2865&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;donations_received&quot;&gt;Donations received&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; To maintain anonymity I don&amp;#039;t want to name the donors, but listing with initials allows them to be confident that their kind support has been received.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; This is a great community to be involved with, thanks for the support&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Donations received&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;donations_received&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;2866-3128&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;year_12024&quot;&gt;Year 1 : 2024&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;table sectionedit10&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Date&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Donor&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Method&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Donation&lt;/th&gt;&lt;th class=&quot;col4&quot;&gt;Fees&lt;/th&gt;&lt;th class=&quot;col5&quot;&gt;Net&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;14/04/24&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;GL&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;Paypal &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;£5.00 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; £0.51 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; £4.49 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;14/04/24&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;HJH&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;Paypal &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; £10.00&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; £0.72 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; £9.28 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;15/04/24&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;MB&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;Paypal &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; £17.00 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; £1.01 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; £15.99 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;16/04/24&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;HJH&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;Paypal &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;£5.00&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; £0.51 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; £4.49 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;16/04/24&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;HH&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; Paypal &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; £10.00 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; £0.72 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; £9.28 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;21/04/24&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;CB&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;Paypal&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;£40.00&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;£1.98&lt;/td&gt;&lt;td class=&quot;col5&quot;&gt;£38.02&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;12/06/24&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;FW&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;Paypal&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;£20.00&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;£1.28&lt;/td&gt;&lt;td class=&quot;col5&quot;&gt;£18.72&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;16/08/24&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;MVV&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;Paypal&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;£18.00&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;£1.05&lt;/td&gt;&lt;td class=&quot;col5&quot;&gt;£16.95&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;29/11/24&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;KJ &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; Paypal &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; £20.00&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;£1.28&lt;/td&gt;&lt;td class=&quot;col5&quot;&gt;£18.72&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;23/12/24&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;HJH &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; Paypal &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; £10.00&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;£0.72&lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; £9.28&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table2&amp;quot;,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;3154-3669&amp;quot;} --&gt;&lt;div class=&quot;table sectionedit11&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Donations&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Paypal Fees&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Total Net&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Costs&lt;/th&gt;&lt;th class=&quot;col4&quot;&gt;Carried Forward to 2025&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;£155.00&lt;/strong&gt;&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;&lt;strong&gt;£9.78&lt;/strong&gt;  &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;strong&gt;£145.22&lt;/strong&gt; &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; £136.79 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; £8.43 &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table3&amp;quot;,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;3673-3800&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Year 1 : 2024&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;year_12024&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;3129-3802&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit12&quot; id=&quot;year_22025&quot;&gt;Year 2 : 2025&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;table sectionedit13&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Date&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Donor&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Method&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Donation&lt;/th&gt;&lt;th class=&quot;col4&quot;&gt;Fees&lt;/th&gt;&lt;th class=&quot;col5&quot;&gt;Net&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;01/02/25&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;MB &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; Paypal &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; £20.00&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;£1.14&lt;/td&gt;&lt;td class=&quot;col5&quot;&gt;£18.86&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;15/04/25 &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;MB  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;Paypal  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;£17.00  &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;£1.01  &lt;/td&gt;&lt;td class=&quot;col5 leftalign&quot;&gt;£15.99  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;24/04/25  &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;HH  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;Paypal  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;£25.00  &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;£1.35  &lt;/td&gt;&lt;td class=&quot;col5 leftalign&quot;&gt;£23.65  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;15/09/25&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;CDJ&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;Paypal&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;£15.00&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;£0.93&lt;/td&gt;&lt;td class=&quot;col5&quot;&gt;£14.07&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table4&amp;quot;,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;3828-4069&amp;quot;} --&gt;&lt;div class=&quot;table sectionedit14&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Donations&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Paypal Fees&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Total Net&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Costs&lt;/th&gt;&lt;th class=&quot;col4&quot;&gt;Carried Forward to 2026&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;£77&lt;/strong&gt;&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;&lt;strong&gt;£4.43&lt;/strong&gt;  &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;strong&gt;£72.57&lt;/strong&gt; &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;tbc &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; tbc &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table5&amp;quot;,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;4071-4184&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Year 2 : 2025&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;year_22025&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;3803-4189&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit15&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.yaddnet.org/index.php?&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;http://www.yaddnet.org/index.php?&quot; rel=&quot;ugc nofollow noopener&quot;&gt; YaDDNet &lt;/a&gt;
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:yaddnet&amp;amp;do=showtag&amp;amp;tag=yaddnet&quot; class=&quot;wikilink1&quot; title=&quot;tag:yaddnet&quot; rel=&quot;tag&quot;&gt;yaddnet&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;4190-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 05 Jun 2026 07:44:37 +0000</pubDate>
        </item>
        <item>
            <title>Damasko DA36 Tests 1 (2019)</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:da36tests1</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:start&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:damasko:start&quot; data-wiki-id=&quot;public:miscellany:watches:damasko:start&quot;&gt;Damasko DA36&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;damasko_da36_tests_1_2019&quot;&gt;Damasko DA36 Tests 1 (2019)&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Created Thursday 31 October 2019
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Damasko DA36 Tests 1 (2019)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;damasko_da36_tests_1_2019&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-92&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;investigation_into_fault_last_seen_aug_2018&quot;&gt;Investigation into fault last seen Aug 2018&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Fault symptoms from 30/8/18
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; rate error high (&amp;gt; 30s/d) and dependant on position&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; amplitude low ≤200°&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; hand-winding would not increase amplitude or improve random fluctuating rate.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Investigation into fault last seen Aug 2018&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;investigation_into_fault_last_seen_aug_2018&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;93-344&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;investigation_to_confirm_fault_prior_to_arranging_repair30_10_19&quot;&gt;Investigation to confirm fault prior to arranging repair : 30/10/19&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; wind 40 turns manually &amp;amp; set time: Δ = -0.7s&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; on wrist 19:00&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; take TG measurements as auto power builds up over evening&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Investigation to confirm fault prior to arranging repair : 30\/10\/19&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;investigation_to_confirm_fault_prior_to_arranging_repair30_10_19&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;345-555&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;reference_values_for_comparison_to_normal_behaviour&quot;&gt;Reference Values for comparison to &amp;quot;Normal&amp;quot; behaviour&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Last known full set of amplitude / rate measurements:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;16/12/17
Dial up	: 274° : 0
Dial dn	: 278° : 0
6H	: 256° : -6	: D = -6
3H	: 263° : 0
9H	: 262° : -2
12H	: 261° : +4
Mean	: -0.7
&lt;/pre&gt;

&lt;p&gt;
Last known good “full power” TG rate measurements:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;8/3/18 13:30
Dial up	: 291°	: +1
Dial dn	:	: 0
6H	:	: -3	D = -4
3H	:	: +2
9H	:	: 0
12H	:	: +1
Mean	: +0.7
&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Reference Values for comparison to \&amp;quot;Normal\&amp;quot; behaviour&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;reference_values_for_comparison_to_normal_behaviour&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;556-1002&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;tg_measurements_1st_day_30_10_19&quot;&gt;TG measurements 1st day 30/10/19&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;19:25
Dial up : 231° : -11

20:15
Dial up : 271° : -3
Dial dn : 263° : -3

21:15
Dial up : 282° : -1
Dial dn : 271° : 0

22:15
Dial up : 270° : -2
Dial dn : 259° : -1
6H	: 252° : -6	: D = -4
3H	: 257° : 0
9H	: 241° : -3
12H	: 262° : +1
Mean	: -1.8

23:15
Dial up : 287° : 0
Dial dn : 263° : 0
6H	: 249° : -7	: D = -7
3H	: 271° : 0
9H	: 261° : -3
12H	: 266° : +1
Mean	: -1.5


00:15
Dial up : 302° : 0
Dial dn : 295° : 0
6H	: 260° : -6	: D = -6
3H	: 278° : 0
9H	: 271° : 0
12H	: 291° : +1
Mean	: +0.8
&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;TG measurements 1st day 30\/10\/19&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;tg_measurements_1st_day_30_10_19&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1003-1587&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;tg_measurements_2nd_day_31_10_19&quot;&gt;TG measurements 2nd day 31/10/19&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;06:10
Dial up : 272° : -2
Dial dn : 282° : 0
6H	: 249° : -7	: D = -5
3H	: 260° : 0
9H	: 261° : -2
12H	: 259° : +3
Mean	: -1.3


07:10
Dial up : 276° : 0
Dial dn : 275° : +1
6H	: 249° : -5	: D = -5
3H	: 266° : +1
9H	: 252° : -4
12H	: 252° : +2
Mean	: -0.8

08:30
Dial up : 275° : 0
Dial dn : 274° : +2
6H	: 258° : -5	: D = -5
3H	: 264° : +1
9H	: 256° : -1
12H	: 257° : +4
Mean	: -0.16

09:35
Dial up : 279° : -1
Dial dn : 281° : +1
6H	: 266° : -4	: D = -3
3H	: 270° : +1
9H	: 261° : -3
12H	: 267° : +4
Mean	: -0.33

10:30
Dial up : 265° : -2
Dial dn : 261° : 0
6H	: 240° : -8	: D = -6
3H	: 248° : -1
9H	: 236° : -5
12H	: 259° : +3
Mean	: -2.3

13:10
Dial up : 283° : 0
Dial dn : 276° : 0
6H	: 262° : -3	: D = -3
3H	: 258° : +2
9H	: 248° : 0
12H	: 259° : +4
Mean	: +0.5

14:55
Dial up : 278° : -2
Dial dn : 275° : -1
6H	: 257° : -7	: D = -5
3H	: 266° : 0
9H	: 257° : -1
12H	: 266° : +2
Mean	: -1.6

17:10
Dial up : 288° : 0
Dial dn : 277° : 0
6H	: 264° : -3	: D = -3
3H	: 268° : 0
9H	: 261° : -4
12H	: 269° : +2
Mean	: -0.8

21:30
Dial up : 272° : -2
Dial dn : 277° : -1
6H	: 252° : -8	: D = -6
3H	: 262° : -1
9H	: 256° : -4
12H	: 277° : +1
Mean	: -1.8&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;TG measurements 2nd day 31\/10\/19&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;tg_measurements_2nd_day_31_10_19&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;1588-2853&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;tg_measurements_3rd_day_1_11_19&quot;&gt;TG measurements 3rd day 1/11/19&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;06:00
Dial up : 262° : +1
Dial dn : 260° : +3
6H	: 248° : -4	: D = -5
3H	: 257° : +3
9H	: 251° : 0
12H	: 251° : +7
Mean	: +1.6

16:35
Dial up : 283° : 0
Dial dn : 283° : 0
6H	: 271° : -5	: D = -5
3H	: 271° : 0
9H	: 264° : 0
12H	: 279° : +1
Mean	: -0.6
&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;TG measurements 3rd day 1\/11\/19&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;tg_measurements_3rd_day_1_11_19&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;2854-3176&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;tg_measurements_4rd_day_2_11_19&quot;&gt;TG measurements 4rd day 2/11/19&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;07:45
Dial up : 260° : +1
Dial dn : 268° : +4
6H	: 245° : -5	: D = -6
3H	: 250° : +1
9H	: 249° : 0
12H	: 251° : +3
Mean	: -0.6

16:15
Dial up : 294° : -1
Dial dn : 293° : 0
6H	: 268° : -5	: D = -6
3H	: 266° : 0
9H	: 273° : -2
12H	: 273° : +1
Mean	: -1.6

19:30
Dial up : 299° : -1
Dial dn : 298° : 0
6H	: 267° : -5	: D = -4
3H	: 267° : 0
9H	: 273° : -4
12H	: 272° : +1
Mean	: -1.5&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;TG measurements 4rd day 2\/11\/19&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;tg_measurements_4rd_day_2_11_19&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;3177-3635&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;tg_measurements_5th_day_3_11_19&quot;&gt;TG measurements 5th day 3/11/19&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;07:00
Dial up : 258° : +1
Dial dn : 264° : +6
6H	: 251° : -1	: D = -2
3H	: 255° : +1
9H	: 254° : 0
12H	: 251° : +3
Mean	: +1.6

16:10
Dial up : 291° : 0
Dial dn : 281° : 0
6H	: 271° : -4	: D = -4
3H	: 264° : 0
9H	: 259° : -2
12H	: 271° : +3
Mean	: -0.5

21:00
Dial up : 289° : -1
Dial dn : 278° : 0
6H	: 261° : -5	: D = -4
3H	: 262° : 0
9H	: 258° : -1
12H	: 260° : +2
Mean	: -0.8

&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;TG measurements 5th day 3\/11\/19&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;tg_measurements_5th_day_3_11_19&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:6,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;3636-4093&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit10&quot; id=&quot;tg_measurements_6th_day_4_11_19&quot;&gt;TG measurements 6th day 4/11/19&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;06:15
Dial up : 264° : +1
Dial dn : 256° : +3
6H	: 240° : -5	: D = -6
3H	: 249° : 0
9H	: 256° : 0
12H	: 248° : +4
Mean	: +0.5

11:25
Dial up : 292° : 0
Dial dn : 283° : +1
6H	: 267° : -4	: D = -4
3H	: 277° : +1
9H	: 262° : -1
12H	: 268° : +3
Mean	: +0.0

&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;TG measurements 6th day 4\/11\/19&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;tg_measurements_6th_day_4_11_19&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;4094-4419&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit11&quot; id=&quot;amplitude_vs_position_vs_mean_rate&quot;&gt;Amplitude vs Position vs Mean Rate&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;Date     	Time		Du	Dd	6h	3h	9h	12h	Av	M
=============================================================================================	
30/10/19 	22:15		270	259	252	257	241	262	257	-1.8	
30/10/19 	23:15		287	263	249	271	261	266	266	-1.5&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;31/10/19 	00:15		302	295	260	278	271	291	283	+0.8	
31/10/19 	06:10		272	282	249	260	261	259	263	-1.3
31/10/19 	07:10		276	275	249	266	252	252	262	-0.8
31/10/19 	08:30		275	274	258	264	256	257	263	+0.2
31/10/19 	09:35		279	281	266	270	261	267	271	-0.3
31/10/19 	10:30		265	261	240	248	236	259	252	-2.3
31/10/19 	13:10		283	276	262	258	248	259	264	+0.5
31/10/19 	14:55		278	275	257	266	257	266	267	-1.6
31/10/19 	17:10		288	277	264	268	261	269	271	-0.8
31/10/19 	21:30		272	277	252	262	256	277	266	-1.8&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;01/11/19 	06:00		262	260	248	257	251	251	255	+1.6
01/11/19 	16:35		283	283	271	271	264	279	275	-0.6

02/11/19 	07:45		260	268	245	250	249	251	254	+0.6
02/11/19	16:15		294	293	268	266	273	273	279	-1.6
02/11/19	19:30		299	298	267	267	273	272	279	-1.5

03/11/19	07:00		258	264	251	255	254	251	256	+1.6
03/11/19	16:10		291	281	271	264	259	270	273	-0.5
03/11/19	21:00		289	278	261	262	258	260	268	-0.8

04/11/19	06:15		264	256	240	249	256	248	252	+0.5
04/11/19	11:25		292	283	267	277	262	268	275	+0.0&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Amplitude vs Position vs Mean Rate&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;amplitude_vs_position_vs_mean_rate&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;4420-5733&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit12&quot; id=&quot;watchcheck_data&quot;&gt;Watchcheck data&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;Date		Time	Δ(s)	Error(s/d)	Ave(s/d)	Comment
31/10/19 	06:17 	-2.2
01/11/19 	06:06 	-4.2	-2.0		-2.0		Dial up overnight
02/11/19 	07:43	-6.7	-2.3		-2.2		Dial up overnight
03/11/19 	06:54	-7.5	-0.8		-1.8		Dial down overnight
04/11/19	06:32	-8.5	-1.0		-1.6		Dial down overnight

&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Watchcheck data&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;watchcheck_data&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;5734-6054&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit13&quot; id=&quot;timegrapher_pseudo-cosc_test&quot;&gt;TimeGrapher Pseudo-COSC Test&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
16:00 1/11/19 (Full Power) &amp;amp; 07:45 2/11/19 (After overnight resting dial-up)
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;M1	-5
M2	-5	Mean 6H	: -5	V1 : 0
M3	+2
M4	+1	Mean 3H	: +1.5	V2 : 1
M5	0
M6	0	Mean 9H	: 0	V3 : 0
M7	+2
M8	+4	Mean DD	: +3	V4 : 2
M9	0
M10	+1	Mean DU : +0.5	V5 : 1
M11	n/a
M12	-5&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;                         Limit		
M	0	Pass	(+6/-4) 	Mean Daily Rate			: Ave of M1..M10
Vavg	0.8	Pass	(2)		Mean Variation			: Ave of V1..V5
Vmax	2	Pass	(5)		Max Variation 			: Max of V1..V5
D	-5.5	Pass*	(+8/-6) 	Difference Vert-Horiz		: Ave of M1..M2 minus Ave of M9..M10
P	5	Pass	(10)		Largest Variation from mean	: Value of M1.. M10 with largest difference from overall M
R	+0	Pass	(+5/-5) 	Rate Resumption			: M12 minus Ave of M1..M2 &lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;TimeGrapher Pseudo-COSC Test&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;timegrapher_pseudo-cosc_test&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;6055-6817&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit14&quot; id=&quot;power_reserve_test&quot;&gt;Power Reserve Test&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Start fully wound  : “day 0”
&lt;/p&gt;

&lt;p&gt;
Put on Timegrapher, dial up, to observe rate/amplitude during period of test
&lt;/p&gt;

&lt;p&gt;
&lt;em class=&quot;u&quot;&gt;ETA 2836-2 spec = 38 hours&lt;/em&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Off wrist date time 	:	04/11/19	11:35
Stopped date time	:	05/11/19	21:27
Elapsed time		:	33:52&lt;/pre&gt;

&lt;p&gt;
TG Checks during Power Reserve test, Dial Up
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;	
Date		Time	Elapsed	Amp	Rate	Δ-NTP
04/11/19	11:35	0:00	279	0	-8.5
04/11/19	14:35	3:00	270	+1		
04/11/19	17:35	6:00	271	0
04/11/19	21:10	8:35	260	0
04/11/19	23:20	11:45	251	0
05/11/19	06:20	18:45	243	0
05/11/19	08:35	21:00	233	-1
05/11/19	09:30	21:55	234	-1	-9.4
05/11/19	13:55	26:20	213	-6
05/11/19	15:00	27:25	212	-7	-10.9
05/11/19	16:45	29:10	203	-10
05/11/19 	17:35	30:00	198	-12
05/11/19	18:35	31:00	191	-14
05/11/19	19:35	32:00	179	-19	-13.3
05/11/19	20:35	33:00	168	-27
05/11/19	21:27	33:52	STOPPED....

Power reserve	:	33:52&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Power Reserve Test&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;power_reserve_test&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:11,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;6818-7687&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit15&quot; id=&quot;da36measurements&quot;&gt;DA36Measurements&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Created Friday 08 November 2019
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DA36Measurements&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;da36measurements&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:12,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;7688-7752&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit16&quot; id=&quot;november_2019&quot;&gt;8 November 2019&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;	08/11/19 : 06:15
	Dial up : 254° : -1
	Dial dn : 261° : +4
	6H	: 243° : -6
	3H	: 237° : -1
	9H	: 222° : -6
	12H	: 226° : 0
	D 	: -5
	Mean	: 241° : -1.6&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;	08/11/19 : 12:45
	Dial up : 284° : 0
	Dial dn : 281° : +1
	6H	: 266° : -3	
	3H	: 263° : 0
	9H	: 259° : -1
	12H	: 266° : +3
	D 	: -3
	Mean	: 270° : 0&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;	08/11/19 : 23:20
	Dial up : 280° : -2
	Dial dn : 277° : 0
	6H	: 260° : -3	
	3H	: 261° : 0
	9H	: 254° : -2
	12H	: 259° : +3
	D 	: -1
	Mean	: 265° : 0&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;8 November 2019&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;november_2019&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:12,&amp;quot;secid&amp;quot;:16,&amp;quot;range&amp;quot;:&amp;quot;7753-8287&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit17&quot; id=&quot;th_november_2019&quot;&gt;9th November 2019&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;09/11/19 : 06:50
Dial up : 256° : +1
Dial dn : 254° : +3
6H	: 230° : -7	
3H	: 227° : -4
9H	: 234° : -2
12H	: 227° : +1
D 	: -8
Mean	: 238° : -1.3&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;09/11/19 : 13:10
Dial up : 281° : 0
Dial dn : 282° : 0
6H	: 264° : -4	
3H	: 263° : 0
9H	: 268° : 0
12H	: 260° : +3
D 	: -4
Mean	: 270° : -0.2&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;09/11/19 : 23:00
Dial up : 286° : -2
Dial dn : 280° : 0
6H	: 260° : -6	
3H	: 256° : -2
9H	: 272° : 0
12H	: 263° : +1
D 	: -4
Mean	: 270° : -1.5&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;9th November 2019&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;th_november_2019&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:12,&amp;quot;secid&amp;quot;:17,&amp;quot;range&amp;quot;:&amp;quot;8288-8805&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit18&quot; id=&quot;th_november_20191&quot;&gt;10th November 2019&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;10/11/19 : 07:05
Dial up : 251° : 0
Dial dn : 246° : +1
6H	: 232° : -8	
3H	: 220° : -8
9H	: 230° : -3
12H	: 230° : 0
D 	: -8
Mean	: 236° : -3&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;10/11/19 : 14:20	
Dial up : 256° : -4
Dial dn : 248° : -5
6H	: 233° : -13	
3H	: 228° : -6
9H	: 227° : -8
12H	: 226° : -5
D 	: -9
Mean	: 236° : -6.8&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;Wound manually 40 turns:

Dial up	: 238°	: -5
Dial dn	: 234°	: -6
6H	: 225° 	: -14&lt;/pre&gt;

&lt;p&gt;
Amplitude still low…..
&lt;/p&gt;

&lt;p&gt;
Wound manually &amp;gt; 100 turns:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;	
Dial up : 263° : -1
Dial dn : 264° : 0
6H	: 244° : -9	
3H	: 245° : -3
9H	: 256° : -2
12H	: 249° : 0
D 	: -8
Mean	: 253° : -5.0&lt;/pre&gt;

&lt;p&gt;
Rate improved but amplitude still low - can&amp;#039;t achieve “full wind power”?
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;10/11/19 : 16:30
Dial up : 274° : 0
Dial dn : 259° : 0
6H	: 238° : -9	
3H	: 250° : -2
9H	: 245° : -3
12H	: 242° : 0
D 	: -9
Mean	: 251° : -2.3&lt;/pre&gt;

&lt;p&gt;
Back to on-wrist for further observations @ 16:50
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10th November 2019&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;th_november_20191&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:12,&amp;quot;secid&amp;quot;:18,&amp;quot;range&amp;quot;:&amp;quot;8806-9740&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit19&quot; id=&quot;amplitude_vs_position_vs_mean_rate_error&quot;&gt;Amplitude vs position vs mean rate error&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;	Date     	Time		Du	Dd	6h	3h	9h	12h	Av	M	
	============================================================================================
	08/11/19	06:15		254	261	243	237	222	226	241	-1.6
	08/11/19	12:45		284	281	266	263	259	266	270	+0.0
	08/11/19	23:20		280	277	260	261	254	259	265	+0.0	&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;	09/11/19	06:50		256	254	230	227	234	227	238	-1.3
	09/11/19	13:10		281	282	264	263	268	260	270	-0.2
	09/11/19	23:00		286	280	260	256	272	263	270	-1.5
	
	10/11/19	07:05		251	246	232	220	230	230	236	-3.0
	10/11/19	14:20		256	248	233	228	227	226	236	-6.8 !!!!!
	10/11/19	16:30		274	259	238	250	245	242	251	-2.3
	10/11/19	17:30		286	281	265	268	259	263	270	-1.
	10/11/19	19:10		259	269	248	249	260	253	256	-1.8
	10/11/19	21:00		293	284	264	260	266	267	272	-2.5
	10/11/19	23:00		270	277	266	250	261	252	262	-3.0&lt;/pre&gt;

&lt;p&gt;
Over to &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:da36tests2&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:damasko:da36tests2&quot; data-wiki-id=&quot;public:miscellany:watches:damasko:da36tests2&quot;&gt;Damasko DA36 Tests 2 (2019)&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Amplitude vs position vs mean rate error&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;amplitude_vs_position_vs_mean_rate_error&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:12,&amp;quot;secid&amp;quot;:19,&amp;quot;range&amp;quot;:&amp;quot;9741-10635&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit20&quot; id=&quot;dial-up_amplitude_rate&quot;&gt;Dial-Up Amplitude &amp;amp; Rate&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;Date		Time	Amp.	Rate
=====================================
08/11/19	06:15	254	-1
08/11/19	12:45	284	0	
08/11/19	15:40	281	0
08/11/19	17:00	272	0
08/11/19	23:20	280	-2&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;09/11/19	06:50	256	+1
09/11/19	10:40	270	-1
09/11/19	13:10	281	0
09/11/19	20:30	288	-1
09/11/19	23:00	286	-2

10/11/19	07:05	251	0
10/11/19	10:10	267	-3
10/11/19	14:20	256	-4 !!! Low amplitude all positions after several hours on wrist.&lt;/pre&gt;

&lt;p&gt;
Goto &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:da36tests2&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:damasko:da36tests2&quot; data-wiki-id=&quot;public:miscellany:watches:damasko:da36tests2&quot;&gt;Damasko DA36 Tests 2 (2019)&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Dial-Up Amplitude &amp;amp; Rate&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dial-up_amplitude_rate&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:12,&amp;quot;secid&amp;quot;:20,&amp;quot;range&amp;quot;:&amp;quot;10636-11121&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit21&quot; id=&quot;watchcheck_measurements&quot;&gt;Watchcheck measurements&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;Android Watchcheck (one per day to show overall rate):&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;Date		Time	Δ(s)	Error(s/d)	Ave(s/d)	Comment
=======================================================================================&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;08/11/19	06:24	-7.7	-1.6		-2.0		overnight dial down
09/11/19	07:04	-9.5	-1.7		-1.9		overnight dial down
10/11/19	07:02	-11.9	-2.4		-2.1		overnight dial down
11/11/19	06:25	-14.1	-2.3		-2.1		overnight dial up


Python Watchcheck (2 per day to show difference between on-wrist and resting position):

dd/mm/yyyy HH:MM:SS	Δ(s)        Error(s/d)       Ave(s/d)	Comment
===================================================================&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;08/11/2019 06:25:07     -7.8            +3.6            -1.3	Nighttime dial down = positive
08/11/2019 23:19:10     -10.3           -3.6            -2.0 	daytime on wrist = negative
09/11/2019 07:05:09     -9.5            +2.6            -1.4	Nighttime dial down = positive
09/11/2019 23:05:12     -12.6           -4.8            -2.1	Daytime on wrist = negative
10/11/2019 07:03:11     -11.6           +3.1            -1.6	Nighttime dial down = positive
10/11/2019 23:10:14     -14.2           -3.8            -2.0 	Daytime worn = negative
11/11/2019 06:23:14     -14.1           +0.1            -1.8 	Dial Up overnight. Zero&lt;/pre&gt;

&lt;p&gt;
@watches
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Watchcheck measurements&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;watchcheck_measurements&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:12,&amp;quot;secid&amp;quot;:21,&amp;quot;range&amp;quot;:&amp;quot;11122-12446&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit22&quot; id=&quot;post_power_test_measurements&quot;&gt;Post Power Test Measurements&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Return to wrist and allow to reach adequate auto-winding power.
Set time &amp;amp; take new Watchcheck reading once amplitude and rate have settled.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;21:50 On wrist

22:00
Dial up : 235° : -15
Dial dn : 221° : -17
6H	: 214° : -21	: D = -6
3H	: 229° : -15
9H	: 225° : -16
12H	: 220° : -19
Mean	: -17

* worn overnight in bed - MINIMAL ADDITIONAL AUTO-WINDING? *&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;day_1_6_11_19&quot;&gt;Day 1 6/11/19&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;06:00 	
Dial up : 226° : -10
Dial dn : 233° : -10
6H	: 214° : -20	: D = -10
3H	: 235° : -7
9H	: 210° : -15
12H	: 223° : -6
Mean	: -11

12:15 	
Dial up : 265° : -1
Dial dn : 252° : 0
6H	: 242° : -7	: D = -6
3H	: 241° : -1
9H	: 238° : -4
12H	: 249° : +1
Mean	: -2

15:50	 	
Dial up : 289° : 0
Dial dn : 276° : 0
6H	: 259° : -6	: D = -6
3H	: 267° : 0
9H	: 273° : -1
12H	: 269° : +1
Mean	: -1

19:50	 	
Dial up : 277° : 0
Dial dn : 283° : 0
6H	: 254° : -6	: D = -6
3H	: 251° : -2
9H	: 241° : -3
12H	: 266° : +4
Mean	: -1.5&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;day_2_7_11_19&quot;&gt;Day 2 7/11/19&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;06:00	 	
Dial up : 260° : +1
Dial dn : 252° : +4
6H	: 241° : -4	: D = -5
3H	: 230° : -4
9H	: 199° : -17	********
12H	: 200° : -11    ********
Mean	: -5.2

07:00	 	
Dial up : 270° : -1
Dial dn : 260° : 0
6H	: 246° : -7	: D = -6
3H	: 245° : -2
9H	: 240° : -5
12H	: 245° : 0
Mean	: -2.5

09:20	 	
Dial up : 284° : -1
Dial dn : 281° : +1
6H	: 269° : -2	: D = -1
3H	: 265° : +1
9H	: 265° : 0
12H	: 261° : +3
Mean	: +0.3

21:30		 	
Dial up : 287° : -2
Dial dn : 281° : 0
6H	: 254° : -6	: D = -4
3H	: 262° : -1
9H	: 265° : -2
12H	: 261° : +2
Mean	: -1.5&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;day_3_8_11_19&quot;&gt;Day 3 8/11/19&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;06:15
Dial up : 254° : -1
Dial dn : 261° : +4
6H	: 243° : -6	: D = -5
3H	: 237° : -1
9H	: 222° : -6
12H	: 226° : 0
Mean	: -1.6&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;12:45
Dial up : 284° : 0
Dial dn : 281° : +1
6H	: 266° : -3	: D = -3
3H	: 263° : 0
9H	: 259° : -1
12H	: 266° : +3
Mean	: 270° : 0&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;Date     	Time		Du	Dd	6h	3h	9h	12h	Av	M
=============================================================================================
06/11/19	06:30		226	233	214	235	210	223	223	-11.0
06/11/19	12:15		265	252	242	241	238	249	248	-2.0
06/11/19	15:50		289	276	259	267	273	269	272	-1.0
06/11/19	19:50		277	283	254	251	241	266	262	-1.5

07/11/19	06:00		260	252	241	230	199!!	200!!	230	-5.2
07/11/19	07:00		270	260	246	245	240	245	251	-2.5
07/11/19	09:20		284	281	269	265	265	261	271	+0.3
07/11/19	21:30		287	281	254	262	265	261	268	-1.5

08/11/19	06:15		254	261	243	237	222	226	241	-1.6
08/11/19	12:45		284	281	266	263	259	266	270	+0.0




Android Watchcheck:&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;Date		Time	Δ(s)	Error(s/d)	Ave(s/d)	Comment
=======================================================================================
06/11/19 	06:41 	-3.6					New period started
06/11/19	12:32	-5.4	-7.4		-7.4		after ~6 hours
06/11/19	20:02	-6.2	-2.5		-4.6		after further 7.5 hours
07/11/19	05:55	-6.1	+0.2		-2.6		overnight dial down
08/11/19	06:24	-7.7	-1.6		-2.0		overnight dial down



Python Watchcheck:

dd/mm/yyyy HH:MM:SS	Δ(s)        Error(s/d)       Ave(s/d)	Comment
===================================================================
06/11/2019 20:22:06     -6.2            -2.5            -2.5	Daytime = negative
07/11/2019 05:56:06     -6.1            +0.3            -0.8	Nighttime dial down = positive
08/11/2019 00:36:08     -8.6            -3.3            -2.1	Daytime = negative
08/11/2019 06:25:07     -7.8            +3.6            -1.3	Nighttime dial down = positive&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Post Power Test Measurements&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;post_power_test_measurements&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:12,&amp;quot;secid&amp;quot;:22,&amp;quot;range&amp;quot;:&amp;quot;12447-16012&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit23&quot; id=&quot;conclusion&quot;&gt;Conclusion&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
There seems to be nothing wrong.
&lt;/p&gt;

&lt;p&gt;
4 full days of on-wrist testing shows normal amplitude and rate error.
&lt;/p&gt;

&lt;p&gt;
Power-run-down test gives a reserve time of ≥33 hours. This is less than the ETA 2836-2 spec of 38 hours. This may be due to starting the test with less than full wind? 33 hours is still acceptable. Rate and amplitude drops after 24 hours, but accumulated error is still acceptable if the test had been stopped before completion and the watch worn (an additional ~5 seconds of loss over the 33 hours of testing).
&lt;/p&gt;

&lt;p&gt;
&lt;em class=&quot;u&quot;&gt;Restarting and achieving full-power/amplitude &amp;amp; normal rate error takes some time on-wrist - avoiding manually winding as far as possible, just enough to start the movement running. Is there still an intermittent problem with the winding or power?&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Time will tell.
&lt;/p&gt;

&lt;p&gt;
Further monitoring under &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:da36measurements&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:damasko:da36measurements&quot; data-wiki-id=&quot;public:miscellany:watches:damasko:da36measurements&quot;&gt;Damasko DA36 Measurements (2019)&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Page Updated: 30/12/25 09:55 GMT
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:watch&amp;amp;do=showtag&amp;amp;tag=watch&quot; class=&quot;wikilink1&quot; title=&quot;tag:watch&quot; rel=&quot;tag&quot;&gt;watch&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:damasko&amp;amp;do=showtag&amp;amp;tag=damasko&quot; class=&quot;wikilink1&quot; title=&quot;tag:damasko&quot; rel=&quot;tag&quot;&gt;damasko&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Conclusion&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;conclusion&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:12,&amp;quot;secid&amp;quot;:23,&amp;quot;range&amp;quot;:&amp;quot;16013-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 30 Dec 2025 09:55:07 +0000</pubDate>
        </item>
        <item>
            <title>Benchmarking</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:benchmarking:start</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:start&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:start&quot; data-wiki-id=&quot;public:calculator:start&quot;&gt;Calculators&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;benchmarking&quot;&gt;Benchmarking&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt;Various methods to test the speed of calculators &lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Benchmarking&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;benchmarking&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;13-96&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;hp_museum_benchmarks&quot;&gt;HP Museum Benchmarks&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
These pseudo-code examples need tweaking for each calculator, some have &lt;code&gt;alpha&lt;/code&gt; register names, some &lt;code&gt;numeric&lt;/code&gt;. 
&lt;/p&gt;

&lt;p&gt;
The handling of the &amp;lt;loop&amp;gt; is different in each calculator,too.
&lt;/p&gt;

&lt;p&gt;
The Programs are run for 1 minute and the result (the number of loops completed) is found in register 2 (or wherever is used in the calculator being tested).
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;HP Museum Benchmarks&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hp_museum_benchmarks&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;97-471&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;hp_museum_maths_benchmark&quot;&gt;HP Museum Maths Benchmark&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_2b77356d1ed6b6f8549872b9c4a844bc_1&quot;&gt;psuedo code &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_2b77356d1ed6b6f8549872b9c4a844bc_1&quot;&gt;&lt;pre class=&quot;code&quot;&gt;LBL &amp;lt;whatever&amp;gt;
0
STO 2
1.01234 EEX 6
STO 0
2.345
STO 1
&amp;lt;loop&amp;gt;
RCL 1
RCL 0
*
RCL 1
-
RCL 0
/
RCL 1
*
3.5
/
SQRT
1
STO+ 2
GTO &amp;lt;loop&amp;gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;HP Museum Maths Benchmark&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hp_museum_maths_benchmark&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;472-684&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;hp_museum_trig_benchmark&quot;&gt;HP Museum Trig Benchmark&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_2b77356d1ed6b6f8549872b9c4a844bc_2&quot;&gt;pseudo code &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_2b77356d1ed6b6f8549872b9c4a844bc_2&quot;&gt;&lt;pre class=&quot;code&quot;&gt;LBL &amp;lt;whatever&amp;gt;
56.26
STO 0
0
STO 2
&amp;lt;loop&amp;gt;
RCL 0
SIN
ASIN
COS
ACOS
TAN
ATAN
LN
e^x
1
STO + 2
GTO &amp;lt;loop&amp;gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;HP Museum Trig Benchmark&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hp_museum_trig_benchmark&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;685-865&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;overall_results&quot;&gt;Overall Results&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;strong&gt; sorted by Maths Benchmark&lt;/strong&gt;
&lt;/p&gt;
&lt;div class=&quot;table sectionedit6&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Date&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Calculator&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Serial No&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Firmware&lt;/th&gt;&lt;th class=&quot;col4&quot;&gt;Maths Result&lt;/th&gt;&lt;th class=&quot;col5&quot;&gt; Maths % &lt;sup&gt;&lt;a href=&quot;#fn__1&quot; id=&quot;fnt__1&quot; class=&quot;fn_top&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt;&lt;/th&gt;&lt;th class=&quot;col6&quot;&gt;Trig Result&lt;/th&gt;&lt;th class=&quot;col7&quot;&gt;Trig %&lt;sup&gt;&lt;a href=&quot;#fn__2&quot; id=&quot;fnt__2&quot; class=&quot;fn_top&quot;&gt;2)&lt;/a&gt;&lt;/sup&gt;&lt;/th&gt;&lt;th class=&quot;col8&quot;&gt;Comment&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 12/01/26&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM15L * &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 21350 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_250408.hex&quot; class=&quot;media mediafile mf_hex&quot; title=&quot;public:calculator:info:lf15c_250408.hex (175.8 KB)&quot;&gt;lf15c_250408.hex&lt;/a&gt;&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;99,869 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 14,708% &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; 17,306 &lt;/td&gt;&lt;td class=&quot;col7&quot;&gt; 43,265% &lt;/td&gt;&lt;td class=&quot;col8 leftalign&quot;&gt; 3rd Party Firmware  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 21/09/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM15L * &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 21350 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:guides:lf15c_beta240920.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:guides:lf15c_beta240920.zip (66.8 KB)&quot;&gt;lf15c_beta240920.zip&lt;/a&gt;&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 68,791 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 10,131% &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; 14,159 &lt;/td&gt;&lt;td class=&quot;col7&quot;&gt; 35,397% &lt;/td&gt;&lt;td class=&quot;col8 leftalign&quot;&gt; 3rd Party Firmware   &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; 20/07/23  &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; DM32  &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 00812 &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt; 2.03  &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt; 46,265  &lt;/td&gt;&lt;td class=&quot;col5 leftalign&quot;&gt; 6,813%   &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; 12,224 &lt;/td&gt;&lt;td class=&quot;col7 leftalign&quot;&gt; 30,560%    &lt;/td&gt;&lt;td class=&quot;col8 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;26/05/22   &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;DM42    &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;06434  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 3.21&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;24,701 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt;3,637% &lt;/td&gt;&lt;td class=&quot;col6 leftalign&quot;&gt;3,741  &lt;/td&gt;&lt;td class=&quot;col7 leftalign&quot;&gt;9,352.5%  &lt;/td&gt;&lt;td class=&quot;col8 leftalign&quot;&gt;    &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;09/05/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;DM42 * &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 06434&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; C47 00.109.01.03a2 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 4,976 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 732.8% &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; 210 &lt;/td&gt;&lt;td class=&quot;col7&quot;&gt; 525.0% &lt;/td&gt;&lt;td class=&quot;col8&quot;&gt; 3rd Party Firmware &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 02/08/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM41X &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;01266 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;2.2&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;3,273 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 482% &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; 627 &lt;/td&gt;&lt;td class=&quot;col7 leftalign&quot;&gt; 1,690%  &lt;/td&gt;&lt;td class=&quot;col8&quot;&gt; FAST/USB power&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 17/09/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM15L * &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 21350 &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:guides:lf15c_beta240916_2.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:guides:lf15c_beta240916_2.zip (67.5 KB)&quot;&gt;lf15c_beta240916_2.zip&lt;/a&gt;  &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;1,346 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 198% &lt;/td&gt;&lt;td class=&quot;col6 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col7&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col8 leftalign&quot;&gt; 3rd Party Firmware  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;26/05/22   &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;DM41X    &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;01266 &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt; 2.1  &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;1,117 &lt;/td&gt;&lt;td class=&quot;col5 leftalign&quot;&gt;164%  &lt;/td&gt;&lt;td class=&quot;col6 leftalign&quot;&gt;228  &lt;/td&gt;&lt;td class=&quot;col7&quot;&gt;570% &lt;/td&gt;&lt;td class=&quot;col8 leftalign&quot;&gt;FAST mode   &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 02/08/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM41X &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 01266 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 2.2 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;1,038 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 152% &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; 206 &lt;/td&gt;&lt;td class=&quot;col7&quot;&gt; 515% &lt;/td&gt;&lt;td class=&quot;col8&quot;&gt; FAST &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 14/01/26 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM41X &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 01266 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 2.3 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;900 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 132% &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; 177 &lt;/td&gt;&lt;td class=&quot;col7 leftalign&quot;&gt; 442%  &lt;/td&gt;&lt;td class=&quot;col8&quot;&gt; FAST &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row11&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;23/01/26 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM15L &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 21350 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; DM15_M1B_34 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;790 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 116% &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; 199 &lt;/td&gt;&lt;td class=&quot;col7&quot;&gt; 497% &lt;/td&gt;&lt;td class=&quot;col8&quot;&gt; 48MHz &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row12&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;26/05/22    &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;DM15L &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;21350 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;DM15_M1B_32 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;676 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt;99% &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; 185 &lt;/td&gt;&lt;td class=&quot;col7&quot;&gt; 462.5% &lt;/td&gt;&lt;td class=&quot;col8&quot;&gt;48MHz&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row13&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;26/05/22    &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;HP35S    &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;PHA9150KFF&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; n/a&lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;292  &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt;43% &lt;/td&gt;&lt;td class=&quot;col6 leftalign&quot;&gt;113  &lt;/td&gt;&lt;td class=&quot;col7&quot;&gt;282.5% &lt;/td&gt;&lt;td class=&quot;col8&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row14&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;23/12/25 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM41L &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 05121 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; DM41_34 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 261 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 38% &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt;140 &lt;/td&gt;&lt;td class=&quot;col7 leftalign&quot;&gt; 350%  &lt;/td&gt;&lt;td class=&quot;col8&quot;&gt; 48MHz &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row15&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;26/08/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM41L &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 05121 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;DM41_32 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;154 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 22% &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; 108 &lt;/td&gt;&lt;td class=&quot;col7&quot;&gt; 270% &lt;/td&gt;&lt;td class=&quot;col8&quot;&gt; 48MHz &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row16&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;26/05/22    &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;DM15L &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;21350 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;DM15_M1B_32 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;150 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt;22% &lt;/td&gt;&lt;td class=&quot;col6 leftalign&quot;&gt;41  &lt;/td&gt;&lt;td class=&quot;col7 leftalign&quot;&gt;102.5%  &lt;/td&gt;&lt;td class=&quot;col8&quot;&gt;12MHz&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row17&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;26/08/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM41L &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 05121&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; DM41_32 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 96 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 14% &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; 40 &lt;/td&gt;&lt;td class=&quot;col7&quot;&gt; 100% &lt;/td&gt;&lt;td class=&quot;col8&quot;&gt; 12MHz &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row18&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;26/05/22   &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;DM41X    &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;01266 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;2.1&lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;93  &lt;/td&gt;&lt;td class=&quot;col5 leftalign&quot;&gt;13%  &lt;/td&gt;&lt;td class=&quot;col6 leftalign&quot;&gt;18  &lt;/td&gt;&lt;td class=&quot;col7 leftalign&quot;&gt;45%  &lt;/td&gt;&lt;td class=&quot;col8 leftalign&quot;&gt;SLOW mode (original HP41 Speed)  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row19&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;02/08/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;DM41X &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 01266 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;2.2&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 93 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 13% &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; 18 &lt;/td&gt;&lt;td class=&quot;col7&quot;&gt; 45% &lt;/td&gt;&lt;td class=&quot;col8 leftalign&quot;&gt; SLOW  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row20&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;28/07/22 &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;HP11C  &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 2219AO3710 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; n/a&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;37 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt;5.45%&lt;/td&gt;&lt;td class=&quot;col6&quot;&gt;9 &lt;/td&gt;&lt;td class=&quot;col7&quot;&gt;22.5%&lt;/td&gt;&lt;td class=&quot;col8 leftalign&quot;&gt;   &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;925-2736&amp;quot;} --&gt;&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Reference is HP9100 : Maths Score = 679, Trig Score = 40&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Overall Results&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;overall_results&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;866-2799&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;code&quot;&gt;Code&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
State Files for DM32 
&lt;/p&gt;

&lt;p&gt;
Maths : hpbmm : &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:benchmarking:hpbmm.d32&quot; class=&quot;media mediafile mf_d32&quot; title=&quot;public:calculator:benchmarking:hpbmm.d32 (885 B)&quot;&gt;hpbmm.d32&lt;/a&gt; : Run as &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;A&lt;/kbd&gt; : Get result from &lt;kbd class=&quot;__keyboard&quot;&gt;RCL&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;C&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
Trig : hpbmt : &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:benchmarking:hpbmt.d32&quot; class=&quot;media mediafile mf_d32&quot; title=&quot;public:calculator:benchmarking:hpbmt.d32 (839 B)&quot;&gt;hpbmt.d32&lt;/a&gt; : Run as &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;A&lt;/kbd&gt; : Get result from &lt;kbd class=&quot;__keyboard&quot;&gt;RCL&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;C&lt;/kbd&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_2b77356d1ed6b6f8549872b9c4a844bc_3&quot;&gt;Maths Benchmark Listing for DM42 &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_2b77356d1ed6b6f8549872b9c4a844bc_3&quot;&gt;&lt;pre class=&quot;code&quot;&gt;LBL &amp;quot;BM&amp;quot;
0
STO 02
1.01234E6 
STO 00
2.345
STO 01
LBL 02
RCL 01
RCL 00
x
RCL 01
-
RCL 00
÷
RCL 01
x
3.5
÷
SQRT
1
STO+ 02
GTO 02
END&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
Raw File : Maths Benchmark (bm) file for DM41X &amp;amp; DM42 &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:progs:bm.raw&quot; class=&quot;media mediafile mf_raw&quot; title=&quot;public:calculator:progs:bm.raw (48 B)&quot;&gt;bm.raw&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Raw File : Trig Benchmark (bmt) file for DM41X &amp;amp; DM42 &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:progs:bmt.raw&quot; class=&quot;media mediafile mf_raw&quot; title=&quot;public:calculator:progs:bmt.raw (35 B)&quot;&gt;bmt.raw&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_2b77356d1ed6b6f8549872b9c4a844bc_4&quot;&gt;Maths Benchmark Listing for DM41X &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_2b77356d1ed6b6f8549872b9c4a844bc_4&quot;&gt;&lt;pre class=&quot;code&quot;&gt;LBL ¬BM
0
STO 02
1.01234 E6
STO 00
2.345
STO 01
LBL 02
RCL 01
RCL 00
*
RCL 01
-
RCL 00
/
RCL 01
*
3.5
/
SQRT
1
ST+ 02
GTO 02
END
&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_2b77356d1ed6b6f8549872b9c4a844bc_5&quot;&gt;Maths Benchmark Listing for HP35S &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_2b77356d1ed6b6f8549872b9c4a844bc_5&quot;&gt;&lt;pre class=&quot;code&quot;&gt;LBL X
0
STO C
1.01234E6
STO A
2.345
STO B
RCL B  &amp;lt;-- loop in
RCL A
x
RCL B
-
RCL A
÷
RCL B
x
3.5
÷
√x
1
STO+ C
GTO X008  --&amp;gt; loop in
&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_2b77356d1ed6b6f8549872b9c4a844bc_6&quot;&gt;Maths Benchmark Listing for DM15L / HP15C &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_2b77356d1ed6b6f8549872b9c4a844bc_6&quot;&gt;&lt;pre class=&quot;code&quot;&gt;42,21,15
0
42 2
1
48
0
1
2
3
4
26
6
44 0
2
48
3
4
5
44 1
42,21,2
45 1
45 0
20
45 1
30
45 0
10
45 1
20
3
48
5
10
11
1
44,40, 2
22 2
43 32&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;LBL E
0
STO 2
1
.
0
1
2
3
4
EEX
6 
STO 0
2
.
3
4
5
STO 1
LBL 2
RCL 1
RCL 0
x
RCL 1
-
RCL 0
÷
RCL 1
x
3
.
5
÷
√x
1
STO + 2
GTO 2
RTN&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_2b77356d1ed6b6f8549872b9c4a844bc_7&quot;&gt;Maths Benchmark Listing for DM32 &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_2b77356d1ed6b6f8549872b9c4a844bc_7&quot;&gt;&lt;pre class=&quot;code&quot;&gt;LBL A
0
STO C
1.01234 E 6
STO A
2.345
STO B
LBL B
RCL B
RCL A
X
RCL B
-
RCL A
/
RCL B
X
3.5
/
SQRT
1
STO+ C
GTO B
RTN&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_2b77356d1ed6b6f8549872b9c4a844bc_8&quot;&gt;DM15L Memory Dump : Maths Benchmark = LBL A, Trig Benchmark = LBL B &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_2b77356d1ed6b6f8549872b9c4a844bc_8&quot;&gt;&lt;pre class=&quot;code&quot;&gt;DM15_M1B
00  05626000000001  01000000000000  01000000000000  00000000000000
04  04975000fff000  00000000000008  0000000000000c  00999999999eae
08  00000000000000  2a2f87beda1280  00000000bcaf80  00000000000000
10  05626000000001  02345000000000  00000000000000  04000000000001
14  f0000000000402  1b4c4c4c4c4c4c  000000000007f7  000000000007fe
18  00000000000000  0000000000007f  00000000a00000  01990000000002
1c  01387265622000  01579783596001  05000000000000  03000000000000
20  00000000000000  00000000000000  04000000000000  08000000000000
24  02100000000001  00000000000000  00000000000000  00000000000000
f4  00000000000000  00000000000000  00000000000000  b21282dff1cafd
f8  f5c0f3fc31fd30  fb31fc30310241  f5f4f3c0f240f6  c6f4f3f2f1f0c0
fc  f142f00ab21382  dff1cbbbb9c9b8  c8b7c7300342f0  40f6f2c0f6f50b
A: 04975000fff000  B: 04975000fffeae  C: 00999999999eae
S: 00000000000000
M: 04000000000000  N: 04975000000000  G: 06
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Code&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;code&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;2800-5493&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;the_savage_benchmark&quot;&gt;The SAVAGE benchmark&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
From &lt;strong&gt;HPCC&lt;/strong&gt; Datafile  V37N1 pp38-42
&lt;/p&gt;

&lt;p&gt;
Raw File : Savage Benchmark (svg) for DM41X &amp;amp; DM42 &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:progs:svg.raw&quot; class=&quot;media mediafile mf_raw&quot; title=&quot;public:calculator:progs:svg.raw (50 B)&quot;&gt;svg.raw&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
State File : savage for DM32 &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:benchmarking:savage.d32&quot; class=&quot;media mediafile mf_d32&quot; title=&quot;public:calculator:benchmarking:savage.d32 (369 B)&quot;&gt;savage.d32&lt;/a&gt; : &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;S&lt;/kbd&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_2b77356d1ed6b6f8549872b9c4a844bc_9&quot;&gt;Listing for self-timed version &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_2b77356d1ed6b6f8549872b9c4a844bc_9&quot;&gt;&lt;pre class=&quot;code&quot;&gt;LBL &amp;quot;SVG&amp;quot;
&amp;quot;SAVAGE&amp;quot;
AVIEW
RAD
2499
STO 00
1
ENTER
ENTER
ENTER
STO 01
TIME
X&amp;lt;&amp;gt; 01
LBL 01
X^2
SQRT
LN
E^X
ATAN
TAN
+
DSE 00 
GTO 01
TIME
RCL 01
HMS-
HR
3600
*
END&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_2b77356d1ed6b6f8549872b9c4a844bc_10&quot;&gt;Listing for the simple (manual timed) version &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_2b77356d1ed6b6f8549872b9c4a844bc_10&quot;&gt;
&lt;p&gt;
No time calculation, it needs a stopwatch to measure the time… for calculators without TIME functions
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;LBL A
RAD
2499
STO A (for HP11C &amp;quot;STO I&amp;quot;, for DM15L &amp;quot;STO 0&amp;quot;)
1
ENTER
ENTER
ENTER
LBL B
X^2
SQRT
LN
E^X
ATAN
TAN
+
DSE A  (for HP11C &amp;quot;DSE&amp;quot;, for DM15L &amp;quot;DSE 0&amp;quot; )
GTO B
RTN&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_2b77356d1ed6b6f8549872b9c4a844bc_11&quot;&gt;DM15L Memory Dump &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_2b77356d1ed6b6f8549872b9c4a844bc_11&quot;&gt;&lt;pre class=&quot;code&quot;&gt;DM15_M1B
00  01000000000000  01000000000000  01000000000000  00000000000000
04  32499970322000  00000000000008  0000000000000c  40997997010eae
08  00000000000000  3ebeefb6e4228f  e79282e8bc2ac0  00000000000000
10  00000000000000  08000000000000  06000000000000  02498970322003
14  f0000000000504  1b2d2d2d2d2d2d  000000000001fc  00000000000000
18  00000000000000  0000000000007f  00000000a00000  06000000000000
1c  04000000000000  07000000000000  05000000000000  03000000000000
20  00000000000000  00000000000000  04000000000000  08000000000000
24  02100000000001  00000000000000  00000000000000  00000000000000
fc  000000000000b2  1b82fac9b9cbbb  caba0bc1c1c1f1  40f9f9f4f2e80a
A: 32499970322000  B: 32499970322eae  C: 40997997010eae
S: 00000000000000
M: 00000000000000  N: 02499970322003  G: 09
&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_2b77356d1ed6b6f8549872b9c4a844bc_12&quot;&gt;LF15C Memory Dump &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_2b77356d1ed6b6f8549872b9c4a844bc_12&quot;&gt;
&lt;p&gt;

43 100 112 30 27 36 36 13 0 26 22 22 22 43 101 84 4 88 8 99 19 37 71 0 7 101 58 86 0

&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;The SAVAGE benchmark&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;the_savage_benchmark&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;5494-7313&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;results&quot;&gt;Results&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
On Battery:
&lt;/p&gt;
&lt;div class=&quot;table sectionedit10&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt; Calculator &lt;/th&gt;&lt;th class=&quot;col1&quot;&gt; Firmware &lt;/th&gt;&lt;th class=&quot;col2&quot;&gt; Seconds &lt;/th&gt;&lt;th class=&quot;col3&quot;&gt; Mins/seconds &lt;/th&gt;&lt;th class=&quot;col4&quot;&gt; Comment &lt;/th&gt;&lt;th class=&quot;col5&quot;&gt; Displayed Result &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;DM15L * &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15c_beta250217b &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 3.862 seconds &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 0 mins 3.862 sec &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; Timed by internal function “runTime” &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 2500.00000000118 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;DM15L * &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15c_beta250215 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 3.969 seconds &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 0 mins 3.969 sec &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; Timed by internal function “runTime” &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 2500.00000000118 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; DM15l * &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C_250408 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 4.008 seconds &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 0 mins 4.008 sec &lt;/td&gt;&lt;td class=&quot;col4 rightalign&quot;&gt;  Timed by internal function “runTime” &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 2500.00000000118 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; DM15L * &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15c_beta241006 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 5.9510 seconds &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 0 mins 5.951 sec &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; Timed by internal function “runTime” &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 2500.00000000118 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; DM15L * &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C_beta240928 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 6.3 seconds &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 0 min 6.3 sec &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; manually timed &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 2500.00000000118 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; DM32  &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 2.03 &amp;amp; 2.06 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 6.3 seconds &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 0 min 6.3 sec &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 2500.00000000 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; DM42  &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 3.22 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;14.9 seconds &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 0 min 14.9 sec &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 2500.00000000 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; DM41X &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 2.3 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 143.69 seconds &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;2 min 26.69 sec &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; FAST mode / USB Power &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 2499.970322 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; DM41X &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 2.1 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 207.03 seconds &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;3 min 27.03 sec &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; FAST mode &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 2499.970322 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; DM41X &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 2.2 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 244.2 seconds&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 4 min 4.25 sec &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; FAST mode&lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 2499.970322 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row11&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; DM15L &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM15_M1B_34 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 247.3 seconds &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 4 min 34.3 sec &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 48MHz &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 2499.970322 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row12&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; DM41X &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 2.3 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 284.15 seconds &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 4 min 44.15 sec &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; FAST Mode &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 2499.970322 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row13&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; DM15L &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM15_32 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 288 seconds &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 4 min 48 sec&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 48MHz &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 2499.970322 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row14&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; DM41L &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM41_34 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 513.73 seconds &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 8 min 33 sec &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 48MHZ &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 2499.970322 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row15&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; DM41L &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM41_32 &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; 758.67 seconds  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt; 12 min 38.67 sec  &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 48MHz &lt;/td&gt;&lt;td class=&quot;col5 leftalign&quot;&gt; 2499.970322  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row16&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; HP35S &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; n/a &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;877 seconds &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 14 min 37 sec &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 2499.99939863 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row17&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; DM41L &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM41_34 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 1285.93 seconds &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 21 min 25.93 seconds &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 12MHz &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 2499.970322 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row18&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; DM41X &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 2.1 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;2652.37 seconds &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 44 min 12.37 sec &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;SLOW mode &lt;/td&gt;&lt;td class=&quot;col5 leftalign&quot;&gt; 2499.970322  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row19&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; HP11C &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;5160 seconds   &lt;/td&gt;&lt;td class=&quot;col3 centeralign&quot;&gt;  1 hour 26 min 0 sec   &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;     &lt;/td&gt;&lt;td class=&quot;col5 leftalign&quot;&gt; 2499.970322  &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;7346-9074&amp;quot;} --&gt;
&lt;p&gt;
On USB Power : 
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DM41X : 58.1 seconds (FAST mode) (F/W/ Version ?)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DM42  : 5.56 seconds&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Results&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;results&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:12,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;7314-9176&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit11&quot; id=&quot;n-queens&quot;&gt;N-Queens&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.hpmuseum.org/cgi-bin/articles.cgi?read=700&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/cgi-bin/articles.cgi?read=700&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.hpmuseum.org/cgi-bin/articles.cgi?read=700&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Raw File : N-Queens file (nqu) for DM41X &amp;amp; DM42 &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:progs:nqu.raw&quot; class=&quot;media mediafile mf_raw&quot; title=&quot;public:calculator:progs:nqu.raw (81 B)&quot;&gt;nqu.raw&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
State File : nqu for DM32 &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:benchmarking:nqu.d32&quot; class=&quot;media mediafile mf_d32&quot; title=&quot;public:calculator:benchmarking:nqu.d32 (738 B)&quot;&gt;nqu.d32&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_2b77356d1ed6b6f8549872b9c4a844bc_13&quot;&gt;Listing for HP41/DM41X/DM41L/HP42/DM42 &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_2b77356d1ed6b6f8549872b9c4a844bc_13&quot;&gt;&lt;pre class=&quot;code&quot;&gt;
// for HP41 / HP 42  ... DM41X, DM41L, DM42
// shows run-time on completion

LBL &amp;quot;NQU&amp;quot;   
CLRG
TIME
STO 20
8 
STO 11
LBL 00  
RCL 00 
RCL 11
X=Y? 
GTO 04
ISG 00 
DEG
STO IND 00
LBL 01 
ISG 10 
DEG
RCL 00 
STO 09
LBL 02  
DSE 09 
DEG
RCL 09 
X=0? 
GTO 00
RCL IND 00 
RCL IND 09 
-
X=0? 
GTO 03
ABS 
RCL 00 
RCL 09 
-
X&amp;lt;&amp;gt;Y? 
GTO 02
LBL 03  
DSE IND 00 
GTO 01
DSE 00 
GTO 03
LBL 04 
RCL 10
TIME 
RCL 20
HMS-
HR
3600
*
RTN
&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_2b77356d1ed6b6f8549872b9c4a844bc_14&quot;&gt;Listing for DM15L with LF15C firmware &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_2b77356d1ed6b6f8549872b9c4a844bc_14&quot;&gt;&lt;pre class=&quot;code&quot;&gt;LBL 88
CLEAR REG
8
STO 10
LBL 80
RCL 0
RCL 10
X=Y?
GTO 84
1
STO+ 0
RCL 0
STO I
RCL 10
STO (i)
LBL 81
1
STO+ 11
RCL 0
STO 9
LBL 82
1
STO- 9
RCL 9
X=0?
GTO 80
RCL 0
STO I
RCL (i)
RCL 9
STO I
RDN
RCL (i)
-
X=0?
GTO 83
ABS
RCL 0
RCL 9
-
X&amp;lt;&amp;gt;Y?
GTO 82
LBL 83
RCL 0
STO I
1
STO- (i)
RCL (i)
X&amp;lt;&amp;gt;0?
GTO 81
1
STO- 0
RCL 0
X&amp;lt;&amp;gt;0?
GTO 83
LBL 84
RCL 11
runTime
RTN
&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_2b77356d1ed6b6f8549872b9c4a844bc_15&quot;&gt;LF15C Memory Dump &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_2b77356d1ed6b6f8549872b9c4a844bc_15&quot;&gt;
&lt;p&gt;
Runs via &lt;code&gt;f LBL 88&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;

43 88 54 32 13 10 43 80 17 0 17 10 118 6 7 84 26 121 0 17 0 13 254 17 10 13 255 43 81 26 121 11 17 0 13 9 43 82 26 122 9 17 9 118 12 7 80 17 0 13 254 17 255 17 9 13 254 10 17 255 38 118 12 7 83 104 17 0 17 9 38 118 7 7 82 43 83 17 0 13 254 26 122 255 17 255 118 1 7 81 26 122 0 17 0 118 1 7 83 43 84 17 11 58 86 0 

&lt;/p&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_2b77356d1ed6b6f8549872b9c4a844bc_16&quot;&gt;Listing for DM15L / HP15C &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_2b77356d1ed6b6f8549872b9c4a844bc_16&quot;&gt;&lt;pre class=&quot;code&quot;&gt;LBL A
CLR_REG
8
STO .0
LBL 0
RCL 0
RCL .0
TEST 5
GTO 4
1
STO+0
RCL 0
STO I
RCL .0
STO (i)
LBL 1
1
STO+.1
RCL 0
STO 9
LBL 2
1
STO-9
RCL 9
x=0
GTO 0
RCL 0
STO I
RCL (i)
RCL 9
STO I
R_down
RCL (i)
-
x=0
GTO 3
ABS
RCL 0
RCL 9
-
TEST 6
GTO 2
LBL 3
RCL 0
STO I
1
STO-(i)
RCL (i)
TEST 0
GTO 1
1
STO-0
RCL 0
TEST 0
GTO 3
LBL 4
RCL .1
RTN
&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_2b77356d1ed6b6f8549872b9c4a844bc_17&quot;&gt;DM15L Memory Dump &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_2b77356d1ed6b6f8549872b9c4a844bc_17&quot;&gt;&lt;pre class=&quot;code&quot;&gt;DM15_M1B
00  08000000000000  08000000000000  00000000000000  00000000000000
04  065140fffff000  00000000000008  0000000000000c  00000000999eae
08  00000000000000  22af8d9e7e0080  00000000000000  00000000000000
10  08000000000000  08000000000000  01000000000000  01000000000000
14  f0000000000537  1b2d2d2d2d2d2d  000000000007f7  00000000000000
18  00000000000000  0000000000007f  00000000a00000  04000000000000
1c  01000000000000  03000000000000  06000000000000  02000000000000
20  07000000000000  05000000000000  00000000000000  08000000000000
24  08760000000002  00000000000000  00000000000000  00000000000000
f4  00000000000000  00000000000000  00000000000000  b25104137030a0
f8  dff1117086bddf  f19730031276fb  3930b313ecfb86  c4973986973010
fc  ec39a9dff10249  3091dff1019650  973080dff11475  50300060f8a50a
A: 065140fffff000  B: 065140fffffeae  C: 00000000999eae
S: 00000000000000
M: aaaaaaaaaaaaaa  N: 06514000000000  G: 04
&lt;/pre&gt;
&lt;/div&gt;&lt;div class=&quot;table sectionedit12&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Date&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Calculator&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Serial No.&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Firmware&lt;/th&gt;&lt;th class=&quot;col4&quot;&gt;Seconds&lt;/th&gt;&lt;th class=&quot;col5&quot;&gt;Mins : Secs&lt;/th&gt;&lt;th class=&quot;col6&quot;&gt;Comment&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;12/01/26&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM15L* &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;21350 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; LF15C_250408 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 0.992 seconds &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 0:0.992 &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; Self-timed with runTime function &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;14/04/26&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM32 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 00812 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 2.11 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 3.02 seconds &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 0:03.02 &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; Manual Timed. Battery &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;14/04/26&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM32 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 00812 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 2.11 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 1.3 seconds &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 0:01.30 &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; Manual Timed. USB Power &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;28/01/26&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; DM42  &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 06434 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 3.23 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 7.30 seconds &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 0:07.30 &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; Battery &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;14/01/26&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM41X &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 01266 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 2.3 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 49.55 seconds &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 0:49.55 &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; FAST mode / USB Power &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;10/01/26&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM41X &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 01266 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 2.3 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 101.29 seconds &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt;1:41.29 &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; FAST mode / battery &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;23/01/26&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM15L &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 21350 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; DM15_M1B_34 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 202.16 seconds &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 3:22.16 &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; 48MHz, manually timed &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;10/01/26&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM41L &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 05121 &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt; DM41_34  &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt; 509.19 seconds  &lt;/td&gt;&lt;td class=&quot;col5 leftalign&quot;&gt; 8:29.19   &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt;48MHz &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;11/01/26&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM41L &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 05121 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; DM41_34 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 870.58 seconds &lt;/td&gt;&lt;td class=&quot;col5 leftalign&quot;&gt; 14:30.58  &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; 12MHz &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;10/01/26&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM41X &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 01266 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 2.3 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 1008.60 seconds &lt;/td&gt;&lt;td class=&quot;col5 leftalign&quot;&gt; 16:48.60  &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; SLOW mode / battery &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table2&amp;quot;,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;12085-12977&amp;quot;} --&gt;
&lt;p&gt;
* Running 3rd party firmware &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046.html&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046.html&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.hpmuseum.org/forum/thread-20046.html&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;N-Queens&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;n-queens&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:12,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;9177-13065&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit13&quot; id=&quot;tony_s_benchmark&quot;&gt;Tony&amp;#039;s Benchmark&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
From &lt;a href=&quot;http://www.thimet.de/CalcCollection/CalcPerformance.html&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;http://www.thimet.de/CalcCollection/CalcPerformance.html&quot; rel=&quot;ugc nofollow noopener&quot;&gt;http://www.thimet.de/CalcCollection/CalcPerformance.html&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Tony&amp;#039;s Benchmark&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;tony_s_benchmark&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:16,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;13066-13162&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit14&quot; id=&quot;code1&quot;&gt;Code&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_2b77356d1ed6b6f8549872b9c4a844bc_18&quot;&gt;Listing for the benchmark &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_2b77356d1ed6b6f8549872b9c4a844bc_18&quot;&gt;&lt;pre class=&quot;code&quot;&gt;LBL A  (For DM41X and DM42 : LBL &amp;quot;AA&amp;quot;)
10
STO A  (For DM41X and DM42 : STO 00 )
LBL B
1
+
4.567E-4
-
70
+
69
-
7
x
11
/
RCL A (RCL 00)
1
-
STO A (STO 00)
X≠0?
GTO B
R↓
LOG
SIN
SQRT
SQRT
RTN


LBL C  (For DM41X and DM42 : LBL &amp;quot;TBM&amp;quot;)
XEQ A  (XEQ &amp;quot;AA&amp;quot;)
RCL C  (RCL 03)
1
-
STO C (STO 03)
X≠0?
GTO C (GTO &amp;quot;TBM&amp;quot;)
RTN&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
For multiple loops store a Loop Count in C (or in Register 03) 
&lt;/p&gt;

&lt;p&gt;
(&lt;code&gt;1000 STO C&lt;/code&gt;) and then &lt;code&gt;XEQ C&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
For single loop (slow calculator) simply &lt;code&gt;XEQ A&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Result is the time to complete the loop(s) and deliver the answer &lt;code&gt;0.264577&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Performance Index is calculated as 
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;Loops x 34 / Time&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
For 1000 loops in 13 seconds:
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt; 1000 x 34 / 13 = 2615.38 &lt;/code&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Code&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;code1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:16,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;13163-13909&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit15&quot; id=&quot;results1&quot;&gt;Results&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;table sectionedit16&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Date&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Calculator&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Serial No&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Loops&lt;/th&gt;&lt;th class=&quot;col4&quot;&gt;Time&lt;/th&gt;&lt;th class=&quot;col5&quot;&gt;Performance Index&lt;/th&gt;&lt;th class=&quot;col6&quot;&gt;Comments&lt;/th&gt;&lt;th class=&quot;col7&quot;&gt;Result&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;22/11/23&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM42 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 06434 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 1000 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 8 sec &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 4250 &lt;/td&gt;&lt;td class=&quot;col6 leftalign&quot;&gt; USB Power    &lt;/td&gt;&lt;td class=&quot;col7&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;22/11/23&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM32 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 00812 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 1000 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 13 sec &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 2615 &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; f/w : 2.06 &lt;/td&gt;&lt;td class=&quot;col7&quot;&gt;0.26457749818 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;22/11/23&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM42 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 06434 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 1000 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 21 sec &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 1619 &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; Battery Power &lt;/td&gt;&lt;td class=&quot;col7 leftalign&quot;&gt; 0.26457749818  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;21/09/24&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM15L * &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 21350 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 1000 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 42.8 sec &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 794 &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; 3rd Party Firmware : LF15C_beta240921 &lt;/td&gt;&lt;td class=&quot;col7&quot;&gt; 0.26457749817596 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;21/09/24&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM15L * &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 21350 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 100 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 4.5 sec &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 756 &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; 3rd Party Firmware : LF15C_beta240921 &lt;/td&gt;&lt;td class=&quot;col7&quot;&gt; 0.26457749817596 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;22/11/23&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM41X&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 01266 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 20 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 6 sec &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 113 &lt;/td&gt;&lt;td class=&quot;col6 leftalign&quot;&gt; FAST mode / USB  &lt;/td&gt;&lt;td class=&quot;col7&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;09/05/24&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM42 * &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 06434 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 30 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 9.6 sec &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 106 &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; 3rd Party Firmware : C47 00.109.01.03a2 &lt;/td&gt;&lt;td class=&quot;col7&quot;&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;22/11/23&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM15L &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 21350 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 10 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 12 sec &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 28 &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; 48MHz &lt;/td&gt;&lt;td class=&quot;col7&quot;&gt; 0.264577498 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;22/11/23&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM41X&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 01266 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 10 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 10 sec &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 24 &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; FAST mode / Battery &lt;/td&gt;&lt;td class=&quot;col7&quot;&gt; 0.264577498 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;22/11/23&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; HP35S &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; PHA9150KFF &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 5 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 25 sec &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 6.8 &lt;/td&gt;&lt;td class=&quot;col6 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col7&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row11&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;22/11/23&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM15L &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 21350 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 10 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 54 sec &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 6.3 &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; 12MHz &lt;/td&gt;&lt;td class=&quot;col7&quot;&gt; 0.264577498&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row12&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;22/11/23&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; DM41X&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 01266 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 10 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 118 sec &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 2.8 &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; SLOW mode/ Battery&lt;/td&gt;&lt;td class=&quot;col7&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row13&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;22/11/23&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; HP11C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 2219A03710 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 1 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 21 sec &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 1.6 &lt;/td&gt;&lt;td class=&quot;col6 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col7&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table3&amp;quot;,&amp;quot;secid&amp;quot;:16,&amp;quot;range&amp;quot;:&amp;quot;13929-15002&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Results&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;results1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:17,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;13910-15005&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit17&quot; id=&quot;fingerprinting&quot;&gt;Fingerprinting&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Each calculator handles the calculation of functions (SIN, COS etc) differently - different algorithms, different degrees of precision etc.
&lt;/p&gt;

&lt;p&gt;
One way of spotting similar underlying hard/firmware is to carry out a fixed chained calculation on each calculator and to observe the result.
&lt;/p&gt;

&lt;p&gt;
One common test is a sequence of SIN COS TAN ATAN ACOS ASIN on a relatively low starting number - such as 9
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;9&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;SIN&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;COS&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;TAN&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ATAN&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ACOS&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ASIN&lt;/kbd&gt; gives a number (hopefully) very close to the starting value of &lt;code&gt;9&lt;/code&gt; - and the variance from &lt;code&gt;9&lt;/code&gt; is a fingerprint that can be used to spot similarities between different models.
&lt;/p&gt;
&lt;div class=&quot;table sectionedit18&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Calculator&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt; Displayed Result &lt;sup&gt;&lt;a href=&quot;#fn__3&quot; id=&quot;fnt__3&quot; class=&quot;fn_top&quot;&gt;3)&lt;/a&gt;&lt;/sup&gt;&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt; Error (Result - 9) &lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Firmware &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; HP11C &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 9.000417403 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 4.17403e-4 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; DM15L &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 9.000417403 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 4.17403e-4 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; DM15_32 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; DM41X &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 9.000417403 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 4.17403e-4 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 2.1 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; DM41L &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 9.000417403 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 4.17403e-4 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; DM41_32 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; HP35S &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 8.99999986001 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; -1.3999e-7 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; DM15L * &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 8.99999999983416 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; -1.65842e-10 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 3rd party LF15C_beta240916 17/09/24 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; DM42  &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 9.00000000000 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; -6.2466e-29 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; DM42 3.22 / Free42 3.0.15 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; DM32  &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 9.00000000000 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; -6.2466e-29 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 2.06 &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table4&amp;quot;,&amp;quot;secid&amp;quot;:18,&amp;quot;range&amp;quot;:&amp;quot;15713-16221&amp;quot;} --&gt;
&lt;p&gt;
I also found a different version of the same idea at &lt;a href=&quot;https://tangentsoft.com/rpn/wiki?name=Ballpark+Accuracy#results&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://tangentsoft.com/rpn/wiki?name=Ballpark+Accuracy#results&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://tangentsoft.com/rpn/wiki?name=Ballpark+Accuracy#results&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Instead of &lt;strong&gt;subtracting 9&lt;/strong&gt; from the result this test &lt;strong&gt;divides the result by 9&lt;/strong&gt; and then finds the &lt;strong&gt;LOG&lt;sub&gt;10&lt;/sub&gt;&lt;/strong&gt; of this fractional error
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;9&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;SIN&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;COS&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;TAN&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ATAN&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ACOS&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ASIN&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;9&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;/&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;LOG&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
Here are some of these results 
&lt;/p&gt;
&lt;div class=&quot;table sectionedit19&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Calculator&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Displayed Result&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Error=(Result / 9)&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Log&lt;sub&gt;10&lt;/sub&gt;(Error)&lt;/th&gt;&lt;th class=&quot;col4&quot;&gt;Comments&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;DM41X&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;9.000417403&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;1.000046378&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;2.0141242e&lt;strong&gt;-05&lt;/strong&gt;&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; f/w 2.3 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;DM41L&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;9.000417403&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;1.000046378&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;2.0141242e&lt;strong&gt;-05&lt;/strong&gt;&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; f/w DM41_34 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;DM15L*&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;8.99999999983416&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;0.999999999981573&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;-8.0027125631e&lt;strong&gt;-12&lt;/strong&gt;&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;3rd Party F/W LF15C_250408 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;DM42&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;9.00000000000&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;1.00000000000&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;3.01430771055e&lt;strong&gt;-30&lt;/strong&gt;&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;DM42 3.26 / Free42 3.3.10 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;DM32&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;9.00000000000&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;1.00000000000&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;3.01430771055e&lt;strong&gt;-30&lt;/strong&gt;&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;DM32 2.11 &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table5&amp;quot;,&amp;quot;secid&amp;quot;:19,&amp;quot;range&amp;quot;:&amp;quot;16675-17126&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Fingerprinting&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;fingerprinting&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:17,&amp;quot;secid&amp;quot;:17,&amp;quot;range&amp;quot;:&amp;quot;15006-17127&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit20&quot; id=&quot;page_info&quot;&gt;Page Info&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Page created Thu May 26 07:58:36 2022 by John Pumford-Green
&lt;/p&gt;

&lt;p&gt;
Page last updated: 14/04/26 14:35 BST
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Page Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;page_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:17,&amp;quot;secid&amp;quot;:20,&amp;quot;range&amp;quot;:&amp;quot;17128-17245&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit21&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:calculator&amp;amp;do=showtag&amp;amp;tag=calculator&quot; class=&quot;wikilink1&quot; title=&quot;tag:calculator&quot; rel=&quot;tag&quot;&gt;calculator&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:17,&amp;quot;secid&amp;quot;:21,&amp;quot;range&amp;quot;:&amp;quot;17246-&amp;quot;} --&gt;&lt;div class=&quot;footnotes&quot;&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__1&quot; id=&quot;fn__1&quot; class=&quot;fn_bot&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt; 
&lt;div class=&quot;content&quot;&gt;versus HP9100 : 679&lt;/div&gt;&lt;/div&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__2&quot; id=&quot;fn__2&quot; class=&quot;fn_bot&quot;&gt;2)&lt;/a&gt;&lt;/sup&gt; 
&lt;div class=&quot;content&quot;&gt;versus HP9100 : 40&lt;/div&gt;&lt;/div&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__3&quot; id=&quot;fn__3&quot; class=&quot;fn_bot&quot;&gt;3)&lt;/a&gt;&lt;/sup&gt; 
&lt;div class=&quot;content&quot;&gt;at max. display resolution&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 14 Apr 2026 13:35:47 +0000</pubDate>
        </item>
        <item>
            <title>I3 Window Manager</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:i3_window_manager</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:start&quot; class=&quot;wikilink1&quot; title=&quot;public:computers:archive:start&quot; data-wiki-id=&quot;public:computers:archive:start&quot;&gt;Archive&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;i3_window_manager&quot;&gt;I3 Window Manager&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; Various Things related to I3 &lt;/strong&gt;
&lt;/p&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;group wrap__dark plugin_wrap&quot;&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_half wrap_column wrap__dark plugin_wrap&quot;&gt;
&lt;p&gt;
Background &amp;amp; Conky
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Acomputers%3Aarchive%3Ai3_window_manager&amp;amp;media=public:computers:2022-10-09-131610_1440x900_scrot.png&quot; class=&quot;media&quot; title=&quot;public:computers:2022-10-09-131610_1440x900_scrot.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=600&amp;amp;tok=35dd39&amp;amp;media=public:computers:2022-10-09-131610_1440x900_scrot.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_half wrap_column wrap__dark plugin_wrap&quot;&gt;
&lt;p&gt;
Some tiled windows
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Acomputers%3Aarchive%3Ai3_window_manager&amp;amp;media=public:computers:2022-10-08-204455_1440x900_scrot.png&quot; class=&quot;media&quot; title=&quot;public:computers:2022-10-08-204455_1440x900_scrot.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=600&amp;amp;tok=c1bc1a&amp;amp;media=public:computers:2022-10-08-204455_1440x900_scrot.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;group wrap__dark plugin_wrap&quot;&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_half wrap_column wrap__dark plugin_wrap&quot;&gt;
&lt;p&gt;
Floating scratchpad terminal with &lt;code&gt;ranger&lt;/code&gt; file manager
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Acomputers%3Aarchive%3Ai3_window_manager&amp;amp;media=public:computers:2022-10-09-132014_1440x900_scrot.png&quot; class=&quot;media&quot; title=&quot;public:computers:2022-10-09-132014_1440x900_scrot.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=600&amp;amp;tok=8e9f98&amp;amp;media=public:computers:2022-10-09-132014_1440x900_scrot.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_half wrap_column wrap__dark plugin_wrap&quot;&gt;
&lt;p&gt;
Floating scratchpad terminal with &lt;code&gt;Alpine&lt;/code&gt; email client
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Acomputers%3Aarchive%3Ai3_window_manager&amp;amp;media=public:computers:2022-10-09-133519_1440x900_scrot.png&quot; class=&quot;media&quot; title=&quot;public:computers:2022-10-09-133519_1440x900_scrot.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=600&amp;amp;tok=7eddfc&amp;amp;media=public:computers:2022-10-09-133519_1440x900_scrot.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;I3 Window Manager&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;i3_window_manager&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-655&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit14&quot; id=&quot;i3_config_and_tweaks&quot;&gt;I3 Config and tweaks&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;autotile&quot;&gt;Autotile&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Make new windows be created in alternating &lt;code&gt;horizontal&lt;/code&gt; / &lt;code&gt;vertical&lt;/code&gt; arrangement, depending on aspect ratio of the current window.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://github.com/nwg-piotr/autotiling&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://github.com/nwg-piotr/autotiling&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://github.com/nwg-piotr/autotiling&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Acomputers%3Aarchive%3Ai3_window_manager&amp;amp;media=public:computers:2022-10-09-132505_1440x900_scrot.png&quot; class=&quot;media&quot; title=&quot;public:computers:2022-10-09-132505_1440x900_scrot.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=600&amp;amp;tok=4583e6&amp;amp;media=public:computers:2022-10-09-132505_1440x900_scrot.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;i3_config_file&quot;&gt;I3 Config File&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_aa0642f8e44b4a219db8d085bf394263_1&quot;&gt;config &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_aa0642f8e44b4a219db8d085bf394263_1&quot;&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# This file has been auto-generated by i3-config-wizard(1).&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# It will not be overwritten, so edit it as you like.&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# Should you change your keyboard layout some time, delete&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# this file and re-run i3-config-wizard(1).&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# i3 config file (v4)&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# Please see https://i3wm.org/docs/userguide.html for a complete reference!&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt; Mod4
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Font for window titles. Will also be used by the bar unless a different font&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# is used in the bar {} block below.&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#font pango:monospace 8&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# This font is widely installed, provides lots of unicode glyphs, right-to-left&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# text rendering and scalability on retina/hidpi displays (thanks to pango).&lt;/span&gt;
font pango:DejaVu Sans &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
default_border normal &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;
hide_edge_borders none
binding_mode_indicator &lt;span class=&quot;kw2&quot;&gt;yes&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;#set $bg-color #2f446f&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#set $inactive-bg-color #2f343f&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#set $text-color #ffb25a&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#set $inactive-text_color #676e7d&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#set $urgent-bg-color #bd2c40&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;#client.focused $bg-color $bg-color $text-color #2255ff&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#client.unfocused $inactive-bg-color $bg-color $text-color #225ff&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#client.focused_inactive $inactive-bg-color $inactive-bg-color $inactive-text-color #2255ff&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#client.urgent $urgent-bg-color $urgent-bg-color $text_color #2255ff&lt;/span&gt;
&amp;nbsp;
workspace_auto_back_and_forth &lt;span class=&quot;kw2&quot;&gt;yes&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# The combination of xss-lock, nm-applet and pactl is a popular choice, so&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# they are included here as an example. Modify as you see fit.&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# screen before suspend. Use loginctl lock-session to lock your screen.&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# NetworkManager is the most popular way to manage wireless networks on Linux,&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# and nm-applet is a desktop environment-independent system tray GUI for it.&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#exec --no-startup-id nm-applet&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--no-startup-id&lt;/span&gt; synclient &lt;span class=&quot;re2&quot;&gt;tapbutton1&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--no-startup-id&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;noblank.sh
&lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--no-startup-id&lt;/span&gt; conky
&lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--no-startup-id&lt;/span&gt; xsetroot &lt;span class=&quot;re5&quot;&gt;-solid&lt;/span&gt; midnightblue
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--no-startup-id&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;background.sh
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;#exec --no-startup-id polybar example&lt;/span&gt;
&amp;nbsp;
exec_always &lt;span class=&quot;re5&quot;&gt;--no-startup-id&lt;/span&gt; autotile
&lt;span class=&quot;co0&quot;&gt;#exec_always --no-startup-id ~/autosplit&lt;/span&gt;
&amp;nbsp;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+p &lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--no-startup-id&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;promote-window
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Use pactl to adjust volume in PulseAudio.&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$refresh_i3status&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;killall&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-SIGUSR1&lt;/span&gt; i3status
bindsym XF86AudioRaiseVolume &lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--no-startup-id&lt;/span&gt; pactl set-sink-volume &lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;DEFAULT_SINK&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt; +&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$refresh_i3status&lt;/span&gt;
bindsym XF86AudioLowerVolume &lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--no-startup-id&lt;/span&gt; pactl set-sink-volume &lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;DEFAULT_SINK&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$refresh_i3status&lt;/span&gt;
bindsym XF86AudioMute &lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--no-startup-id&lt;/span&gt; pactl set-sink-mute &lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;DEFAULT_SINK&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt; toggle &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$refresh_i3status&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle &amp;amp;&amp;amp; $refresh_i3status&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;#bindsym XF86AudioMute exec amixer sset &#039;Master&#039; toggle&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#bindsym XF86AudioLowerVolume exec amixer sset &#039;Master&#039; 5%-&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#bindsym XF86AudioRaiseVolume exec amixer sset &#039;Master&#039; 5%+&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Use Mouse+$mod to drag floating windows to their wanted position&lt;/span&gt;
floating_modifier &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# start a terminal&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#bindsym $mod+Return exec i3-sensible-terminal&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+Return &lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt; lxterminal
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# kill focused window&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+Shift+q &lt;span class=&quot;kw3&quot;&gt;kill&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# start dmenu (a program launcher)&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+d &lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--no-startup-id&lt;/span&gt; dmenu_run
&lt;span class=&quot;co0&quot;&gt;# A more modern dmenu replacement is rofi:&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# bindcode $mod+40 exec &amp;quot;rofi -modi drun,run -show drun&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# There also is i3-dmenu-desktop which only displays applications shipping a&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# .desktop file. It is a wrapper around dmenu, so you need that installed.&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# bindcode $mod+40 exec --no-startup-id i3-dmenu-desktop&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# change focus&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+h focus left
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+j focus down
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+k focus up
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+l focus right
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# alternatively, you can use the cursor keys:&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+Left focus left
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+Down focus down
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+Up focus up
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+Right focus right
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# move focused window&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+Shift+h move left
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+Shift+j move down
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+Shift+k move up
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+Shift+l move right
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# alternatively, you can use the cursor keys:&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+Shift+Left move left
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+Shift+Down move down
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+Shift+Up move up
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+Shift+Right move right
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# split in horizontal orientation&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#bindsym $mod+h split h&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# split in vertical orientation&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#bindsym $mod+v split v&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# enter fullscreen mode for the focused container&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+f fullscreen toggle
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# change container layout (stacked, tabbed, toggle split)&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+s layout stacking
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+&lt;span class=&quot;kw2&quot;&gt;w&lt;/span&gt; layout tabbed
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+e layout toggle &lt;span class=&quot;kw2&quot;&gt;split&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# toggle tiling / floating&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+Shift+space floating toggle
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# change focus between tiling / floating windows&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+space focus mode_toggle
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# focus the parent container&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+a focus parent
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# focus the child container&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#bindsym $mod+d focus child&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Define names for default workspaces for which we configure key bindings later on.&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# We use variables to avoid repeating the names in multiple places.&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$ws1&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$ws2&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;2&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$ws3&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;3&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$ws4&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;4&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$ws5&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;5&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$ws6&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;6&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$ws7&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;7&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$ws8&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;8&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$ws9&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;9&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$ws10&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;10&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# switch to workspace&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; workspace number &lt;span class=&quot;re1&quot;&gt;$ws1&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; workspace number &lt;span class=&quot;re1&quot;&gt;$ws2&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; workspace number &lt;span class=&quot;re1&quot;&gt;$ws3&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt; workspace number &lt;span class=&quot;re1&quot;&gt;$ws4&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt; workspace number &lt;span class=&quot;re1&quot;&gt;$ws5&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt; workspace number &lt;span class=&quot;re1&quot;&gt;$ws6&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+&lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt; workspace number &lt;span class=&quot;re1&quot;&gt;$ws7&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+&lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt; workspace number &lt;span class=&quot;re1&quot;&gt;$ws8&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+&lt;span class=&quot;nu0&quot;&gt;9&lt;/span&gt; workspace number &lt;span class=&quot;re1&quot;&gt;$ws9&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; workspace number &lt;span class=&quot;re1&quot;&gt;$ws10&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# move focused container to workspace&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+Shift+&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; move container to workspace number &lt;span class=&quot;re1&quot;&gt;$ws1&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+Shift+&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; move container to workspace number &lt;span class=&quot;re1&quot;&gt;$ws2&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+Shift+&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; move container to workspace number &lt;span class=&quot;re1&quot;&gt;$ws3&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+Shift+&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt; move container to workspace number &lt;span class=&quot;re1&quot;&gt;$ws4&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+Shift+&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt; move container to workspace number &lt;span class=&quot;re1&quot;&gt;$ws5&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+Shift+&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt; move container to workspace number &lt;span class=&quot;re1&quot;&gt;$ws6&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+Shift+&lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt; move container to workspace number &lt;span class=&quot;re1&quot;&gt;$ws7&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+Shift+&lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt; move container to workspace number &lt;span class=&quot;re1&quot;&gt;$ws8&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+Shift+&lt;span class=&quot;nu0&quot;&gt;9&lt;/span&gt; move container to workspace number &lt;span class=&quot;re1&quot;&gt;$ws9&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+Shift+&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; move container to workspace number &lt;span class=&quot;re1&quot;&gt;$ws10&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# reload the configuration file&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+Shift+c reload
&lt;span class=&quot;co0&quot;&gt;# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+Shift+r restart
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+Shift+x &lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt; i3lock
&lt;span class=&quot;co0&quot;&gt;# exit i3 (logs you out of your X session)&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+Shift+e &lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;i3-nagbar -t warning -m &#039;You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.&#039; -B &#039;Yes, exit i3&#039; &#039;i3-msg exit&#039;&amp;quot;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;##############################&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#  Program Shortcuts&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;##############################&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# &amp;quot;b&amp;quot; for &amp;quot;browser&amp;quot;&lt;/span&gt;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+b &lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--no-startup-id&lt;/span&gt; firefox
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;##############################&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#  SCRATCHPAD&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;###############################&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$scratchpad&lt;/span&gt;-size &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;700&lt;/span&gt;
&amp;nbsp;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+Shift+minus move scratchpad
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+minus scratchpad show
&amp;nbsp;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+m &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;title&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;AlpineMail&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; scratchpad show ; move position center
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+n &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;title&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;NewsboatReader&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; scratchpad show ; move position center
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+comma &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;title&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;RangerFM&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; scratchpad show ; move position center
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+period &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;title&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Connman&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; scratchpad show ; move position center
&amp;nbsp;
&lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--no-startup-id&lt;/span&gt; lxterminal &lt;span class=&quot;re5&quot;&gt;-T&lt;/span&gt; AlpineMail &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;rpine 
&lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--no-startup-id&lt;/span&gt; lxterminal &lt;span class=&quot;re5&quot;&gt;-T&lt;/span&gt; NewsboatReader &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;newsboat
&lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--no-startup-id&lt;/span&gt; lxterminal &lt;span class=&quot;re5&quot;&gt;-T&lt;/span&gt; RangerFM &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; ranger
&lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--no-startup-id&lt;/span&gt; cmst &lt;span class=&quot;re5&quot;&gt;-M&lt;/span&gt;
&amp;nbsp;
for_window &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;title&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Connman System Tray&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; floating &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt;, resize &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$scratchpad&lt;/span&gt;-size, move scratchpad
for_window &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;title&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;AlpineMail&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; floating &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt;, resize &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$scratchpad&lt;/span&gt;-size, move scratchpad
for_window &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;title&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;NewsboatReader&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; floating &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt;, resize &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$scratchpad&lt;/span&gt;-size, move scratchpad 
for_window &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;title&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;RangerFM&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; floating &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt;, resize &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$scratchpad&lt;/span&gt;-size, move scratchpad 
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;################################################&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# resize window (you can also use the mouse for that)&lt;/span&gt;
mode &lt;span class=&quot;st0&quot;&gt;&amp;quot;resize&amp;quot;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;co0&quot;&gt;# These bindings trigger as soon as you enter the resize mode&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co0&quot;&gt;# Pressing left will shrink the window’s width.&lt;/span&gt;
        &lt;span class=&quot;co0&quot;&gt;# Pressing right will grow the window’s width.&lt;/span&gt;
        &lt;span class=&quot;co0&quot;&gt;# Pressing up will shrink the window’s height.&lt;/span&gt;
        &lt;span class=&quot;co0&quot;&gt;# Pressing down will grow the window’s height.&lt;/span&gt;
        bindsym j resize shrink width &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; px or &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; ppt
        bindsym k resize grow height &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; px or &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; ppt
        bindsym l resize shrink height &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; px or &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; ppt
        bindsym semicolon resize grow width &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; px or &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; ppt
&amp;nbsp;
        &lt;span class=&quot;co0&quot;&gt;# same bindings, but for the arrow keys&lt;/span&gt;
        bindsym Left resize shrink width &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; px or &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; ppt
        bindsym Down resize grow height &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; px or &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; ppt
        bindsym Up resize shrink height &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; px or &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; ppt
        bindsym Right resize grow width &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; px or &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; ppt
&amp;nbsp;
        &lt;span class=&quot;co0&quot;&gt;# back to normal: Enter or Escape or $mod+r&lt;/span&gt;
        bindsym Return mode &lt;span class=&quot;st0&quot;&gt;&amp;quot;default&amp;quot;&lt;/span&gt;
        bindsym Caps_Lock mode &lt;span class=&quot;st0&quot;&gt;&amp;quot;default&amp;quot;&lt;/span&gt;
        bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+r mode &lt;span class=&quot;st0&quot;&gt;&amp;quot;default&amp;quot;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
bindsym &lt;span class=&quot;re1&quot;&gt;$mod&lt;/span&gt;+r mode &lt;span class=&quot;st0&quot;&gt;&amp;quot;resize&amp;quot;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Start i3bar to display a workspace bar (plus the system information i3status&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# finds out, if available)&lt;/span&gt;
bar &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
     font pango:DejaVu Sans mono &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
     status_command i3status &lt;span class=&quot;re5&quot;&gt;-c&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;i3status.conf
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;i3status_bar&quot;&gt;i3status bar&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_aa0642f8e44b4a219db8d085bf394263_2&quot;&gt;i3status.conf &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_aa0642f8e44b4a219db8d085bf394263_2&quot;&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# i3status configuration file.&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# see &amp;quot;man i3status&amp;quot; for documentation.&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# It is important that this file is edited as UTF-8.&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# The following line should contain a sharp s:&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# ß&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# If the above line is not correctly displayed, fix your editor first!&lt;/span&gt;
&amp;nbsp;
general &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        colors = &lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;
        interval = &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;#order += &amp;quot;ipv6&amp;quot;&lt;/span&gt;
order += &lt;span class=&quot;st0&quot;&gt;&amp;quot;wireless _first_&amp;quot;&lt;/span&gt;
order += &lt;span class=&quot;st0&quot;&gt;&amp;quot;ethernet _first_&amp;quot;&lt;/span&gt;
order += &lt;span class=&quot;st0&quot;&gt;&amp;quot;battery 0&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#order += &amp;quot;disk /&amp;quot;&lt;/span&gt;
order += &lt;span class=&quot;st0&quot;&gt;&amp;quot;load&amp;quot;&lt;/span&gt;
order += &lt;span class=&quot;st0&quot;&gt;&amp;quot;cpu_usage&amp;quot;&lt;/span&gt;
order += &lt;span class=&quot;st0&quot;&gt;&amp;quot;cpu_temperature 0&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#order += &amp;quot;memory&amp;quot;&lt;/span&gt;
order += &lt;span class=&quot;st0&quot;&gt;&amp;quot;tztime local&amp;quot;&lt;/span&gt;
&amp;nbsp;
wireless _first_ &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        format_up = &lt;span class=&quot;st0&quot;&gt;&amp;quot;W: (%quality at %essid) %ip&amp;quot;&lt;/span&gt;
        format_down = &lt;span class=&quot;st0&quot;&gt;&amp;quot;W: down&amp;quot;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
ethernet _first_ &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        format_up = &lt;span class=&quot;st0&quot;&gt;&amp;quot;E: %ip (%speed)&amp;quot;&lt;/span&gt;
        format_down = &lt;span class=&quot;st0&quot;&gt;&amp;quot;E: down&amp;quot;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
battery &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	status_chr = &lt;span class=&quot;st0&quot;&gt;&amp;quot;⚡&amp;quot;&lt;/span&gt;
        status_bat = &lt;span class=&quot;st0&quot;&gt;&amp;quot;🔋&amp;quot;&lt;/span&gt;
        status_unk = &lt;span class=&quot;st0&quot;&gt;&amp;quot;? &amp;quot;&lt;/span&gt;
        status_full = &lt;span class=&quot;st0&quot;&gt;&amp;quot;☻ &amp;quot;&lt;/span&gt;
	low_threshold = &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
        format = &lt;span class=&quot;st0&quot;&gt;&amp;quot;B: %status %percentage %remaining&amp;quot;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
disk &lt;span class=&quot;st0&quot;&gt;&amp;quot;/&amp;quot;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        format = &lt;span class=&quot;st0&quot;&gt;&amp;quot;%avail&amp;quot;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
load &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        format = &lt;span class=&quot;st0&quot;&gt;&amp;quot;L: %1min&amp;quot;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
cpu_temperature &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	format = &lt;span class=&quot;st0&quot;&gt;&amp;quot;T: %degrees°C&amp;quot;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
cpu_usage &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	format = &lt;span class=&quot;st0&quot;&gt;&amp;quot;CPU0 %cpu0 / CPU1 %cpu1&amp;quot;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
memory &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	memory_used_method = &lt;span class=&quot;st0&quot;&gt;&amp;quot;classical&amp;quot;&lt;/span&gt;
        format = &lt;span class=&quot;st0&quot;&gt;&amp;quot;%free / %used&amp;quot;&lt;/span&gt;
	threshold_degraded = &lt;span class=&quot;st0&quot;&gt;&amp;quot;2G&amp;quot;&lt;/span&gt;
        format_degraded = &lt;span class=&quot;st0&quot;&gt;&amp;quot;MEMORY &amp;lt; %available&amp;quot;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
tztime &lt;span class=&quot;kw3&quot;&gt;local&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        format = &lt;span class=&quot;st0&quot;&gt;&amp;quot;%Y-%m-%d %H:%M&amp;quot;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;conky&quot;&gt;Conky&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_aa0642f8e44b4a219db8d085bf394263_3&quot;&gt;.conkyrc &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_aa0642f8e44b4a219db8d085bf394263_3&quot;&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# Standard antiX .conkyrc file&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# For conky editing help and commands visit = Casey&#039;s Conky Reference with Examples {http://www.ifxgroup.net/conky.htm}&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# set to yes if you want Conky to be forked in the background&lt;/span&gt;
background &lt;span class=&quot;kw2&quot;&gt;yes&lt;/span&gt;
&amp;nbsp;
short_units &lt;span class=&quot;kw2&quot;&gt;yes&lt;/span&gt;
&amp;nbsp;
cpu_avg_samples &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
net_avg_samples &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&amp;nbsp;
out_to_console no
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# X font when Xft is disabled, you can pick one with program xfontsel&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#font 7x12&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#font 6x10&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#font 7x13&lt;/span&gt;
font 8x12
&lt;span class=&quot;co0&quot;&gt;#font 7x12&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Use Xft?&lt;/span&gt;
use_xft &lt;span class=&quot;kw2&quot;&gt;yes&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Xft font when Xft is enabled&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#xftfont gentium:size=12&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#ftfont DejaVu Sans:size=10&lt;/span&gt;
xftfont DejaVu Sans:bold:&lt;span class=&quot;re2&quot;&gt;size&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;9&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#xftfont DejaVu Sans:size=9&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Create own window instead of using desktop (required in nautilus, pcmanfm and rox desktops)&lt;/span&gt;
own_window &lt;span class=&quot;kw2&quot;&gt;yes&lt;/span&gt;
own_window_class Conky
own_window_transparent &lt;span class=&quot;kw2&quot;&gt;yes&lt;/span&gt;
own_window_hints undecorated,below,sticky,skip_taskbar
own_window_type override
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Text alpha when using Xft&lt;/span&gt;
xftalpha &lt;span class=&quot;nu0&quot;&gt;1.0&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;#on_bottom no&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Update interval in seconds&lt;/span&gt;
update_interval &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Use double buffering (reduces flicker, may not work for everyone)&lt;/span&gt;
double_buffer &lt;span class=&quot;kw2&quot;&gt;yes&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Minimum size of text area&lt;/span&gt;
minimum_size &lt;span class=&quot;nu0&quot;&gt;55&lt;/span&gt;
maximum_width &lt;span class=&quot;nu0&quot;&gt;190&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Draw shades?&lt;/span&gt;
draw_shades no
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Draw outlines?&lt;/span&gt;
draw_outline no
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Draw borders around text&lt;/span&gt;
draw_borders no
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Stippled borders?&lt;/span&gt;
stippled_borders &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# border margins&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#border_margin 10&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# border width&lt;/span&gt;
border_width &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Default colors and also border colors&lt;/span&gt;
default_color white
default_shade_color white
default_outline_color white
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;#color ffffff&lt;/span&gt;
color4 yellow
color8 77ccff
color9 5599cc
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Text alignment, other possible values are commented&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# alignment top_left&lt;/span&gt;
alignment top_right
&lt;span class=&quot;co0&quot;&gt;#alignment bottom_left&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#alignment bottom_right&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Gap between borders of screen and text&lt;/span&gt;
&amp;nbsp;
gap_x &lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;
gap_y &lt;span class=&quot;nu0&quot;&gt;40&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Add spaces to keep things from moving about?  This only affects certain objects.&lt;/span&gt;
use_spacer right
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Subtract file system buffers from used memory?&lt;/span&gt;
no_buffers &lt;span class=&quot;kw2&quot;&gt;yes&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# if_up_strictness link:  up | link | address&lt;/span&gt;
if_up_strictness address
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# set to yes if you want all text to be in uppercase&lt;/span&gt;
uppercase no
&amp;nbsp;
TEXT
&lt;span class=&quot;co1&quot;&gt;${alignc}&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$nodename&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;${alignc}&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;${color8}&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;${font DejaVu Sans:size=12}&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;${time %H:%M}&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;${font}&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;${color}&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;${alignc}&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;${time %a %d %b}&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;${alignc}&lt;/span&gt;Uptime: &lt;span class=&quot;re1&quot;&gt;$uptime&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#${alignc}${exec disp=${DISPLAY#:}; disp=${disp%.[0-9]}; cat $HOME/.desktop-session/desktop-code.$disp 2&amp;gt;/dev/null}&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#res:${alignr}${execi 60 xdpyinfo | sed -n -r &amp;quot;s/^\s*dimensions:.*\s([0-9]+x[0-9]+).*/\1/p&amp;quot;}&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#dpi:${alignr}${execi 60 sed -nr &amp;quot;s/^\s*Xft.dpi:\s*([0-9]+(x[0-9]+)?).*/\1/p&amp;quot; $HOME/.Xresources | grep &amp;quot;[0-9]&amp;quot; || echo 96}&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#Automount: ${alignr}${execi 60 grep -q &amp;quot;^automount=TRUE&amp;quot; $HOME/.desktop-session/automount.conf 2&amp;gt;/dev/null &amp;amp;&amp;amp; echo &amp;quot;enabled&amp;quot; || echo &amp;quot;disabled&amp;quot;}&lt;/span&gt;
&lt;span class=&quot;co4&quot;&gt;Freq:$&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;alignr&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;${freq}&lt;/span&gt;
&lt;span class=&quot;co4&quot;&gt;CPU:$&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;alignr&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;${cpu}&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#${color}Init:${alignr}${color3}${execi 60 detect-init.sh}&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;${alignr}&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;${cpugraph cpu0 30,170 5599cc 5599cc}&lt;/span&gt;
&lt;span class=&quot;co4&quot;&gt;Disk:$&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;alignr&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;${diskio}&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;${alignr}&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;${diskiograph 30,170 5599cc 5599cc}&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;${if_up eth0}&lt;/span&gt;
eth0 up: &lt;span class=&quot;re1&quot;&gt;$alignr&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;${upspeed eth0}&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;${alignr}&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;${upspeedgraph   eth0 30,170 5599cc 5599cc}&lt;/span&gt;
eth0 down: &lt;span class=&quot;re1&quot;&gt;$alignr&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;${downspeed eth0}&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;${alignr}&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;${downspeedgraph eth0 30,170  5599cc 5599cc}&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;${endif}&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;${if_up eth1}&lt;/span&gt;
eth1 up: &lt;span class=&quot;re1&quot;&gt;$alignr&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;${upspeed eth1}&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;${alignr}&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;${upspeedgraph   eth1 30,170 5599cc 5599cc}&lt;/span&gt;
eth1 down: &lt;span class=&quot;re1&quot;&gt;$alignr&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;${downspeed eth1}&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;${alignr}&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;${downspeedgraph eth1 30,170  5599cc 5599cc}&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;${endif}&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;${if_up wlan0}&lt;/span&gt;
&amp;nbsp;
Wireless 
IP  &lt;span class=&quot;re1&quot;&gt;$alignr&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;${addr wlan0}&lt;/span&gt;
Gate &lt;span class=&quot;re1&quot;&gt;$alignr&lt;/span&gt;  &lt;span class=&quot;re1&quot;&gt;$gw_ip&lt;/span&gt;
NS &lt;span class=&quot;re1&quot;&gt;$alignr&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$nameserver&lt;/span&gt;
&amp;nbsp;
wlan0 up: &lt;span class=&quot;re1&quot;&gt;$alignr&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;${upspeed wlan0}&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;${alignr}&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;${upspeedgraph   wlan0 30,170 5599cc 5599cc}&lt;/span&gt;
wlan0 down: &lt;span class=&quot;re1&quot;&gt;$alignr&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;${downspeed wlan0}&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;${alignr}&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;${downspeedgraph wlan0 30,170 5599cc 5599cc}&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;${endif}&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;${if_up wlan1}&lt;/span&gt;
wlan1 up: &lt;span class=&quot;re1&quot;&gt;$alignr&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;${upspeed wlan1}&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;${alignr}&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;${upspeedgraph   wlan1 30,170 5599cc 5599cc}&lt;/span&gt;
wlan1 down: &lt;span class=&quot;re1&quot;&gt;$alignr&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;${downspeed wlan1}&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;${alignr}&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;${downspeedgraph wlan1 30,170 5599cc 5599cc}&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;${endif}&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;${alignr}&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;${color8}&lt;/span&gt;Used &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; Total &lt;span class=&quot;co1&quot;&gt;${color}&lt;/span&gt;
&lt;span class=&quot;co4&quot;&gt;RAM:$&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;alignr&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$mem&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$memmax&lt;/span&gt;
&lt;span class=&quot;co4&quot;&gt;Swap:$&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;alignr&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$swap&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$swapmax&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; Disk:&lt;span class=&quot;co1&quot;&gt;${alignr}&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;${fs_used /}&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;${fs_size /}&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#${alignc}${execi 1000 persist-enabled}&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;${font DejaVu Sans Mono:size=10}&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;${execi 30 ~/ruptime}&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
Gather &lt;code&gt;ruptime&lt;/code&gt; information about local LAN Linux boxes from the &lt;code&gt;rwhod&lt;/code&gt; service and format it with a small script &lt;code&gt;~/ruptime&lt;/code&gt; called from conkyrc
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;${font DejaVu Sans Mono:size=10}${execi 30 ~/ruptime}&lt;/pre&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_aa0642f8e44b4a219db8d085bf394263_4&quot;&gt;ruptime local script &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_aa0642f8e44b4a219db8d085bf394263_4&quot;&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ruptime &lt;span class=&quot;re5&quot;&gt;-a&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cut&lt;/span&gt; -c1-&lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;13&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;18&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;27&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
Real &lt;code&gt;ruptime&lt;/code&gt; returns:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;antix1:~ $ ruptime 
antix1        up    &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;+04:&lt;span class=&quot;nu0&quot;&gt;34&lt;/span&gt;,     &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;users&lt;/span&gt;,  load &lt;span class=&quot;nu0&quot;&gt;0.63&lt;/span&gt;, &lt;span class=&quot;nu0&quot;&gt;0.48&lt;/span&gt;, &lt;span class=&quot;nu0&quot;&gt;0.47&lt;/span&gt;
aprs          up  &lt;span class=&quot;nu0&quot;&gt;116&lt;/span&gt;+04:03,     &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;users&lt;/span&gt;,  load &lt;span class=&quot;nu0&quot;&gt;0.00&lt;/span&gt;, &lt;span class=&quot;nu0&quot;&gt;0.01&lt;/span&gt;, &lt;span class=&quot;nu0&quot;&gt;0.00&lt;/span&gt;
laptop        up    &lt;span class=&quot;nu0&quot;&gt;9&lt;/span&gt;+&lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt;:04,     &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;users&lt;/span&gt;,  load &lt;span class=&quot;nu0&quot;&gt;1.27&lt;/span&gt;, &lt;span class=&quot;nu0&quot;&gt;1.09&lt;/span&gt;, &lt;span class=&quot;nu0&quot;&gt;1.04&lt;/span&gt;
nas1          up  &lt;span class=&quot;nu0&quot;&gt;185&lt;/span&gt;+&lt;span class=&quot;nu0&quot;&gt;23&lt;/span&gt;:&lt;span class=&quot;nu0&quot;&gt;19&lt;/span&gt;,     &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;users&lt;/span&gt;,  load &lt;span class=&quot;nu0&quot;&gt;0.33&lt;/span&gt;, &lt;span class=&quot;nu0&quot;&gt;0.48&lt;/span&gt;, &lt;span class=&quot;nu0&quot;&gt;0.47&lt;/span&gt;
shack         up      &lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt;:&lt;span class=&quot;nu0&quot;&gt;19&lt;/span&gt;,     &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;users&lt;/span&gt;,  load &lt;span class=&quot;nu0&quot;&gt;0.16&lt;/span&gt;, &lt;span class=&quot;nu0&quot;&gt;0.22&lt;/span&gt;, &lt;span class=&quot;nu0&quot;&gt;0.21&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
My small script formats it for conky
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;antix1:~ $ .&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ruptime 
antix1    up   &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;+04:&lt;span class=&quot;nu0&quot;&gt;34&lt;/span&gt;
aprs      up &lt;span class=&quot;nu0&quot;&gt;116&lt;/span&gt;+04:03
laptop    up   &lt;span class=&quot;nu0&quot;&gt;9&lt;/span&gt;+&lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt;:04
nas1      up &lt;span class=&quot;nu0&quot;&gt;185&lt;/span&gt;+&lt;span class=&quot;nu0&quot;&gt;23&lt;/span&gt;:&lt;span class=&quot;nu0&quot;&gt;19&lt;/span&gt;
shack     up     &lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt;:&lt;span class=&quot;nu0&quot;&gt;19&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;add_neofetch_output_as_image_to_root_window&quot;&gt;add neofetch output as image to root window&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_aa0642f8e44b4a219db8d085bf394263_5&quot;&gt;background.sh &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_aa0642f8e44b4a219db8d085bf394263_5&quot;&gt;&lt;pre class=&quot;code&quot;&gt;#!/bin/bash



while :
do
	
	neofetch --disable term &amp;gt; fetch

	ansilove -q -m transparent fetch

	feh --bg-center -B midnightblue fetch.png

	sleep 300

done&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;keys_cheatsheet&quot;&gt;Keys cheatsheet&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;$mod+p = promote window

$mod+Return = terminal

$mod+Shift+q = kill window

$mod+d = dmenu

$mod+h = focus left
$mod+j = focus down
$mod+k = focus up
$mod+l = focus right


$mod+Shift+h = move left
$mod+Shift+j = move down
$mod+Shift+k = move up
$mod+Shift+l = move right


$mod+f = fullsreen toggle


=== When using Autotile these are for the next window to be created ====

$mod+s = stacking
$mod+w = tabbed
$mod+e = toggle h or v

=== Toggle a window between tiled and floating ===

$mod+Shift+space = floating toggle

=== Switch focus between a floating window and the tiled window(s)

$mod+space focus mode_toggle


$mod+a = focus parent
&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;I3 Config and tweaks&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;i3_config_and_tweaks&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;656-17340&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit15&quot; id=&quot;additional_software&quot;&gt;Additional Software&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Additional Software&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;additional_software&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;17341-17373&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit16&quot; id=&quot;urxvt&quot;&gt;urxvt&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Configured vi ~/.Xdefaults
&lt;/p&gt;

&lt;p&gt;
For Ranger icons use &lt;code&gt;DejavuSansMono NFM:size=11:style=Book&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
A bug makes font rendering &lt;em&gt;odd&lt;/em&gt;, with too much space between characters (&lt;em&gt;kerning&lt;/em&gt; is wrong)
&lt;/p&gt;

&lt;p&gt;
A fix is to put &lt;code&gt;Xft.rgba: none&lt;/code&gt; into ~/.Xdefaults
&lt;/p&gt;

&lt;p&gt;
Another fix is to put &lt;code&gt;URxvt.letterSpace=-1&lt;/code&gt; into &lt;code&gt;~/.Xdefaults&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Here&amp;#039;s the &lt;code&gt;~/.Xdefaults&lt;/code&gt; I use:
&lt;/p&gt;

&lt;p&gt;
Some un-used lines are commented out, but might be useful in testing….
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;Xft.rgba: none
&lt;span class=&quot;co0&quot;&gt;#Xft.hintstyle: hintfull&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#URxvt.letterSpace:-1&lt;/span&gt;
&amp;nbsp;
Xcursor.size:&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#URxvt.skipBuiltinGlyphs: true&lt;/span&gt;
URxvt.scrollBar: &lt;span class=&quot;kw2&quot;&gt;false&lt;/span&gt;
URxvt.boldFont: 
&lt;span class=&quot;co0&quot;&gt;#URxvt.font: xft:DejaVuSansMono:style=Book:size=11&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#URxvt.font: xft:Monospace:size=11, xft:DejaVuSansMono NFM:style=Book&lt;/span&gt;
URxvt.font: xft:DejaVuSansMono NFM:&lt;span class=&quot;re2&quot;&gt;size&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;11&lt;/span&gt;:&lt;span class=&quot;re2&quot;&gt;style&lt;/span&gt;=Book&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;urxvt&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;urxvt&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:16,&amp;quot;range&amp;quot;:&amp;quot;17374-18161&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit17&quot; id=&quot;ranger&quot;&gt;Ranger&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Image Previews: &lt;code&gt;/etc/ranger/config/rc.conf&lt;/code&gt; :&lt;pre class=&quot;code&quot;&gt;set preview_images true&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;set preview_images_method w3m&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Draw borders round segments of display &lt;code&gt;/etc/ranger/config/rc.conf&lt;/code&gt; : &lt;pre class=&quot;code&quot;&gt;set draw_borders both&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Icons following instructions here: &lt;a href=&quot;https://github.com/alexanderjeurissen/ranger_devicons&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://github.com/alexanderjeurissen/ranger_devicons&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://github.com/alexanderjeurissen/ranger_devicons&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;/etc/ranger/config/rc.conf&lt;/code&gt; :&lt;pre class=&quot;code&quot;&gt;default_linemode devicons&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Font for icons : &lt;a href=&quot;https://github.com/ryanoasis/nerd-fonts/releases/download/v2.2.2/DejaVuSansMono.zip&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://github.com/ryanoasis/nerd-fonts/releases/download/v2.2.2/DejaVuSansMono.zip&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://github.com/ryanoasis/nerd-fonts/releases/download/v2.2.2/DejaVuSansMono.zip&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; unzipped into : ~/.fonts&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; font cache re-built with &lt;pre class=&quot;code&quot;&gt;fc-cache -fv&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Use Lxterminal - handles icons and image previews (&lt;code&gt;st&lt;/code&gt; is poor for image previews)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; commands for exracting and creating compressed archives (&lt;code&gt;zip&lt;/code&gt;, &lt;code&gt;tar&lt;/code&gt;, &lt;code&gt;tar.gz&lt;/code&gt; etc) from here &lt;a href=&quot;https://wiki.archlinux.org/title/ranger#Archives&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://wiki.archlinux.org/title/ranger#Archives&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://wiki.archlinux.org/title/ranger#Archives&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; added both &lt;code&gt;python&lt;/code&gt; snippets to &lt;code&gt;/etc/ranger/config/commands.py&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; added keybindings to &lt;code&gt;/etc/ranger/config/rc.conf&lt;/code&gt; &lt;pre class=&quot;code&quot;&gt; 
map ,n console compress 
map ,m compress temp.zip
map ,e console extract_here &lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; extract a zip/tar/tar.gz by the keystroke &lt;kbd class=&quot;__keyboard&quot;&gt;,&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;e&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; create an automatically named &lt;code&gt;temp.zip&lt;/code&gt; archive by selecting the files (&lt;kbd class=&quot;__keyboard&quot;&gt;Space&lt;/kbd&gt;) and then &lt;kbd class=&quot;__keyboard&quot;&gt;,&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;m&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; create a named archive of your choice &lt;kbd class=&quot;__keyboard&quot;&gt;,&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;n&lt;/kbd&gt; &lt;code&gt;your_archive_name.[tar|zip|tar.gz]&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;insert&amp;gt; : touch (new file)

gg   : move to top
G    : move to bottom

&amp;lt;F1&amp;gt; : help
&amp;lt;F2&amp;gt; : rename
&amp;lt;F3&amp;gt; : view (less)
&amp;lt;F4&amp;gt; : edit (vim) 
&amp;lt;F5&amp;gt; : copy
&amp;lt;F6&amp;gt; : cut
&amp;lt;F7&amp;gt; : mkdir
&amp;lt;F8&amp;gt; : delete
&amp;lt;F10&amp;gt;: quit


&amp;lt;space&amp;gt; : select
uv : un-select

yy : yank (copy)
dd : cut

ud : un-cut
uy : un-cut(yank)

pp : paste


gh : GoHome
zh : show hidden dotfiles

Archive operation commands
,n : new named archive 
,m : new &amp;quot;temp.zip&amp;quot;
,e : extract_here
&lt;/pre&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 09/10/22 12:38&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Ranger&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;ranger&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:17,&amp;quot;range&amp;quot;:&amp;quot;18162-20082&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit18&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:16,&amp;quot;secid&amp;quot;:18,&amp;quot;range&amp;quot;:&amp;quot;20083-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 30 Dec 2025 09:55:07 +0000</pubDate>
        </item>
        <item>
            <title>CCIR493 Selcall</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:ccir493_selcall</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:start&quot; data-wiki-id=&quot;public:radio:topics:start&quot;&gt;Radio Topics&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;ccir493_selcall&quot;&gt;CCIR493 Selcall&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; HF Selcall Experiments &lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;CCIR493 Selcall&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;ccir493_selcall&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-78&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;background&quot;&gt;Background&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
I became interested in HF selcall when I was looking for a way of setting up impromptu QSOs with specific stations, for doing tests etc., without the need for listening by ear for calls. Various ideas were considered for controlling an audio mute, and alerting the operator, on HF, but nothing seemed appropriate (CTCSS, DTMF etc) until I stumbled on CCIR493 HF Selcall, specifically designed to cope with conditions on the HF bands. 
&lt;/p&gt;

&lt;p&gt;
The protocol was familiar, as it&amp;#039;s very similar (but slightly simpler) than GMDSS DSC. This led to more reading and research. CCIR493 is widely used in Land Mobile HF SSB in Australia and in other countries which use HF SSB as a communications method. It seems largely unused in Europe. In Australia it is used on the networks set up to assist 4WD outback travellers, with Selcall used to initiate contact with the various base stations. 
&lt;/p&gt;

&lt;p&gt;
Selcall&amp;#039;s &lt;code&gt;beacon&lt;/code&gt; and &lt;code&gt;99 beacon&lt;/code&gt; functions can be used to check if a particular station is reachable before attempting a voice call. 
&lt;/p&gt;

&lt;p&gt;
This seemed ideal…. down the rabbit hole of HF Selcall…..
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Background&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;background&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;79-1182&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;basic_details&quot;&gt;Basic details&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
CCIR493 HF Selcall is a predecessor to GMDSS DSC used in Marine Radio. 
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Two Tone FSK with 170Hz shift&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 100baud signalling rate&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Tone frequencies 1700 = 0, 1870 = 1 (tone centre = 1785)&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; compare with DSC: 1615 = 1, 1785 = 0 (tone centre = 1700, inverted shift)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Symbols are 10-bit words, 7 bit + 3 parity bits&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Dotting pre-amble of alternating 1010….. 2 to 20 seconds depending on expected scan-group size&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Same “symbol repeat after 4” RX/DX interleaving as DSC&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Same phasing sequence as DSC&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; No overall Error Check Sum, unlike DSC&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Aradio%3Atopics%3Accir493_selcall&amp;amp;media=public:radio:active:selcall_4_digit_ccir_493_4_hflink_a.jpg&quot; class=&quot;media&quot; title=&quot;public:radio:active:selcall_4_digit_ccir_493_4_hflink_a.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=800&amp;amp;tok=846957&amp;amp;media=public:radio:active:selcall_4_digit_ccir_493_4_hflink_a.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;800&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; At its simplest a selcall transmission can be either:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Directed call to a specific address&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;Selcall&lt;/code&gt; = send a revertive signal over the air AND alert the remote operator. The &lt;code&gt;FMT&lt;/code&gt; symbol = &lt;code&gt;120&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;Directed-Beacon&lt;/code&gt; = send revertive signal over the air, but do not alert remote operator. The &lt;code&gt;FMT&lt;/code&gt; symbol = &lt;code&gt;123&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;99-beacon&lt;/code&gt; call to a group of addresses = all stations send revertive signal over the air, but do not alert remote operator. The &lt;code&gt;99-beacon call&lt;/code&gt; is a special form of a directed selcall, with the &lt;code&gt;FMT&lt;/code&gt; symbol of &lt;code&gt;120&lt;/code&gt; and the final two digits of the destination address = &lt;code&gt;99&lt;/code&gt;. Receiving decoders understand to treat the call as a special type of &lt;code&gt;beacon&lt;/code&gt; call despite the &lt;code&gt;FMT&lt;/code&gt; being &lt;code&gt;120&lt;/code&gt; (Selcall) &lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
The &lt;code&gt;directed-beacon&lt;/code&gt; to a specific address will confirm if that station is reachable, without disturbing the operator. 
&lt;/p&gt;

&lt;p&gt;
The &lt;code&gt;99-beacon call&lt;/code&gt; confirms whether any station in the &lt;em&gt;group&lt;/em&gt; are reachable - the &lt;em&gt;group&lt;/em&gt; is “any station with the first two digits matching”. The address used for the &lt;code&gt;99-beacon call&lt;/code&gt; is &lt;code&gt;XX99&lt;/code&gt;, where &lt;code&gt;XX&lt;/code&gt; is the leading digits of the desired group. For example, a group stations &lt;code&gt;3610&lt;/code&gt;, &lt;code&gt;3602&lt;/code&gt;, &lt;code&gt;3603&lt;/code&gt;, &lt;code&gt;3654&lt;/code&gt; would all respond to a &lt;code&gt;99-beacon call&lt;/code&gt; addressed to &lt;code&gt;3699&lt;/code&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Basic details&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;basic_details&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1183-3133&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;jenal_sc2_mic&quot;&gt;Jenal SC2 Mic&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
HF Selcall is widely used in Australia, and there is a large market for add-on Selcall devices (to convert non-selcall radios) there. One manufacturer of Selcall equipment is &lt;strong&gt;JENAL&lt;/strong&gt;.
&lt;/p&gt;

&lt;p&gt;
At the time of my first exploration of Selcall I found that the SC2 microphone seemed like the perfect solution. The SC2 had been out of production, but Jenal had just released a new batch and I bought TWO of them, allowing me to experiment in isolation, should I fail to find any other amateur stations suitably equipped.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:active:sc2prg7.pdf&quot; class=&quot;media mediafile mf_pdf&quot; title=&quot;public:radio:active:sc2prg7.pdf (128.2 KB)&quot;&gt; SC2 Handbook&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
One SC2 microphone can be connected to a Xiegu G90 portable HF transceiver, capable of 20W pep, and the other SC2 can be connected to a home made 60m SSB transceiver, also capable of 20W PEP, at the main station. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Jenal SC2 Mic&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;jenal_sc2_mic&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;3134-3945&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;scanning&quot;&gt;Scanning&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
The SC2 is capable of controlling the transceiver to scan, waiting for incoming selcall &lt;code&gt;dotting&lt;/code&gt; signals, when it will pause the scan to decode any selcall message and act upon it as appropriate. Scan will resume after a certain period. The simplest scanning method is to pulse the &lt;code&gt;channel up&lt;/code&gt; or &lt;code&gt;channel down&lt;/code&gt; line present on most ham-grade transceivers on the mic-connector and thus the radio will step through its memory channels looking for selcall signals. 
&lt;/p&gt;

&lt;p&gt;
&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/images/smileys/fixme.svg&quot; class=&quot;icon smiley&quot; alt=&quot;FIXME&quot; /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Scanning&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;scanning&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;3946-4445&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;previous_selcall_activity&quot;&gt;Previous Selcall Activity&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
In previous periods of activity with Selcall I have managed a few contacts and QSOs. Mainly with two stations who were already equipped with Barrett or Codan radios which can use CCIR493 “out of the box”.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; GM4WMM - with a Barrett 950. We successfully operated on a small set of predetermined channels in the 80m, 60m, 40m bands, scanning, and selecting the optimum channel using &lt;code&gt;beacon&lt;/code&gt; calls.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.qrz.com/db/F6EMT&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.qrz.com/db/F6EMT&quot; rel=&quot;ugc nofollow noopener&quot;&gt; F6EMT &lt;/a&gt;- with a Codan &lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/images/smileys/fixme.svg&quot; class=&quot;icon smiley&quot; alt=&quot;FIXME&quot; /&gt;. Made several contacts on 20m, some of them while mobile, initiated as random Selcall QSOs.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
For 2023 I hope to find some more Selcall-equipped stations willing to try some experiments. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Previous Selcall Activity&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;previous_selcall_activity&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;4446-5139&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;selcall_activity_2023&quot;&gt;Selcall Activity 2023&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/images/smileys/fixme.svg&quot; class=&quot;icon smiley&quot; alt=&quot;FIXME&quot; /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;span class=&quot;todo&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;todocheckbox&quot; data-index=&quot;0&quot; data-date=&quot;1780938498&quot; data-pageid=&quot;public:radio:topics:ccir493_selcall&quot; data-strikethrough=&quot;1&quot; checked=&quot;checked&quot; /&gt; &lt;span class=&quot;todouser&quot;&gt;[✓ John Pumford-Green, 2023-04-30]&lt;/span&gt;&lt;span class=&quot;todotext clickabletodo todohlght&quot;&gt;&lt;del&gt;&lt;span class=&quot;todoinnertext&quot;&gt; Attach SC2 to Xiegu G90&lt;/span&gt;&lt;/del&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;span class=&quot;todo&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;todocheckbox&quot; data-index=&quot;1&quot; data-date=&quot;1780938498&quot; data-pageid=&quot;public:radio:topics:ccir493_selcall&quot; data-strikethrough=&quot;1&quot; checked=&quot;checked&quot; /&gt; &lt;span class=&quot;todouser&quot;&gt;[✓ John Pumford-Green, 2023-04-30]&lt;/span&gt;&lt;span class=&quot;todotext clickabletodo todohlght&quot;&gt;&lt;del&gt;&lt;span class=&quot;todoinnertext&quot;&gt;Set up 60m homebrew radio &amp;amp; amplifier &amp;amp; attach SC2 &lt;/span&gt;&lt;/del&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;span class=&quot;todo&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;todocheckbox&quot; data-index=&quot;2&quot; data-date=&quot;1780938498&quot; data-pageid=&quot;public:radio:topics:ccir493_selcall&quot; data-strikethrough=&quot;1&quot; checked=&quot;checked&quot; /&gt; &lt;span class=&quot;todouser&quot;&gt;[✓ John Pumford-Green, 2023-05-05]&lt;/span&gt;&lt;span class=&quot;todotext clickabletodo todohlght&quot;&gt;&lt;del&gt;&lt;span class=&quot;todoinnertext&quot;&gt;Install mobile whip on van for use with G90&lt;/span&gt;&lt;/del&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;span class=&quot;todo&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;todocheckbox&quot; data-index=&quot;3&quot; data-date=&quot;1780938498&quot; data-pageid=&quot;public:radio:topics:ccir493_selcall&quot; data-strikethrough=&quot;1&quot; checked=&quot;checked&quot; /&gt; &lt;span class=&quot;todouser&quot;&gt;[✓ John Pumford-Green, 2023-04-30]&lt;/span&gt;&lt;span class=&quot;todotext clickabletodo todohlght&quot;&gt;&lt;del&gt;&lt;span class=&quot;todoinnertext&quot;&gt;Make adaptor for IC-M710 to allow easy connection of SC2 in place of usual datamode interface, for access to more bands&lt;/span&gt;&lt;/del&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;span class=&quot;todo&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;todocheckbox&quot; data-index=&quot;4&quot; data-date=&quot;1780938498&quot; data-pageid=&quot;public:radio:topics:ccir493_selcall&quot; data-strikethrough=&quot;1&quot; /&gt; &lt;span class=&quot;todotext clickabletodo todohlght&quot;&gt;&lt;span class=&quot;todoinnertext&quot;&gt;Try to make contact with like minded experimenters for on-air tests&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;strong&gt;UPDATE&lt;/strong&gt; — &lt;em&gt;John Pumford-Green 30/04/23 16:57&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt; When not otherwise engaged I&amp;#039;ll leave my main station IC-M710 monitoring &lt;code&gt;14.343MHz&lt;/code&gt; or &lt;code&gt;18.163MHz&lt;/code&gt;  with Selcall ID &lt;code&gt;3658&lt;/code&gt;. I may not be able to respond directly to any calls the Selcall will send revertives (at 50W) for successful selcall or beacon calls to &lt;code&gt;3658&lt;/code&gt;or for 99-beacon calls to &lt;code&gt;3699&lt;/code&gt;&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
For skeds please contact me by email - address at &lt;a href=&quot;https://www.qrz.com/db/GM4SLV&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.qrz.com/db/GM4SLV&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.qrz.com/db/GM4SLV&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
I have re-enabled emails from the &lt;code&gt;hf-link&lt;/code&gt; groups.io &lt;a href=&quot;https://groups.io/g/hflink&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://groups.io/g/hflink&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://groups.io/g/hflink&lt;/a&gt; to see what&amp;#039;s happening here - the only place where CCIR493 appears to be discussed/used.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Selcall Activity 2023&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;selcall_activity_2023&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;5140-6277&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; For new (2026) adventures in Selcall : &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:ccir493_-_2026&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:ccir493_-_2026&quot; data-wiki-id=&quot;public:radio:topics:ccir493_-_2026&quot;&gt;CCIR493 Selcall - 2026&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;del&gt;&lt;a href=&quot;https://youtu.be/Sbz8x2U-MqQ&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://youtu.be/Sbz8x2U-MqQ&quot; rel=&quot;ugc nofollow noopener&quot;&gt; My demonstration video &lt;/a&gt;&lt;/del&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://youtu.be/4CfKJiNFM3o&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://youtu.be/4CfKJiNFM3o&quot; rel=&quot;ugc nofollow noopener&quot;&gt; Q-Mac HF90 demonstration &lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;del&gt;&lt;a href=&quot;https://youtube.com/playlist?list=PLQqFw4bopLF-ZJ6URtjXEAHlSpQrODwX-&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://youtube.com/playlist?list=PLQqFw4bopLF-ZJ6URtjXEAHlSpQrODwX-&quot; rel=&quot;ugc nofollow noopener&quot;&gt; My short YouTube playlist with some Selcall videos&lt;/a&gt;&lt;/del&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://youtube.com/playlist?list=PLvMzk-zSmB2Z8bRJ6vO-jSiiazgTl6Fzo&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://youtube.com/playlist?list=PLvMzk-zSmB2Z8bRJ6vO-jSiiazgTl6Fzo&quot; rel=&quot;ugc nofollow noopener&quot;&gt; Australia Travel Net How-To series playlist &lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.jenal.com/page2.htm&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.jenal.com/page2.htm&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.jenal.com/page2.htm&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://hflink.com/selcall/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;http://hflink.com/selcall/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;http://hflink.com/selcall/&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://hflink.com/selcall/directory/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;http://hflink.com/selcall/directory/&quot; rel=&quot;ugc nofollow noopener&quot;&gt; HFLink Ham Selcall directory &lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.sigidwiki.com/wiki/CCIR_493-4_Selcall&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.sigidwiki.com/wiki/CCIR_493-4_Selcall&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.sigidwiki.com/wiki/CCIR_493-4_Selcall&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:active:ccir_493_selcall.pdf&quot; class=&quot;media mediafile mf_pdf&quot; title=&quot;public:radio:active:ccir_493_selcall.pdf (259.2 KB)&quot;&gt; A brief guide to CCIR493 what I wrote&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:active:vks-737-map-a4-2020-01-02.pdf&quot; class=&quot;media mediafile mf_pdf&quot; title=&quot;public:radio:active:vks-737-map-a4-2020-01-02.pdf (96.4 KB)&quot;&gt; Map of the VKS-737 base stations &amp;amp; their Selcall addresses &lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:active:oz_map_5.jpg&quot; class=&quot;media mediafile mf_jpg&quot; title=&quot;public:radio:active:oz_map_5.jpg (919.3 KB)&quot;&gt; Map of the Bush Telegraph base stations VMS469&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;&lt;del&gt; &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.blackcatsystems.selcall&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://play.google.com/store/apps/details?id=com.blackcatsystems.selcall&quot; rel=&quot;ugc nofollow noopener&quot;&gt; Blackcat Android app for generating various Selcalls, including Barrett/Codan &lt;/a&gt;&lt;/del&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;code_snippets&quot;&gt;Code snippets&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:active:selcal.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:radio:active:selcal.zip (6.9 KB)&quot;&gt; My Python2 Selcall TX encoder&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_ff20f88c1b3f9a8095d8a9db87a6a952_1&quot;&gt;selcal_functions.py (Click to view) &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_ff20f88c1b3f9a8095d8a9db87a6a952_1&quot;&gt;&lt;pre class=&quot;code python&quot;&gt;&lt;span class=&quot;co1&quot;&gt;# CCIR 493-4 Selcal Symbol Generator / CPFSK Modulator&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Wire2waves Ltd&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# March 2015&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# with CW ID for use on Amateur Radio bands&lt;/span&gt;
&amp;nbsp;
version &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;v0.2&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# Imports&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; numpy
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; pyaudio
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;struct&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;math&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; *
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# quick and dirty CW Ident&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# words per minute&lt;/span&gt;
wpm &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# dot period&lt;/span&gt;
cwdit &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1.2&lt;/span&gt; / wpm
&lt;span class=&quot;co1&quot;&gt;# dash period&lt;/span&gt;
cwdah &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; cwdit * &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;
&amp;nbsp;
w_amp &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;**&lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; - &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# define the output audio stream for the main data&lt;/span&gt;
p &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; pyaudio.&lt;span class=&quot;me1&quot;&gt;PyAudio&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
cpfsk_stream &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; p.&lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;format&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;pyaudio.&lt;span class=&quot;me1&quot;&gt;paInt16&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; channels&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; rate&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;9600&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; output&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# make a second stream for the Tune carrier &amp;amp; cw ident&lt;/span&gt;
pt &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; pyaudio.&lt;span class=&quot;me1&quot;&gt;PyAudio&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
tunestream &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; pt.&lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;format&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;pyaudio.&lt;span class=&quot;me1&quot;&gt;paInt16&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; channels&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; rate&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;9600&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; output&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
pc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; pyaudio.&lt;span class=&quot;me1&quot;&gt;PyAudio&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
cwstream &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; pc.&lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;format&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;pyaudio.&lt;span class=&quot;me1&quot;&gt;paInt16&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; channels&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; rate&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;9600&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; output&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# convert text to symbol value using dictionaries&lt;/span&gt;
fmt_symbol_dict &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sel&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;120&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;bcn&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;123&amp;quot;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
cat_symbol_dict &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;rtn&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;100&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
eos_symbol_dict &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;req&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;117&amp;quot;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# list containing Phasing Symbols in DX/RX order. &lt;/span&gt;
&amp;nbsp;
phasing_symbol &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;125&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;109&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;125&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;108&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;125&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;107&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;125&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;106&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;125&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;105&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;125&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;104&amp;quot;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# Instead of doing bit-twiddling to convert each symbol&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# value to its 10-bit parity protected word, which involves padding to full 7-bits, counting zeros,&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# reversing the bit order, shifting bits and &amp;quot;ORing&amp;quot; in the parity bits&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# we just use a dictionary containing the conversion between symbol value and its 10-bit parity protected word&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
parity_table &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; 
&lt;span class=&quot;st0&quot;&gt;&amp;quot;00&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0000000111&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;01&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1000000110&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;02&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0100000110&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;03&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1100000101&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
&lt;span class=&quot;st0&quot;&gt;&amp;quot;04&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0010000110&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;05&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1010000101&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;06&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0110000101&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;07&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1110000100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;08&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0001000110&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;09&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1001000101&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;10&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0101000101&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;11&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1101000100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
&lt;span class=&quot;st0&quot;&gt;&amp;quot;12&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0011000101&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;13&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1011000100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;14&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0111000100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;15&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1111000011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
&lt;span class=&quot;st0&quot;&gt;&amp;quot;16&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0000100110&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;17&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1000100101&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;18&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0100100101&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;19&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1100100100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
&lt;span class=&quot;st0&quot;&gt;&amp;quot;20&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0010100101&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;21&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1010100100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;22&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0110100100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;23&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1110100011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
&lt;span class=&quot;st0&quot;&gt;&amp;quot;24&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0001100101&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;25&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1001100100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;26&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0101100100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;27&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1101100011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
&lt;span class=&quot;st0&quot;&gt;&amp;quot;28&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0011100100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;29&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1011100011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;30&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0111100011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;31&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1111100010&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
&lt;span class=&quot;st0&quot;&gt;&amp;quot;32&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0000010110&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;33&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1000010101&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;34&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0100010101&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;35&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1100010100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
&lt;span class=&quot;st0&quot;&gt;&amp;quot;36&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0010010101&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;37&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1010010100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;38&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0110010100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;39&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1110010011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
&lt;span class=&quot;st0&quot;&gt;&amp;quot;40&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0001010101&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;41&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1001010100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;42&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0101010100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;43&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1101010011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
&lt;span class=&quot;st0&quot;&gt;&amp;quot;44&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0011010100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;45&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1011010011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;46&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0111010011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;47&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1111010010&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
&lt;span class=&quot;st0&quot;&gt;&amp;quot;48&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0000110101&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;49&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1000110100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;50&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0100110100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;51&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1100110011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
&lt;span class=&quot;st0&quot;&gt;&amp;quot;52&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0010110100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;53&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1010110011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;54&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0110110011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;55&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1110110010&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
&lt;span class=&quot;st0&quot;&gt;&amp;quot;56&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0001110100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;57&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1001110011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;58&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0101110011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;59&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1101110010&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
&lt;span class=&quot;st0&quot;&gt;&amp;quot;60&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0011110011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;61&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1011110010&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;62&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0111110010&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;63&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1111110001&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
&lt;span class=&quot;st0&quot;&gt;&amp;quot;64&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0000001110&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;65&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1000001101&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;66&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0100001101&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;67&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1100001100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
&lt;span class=&quot;st0&quot;&gt;&amp;quot;68&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0010001101&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;69&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1010001100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;70&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0110001100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;71&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1110001011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
&lt;span class=&quot;st0&quot;&gt;&amp;quot;72&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0001001101&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;73&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1001001100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;74&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0101001100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;75&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1101001011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
&lt;span class=&quot;st0&quot;&gt;&amp;quot;76&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0011001100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;77&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1011001011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;78&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0111001011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;79&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1111001010&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
&lt;span class=&quot;st0&quot;&gt;&amp;quot;80&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0000101101&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;81&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1000101100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;82&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0100101100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;83&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1100101011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
&lt;span class=&quot;st0&quot;&gt;&amp;quot;84&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0010101100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;85&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1010101011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;86&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0110101011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;87&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1110101010&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
&lt;span class=&quot;st0&quot;&gt;&amp;quot;88&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0001101100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;89&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1001101011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;90&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0101101011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;91&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1101101010&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
&lt;span class=&quot;st0&quot;&gt;&amp;quot;92&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0011101011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;93&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1011101010&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;94&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0111101010&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;95&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1111101001&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
&lt;span class=&quot;st0&quot;&gt;&amp;quot;96&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0000011101&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;97&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1000011100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;98&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0100011100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;99&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1100011011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
&lt;span class=&quot;st0&quot;&gt;&amp;quot;100&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0010011100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;101&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1010011011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;102&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0110011011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;103&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1110011010&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
&lt;span class=&quot;st0&quot;&gt;&amp;quot;104&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0001011100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;105&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1001011011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;106&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0101011011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;107&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1101011010&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
&lt;span class=&quot;st0&quot;&gt;&amp;quot;108&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0011011011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;109&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1011011010&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;110&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0111011010&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;111&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1111011001&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
&lt;span class=&quot;st0&quot;&gt;&amp;quot;112&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0000111100&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;113&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1000111011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;114&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0100111011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;115&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1100111010&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
&lt;span class=&quot;st0&quot;&gt;&amp;quot;116&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0010111011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;117&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1010111010&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;118&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0110111010&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;119&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1110111001&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
&lt;span class=&quot;st0&quot;&gt;&amp;quot;120&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0001111011&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;121&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1001111010&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;122&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0101111010&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;123&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1101111001&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; 
&lt;span class=&quot;st0&quot;&gt;&amp;quot;124&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0011111010&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;125&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1011111001&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;126&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;0111111001&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;127&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;1111111000&amp;quot;&lt;/span&gt; 
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
cw_table &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;A&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;.-&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;B&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;-...&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;C&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;-.-.&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;D&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;-..&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;E&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;.&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;F&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;..-.&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;G&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;--.&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;H&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;....&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;I&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;..&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;J&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;.---&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;K&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;-.-&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;L&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;.-..&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;M&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;--&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;N&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;-.&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;O&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;---&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;P&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;.--.&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;Q&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;--.-&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;R&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;.-.&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;S&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;...&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;T&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;-&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;U&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;..-&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;V&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;...-&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;W&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;.--&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;X&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;-..-&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;Y&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;--.-&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;Z&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;--..&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;.----&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;2&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;..---&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;3&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;...--&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;4&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;....-&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;5&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;.....&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;6&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;-....&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;7&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;--...&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;8&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;---..&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;9&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;----.&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;-----&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;/&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;-..-.&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;?&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;..--..&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;+&amp;quot;&lt;/span&gt; : &lt;span class=&quot;st0&quot;&gt;&amp;quot;.-.-.&amp;quot;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;#####################&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# function definitions&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;##############&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#  Tone generators (not used for data, but for Tune and CW signals)&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Setting the &amp;quot;cspace&amp;quot; and &amp;quot;lspace&amp;quot; amplitudes (pwr) to non-zero&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# will produce FSK-style CW, as used in Beacons etc,&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; sine&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;frequency&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; length&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    length &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;length * rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    factor &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;frequency&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; * &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pi * &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; / rate
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; numpy.&lt;span class=&quot;me1&quot;&gt;sin&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;numpy.&lt;span class=&quot;me1&quot;&gt;arange&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;length&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; * factor&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Generate a carrier to allow Auto-ATU to re-tune when changing frequency&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# reduced amplitude, 3 seconds &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; tune_carrier&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pwr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    frequency &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1785&lt;/span&gt;
    length &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;
    rate &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;9600&lt;/span&gt;
    chunks &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    chunks.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sine&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;frequency&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; length&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;chunk&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; numpy.&lt;span class=&quot;me1&quot;&gt;concatenate&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;chunks&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; * &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;w_amp * pwr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    tunestream.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;chunk&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;astype&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;numpy.&lt;span class=&quot;me1&quot;&gt;int16&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tostring&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; dash&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pwr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    frequency&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1900&lt;/span&gt;
    length&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;cwdah 
    rate&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;9600&lt;/span&gt;
    chunks &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    chunks.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sine&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;frequency&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; length&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;chunk&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; numpy.&lt;span class=&quot;me1&quot;&gt;concatenate&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;chunks&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; *  &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;w_amp * pwr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    cwstream.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;chunk&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;astype&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;numpy.&lt;span class=&quot;me1&quot;&gt;int16&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tostring&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;    
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; dot&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pwr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    frequency&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1900&lt;/span&gt;
    length&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;cwdit
    rate&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;9600&lt;/span&gt;
    chunks &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    chunks.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sine&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;frequency&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; length&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;chunk&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; numpy.&lt;span class=&quot;me1&quot;&gt;concatenate&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;chunks&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; *  &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;w_amp * pwr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    cwstream.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;chunk&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;astype&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;numpy.&lt;span class=&quot;me1&quot;&gt;int16&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tostring&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;  
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; cspace&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pwr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    frequency&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1700&lt;/span&gt;
    length&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;cwdit
    rate&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;9600&lt;/span&gt; 
    chunks &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    chunks.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sine&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;frequency&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; length&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;chunk&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; numpy.&lt;span class=&quot;me1&quot;&gt;concatenate&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;chunks&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; *  &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;w_amp * pwr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    cwstream.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;chunk&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;astype&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;numpy.&lt;span class=&quot;me1&quot;&gt;int16&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tostring&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;     
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; lspace&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pwr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    frequency&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1700&lt;/span&gt;
    length&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;cwdah
    rate&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;9600&lt;/span&gt;
    chunks &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    chunks.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sine&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;frequency&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; length&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; rate&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw3&quot;&gt;chunk&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; numpy.&lt;span class=&quot;me1&quot;&gt;concatenate&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;chunks&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; *  &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;w_amp * pwr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    cwstream.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;chunk&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;astype&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;numpy.&lt;span class=&quot;me1&quot;&gt;int16&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tostring&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;      
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;################################&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; make_call&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;cw_table&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; call&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    callsign &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; i &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; call:
        callsign +&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; cw_table&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        callsign +&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;s&amp;quot;&lt;/span&gt;        
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; callsign
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; cwid&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;call&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; pwr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    callsign &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; make_call&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;cw_table&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; call&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; i &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; callsign:
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; i &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;-&amp;quot;&lt;/span&gt;:
            dash&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pwr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            cspace&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pwr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; i &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;.&amp;quot;&lt;/span&gt;:
            dot&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pwr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            cspace&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pwr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; i &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;s&amp;quot;&lt;/span&gt;:
            lspace&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pwr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;###########&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# split a 4 digit Selcal into two 2-digit symbols&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# resulting symbols are returned as a list&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; sel_id_symbol&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sel_id&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    sel_id_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sel_id&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;i:i+&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; i &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sel_id&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;    
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; sel_id_list
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# build the basic Call:&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Selcal messages are of the form:  &amp;quot;fmt to_id cat self_id eos eos eos&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; build_call&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;f_s&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; a_s&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; c_s&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; s_s&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; eos_s&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
    sel_call &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
    sel_call.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;f_s&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; i &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; a_s:
        sel_call.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;i&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    sel_call.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;c_s&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; i &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; s_s:
        sel_call.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;i&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    sel_call.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;eos_s&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    sel_call.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;eos_s&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    sel_call.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;eos_s&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; sel_call
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# interleave the symbols into DX and RX sequence &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# at the same time convert between symbol value and&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# 10-bit parity word by looking in the parity_table dictionary.&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; interleave&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;parity_table&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; phasing&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sel_list&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
    symbol_count &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sel_list&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    sel_dxrx &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;# interleave the phasing sequence&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; p &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        sel_dxrx.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;parity_table&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;phasing&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;p&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;#dxrx&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;# add dx and rx copies of the format symbol&lt;/span&gt;
    sel_dxrx.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;parity_table&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;sel_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;#dx&lt;/span&gt;
    sel_dxrx.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;parity_table&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;sel_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;#rx&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;# add the DX copy of the the to_ID&lt;/span&gt;
    sel_dxrx.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;parity_table&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;sel_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;#dx&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;# add another RX copy of the format symbol&lt;/span&gt;
    sel_dxrx.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;parity_table&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;sel_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;#rx&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;# add the DX copy of the category symbol&lt;/span&gt;
    sel_dxrx.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;parity_table&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;sel_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;#dx&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;# loop through the remaining symbols to add the RX and DX versions &lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; i &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;symbol_count-&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        sel_dxrx.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;parity_table&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;sel_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;#rx&lt;/span&gt;
        sel_dxrx.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;parity_table&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;sel_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;i+&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;#dx&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;# add a final DX and RX copy of the EOS symbol&lt;/span&gt;
    sel_dxrx.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;parity_table&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;sel_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    sel_dxrx.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;parity_table&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;sel_list&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;    
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;# sel_dxrx is a list of 10-bit words, as ones and noughts, for the complete message&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; sel_dxrx
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# Make a 600-bit dotting period of alternating 1/0 in a string&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# Selcal dotting periods often 6 seconds (and up to 20 seconds in some&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# instances) to allow for capturing scanning radios. &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# We send 300 bits / 6 seconds for now, pending a decision to extend or reduce the dotting period.&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# Append to the string each 10-bit interleaved word, to create a string of &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# ones and noughts.&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# return a string of ones &amp;amp; noughts representing the complete message&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; make_bitstream&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sel_dxrx&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    sel_bitstream&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;10&amp;quot;&lt;/span&gt;  * &lt;span class=&quot;nu0&quot;&gt;300&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;# dotting&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; i &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; sel_dxrx:
        sel_bitstream +&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; i
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; sel_bitstream
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# DSC and Selcall use tone spacing and baud rate that prevents the use of &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# &amp;quot;Sunde&#039;s FSK&amp;quot; method to create glitch-less bit transitions.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# To minimize bandwidth it&#039;s necessary to use &amp;quot;Continuous Phase FSK&amp;quot; which&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# has a smooth transition of the waveform at the bit boundary. The method used is time-consuming&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# as we have to create each audio sample based on the phase-advance of each bit-period and &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# store them in a buffer before sending them out to the soundcard via PyAudio.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# This function is courtesy of Bill Lionheart : billlionheart@gmail.com&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Make the CPFSK-modulated sample values, pack them into a list, and convert to a string &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# to feed PyAudio  &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; modulate&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fmsg&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fcarrier&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; f0&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; f1&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fsample&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; baud&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; amp&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; amp &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1.0&lt;/span&gt;:
       amp &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1.0&lt;/span&gt;
&amp;nbsp;
    sel_amp &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;  &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;w_amp * amp&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    mlen &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fmsg&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    mtime &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; mlen/baud  
&amp;nbsp;
    nsamp &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;round&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fsample*mtime&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    deltaT &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1.0&lt;/span&gt;/fsample
&amp;nbsp;
    ph&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&amp;nbsp;
    y &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * nsamp
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; i &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;nsamp&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;: &lt;span class=&quot;co1&quot;&gt;# i = sample number&lt;/span&gt;
&amp;nbsp;
        thisbit &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;floor&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;i/&lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;nsamp&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;* mlen&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; 
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# &amp;quot;thisbit&amp;quot; is the index number of the data-bit being modulated,&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# the same data-bit is used for &amp;quot;the number of samples which occupy 1 bit period&amp;quot;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; fmsg&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;thisbit&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;:
            f &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; f1 
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            f &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; f0 
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# if this bit is a 1 then f = mark-freq, else f = space-freq&lt;/span&gt;
&amp;nbsp;
        ph +&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;  &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;*pi*&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fcarrier + f&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;*deltaT
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# phase advances during sample period according the actual mark or space freq&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# when the bit changes between 1 and 0, the phase advance in deltaT is small, and&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# continuity in phase is achieved. The signal then starts to advance&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# in phase according to the new frequency appropriate the the bit (one or nought)&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#being sent.&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# reset phase to zero every 360 degrees&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; ph&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;*pi: 
            ph &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; ph - &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;*pi
&amp;nbsp;
        y&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;sel_amp*&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sin&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ph&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;# y is an 8-bit value&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# y[i] is the current sample&#039;s amplitude - the &amp;quot;sin of current accumulated phase&amp;quot;&lt;/span&gt;
&amp;nbsp;
    wave_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; v &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; y:
        vp &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;struct&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;pack&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;h&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;v&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        wave_list.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;vp&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    wavestring &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;wave_list&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; wavestring
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# Take the message to be sent and&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# 1) interleave&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# 2) make bitstream as a string&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# 3) convert to list, for the CPFSK modulator function, &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# 4) calculate the sample values using the &amp;quot;modulate()&amp;quot; function&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# 5) write the string of sample values to pyaudio&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; transmit_sel&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sel_call&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; pwr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;# 1) interleave the message and phasing DX and RX symbols together, and also convert to 10-bit parity words&lt;/span&gt;
    sel_dxrx &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; interleave&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;parity_table&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; phasing_symbol&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sel_call&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; 
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;# 2) create a string with the ones and noughts representing the full message&lt;/span&gt;
    sel_bitstream &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; make_bitstream&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sel_dxrx&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;# 3) convert the string into a list, to feed the CPFSK modulator&lt;/span&gt;
    bitstream_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sel_bitstream&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;i:i+&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; i &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sel_bitstream&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;# 4) get a list of sample values from the CPFSK modulator&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;# arguments for modulate() : (source of message_bits(a list), f-centre, space_dev, mark_dev, sample_rate, baud_rate, amplitude)&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;# returns a string of 8-bit signed values to feed PyAudio&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw3&quot;&gt;wave&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; modulate&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;bitstream_list&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1785&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;85&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; +&lt;span class=&quot;nu0&quot;&gt;85&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;9600&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100.0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; pwr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;# 5) make some noise...&lt;/span&gt;
&amp;nbsp;
    cpfsk_stream.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;wave&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_ff20f88c1b3f9a8095d8a9db87a6a952_2&quot;&gt;selcal_gui.py (Click to view ) &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_ff20f88c1b3f9a8095d8a9db87a6a952_2&quot;&gt;&lt;pre class=&quot;code python&quot;&gt;&lt;span class=&quot;co1&quot;&gt;# Wire2waves Ltd&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# CCIR 493-4 Selcal Generator &amp;amp; Modulator&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Generic, non-TX GUI&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;Tkinter&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; *
&lt;span class=&quot;kw1&quot;&gt;from&lt;/span&gt; selcal_functions &lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; *
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;Queue&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;
&amp;nbsp;
version &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;v0.2&amp;quot;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;class&lt;/span&gt; Application&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Frame&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;__init__&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; master&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&amp;quot; Initialize frame&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;
        Frame.&lt;span class=&quot;kw4&quot;&gt;__init__&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; master&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;create_widgets&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# we manage the three sound-producing functions in Threads, run at startup but only produce&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# output when their Queues are set to &amp;quot;1&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;selqueue&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;Queue&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;Queue&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tunequeue&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;Queue&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;Queue&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cwqueue&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;Queue&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;Queue&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tunequeue&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;put&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;selqueue&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;put&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cwqueue&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;put&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        t1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Thread&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;target &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tune&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        t1.&lt;span class=&quot;me1&quot;&gt;setDaemon&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        t1.&lt;span class=&quot;me1&quot;&gt;start&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        c1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Thread&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;target &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;send_cwid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        c1.&lt;span class=&quot;me1&quot;&gt;setDaemon&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        c1.&lt;span class=&quot;me1&quot;&gt;start&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        d1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Thread&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;target &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;send_sel&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        d1.&lt;span class=&quot;me1&quot;&gt;setDaemon&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        d1.&lt;span class=&quot;me1&quot;&gt;start&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; create_widgets&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;###### &lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# The Address Entry Fields&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;to_l&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;To ID&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;red&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;to_sel_id_e&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Entry&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;red&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;to_sel_id_e&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; padx &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; pady &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;to_sel_id_e&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;insert&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;3922&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;from_l&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Self ID&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;blue&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;from_sel_id_e&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Entry&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;blue&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;from_sel_id_e&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; padx &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; pady &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;from_sel_id_e&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;insert&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;3921&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;###################&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# The &amp;quot;Format&amp;quot; selection radio buttons&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;fmt&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; StringVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;fmt_l&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Format&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sel_r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Radiobutton&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Sel&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; variable &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;fmt&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; value &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sel&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sel_r&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;bcn_r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Radiobutton&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Bcn&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; variable &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;fmt&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; value &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;bcn&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;bcn_r&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.fmt_e = Entry(self, width = 10, fg = &#039;blue&#039;)&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.fmt_e.grid(row = 5, column = 1, padx = 5, pady = 5, sticky = W)&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.fmt_e.insert(0, &amp;quot;120&amp;quot;)&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# click the &amp;quot;SEL&amp;quot; radio button&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sel_r&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;invoke&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;########&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;######&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# The &amp;quot;Category&amp;quot; selection radio buttons&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; StringVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cat_l&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Category&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;saf_r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Radiobutton&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Routine&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; variable &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cat&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; value &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;rtn&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;saf_r&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.cat_e = Entry(self, width = 10, fg = &#039;blue&#039;)&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.cat_e.grid(row = 6, column = 1, padx = 5, pady = 5, sticky = W)&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.cat_e.insert(0, &amp;quot;100&amp;quot;)&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# For selcal we may require other categories, but at present only &amp;quot;Routine&amp;quot; is used&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.urg_r = Radiobutton(self, text = &amp;quot;Urgent&amp;quot;, variable = self.cat, value = &amp;quot;urg&amp;quot;)&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.urg_r.grid(row = 6, column = 2, sticky = W)&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.dis_r = Radiobutton(self, text = &amp;quot;Distress&amp;quot;, variable = self.cat, value = &amp;quot;dis&amp;quot;)&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.dis_r.grid(row = 6, column = 3, sticky = W)&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# click the &amp;quot;Safety&amp;quot; radio-button&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;saf_r&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;invoke&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;########&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;####&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# The &amp;quot;EOS&amp;quot; selection radio buttons&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;eosv&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; StringVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;eos_l&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;EOS&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;req_r&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Radiobutton&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;REQ&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; variable &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;eosv&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; value &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;req&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;req_r&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.eos_e = Entry(self, width = 10, fg = &#039;blue&#039;)&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.eos_e.grid(row = 9, column = 1, padx = 5, pady = 5, sticky = W)&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.eos_e.insert(0, &amp;quot;117&amp;quot;)&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# leave these in case other EOS symbols would be useful in the future &lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.ack_r = Radiobutton(self, text = &amp;quot;ACK&amp;quot;, variable = self.eosv, value = &amp;quot;ack&amp;quot;)&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.ack_r.grid(row = 9, column = 2, sticky = W)&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;#self.eos_r = Radiobutton(self, text = &amp;quot;EOS&amp;quot;, variable = self.eosv, value = &amp;quot;eos&amp;quot;)&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.eos_r.grid(row = 9, column = 3, sticky = W)&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# click the &amp;quot;REQ&amp;quot; radio button&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;req_r&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;invoke&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;###########&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;###########&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# The &amp;quot;do something&amp;quot; buttons&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;go_b&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Button&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Send Selcal&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;selqueue_on&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;go_b&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; W+E&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tune_b&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Button&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Tune&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tunequeue_on&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tune_b&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; W+E&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cw_call_e&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Entry&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cw_call_e&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; columnspan &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# The CW Text is pre-set, but can be edited as required on the GUI&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cw_call_e&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;insert&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;   de GM4SLV   &amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cw_b&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Button&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Send CW -&amp;gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cwqueue_on&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cw_b&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; W+E&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;######&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# The display of Selcal Symbols&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sel_title&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Sending Selcal Symbols: &amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;blue&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        sel_call_f &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Frame&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; relief &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; GROOVE&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; borderwidth &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; pady &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        sel_call_f.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; columnspan &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; padx &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; pady &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; W+E&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sel_label&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; StringVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sel_l&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sel_call_f&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; textvariable &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sel_label&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;blue&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; height &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; wraplength &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;350&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; anchor &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sel_l&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#####&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;# When a Tune is required we call tunequeue_on() which puts a &amp;quot;1&amp;quot; into the queue.&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;# The queue is read by tune() which is running constantly (while True:) in a thread. &lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;# If a &amp;quot;1&amp;quot; is found the tune_carrier() function is triggered&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;# then tunequeue_off() will put a &amp;quot;0&amp;quot; in the queue which will inhibit any further&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;# tune signals. &lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;# Since the Tune, CWID and Selcal Transmit all run in their own threads, with their own queues&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;# it&#039;s possible to do all three functions at once, and still retain an active GUI&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;# this may not be &amp;quot;the right way&amp;quot; to do this, but it works...&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; tunequeue_on&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tunequeue&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;put&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; tunequeue_off&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tunequeue&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;put&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; tune&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;True&lt;/span&gt;:
            t_on &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tunequeue&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; t_on &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;:   
                pwr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0.7&lt;/span&gt;
                tune_carrier&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pwr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tunequeue_off&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; cwqueue_on&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cwqueue&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;put&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; cwqueue_off&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cwqueue&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;put&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; send_cwid&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;True&lt;/span&gt;:
            c_on &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cwqueue&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; c_on &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;:
                pwr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0.7&lt;/span&gt;
                call &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cw_call_e&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;upper&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                cwid&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;call&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; pwr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cwqueue_off&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; selqueue_on&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;selqueue&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;put&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; selqueue_off&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;selqueue&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;put&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; send_sel&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;True&lt;/span&gt;:   
            go &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;selqueue&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; go &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;:
                a_sel_id &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;to_sel_id_e&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                s_sel_id &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;from_sel_id_e&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                fmt &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;fmt&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                cat &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cat&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                eos &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;eosv&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                pwr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0.7&lt;/span&gt;
&amp;nbsp;
                &lt;span class=&quot;co1&quot;&gt;# restrict to 4-digit 493-4&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;a_sel_id&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;:
                    &lt;span class=&quot;kw1&quot;&gt;continue&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;s_sel_id&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;:
                    &lt;span class=&quot;kw1&quot;&gt;continue&lt;/span&gt;
&amp;nbsp;
                &lt;span class=&quot;co1&quot;&gt;# convert the format, category and eos to the appropriate symbol values&lt;/span&gt;
                fmt_symbol &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fmt_symbol_dict&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;fmt&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;co1&quot;&gt;#fmt_symbol = self.fmt_e.get()&lt;/span&gt;
&amp;nbsp;
                cat_symbol &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;cat_symbol_dict&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;cat&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;co1&quot;&gt;#cat_symbol = self.cat_e.get()&lt;/span&gt;
&amp;nbsp;
                eos_symbol &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;eos_symbol_dict&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;eos&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;co1&quot;&gt;#eos_symbol = self.eos_e.get()&lt;/span&gt;
&amp;nbsp;
                &lt;span class=&quot;co1&quot;&gt;# convert the 4-digit selcal IDs into two 2-digit symbols&lt;/span&gt;
                a_symbol &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; sel_id_symbol&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;a_sel_id&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                s_symbol &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; sel_id_symbol&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;s_sel_id&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
                &lt;span class=&quot;co1&quot;&gt;# build the call by joining the symbol values into a list&lt;/span&gt;
                sel_call &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; build_call&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fmt_symbol&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; a_symbol&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; cat_symbol&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; s_symbol&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; eos_symbol&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
                &lt;span class=&quot;co1&quot;&gt;#we want the basic selcal message returned to us, to display on the GUI&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sel_label&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sel_call&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
                &lt;span class=&quot;co1&quot;&gt;# turn the selcal queue off to stop further transmissions&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;selqueue_off&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
                &lt;span class=&quot;co1&quot;&gt;# then we pass the selcal list and required &amp;quot;power&amp;quot; into &amp;quot;transmit_sel() which does the rest...&lt;/span&gt;
                transmit_sel&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sel_call&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; pwr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; 
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; __name__ &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;__main__&#039;&lt;/span&gt;:
    root &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Tk&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    root.&lt;span class=&quot;me1&quot;&gt;geometry&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;350x350+10+10&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    root.&lt;span class=&quot;me1&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;GM4SLV HF CCIR 493-4 Selcal &amp;quot;&lt;/span&gt; + version&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    root.&lt;span class=&quot;me1&quot;&gt;resizable&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    app &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Application&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;root&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    root.&lt;span class=&quot;me1&quot;&gt;mainloop&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
— &lt;em&gt;John Pumford-Green 29/04/23 11:42&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Last Modified : 08/06/26 18:08 BST
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:selcall&amp;amp;do=showtag&amp;amp;tag=selcall&quot; class=&quot;wikilink1&quot; title=&quot;tag:selcall&quot; rel=&quot;tag&quot;&gt;selcall&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;6278-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 08 Jun 2026 17:08:18 +0000</pubDate>
        </item>
        <item>
            <title>Yaddnet Migration</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:yaddnet:yaddnet_migration</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:yaddnet:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:yaddnet:start&quot; data-wiki-id=&quot;public:radio:topics:yaddnet:start&quot;&gt;YaDDNet&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;yaddnet_migration&quot;&gt;Yaddnet Migration&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
My &lt;a href=&quot;http://www.yaddnet.org&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;http://www.yaddnet.org&quot; rel=&quot;ugc nofollow noopener&quot;&gt;http://www.yaddnet.org&lt;/a&gt; DSC database originally ran on various machines in my shack at home. It was &lt;em&gt;migrated&lt;/em&gt; to a server donated for the purpose - located in Las Vegas, in 2019. This document records the steps needed to transfer everything and get it running on the new Virtual Private Server. In case it ever needs doing again in future this will help jog my memory of what&amp;#039;s involved.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Yaddnet Migration&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;yaddnet_migration&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;16-447&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;moving_yaddnet_to_a_virtual_server_in_the_clouds&quot;&gt;Moving YaddNet to a Virtual Server in the Clouds&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Created Thursday 24 October 2019
&lt;/p&gt;

&lt;p&gt;
Server IP:  64.235.39.127
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Moving YaddNet to a Virtual Server in the Clouds&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;moving_yaddnet_to_a_virtual_server_in_the_clouds&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;448-572&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;create_sql_database&quot;&gt;Create SQL database&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;update_13_04_24&quot;&gt;UPDATE 13/04/24&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
&lt;strong&gt;MIGRATING TO A NEW UBUNTU 20.4 VPS REQUIRED THE  FOLLOWING&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://ostechnix.com/how-to-reset-root-password-in-mysql-8-on-ubuntu-linux/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://ostechnix.com/how-to-reset-root-password-in-mysql-8-on-ubuntu-linux/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://ostechnix.com/how-to-reset-root-password-in-mysql-8-on-ubuntu-linux/&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;the_original_process&quot;&gt;The original Process&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
1) sort out passwordless root access to MySQL
&lt;/p&gt;

&lt;p&gt;
add  &lt;code&gt;skip-grant-tables&lt;/code&gt;  to end of config file:
&lt;/p&gt;

&lt;p&gt;
(such as….)
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;/etc/mysql/mysql.conf.d/mysqld.cnf&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;restart mysqld&lt;/pre&gt;

&lt;p&gt;
login to mysql 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ mysql -u root
mysql&amp;gt;FLUSH PRIVILEGES;
mysql&amp;gt;ALTER USER &amp;#039;root&amp;#039;@&amp;#039;localhost&amp;#039; IDENTIFIED WITH mysql_native_password BY &amp;#039;&amp;#039;;
mysql&amp;gt;quit;&lt;/pre&gt;

&lt;p&gt;
remove  &lt;code&gt;skip-grant-tables&lt;/code&gt;   from  &lt;code&gt;/etc/mysql/mysql.conf.d/mysqld.cnf&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;restart mysqld&lt;/pre&gt;

&lt;p&gt;
2) create blank/empty yadd database
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ mysql -u root

mysql&amp;gt; create database yadd;
mysql&amp;gt; quit;
&lt;/pre&gt;

&lt;p&gt;
2a) scp &lt;em&gt;migrate tarfile&lt;/em&gt; to remote server
&lt;/p&gt;

&lt;p&gt;
and wait….
&lt;/p&gt;

&lt;p&gt;
2b) untar &lt;em&gt;migrate tarfile&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
3) use saved schema file to create the tables:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ mysql -u root yadd &amp;lt; schema.sql&lt;/pre&gt;

&lt;p&gt;
4) import the full database backup:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ mysql -u root yadd &amp;lt; yadd_xxxxx.sql&lt;/pre&gt;

&lt;p&gt;
and wait……. and wait……
&lt;/p&gt;

&lt;p&gt;
5) test all the data is there…!
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Create SQL database&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;create_sql_database&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;573-1681&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;create_web_site&quot;&gt;Create Web site&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
6) extract yaddnet files from tarball
&lt;/p&gt;

&lt;p&gt;
7) extract html files into /var/www/
&lt;/p&gt;

&lt;p&gt;
8) permissions/ownership of /var/www/html ?  &lt;em class=&quot;u&quot;&gt;Not Needed&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
9) apache “sites-enabled” - change virtual server&amp;#039;s port?   &lt;em class=&quot;u&quot;&gt;Not needed&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Create Web site&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;create_web_site&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1682-1922&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;configure_auto-start_of_input_servers&quot;&gt;Configure auto-start of Input servers&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
10) /etc/rc.local command to start tmux session
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sleep 60; su USER -c /home/USER/yaddnet/tmux_yadd.sh &amp;amp;&lt;/pre&gt;

&lt;p&gt;
11) start tmux session and see if it&amp;#039;s working…
&lt;/p&gt;

&lt;p&gt;
12) fire some test packets at it from uCoastTester.py
&lt;/p&gt;

&lt;p&gt;
13) crontab entries
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;15 */4 * * * /home/USER/yaddnet/purge_err.sh &amp;gt; /dev/null 
* * * * * /home/USER/yaddnet/purge_tmp.sh &amp;gt; /dev/null &lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Configure auto-start of Input servers&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;configure_auto-start_of_input_servers&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1923-2323&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;tweaks&quot;&gt;Tweaks&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
14) Character encoding for pages
&lt;/p&gt;

&lt;p&gt;
edit &lt;code&gt;/etc/php/7.2/apache2/php.ini&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
change 
default_charset from UTF-8 to ISO-8859-1:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;default_charset = &amp;quot;ISO-8859-1&amp;quot;&lt;/pre&gt;

&lt;p&gt;
This renders “degree” signs etc. on web pages correctly.
&lt;/p&gt;

&lt;p&gt;
15) mysql config
&lt;/p&gt;

&lt;p&gt;
add to &lt;code&gt;/etc/mysql/mysql.conf.d/mysqld.conf&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sql_mode = &amp;quot;STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION&amp;quot;&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;restart mysql&lt;/pre&gt;

&lt;p&gt;
This (among other things) allows the group-by queries to work.
&lt;/p&gt;

&lt;p&gt;
16) Open &lt;code&gt;firewalld&lt;/code&gt; UDP port 4530 for DSCDecoder (and close unneeded port 9999)
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;firewall-cmd --permanent --service=yadd --add-port=4530/udp&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;firewall-cmd --permanent --service=yadd --remove-port=9999/udp&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;firewall-cmd --complete-reload&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Tweaks&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;tweaks&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;2324-3066&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;firewall_config_-_note_21_5_22&quot;&gt;Firewall Config - note 21/5/22&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
While creating this Wiki page, from a previous note in ZimWiki, I wondered about the firewall config, as it appears I didn&amp;#039;t explicitly open UDP/50666 for YaDD&amp;#039;s traffic, but I added udp/4530 for DSCDecoder. 
&lt;/p&gt;

&lt;p&gt;
Looking at &lt;code&gt;/etc/firewalld/services/yadd.xml&lt;/code&gt; I see:
&lt;/p&gt;
&lt;pre class=&quot;code xml&quot;&gt;&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;?xml&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;version&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;1.0&amp;quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;encoding&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;utf-8&amp;quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;service&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;short&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;yadd&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/short&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;description&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;YaDD Service&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/description&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;port&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;port&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;50666&amp;quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;protocol&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;udp&amp;quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
  &lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;port&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;port&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;4530&amp;quot;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;protocol&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;udp&amp;quot;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;sc3&quot;&gt;&lt;span class=&quot;re1&quot;&gt;&amp;lt;/service&lt;span class=&quot;re2&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
so 50666 must have been added when the VPS was built (not my me). I guess I asked for it when the offer to provide the VPS was made, but forgot about DSCDecoder until later.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Firewall Config - note 21\/5\/22&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;firewall_config_-_note_21_5_22&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;3067-3771&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;get_domain_name&quot;&gt;Get Domain Name&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
16) Buy domain yaddnet.org from “fasthosts.co.uk” and set DNS record to point host &lt;a href=&quot;http://www.yaddnet.org&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;http://www.yaddnet.org&quot; rel=&quot;ugc nofollow noopener&quot;&gt;www.yaddnet.org&lt;/a&gt; to the new server IP address 
&lt;/p&gt;

&lt;p&gt;
£10.79 per year, auto-renew via PayPal.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Get Domain Name&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;get_domain_name&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;3772-3971&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit9&quot; id=&quot;update_18_11_19&quot;&gt;UPDATE 18/11/19&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Received an email from kb7ypf@yahoo.com:
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;“I have been using yaDD 1.7.1 monitoring and logging GMDSS signals.  I have been using it for about two weeks. This morning when I started yaDD it worked great, as usual, however, when I went to the web and accessed the message logging page, I got this message:  “Failed to connect to MySQL: Access denied for user &amp;#039;root&amp;#039;@localhost&amp;#039; …….”&lt;/code&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;UPDATE 18\/11\/19&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;update_18_11_19&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;3972-4389&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit10&quot; id=&quot;unattended-upgrade_breaks_mysql&quot;&gt;Unattended-Upgrade breaks MySQL&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
I confirmed the same symptoms…
&lt;/p&gt;

&lt;p&gt;
but it was working this morning?!
&lt;/p&gt;

&lt;p&gt;
SSH&amp;#039;d into the server and couldn&amp;#039;t access mysql from the commandline, either, same error.
&lt;/p&gt;

&lt;p&gt;
This reminded me of the behaviour of a “stock” mysql server before doing the steps in 1) above. 
&lt;/p&gt;

&lt;p&gt;
Found an entry in &lt;code&gt;/var/log/apt/history.log&lt;/code&gt; from 06:25 PST (14:25 UTC)
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;Start-Date: &lt;span class=&quot;nu0&quot;&gt;2019&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;11&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;18&lt;/span&gt;  06:&lt;span class=&quot;nu0&quot;&gt;25&lt;/span&gt;:08
Commandline: &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;unattended-upgrade
Upgrade: mysql-server-&lt;span class=&quot;nu0&quot;&gt;5.7&lt;/span&gt;:amd64 &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;5.7.27-0ubuntu0.18.04.1, 5.7.28-0ubuntu0.18.04.4&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;, mysql-server-core-&lt;span class=&quot;nu0&quot;&gt;5.7&lt;/span&gt;:amd64 &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;5.7.27-0ubuntu0.18.04.1, 5.7.28-0ubuntu0.18.04.4&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
End-Date: &lt;span class=&quot;nu0&quot;&gt;2019&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;11&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;18&lt;/span&gt;  06:&lt;span class=&quot;nu0&quot;&gt;25&lt;/span&gt;:&lt;span class=&quot;nu0&quot;&gt;29&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Looks like “unattended-upgrade” has upgraded mysql, and also reset the normal permissions/privileges. Bloody Hell!
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; stop mysql&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; edit mysqld.cnf to add “skip-grant-tables”&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; start mysql&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; log in to mysql “mysql -u root”&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code sql&quot;&gt;$ mysql &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;u root
mysql&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;FLUSH&lt;/span&gt; PRIVILEGES;
mysql&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;ALTER&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;USER&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;root&#039;&lt;/span&gt;@&lt;span class=&quot;st0&quot;&gt;&#039;localhost&#039;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;IDENTIFIED&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;WITH&lt;/span&gt; mysql_native_password &lt;span class=&quot;kw1&quot;&gt;BY&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;;
mysql&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;quit;&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; stop mysql&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; remove “skip-grant-tables” from mysqd.cnf&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; start mysql&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; test…&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
looks like we lost about 1 hour of DSC loggings while the SQL server refused to talk to us, from 14:25 UTC until ~15:30 UTC when I got it running normally again.
&lt;/p&gt;

&lt;p&gt;
…..and relax!
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Unattended-Upgrade breaks MySQL&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;unattended-upgrade_breaks_mysql&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;4390-5722&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit11&quot; id=&quot;going_forward&quot;&gt;going forward&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Have 2 choices - remove &lt;code&gt;unattended-upgrades&lt;/code&gt; package and lose all automatic security upgrades OR configure &lt;code&gt;unattended-upgrades&lt;/code&gt; to blacklist &lt;code&gt;mysql-server&lt;/code&gt; from upgrades.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://wiki.debian.org/UnattendedUpgrades&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://wiki.debian.org/UnattendedUpgrades&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://wiki.debian.org/UnattendedUpgrades&lt;/a&gt;
and
&lt;a href=&quot;https://help.ubuntu.com/community/AutomaticSecurityUpdates&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://help.ubuntu.com/community/AutomaticSecurityUpdates&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://help.ubuntu.com/community/AutomaticSecurityUpdates&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
has some helpful info… found where to blacklist individual packages….
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;service unattended-upgrades stop&lt;/pre&gt;

&lt;p&gt;
edit &lt;code&gt;/etc/apt/apt.conf.d/50unattended-upgrades&lt;/code&gt; to blacklist mysql
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;	// List of packages to not update (regexp are supported)
	Unattended-Upgrade::Package-Blacklist {
			&amp;quot;mysql-server&amp;quot;;
			&amp;quot;mysql-server-5.7&amp;quot;;
			&amp;quot;mysql-server-core-5.7&amp;quot;;
	};&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;service unattended-upgrades start&lt;/pre&gt;

&lt;p&gt;
check it&amp;#039;s running:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;gm4slv@lasvegas-nv-datacenter:~$ apt-config dump APT::Periodic::Unattended-Upgrade&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;APT::Periodic::Unattended-Upgrade &amp;quot;1&amp;quot;;&lt;/pre&gt;

&lt;p&gt;
hopefully that will sort it?
&lt;/p&gt;

&lt;p&gt;
Page Updated: 04/06/26 07:39 BST
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:yaddnet&amp;amp;do=showtag&amp;amp;tag=yaddnet&quot; class=&quot;wikilink1&quot; title=&quot;tag:yaddnet&quot; rel=&quot;tag&quot;&gt;yaddnet&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:mysql&amp;amp;do=showtag&amp;amp;tag=mysql&quot; class=&quot;wikilink1&quot; title=&quot;tag:mysql&quot; rel=&quot;tag&quot;&gt;mysql&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:apache&amp;amp;do=showtag&amp;amp;tag=apache&quot; class=&quot;wikilink1&quot; title=&quot;tag:apache&quot; rel=&quot;tag&quot;&gt;apache&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:linux&amp;amp;do=showtag&amp;amp;tag=linux&quot; class=&quot;wikilink1&quot; title=&quot;tag:linux&quot; rel=&quot;tag&quot;&gt;linux&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;going forward&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;going_forward&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;5723-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 06:39:56 +0000</pubDate>
        </item>
        <item>
            <title>DM41X Progs</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:progs:dm41x_progs</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:progs:start&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:progs:start&quot; data-wiki-id=&quot;public:calculator:progs:start&quot;&gt;Programs&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;dm41x_progs&quot;&gt;DM41X Progs&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DM41X Progs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dm41x_progs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-44&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;dm41x_raw&quot;&gt;DM41x RAW&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;table sectionedit3&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;HP Maths Benchmark &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:progs:bm.raw&quot; class=&quot;media mediafile mf_raw&quot; title=&quot;public:calculator:progs:bm.raw (48 B)&quot;&gt;bm.raw&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;HP Trig Benchmark &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:progs:bmt.raw&quot; class=&quot;media mediafile mf_raw&quot; title=&quot;public:calculator:progs:bmt.raw (35 B)&quot;&gt;bmt.raw&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;8-Queens Benchmark &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:progs:nqu.raw&quot; class=&quot;media mediafile mf_raw&quot; title=&quot;public:calculator:progs:nqu.raw (81 B)&quot;&gt;nqu.raw&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Savage Benchmark &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:progs:svg.raw&quot; class=&quot;media mediafile mf_raw&quot; title=&quot;public:calculator:progs:svg.raw (50 B)&quot;&gt;svg.raw&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Memo - as below - uses ascii file name “SITES” instead of “MEMO” &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:progs:memo.raw&quot; class=&quot;media mediafile mf_raw&quot; title=&quot;public:calculator:progs:memo.raw (128 B)&quot;&gt;memo.raw&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;TR - from HP41cx User guide vol. 2&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:progs:tr.raw&quot; class=&quot;media mediafile mf_raw&quot; title=&quot;public:calculator:progs:tr.raw (487 B)&quot;&gt;tr.raw&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Sigma - from HP41cx User guide vol.2&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:progs:sigma.raw&quot; class=&quot;media mediafile mf_raw&quot; title=&quot;public:calculator:progs:sigma.raw (740 B)&quot;&gt;sigma.raw&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;68-581&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DM41x RAW&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dm41x_raw&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;45-583&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;using_solve_and_integrate_together&quot;&gt;Using Solve and Integrate together&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; from HP343C handbook&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DM41X version uses &lt;code&gt;SOLVE&lt;/code&gt; and &lt;code&gt;INTEG&lt;/code&gt; from &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:guides:advantage_pac&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:guides:advantage_pac&quot; data-wiki-id=&quot;public:calculator:guides:advantage_pac&quot;&gt; Advantage Pac&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Create a &lt;code&gt;MYSOLVE&lt;/code&gt; wrapper that handles putting the correct &lt;code&gt;SOLVE&lt;/code&gt; program name in &lt;code&gt;ALPHA&lt;/code&gt; etc&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Create the program that is to be solved and which has as it&amp;#039;s function an integral&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Create the program that defines the integral&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;

&lt;h4 id=&quot;mysolve&quot;&gt;MYSOLVE&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;LBL ¬MYSOLVE
¬MOD                    // the label of the program to be solved is put in ALPHA
SOLVE                   // we XEQ SOLVE (the Advantage Pac solver)
RTN&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;solvemod&quot;&gt;Solve : MOD&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
The program to be solved
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;LBL ¬MOD
¬BESSEL           // We put the name of the program with the integral in ALPHA
STO 00            // We store our current guess for X in R 00 to be accessible by the integral finction
0                 // put upper and lower limits for the integration in Y and X
PI
INTEG             // xeq INTEG from Advantage Pac
ABS               // our current guess, make it positive
X&amp;lt;=Y?             // Y has the Integration&amp;#039;s estimate of accuracy - we use this to limit our search
ClX               // if our guess has returned a value from the integral that&amp;#039;s less than the inherent accuracy then that&amp;#039;s GOOD ENOUGH, we set X to zero and SOLVE completes     
X≠0?              // if we still don&amp;#039;t have zero we put back the last guess and SOLVE continues
LastX
RTN
&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;integralbessel&quot;&gt;Integral : BESSEL&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;LBL ¬BESSEL
SIN
RCL 00
*
COS
PI
/
RTN
&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;running_it&quot;&gt;Running it&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;MYSOLVE&lt;/code&gt; sets up the &lt;code&gt;ALPHA&lt;/code&gt; register with the name of the prog to be solved, so nothing needed in &lt;code&gt;ALPHA&lt;/code&gt; at this time&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; put initial guesses in &lt;code&gt;X&lt;/code&gt; and &lt;code&gt;Y&lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;1&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;2&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; try &lt;code&gt;FIX 4&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Run &lt;code&gt;MYSOLVE&lt;/code&gt; - via XEQ or set up a &lt;code&gt;CST&lt;/code&gt; menu item for it &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
After a few minutes of Goose-flying we get the answer &lt;code&gt;2.4048&lt;/code&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Using Solve and Integrate together&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;using_solve_and_integrate_together&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;584-2517&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;useful_memo_prog&quot;&gt;Useful Memo prog&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:progs:03319.pdf&quot; class=&quot;media mediafile mf_pdf&quot; title=&quot;public:calculator:progs:03319.pdf (280.2 KB)&quot;&gt; MEMO &lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
By Gary Goodman from HP document collection. Dated 24/3/85
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Useful Memo prog&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;useful_memo_prog&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;2518-2657&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;c22_timer_values&quot;&gt;65c22 Timer values&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;strong&gt; for VIA Tone generator &lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt; Needs &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:guides:dm41x_ladybug_module&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:guides:dm41x_ladybug_module&quot; data-wiki-id=&quot;public:calculator:guides:dm41x_ladybug_module&quot;&gt;Ladybug&lt;/a&gt; module &lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
The required count is calculated from &lt;code&gt;Φ&lt;sub&gt;2&lt;/sub&gt;&lt;/code&gt; and the audio frequency required.
&lt;/p&gt;

&lt;p&gt;
Count (decimal) 
&lt;/p&gt;

&lt;p&gt;
{ Φ&lt;sub&gt;2&lt;/sub&gt; / ( 2 x F ) } - 2
&lt;/p&gt;

&lt;p&gt;
for 1000Hz  and a 1MHz Φ&lt;sub&gt;2&lt;/sub&gt; :
&lt;/p&gt;

&lt;p&gt;
Count = { 1,000,000 / ( 2 X 1000 ) } - 2 = 498
&lt;/p&gt;

&lt;p&gt;
498d → $01F2
&lt;/p&gt;

&lt;p&gt;
Run as &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ALPHA&lt;/kbd&gt;&lt;code&gt;TI&lt;/code&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ALPHA&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
Prompt &lt;code&gt;F&lt;/code&gt; for required audio tone frequency.
&lt;/p&gt;

&lt;p&gt;
Enter freq 
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
Result is the 2-byte value for T1CL &amp;amp; T1CH
&lt;/p&gt;

&lt;p&gt;
e.g.
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ALPHA&lt;/kbd&gt;&lt;code&gt;TI&lt;/code&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ALPHA&lt;/kbd&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;1000 &lt;/pre&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
Result:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$001F2&lt;/pre&gt;

&lt;p&gt;
The Counter should be set to 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;T1CH = $01
T1CL = $F2&lt;/pre&gt;

&lt;p&gt;
Entered as follows (make sure you&amp;#039;re in DECS mode in Ladybug while entering the program - otherwise the &lt;code&gt;1000000&lt;/code&gt; won&amp;#039;t be interpreted correctly). When viewing/editing the program later it will look different! 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;LBL ¬TI
DECS
WSIZE 20
¬ F
PROMPT
STI 01
1000000
ENTERI
LDI 01
2
x
/
2
-
HEXS
RTN&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;65c22 Timer values&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;c22_timer_values&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;2658-3696&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;bfil&quot;&gt;BFil&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_316556b81d4b6e549dd272d2febef557_1&quot;&gt;Butterworth HPF/LPF Filter designer &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_316556b81d4b6e549dd272d2febef557_1&quot;&gt;&lt;pre class=&quot;code&quot;&gt;LBL ¬BFIL
SF 00
¬MHZ ?
PROMPT
1 E6
*
STO 11
¬N
PROMPT
x&amp;lt;0?
CF 00
STO 10
XEQ 06
LBL 01
RCL 12
INT
XEQ 00
FS? 00
1/x
STO IND 12
ISG 12
GTO 01
¬COEFFICIENTS
FIX 3
STOP
ENG 3
XEQ 06
LBL 02
RCL 12
INT
RCL IND 12
RCL 11
2
*
PI
*
/
STO IND 12
ISG 12
GTO 02
XEQ 06
LBL 03
RCL 12
INT
2
/
FRC
FS? 00
GTO 09
GTO 10
LBL 09
¬HPF
x=0?
GTO 05
GTO 04
RTN
LBL 10
¬LPF
x=0?
GTO 04
GTO 05
RTN
LBL 04
RCL IND 12
50
*
STO IND 12
ISG 12
GTO 03
RTN
LBL 05
RCL IND 12
50
/
STO IND 12
ISG 12
GTO 03
RTN
LBL 06
RCL 10
ABS
1000
/
1
+
STO 12
RTN
LBL 00
2
*
1
-
180
*
RCL 10
ABS
2
*
/
SIN
2
*
RTN
END&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;BFil&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;bfil&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;3697-4359&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;examples&quot;&gt;Examples&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;mhz_5-pole_lpf&quot;&gt;5MHz 5-pole LPF&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ALPHA&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;BFIL&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ALPHA&lt;/kbd&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;MHZ ? &lt;/pre&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;5&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;N&lt;/pre&gt;

&lt;p&gt;
&lt;code&gt;Order/poles = N&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;Positive for HPF&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;Negative for LPF&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;5 pole LPF = -5&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;5&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;CHS&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;COEFFICIENTS
0.618&lt;/pre&gt;

&lt;p&gt;
(at this point you can &lt;kbd class=&quot;__keyboard&quot;&gt;RCL 01&lt;/kbd&gt; etc. up to &lt;kbd class=&quot;__keyboard&quot;&gt;RCL 05&lt;/kbd&gt; to see the calculated Butterworth Coefficients)
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; R01 : 0.618&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; R02 : 1.618&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; R03 : 2.000&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; R04 : 1.618&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; R05 : 0.618&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;LPF
393.5 -12&lt;/pre&gt;

&lt;p&gt;
The calculated component values are now in Reg 01 - Reg 05
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; R01 : 393.5pf&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; R02 : 2.575uH&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; R03 : 1.273nF&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; R04 : 2.575uH&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; R05 : 393.5pF&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;mhz_7_pole_hpf&quot;&gt;1MHz 7 pole HPF&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ALPHA&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;BFIL&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ALPHA&lt;/kbd&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;MHZ ? &lt;/pre&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;1&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;N&lt;/pre&gt;

&lt;p&gt;
&lt;code&gt;Order/poles = N&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;Positive for HPF&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;Negative for LPF&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;7 pole HPF = 7&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;7&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;COEFFICIENTS
2.247&lt;/pre&gt;

&lt;p&gt;
(at this point you can &lt;kbd class=&quot;__keyboard&quot;&gt;RCL 01&lt;/kbd&gt; etc. up to &lt;kbd class=&quot;__keyboard&quot;&gt;RCL 07&lt;/kbd&gt; to see the calculated Butterworth Coefficients)
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; R01 : 2.247&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; R02 : 0.802&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; R03 : 0.555&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; R04 : 0.500&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; R05 : 0.555&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; R06 : 0.802&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; R07 : 2.247&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;HPF
17.88 -06&lt;/pre&gt;

&lt;p&gt;
The calculated component values are now in Reg 01 - Reg 07
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; R01 : 17.88uH&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; R02 : 2.553nF&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; R03 : 4.416uH&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; R04 : 1.592nF&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; R05 : 4.416uH&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; R06 : 2.553nF&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; R07 : 17.88uH&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Examples&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;examples&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;4360-5778&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit9&quot; id=&quot;page_info&quot;&gt;Page Info&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Page created Thu May 26 18:35:00 2022 by John Pumford-Green
&lt;/p&gt;

&lt;p&gt;
Page last updated: 14/02/26 11:19 GMT
&lt;/p&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 24/04/23 16:07&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Page Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;page_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;5779-5939&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit10&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:calculator&amp;amp;do=showtag&amp;amp;tag=calculator&quot; class=&quot;wikilink1&quot; title=&quot;tag:calculator&quot; rel=&quot;tag&quot;&gt;calculator&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:dm41x&amp;amp;do=showtag&amp;amp;tag=dm41x&quot; class=&quot;wikilink1&quot; title=&quot;tag:dm41x&quot; rel=&quot;tag&quot;&gt;dm41x&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;5940-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sat, 14 Feb 2026 11:19:28 +0000</pubDate>
        </item>
        <item>
            <title>HF APRS Mobile/Portable</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:aprs:mobile_hf_aprs</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:aprs:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:aprs:start&quot; data-wiki-id=&quot;public:radio:topics:aprs:start&quot;&gt;APRS&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;hf_aprs_mobile_portable&quot;&gt;HF APRS Mobile/Portable&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;HF APRS Mobile\/Portable&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hf_aprs_mobile_portable&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-56&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;initial_thoughts&quot;&gt;Initial Thoughts&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
My plan is to use either of
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; TinyTrak3 + &lt;em class=&quot;u&quot;&gt;serial&lt;/em&gt; GPS as a one-way tracker&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Netbook with &lt;code&gt;direwolf&lt;/code&gt; and a &lt;em class=&quot;u&quot;&gt;USB&lt;/em&gt; GPS&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; a tracker&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; xastir for maps etc&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
Either of these will interface with a &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:radio_database:xeigu_g90&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:radio_database:xeigu_g90&quot; data-wiki-id=&quot;public:radio:radio_database:xeigu_g90&quot;&gt; Xiegu G90&lt;/a&gt; and some form of mobile whip.
&lt;/p&gt;

&lt;p&gt;
I may use 30m hoping to get packets directly to other iGates in Europe &lt;em&gt;or&lt;/em&gt; use 10m and run an iGate on 10m at home. It&amp;#039;s all on the drawing board at the moment. It will be interesting to compare local coverage between 30m and 10m as well as seeing how well 30m mobile with a short whip can perform.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Initial Thoughts&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;initial_thoughts&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;57-683&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;tiny_trak_3&quot;&gt;Tiny Trak 3&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Uses serial GPS to provide position data&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Only transmits, no receive/decode&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Can transmit VHF (1200bd) or HF (300bd) APRS&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Tiny Trak 3&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;tiny_trak_3&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;684-841&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;hf_aprs_configuration_settings&quot;&gt;HF APRS configuration settings&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;table sectionedit5&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt; Date &lt;/th&gt;&lt;th class=&quot;col1&quot;&gt; Config.&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; April 2023 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; xxxx &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;884-923&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;HF APRS configuration settings&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hf_aprs_configuration_settings&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;842-925&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;firmware_docs&quot;&gt;Firmware/Docs&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;table sectionedit7&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; Firmware   &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:active:tinytrak3_v1.42.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:radio:active:tinytrak3_v1.42.zip (7.3 KB)&quot;&gt;tinytrak3_v1.42.zip&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; User Guide &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:active:tinytrak3plus_v1.03.pdf&quot; class=&quot;media mediafile mf_pdf&quot; title=&quot;public:radio:active:tinytrak3plus_v1.03.pdf (1.2 MB)&quot;&gt;tinytrak3plus_v1.03.pdf&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; Configuration Utility &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:active:tinytrak3_config_v1.4.6.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:radio:active:tinytrak3_config_v1.4.6.zip (509.5 KB)&quot;&gt;tinytrak3_config_v1.4.6.zip&lt;/a&gt;  &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;951-1169&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Firmware\/Docs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;firmware_docs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;926-1170&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;test_and_setup&quot;&gt;Test and Setup&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Aradio%3Atopics%3Aaprs%3Amobile_hf_aprs&amp;amp;media=public:radio:active:g90.jpg&quot; class=&quot;media&quot; title=&quot;public:radio:active:g90.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=600&amp;amp;tok=0b61ea&amp;amp;media=public:radio:active:g90.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Aradio%3Atopics%3Aaprs%3Amobile_hf_aprs&amp;amp;media=public:radio:active:gm4slv11.png&quot; class=&quot;media&quot; title=&quot;public:radio:active:gm4slv11.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=600&amp;amp;tok=c4747c&amp;amp;media=public:radio:active:gm4slv11.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Test and Setup&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;test_and_setup&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;1171-1279&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit9&quot; id=&quot;first_reception&quot;&gt;First Reception&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
From aprs.fi - packets being received in Germany at DK4XI
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://aprs.fi/?c=raw&amp;amp;call=GM4SLV-11&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://aprs.fi/?c=raw&amp;amp;call=GM4SLV-11&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://aprs.fi/?c=raw&amp;amp;call=GM4SLV-11&lt;/a&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;2023-04-29 07:47:49 BST: GM4SLV-11&amp;gt;APT311,qAR,DK4XI-30:&amp;gt;John on HF
2023-04-29 07:47:52 BST: GM4SLV-11&amp;gt;V0QWRY,qAR,DK4XI-30:`w5Nl  j/&amp;quot;3x}
2023-04-29 07:52:50 BST: GM4SLV-11&amp;gt;V0QWSP,qAR,DK4XI-30:`w5Nl ^j/&amp;quot;4+}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;First Reception&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;first_reception&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;1280-1633&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit10&quot; id=&quot;mobile_journey_1_on_30m&quot;&gt;Mobile Journey #1 on 30m&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
02/05/23:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; using 10m “stinger” mobile whip and G90&amp;#039;s internal ATU / 20W&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; not very encouraging local coverage between mobile and home QTH&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; large gap in coverage - journey actually went to Lerwick and back….&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; next experiment will be to use 10m - hopefully antenna is more efficient on that band&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Aradio%3Atopics%3Aaprs%3Amobile_hf_aprs&amp;amp;media=public:radio:active:gm4slv_11_aprs_30m_1.png&quot; class=&quot;media&quot; title=&quot;public:radio:active:gm4slv_11_aprs_30m_1.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=600&amp;amp;tok=966bd8&amp;amp;media=public:radio:active:gm4slv_11_aprs_30m_1.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
03/05/12
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; found that the antenna used yesterday was tuned to 31MHz… short whip&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; swapped for 2nd whip and this is tuned to 28.2MHz…. longer whip. More efficient?&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 26/04/23 15:02&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Mobile Journey #1 on 30m&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;mobile_journey_1_on_30m&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;1634-2262&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit11&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; TinyTrak3 website : &lt;a href=&quot;https://www.byonics.com/tinytrak3&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.byonics.com/tinytrak3&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.byonics.com/tinytrak3&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:aprs&amp;amp;do=showtag&amp;amp;tag=aprs&quot; class=&quot;wikilink1&quot; title=&quot;tag:aprs&quot; rel=&quot;tag&quot;&gt;aprs&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;2263-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 06:54:52 +0000</pubDate>
        </item>
        <item>
            <title>LF15C - firmware for the DM15</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:3rd:lf15c</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:3rd:start&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:3rd:start&quot; data-wiki-id=&quot;public:calculator:3rd:start&quot;&gt;3rd Party Firmware&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;lf15c_-_firmware_for_the_dm15&quot;&gt;LF15C - firmware for the DM15&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; A 3rd Party Firmware for the DM15 family of calculators &lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;LF15C - firmware for the DM15&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;lf15c_-_firmware_for_the_dm15&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;13-122&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;overview_of_lf15c&quot;&gt;Overview of LF15C&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Full development history in HP Forum thread &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046.html&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046.html&quot; rel=&quot;ugc nofollow noopener&quot;&gt;New firmware for the Swissmicros DM15L&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; LF15C is written by HP Museum Forum member &lt;strong&gt;jebedeo&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; It is a replacement firmware for the Swiss Micros &lt;a href=&quot;https://www.swissmicros.com/product/dm15c&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.swissmicros.com/product/dm15c&quot; rel=&quot;ugc nofollow noopener&quot;&gt; DM15C&lt;/a&gt; &amp;amp; &lt;a href=&quot;https://www.swissmicros.com/product/dm15l&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.swissmicros.com/product/dm15l&quot; rel=&quot;ugc nofollow noopener&quot;&gt; DM15L&lt;/a&gt; calculators.&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; also runs on the original &lt;a href=&quot;https://www.swissmicros.com/product/dm15&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.swissmicros.com/product/dm15&quot; rel=&quot;ugc nofollow noopener&quot;&gt; DM15&lt;/a&gt; credit card version no longer in production &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; It is not an emulation or an exact simulation of the HP15C&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; It runs directly on the hardware without an emulation layer.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; It is very much &lt;strong&gt;faster&lt;/strong&gt; than the stock firmware&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; It has full-time complex number support&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; including display of the full real &amp;amp; imaginary parts on the LCD together &lt;code&gt;3.345 +22.356 i&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; It has a 4-level stack with &lt;strong&gt;full-time 2-level display&lt;/strong&gt; of &lt;code&gt;X&lt;/code&gt; and &lt;code&gt;Y&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; All the main HP15C functions are included &lt;strong&gt;with the exception of Matrix support&lt;/strong&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Acalculator%3A3rd%3Alf15c&amp;amp;media=public:calculator:info:img_20260130_092509.jpg&quot; class=&quot;media&quot; title=&quot;public:calculator:info:img_20260130_092509.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=600&amp;amp;tok=0e1825&amp;amp;media=public:calculator:info:img_20260130_092509.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Overview of LF15C&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;overview_of_lf15c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;123-1211&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;installing_lf15c&quot;&gt;Installing LF15C&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Installing LF15C&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;installing_lf15c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1212-1242&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;dm15l_running_v32_or_earlier_linux&quot;&gt;DM15L running V32 or earlier (Linux)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;sudo lpc21isp LF15C_250408.hex /dev/ttyUSB0 115200 1200&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Press hidden &lt;code&gt;reset&lt;/code&gt; button&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; firmware is flashed&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; press hidden &lt;code&gt;reset&lt;/code&gt; button to start new firmware&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DM15L running V32 or earlier (Linux)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dm15l_running_v32_or_earlier_linux&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1243-1472&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;dm15l_running_v33_or_later_linux&quot;&gt;DM15L running V33 or later (Linux)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;plugin_note noteclassic&quot;&gt;This behaviour isn&amp;#039;t consistent!
&lt;p&gt;
I&amp;#039;ve seen it be possible to flash and run LF15C directly after DM15 V34 with no problems.
&lt;/p&gt;

&lt;p&gt;
I&amp;#039;ve also seen the problems described below, requiring downgrade to V32.
&lt;/p&gt;

&lt;p&gt;
Just bear it in mind if you have problems starting LF15C after flashing it on top of V33-onwards
&lt;/p&gt;

&lt;/div&gt;
&lt;p&gt;
The new Swiss Micros firmware V33 changes the behaviour of the bootloader, and it appears to be impossible to flash 3rd party firmware when the calculator is running V33 or later. 
&lt;/p&gt;

&lt;p&gt;
The firmware appears to flash correctly, but on &lt;code&gt;reset&lt;/code&gt; it will not start
&lt;/p&gt;

&lt;p&gt;
The solution is to downgrade to &lt;strong&gt;V32&lt;/strong&gt; first, and then install &lt;strong&gt;LF15C&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;sudo lpc21isp DM15_M1B_32.hex /dev/ttyUSB0 115200 1200&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; press hidden &lt;code&gt;reset&lt;/code&gt; button&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; firmware is flashed&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; press hidden &lt;code&gt;reset&lt;/code&gt; button to start V32 firmware&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;sudo lpc21isp LF15C_250408.hex /dev/ttyUSB0 115200 1200&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; press hidden &lt;code&gt;reset&lt;/code&gt; button&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; firmware is flashed&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; press hidden &lt;code&gt;reset&lt;/code&gt; button to start new LF15C firmware&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DM15L running V33 or later (Linux)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dm15l_running_v33_or_later_linux&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1473-2533&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;for_installation_using_windows&quot;&gt;For installation using Windows&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; The Swiss Micros &lt;strong&gt;Voyager Update Tool&lt;/strong&gt; will work to install LF15C&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Do not use the new Web Update tool&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; The same caveats regarding installation after using the Swiss Micros V33 apply&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;First downgrade to V32&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Then flash with LF15C&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; You need to use the hidden &lt;code&gt;reset&lt;/code&gt; button in all cases.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;For installation using Windows&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;for_installation_using_windows&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;2534-2900&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;files&quot;&gt;Files&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;download_from_here&quot;&gt;Download from here&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;div class=&quot;table sectionedit8&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Latest LF15C firmware &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_250408.hex&quot; class=&quot;media mediafile mf_hex&quot; title=&quot;public:calculator:info:lf15c_250408.hex (175.8 KB)&quot;&gt;lf15c_250408.hex&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;V32 firmware&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:dm15_m1b_32.hex&quot; class=&quot;media mediafile mf_hex&quot; title=&quot;public:calculator:info:dm15_m1b_32.hex (117.1 KB)&quot;&gt;dm15_m1b_32.hex&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Swiss Micros Voyager Windows Update Tool&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:voyage_firmware_tool.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:voyage_firmware_tool.zip (368.8 KB)&quot;&gt;voyage_firmware_tool.zip&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;2947-3180&amp;quot;} --&gt;
&lt;/div&gt;

&lt;h4 id=&quot;download_from_hp_forum_swiss_micros&quot;&gt;Download from HP Forum &amp;amp; Swiss Micros&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; The Firmware files are available from the HP Forum Thread for this firmware - at the foot of &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046-post-173574.html#pid173574&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046-post-173574.html#pid173574&quot; rel=&quot;ugc nofollow noopener&quot;&gt;Post #1&lt;/a&gt; &lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; the version attached to Post #1 is always the latest available. &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; At present (Jan &amp;#039;26) there is also a beta version which is being used to test various compiler optimizations, and is buggy and best avoided.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Swiss Micros &lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; V32 Firmware &lt;a href=&quot;https://technical.swissmicros.com/voyager/firmware/old/DM15_M1B_32.hex&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://technical.swissmicros.com/voyager/firmware/old/DM15_M1B_32.hex&quot; rel=&quot;ugc nofollow noopener&quot;&gt; DM15_M1B_32.hex&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Voyager Update Tool &lt;a href=&quot;https://technical.swissmicros.com/voyager/firmware/Voyage_Firmware_Tool.zip&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://technical.swissmicros.com/voyager/firmware/Voyage_Firmware_Tool.zip&quot; rel=&quot;ugc nofollow noopener&quot;&gt; Voyager Firmware Update Tool&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Files&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;files&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;2901-3897&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit9&quot; id=&quot;lf15c_general_info&quot;&gt;LF15C General Info&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Full time complex stack shows real &amp;amp; imaginary parts together as e.g. Rectangular: &lt;code&gt;3.45 +4.34 i&lt;/code&gt; or Polar: &lt;code&gt;5.5442 ∠51.5177&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; maximum number range approx. &lt;strong&gt;±1.797 x 10&lt;sup&gt;308&lt;/sup&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; largest integer factorial &lt;code&gt;170&lt;/code&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;x!&lt;/kbd&gt; = &lt;code&gt;7.2574 E306&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; smallest positive number approx. &lt;strong&gt;1.00 10&lt;sup&gt;-323&lt;/sup&gt;&lt;/strong&gt; before &lt;code&gt;0&lt;/code&gt; is returned&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Precision &lt;strong&gt;15&lt;/strong&gt; decimal places&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;π&lt;/strong&gt; displays as &lt;strong&gt;3.14159265358979&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;e&lt;/strong&gt; displays as &lt;strong&gt;2.71828182845905&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Fingerprinting  - see &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:benchmarking:start#fingerprinting&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:benchmarking:start&quot; data-wiki-id=&quot;public:calculator:benchmarking:start&quot;&gt;Fingerprinting&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;9&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;SIN&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;COS&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;TAN&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ATAN&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ACOS&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ASIN&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;9&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;-&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
 &lt;strong&gt;-1.6584 x10 &lt;sup&gt;-10&lt;/sup&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; User Programs can be saved/loaded via USB Serial port using a terminal emulator such as Putty&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; LF15C uses &lt;strong&gt;binary&lt;/strong&gt; floating point representation, rather than the more common BCD.&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; This improves the speed but introduces occasional &lt;em&gt;&lt;strong&gt;small&lt;/strong&gt;&lt;/em&gt; rounding errors&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_d5850fee299d2647c10c431e35c31812_1&quot;&gt;Example (Click to view) &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_d5850fee299d2647c10c431e35c31812_1&quot;&gt;
&lt;p&gt;
Try to add 0.3 to itself twice to make 0.9 and subtract 0.9 from your calculated value
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;0.3&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;+&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;+&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
This shows &lt;code&gt;0.9000&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Now enter 0.9
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;0.9&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
and subtract
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;-&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
gives the answer &lt;code&gt;-1.1102 E-16&lt;/code&gt; instead of &lt;code&gt;0.000&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
A tiny error but visible on certain calculations where the binary cannot accurately represent a decimal fraction…. if you care of an error of the order of 10&lt;sup&gt;-16&lt;/sup&gt;
&lt;/p&gt;

&lt;p&gt;
This error is only significant if you need to multiply very small results of such calculations by very big numbers. 
&lt;/p&gt;

&lt;p&gt;
Most calculations are not affected by the binary representation issues and the benefit of faster calculations more than compensates.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;LF15C General Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;lf15c_general_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;3898-5699&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit10&quot; id=&quot;hp15c_functions&quot;&gt;HP15C functions&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Fix / Sci / Eng display formats&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; √x / x&lt;sup&gt;2&lt;/sup&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; e&lt;sup&gt;x&lt;/sup&gt; / Ln&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 10&lt;sup&gt;x&lt;/sup&gt; / Log&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; y&lt;sup&gt;x&lt;/sup&gt; / %&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 1/x / Δ%&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Sin / ASin&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Cos / ACos&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Tan / ATan&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Hyperbolics of Sin/Cos/Tan&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; CHS / ABS&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; EEX / π&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Deg / Rad / Grad Angle Mode&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; →H.ms / →H  Conversions&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; →Rad / →Deg Conversions&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; X!&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; integer, non-integer, negative and complex support&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Statistics&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; Σ+ two variable accumulation&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; mean&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; standard deviation&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Linear Regression&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; slope / intercept&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; ŷ estimation / r correlation coefficient&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Combinations / Permutations&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Usual 4 level stack manipulations&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; Last x&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; Roll Down ↓&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; Roll Up ↑&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; Swap &lt;code&gt;x&lt;/code&gt; ↔ &lt;code&gt;y&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; Swap &lt;code&gt;x&lt;/code&gt; ↔ any Storage Register&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;100&lt;/strong&gt; storage registers (numbered 00-99)&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; capable of saving Complex Numbers&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Indirect Register pair I / (i)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Indirect Program Label / Line number addressing via Register I&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Random Number Generator&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Rounding&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Fractional / Integer &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Usual Keystroke Programming features&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; SST/BST&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; LBL&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; LBL A - E&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; LBL &lt;strong&gt;00 - 99&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level3 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; DSE / ISG&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; including usual loop control indexing&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; Logical tests&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Branching&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; GTO&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; GSB&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTN&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; PSE&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; R/S&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; SF / CF / FS? &lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; 10 user flags for program control&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Solver&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; can be used via a program&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Numerical Integration&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; variable precision via display digit format&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; can be used via a program&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; quick clear of&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; Statistical data&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; Individual Program&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; All stored Programs&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; Storage Registers (0-99, I and (i))&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Full digit mantissa preview&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;HP15C functions&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hp15c_functions&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;5700-7536&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit11&quot; id=&quot;hp15c_features_not_supported&quot;&gt;HP15C features not supported&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Matrix functions&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; User Mode&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Memory management&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; partitioning between Storage Registers and Program Space is not required or supported&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;HP15C features not supported&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hp15c_features_not_supported&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;7537-7730&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit12&quot; id=&quot;dm15l_features_not_supported&quot;&gt;DM15L features not supported&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Real Time clock&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Switchable 1-line display option (V33 feature)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; CPU speed switching&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Display Font options&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Adjustable LCD contrast&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Various self-tests&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Conversions &amp;amp; Constants (V33 feature)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DM15L features not supported&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dm15l_features_not_supported&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;7731-7988&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit13&quot; id=&quot;speed_tests&quot;&gt;Speed tests&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Very much faster than stock DM15L firmware … see &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:benchmarking:start&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:benchmarking:start&quot; data-wiki-id=&quot;public:calculator:benchmarking:start&quot;&gt;Benchmarking&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Speed tests&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;speed_tests&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;7989-8096&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit14&quot; id=&quot;n-queens&quot;&gt;n-Queens&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;table sectionedit15&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Calculator&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Firmware&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Time&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;DM15L&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; V34 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;202 seconds&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;DM42 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;3.23 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;7.30 seconds&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;DM15L*&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;LF15C 250408&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 0.992 seconds&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;8116-8233&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;n-Queens&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;n-queens&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;8097-8234&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit16&quot; id=&quot;savage&quot;&gt;Savage&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;table sectionedit17&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Calculator&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Firmware&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Time&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;DM15L &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; V34 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 247 seconds &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;DM42 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 3.23&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 14.9 seconds&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;DM15L* &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;LF15C 250408 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 4.008 seconds &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table2&amp;quot;,&amp;quot;secid&amp;quot;:17,&amp;quot;range&amp;quot;:&amp;quot;8253-8378&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Savage&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;savage&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:16,&amp;quot;range&amp;quot;:&amp;quot;8235-8381&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit18&quot; id=&quot;using_lf15c&quot;&gt;Using LF15C&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Using LF15C&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;using_lf15c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:18,&amp;quot;range&amp;quot;:&amp;quot;8382-8407&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit19&quot; id=&quot;complex_numbers&quot;&gt;Complex Numbers&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; The stack is permanently in &lt;strong&gt;complex mode&lt;/strong&gt; and operates slightly differently to the stock HP15C&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;making_manipulating_a_complex_number&quot;&gt;Making &amp;amp; manipulating a complex number&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Press &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;I&lt;/kbd&gt; in normal mode to create &lt;strong&gt;&amp;amp; destroy&lt;/strong&gt; a complex number from ⇔ to &lt;code&gt;y&lt;/code&gt; and &lt;code&gt;x&lt;/code&gt; on the stack.
&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_d5850fee299d2647c10c431e35c31812_2&quot;&gt;Example (click to view) &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_d5850fee299d2647c10c431e35c31812_2&quot;&gt;
&lt;p&gt;
&lt;code&gt;y&lt;/code&gt; → Real and &lt;code&gt;x&lt;/code&gt; → Imaginary
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;3&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;4&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;Y: 3.000&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;X: 4_&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;I&lt;/kbd&gt; creates 
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;X: 3.000 +4.000 i&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Press &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;(i)&lt;/kbd&gt; to change &lt;code&gt;x&lt;/code&gt; to its complex conjugate 
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;X: 3.000 -4.000 i&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Press &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;Re&amp;lt;&amp;gt;Im&lt;/kbd&gt; to switch Real and Imaginary parts of complex number in &lt;code&gt;x&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;X: -4.000 +3.000 i&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Press &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;I&lt;/kbd&gt; will destroy the complex number back to separate real numbers on the stack. Real → &lt;code&gt;y&lt;/code&gt; and Imaginary → &lt;code&gt;x&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;Y: -4.000&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;X:  3.000&lt;/code&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;
Make a pure imaginary number by using &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;Re&amp;lt;&amp;gt;Im&lt;/kbd&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_d5850fee299d2647c10c431e35c31812_3&quot;&gt;Example (Click to view) &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_d5850fee299d2647c10c431e35c31812_3&quot;&gt;
&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;3&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;X: 3_&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;Re&amp;lt;&amp;gt;Im&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;X: 0.0000 + 3.0000 i &lt;/code&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;rectangular_and_polar_modes_for_complex_numbers&quot;&gt;Rectangular and Polar modes for complex numbers&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;  &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;→R&lt;/kbd&gt; and &lt;kbd class=&quot;__keyboard&quot;&gt;g&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;→P&lt;/kbd&gt; do &lt;strong&gt;NOT&lt;/strong&gt; to convert &lt;code&gt;x&lt;/code&gt; and &lt;code&gt;y&lt;/code&gt; stack levels between &lt;code&gt;Rect&lt;/code&gt; and &lt;code&gt;Polar&lt;/code&gt; values as in the HP15C&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;→R&lt;/kbd&gt; and &lt;kbd class=&quot;__keyboard&quot;&gt;→P&lt;/kbd&gt; are &lt;em&gt;&lt;strong&gt;Mode Switching&lt;/strong&gt;&lt;/em&gt; commands for the whole complex stack. &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; When in &lt;code&gt;P&lt;/code&gt;olar mode &lt;strong&gt;ALL&lt;/strong&gt; Complex numbers on the stack are in Magnitude / Angle format.&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; The angle format can be &lt;code&gt;Deg&lt;/code&gt; or &lt;code&gt;Rad&lt;/code&gt; as appropriate&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_d5850fee299d2647c10c431e35c31812_4&quot;&gt;Example (click to view) &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_d5850fee299d2647c10c431e35c31812_4&quot;&gt;
&lt;p&gt;
start in &lt;code&gt;R&lt;/code&gt;ectangular mode and &lt;code&gt;Deg&lt;/code&gt; angle mode
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;3&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt;&lt;code&gt;4&lt;/code&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;I&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;3.000 +4.000i&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Convert to &lt;code&gt;P&lt;/code&gt;olar
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;g&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;→P&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;5.000 ∠53.1301&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Convert to &lt;code&gt;Rad&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;g&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;RAD&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;5.000 ∠0.9273&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Convert back to &lt;code&gt;R&lt;/code&gt;ectangular
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;→R&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;3.000 +4.000i&lt;/code&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;arithmetic_can_be_done_in_rectangular_or_polar_mode&quot;&gt;Arithmetic can be done in Rectangular or Polar mode.&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Mode can be switched at any time - perhaps switching to &lt;code&gt;R&lt;/code&gt;ectangular to enter a &lt;code&gt;R&lt;/code&gt;ectangular format number, when working in &lt;code&gt;P&lt;/code&gt;olar, and then switching back to &lt;code&gt;P&lt;/code&gt;olar once it&amp;#039;s been entered on the stack..&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Intermediate calculations can be done whatever mode is current.&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; this is unlike the HP15C, where complex arithmetic has to be done in &lt;code&gt;R&lt;/code&gt;ectangular format - and &lt;code&gt;P&lt;/code&gt;olar format numbers must be converted → &lt;code&gt;R&lt;/code&gt; first.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; To confirm the mode in use an annunciator &lt;code&gt;P&lt;/code&gt; is always present when in  &lt;code&gt;P&lt;/code&gt;olar. &lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; No &lt;code&gt;P&lt;/code&gt; means &lt;code&gt;R&lt;/code&gt;ectangular mode is active.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_d5850fee299d2647c10c431e35c31812_5&quot;&gt;Example (click to view) &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_d5850fee299d2647c10c431e35c31812_5&quot;&gt;
&lt;p&gt;
&lt;code&gt; (3+4i)  +  (8∠120°)  /  (6-8i) &lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Initially make sure of &lt;code&gt;R&lt;/code&gt; mode:  &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;→R&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
Enter &lt;code&gt;R&lt;/code&gt;ectangular format number
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;3&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; &lt;code&gt;4&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;I&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt; 3.0000 +4.0000 i &lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Enter a &lt;code&gt;P&lt;/code&gt;olar format number &lt;code&gt;8 ∠120&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;g&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;→P&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
(display changes to show &lt;code&gt;5.0000 ∠53.1301&lt;/code&gt;)
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;8&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; &lt;code&gt;120&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;I&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;Y: 5.0000 ∠53.1301&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;X: 8.0000 ∠120.0000&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
add
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;+&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;X: 10.9739 ∠95.2284&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
enter &lt;code&gt;R&lt;/code&gt;ectangular format for final number in calculation
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;→R&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt; -1.0000 +10.9282 i &lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;6&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; &lt;code&gt;8&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;CHS&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;I&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
divide
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;/&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt; X: -0.9343 +0.5757 i &lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Or in &lt;code&gt;P&lt;/code&gt;olar
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;g&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;→P&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt; X: 1.0974 ∠148.3585 &lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
It&amp;#039;s very quick &amp;amp; easy to switch from cartesian to polar and back again mid calculation - whichever mode suits the format of the number you&amp;#039;re entering.
&lt;/p&gt;

&lt;p&gt;
The mathematical function can be done in whichever mode you&amp;#039;re in at the time.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Complex Numbers&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;complex_numbers&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:19,&amp;quot;range&amp;quot;:&amp;quot;8408-12202&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit20&quot; id=&quot;other_features&quot;&gt;Other features&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Other features&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;other_features&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:20,&amp;quot;range&amp;quot;:&amp;quot;12203-12233&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit21&quot; id=&quot;indirect_addressing&quot;&gt;Indirect addressing&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Similar features to the standard HP15C, with differences due to increased Program Label numbers
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;indirect_register_pair_i_i&quot;&gt;Indirect Register pair I &amp;amp; (i)&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Indirect Register pair I and (i) work in the usual way
&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_d5850fee299d2647c10c431e35c31812_6&quot;&gt;Example (click to view) &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_d5850fee299d2647c10c431e35c31812_6&quot;&gt;
&lt;p&gt;
A number stored in I is used as the register number addressed by (i)
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;23&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;STO&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;I&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;g&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;π&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;STO&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;(i)&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
this puts &lt;code&gt;3.14159…&lt;/code&gt; in register &lt;code&gt;23&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;98&lt;/code&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;STO&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;I&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;123&lt;/code&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;STO&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;(i)&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
this puts &lt;code&gt;123&lt;/code&gt; in register &lt;code&gt;98&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;RCL&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;(i)&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;123&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;23&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;STO&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;I&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;RCL&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;(i)&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;3.14159…&lt;/code&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;indirect_program_label_addressing&quot;&gt;Indirect Program Label addressing&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
As in the HP15C you can also indirectly address Program Labels using the contents of the &lt;strong&gt;I&lt;/strong&gt; register to point to the label required.
&lt;/p&gt;

&lt;p&gt;
The HP15C allowed 20 numerical Program Labels &lt;code&gt;0&lt;/code&gt; - &lt;code&gt;.9&lt;/code&gt; which meant indirect addressing for Labels &lt;code&gt;A&lt;/code&gt; - &lt;code&gt;E&lt;/code&gt; was done by reference to &lt;code&gt;20&lt;/code&gt; - &lt;code&gt;24&lt;/code&gt; in Register I
&lt;/p&gt;

&lt;p&gt;
LF15C has 100 numerical Program Labels so….
&lt;/p&gt;

&lt;p&gt;
Store &lt;code&gt;00&lt;/code&gt; - &lt;code&gt;99&lt;/code&gt; in &lt;strong&gt;I&lt;/strong&gt; to address numerical Program Labels &lt;code&gt;00&lt;/code&gt; - &lt;code&gt;99&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Store &lt;code&gt;100&lt;/code&gt; - &lt;code&gt;104&lt;/code&gt; &lt;strong&gt;I&lt;/strong&gt; to address Program Labels &lt;code&gt;A&lt;/code&gt; - &lt;code&gt;E&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Using &lt;code&gt;GTO I&lt;/code&gt; or &lt;code&gt;GSB I&lt;/code&gt; in a program will lead to a jump to the Program Label referred to by contents of &lt;strong&gt;Register I&lt;/strong&gt;.
&lt;/p&gt;

&lt;p&gt;
Changing Register &lt;strong&gt;I&lt;/strong&gt;&amp;#039;s contents (e.g. within a program) can then cause the execution of program to branch in different ways - this can be a very powerful mechanism!
&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_d5850fee299d2647c10c431e35c31812_7&quot;&gt;Example (click to view) &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_d5850fee299d2647c10c431e35c31812_7&quot;&gt;
&lt;p&gt;
Store 100 (for LBL A) in the indirect Register I
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;100&lt;/code&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;STO&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;I&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
Use the value stored in &lt;code&gt;I&lt;/code&gt; as a Label indirectly by calling it from within a program. 
&lt;/p&gt;

&lt;p&gt;
LBL A is a small program to do a simple calculation (area of circle from radius held in &lt;code&gt;x&lt;/code&gt;)
&lt;/p&gt;

&lt;p&gt;
LBL B, which has the single command &lt;code&gt;GTO I&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Running LBL B &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;B&lt;/kbd&gt; actually runs the program in LBL A : &lt;strong&gt;GTO I&lt;/strong&gt; is interpreted as &lt;strong&gt;GTO A&lt;/strong&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
LBL A
X^2
PI
*
RTN

LBL B
GTO I
RTN
&lt;/pre&gt;

&lt;p&gt;
Changing the contents of Register I will change where LBL B points to. 
&lt;/p&gt;

&lt;p&gt;
This allows you to make decisions and branches to different code communicated via the indirect register.
&lt;/p&gt;

&lt;p&gt;
Storing &lt;code&gt;101&lt;/code&gt; in &lt;code&gt;Reg I&lt;/code&gt; and then running LBL B has the effect of an endless loop….. LBL B calls itself (indirectly via &lt;strong&gt;&lt;code&gt;I=101&lt;/code&gt;&lt;/strong&gt;)
&lt;/p&gt;

&lt;p&gt;
Use &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt; to interrupt the endless loop!
&lt;/p&gt;

&lt;p&gt;
Using &lt;code&gt;GTO I&lt;/code&gt; in LBL B means execution passes to LBL A and does not return to LBL B on completion.
&lt;/p&gt;

&lt;p&gt;
Using &lt;code&gt;GSB I&lt;/code&gt; in LBL B instead of &lt;code&gt;GTO&lt;/code&gt; means that after running LBL A (via indirection) execution returns to LBL B and continues….
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;indirect_program_line_number_addressing&quot;&gt;Indirect Program Line Number Addressing&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Similar to the above, if the Indirect Register I contains a &lt;strong&gt;NEGATIVE&lt;/strong&gt; number then a call to &lt;code&gt;GTO I&lt;/code&gt; or &lt;code&gt;GSB I&lt;/code&gt; will cause a branch to the absoloute &lt;strong&gt;Line Number&lt;/strong&gt; referred to in &lt;strong&gt;I&lt;/strong&gt;.
&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_d5850fee299d2647c10c431e35c31812_8&quot;&gt;Example (Click to view) &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_d5850fee299d2647c10c431e35c31812_8&quot;&gt;&lt;pre class=&quot;code&quot;&gt;
0 Empty
1 LBL A
2 GTO I
5 RTN
6 LBL 88
8 X^2
9 PI
10 *
11 RTN
12 Empty
&lt;/pre&gt;

&lt;p&gt;
Storing &lt;code&gt;88&lt;/code&gt; in Register I would make Program &lt;strong&gt;A&lt;/strong&gt; branch to the Label 88 (line 6)
&lt;/p&gt;

&lt;p&gt;
Storing &lt;code&gt;-9&lt;/code&gt; in Register I (&lt;code&gt;9 CHS STO I&lt;/code&gt;) would make Program &lt;strong&gt;A&lt;/strong&gt; branch to &lt;code&gt;PI&lt;/code&gt; (at line 9) and bypass the &lt;code&gt;X&lt;sup&gt;2&lt;/sup&gt;&lt;/code&gt; instruction.
&lt;/p&gt;

&lt;p&gt;
Line numbering isn&amp;#039;t straightforward, as each instruction may use &lt;strong&gt;one&lt;/strong&gt; or &lt;strong&gt;two&lt;/strong&gt; line numbers depending on the instruction itself, so you have to be careful about which line you need to address.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Indirect addressing&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;indirect_addressing&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:21,&amp;quot;range&amp;quot;:&amp;quot;12234-15762&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit22&quot; id=&quot;and_the_rest&quot;&gt;And the rest&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 100 Storage Registers &lt;code&gt;00 - 99&lt;/code&gt; are capable of storing Complex Numbers&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Factorial / Gamma &lt;kbd class=&quot;__keyboard&quot;&gt;x!&lt;/kbd&gt; works on integer (positive), non-integer (positive and negative) &lt;em&gt;&lt;strong&gt;and&lt;/strong&gt;&lt;/em&gt; complex numbers&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Program Mode shows human-readable text rather than HP15C op-codes&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 2-line display of Program being edited&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Selection of logical tests can be done in usual HP15C fashion with &lt;code&gt;TEST 0&lt;/code&gt; - &lt;code&gt;TEST 9&lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Test can also be selected from a scrolling list of options after initially pressing &lt;kbd class=&quot;__keyboard&quot;&gt;g&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;TEST&lt;/kbd&gt; with the choice being made via soft-keys &amp;amp; LCD Prompts&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt;  To run a program with a numeric label (i.e. other than &lt;code&gt;LBL A&lt;/code&gt; → &lt;code&gt;LBL E&lt;/code&gt;) press &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;LBL&lt;/kbd&gt; &lt;code&gt;##&lt;/code&gt;  &lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; e.g. &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;LBL&lt;/kbd&gt; &lt;code&gt;88&lt;/code&gt;  &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; this is different than on the original HP15C where to run a label you used &lt;kbd class=&quot;__keyboard&quot;&gt;GSB&lt;/kbd&gt;&lt;code&gt;##&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;  In program mode, &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;CLEAR PREFIX&lt;/kbd&gt; places the &lt;code&gt;runTime&lt;/code&gt; opCode in the program. &lt;code&gt;runTime&lt;/code&gt; writes to &lt;code&gt;x&lt;/code&gt; the program execution time once it&amp;#039;s executed.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt;  Deleting User Programs&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Delete a &lt;em&gt;&lt;strong&gt;single program&lt;/strong&gt;&lt;/em&gt; : &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;CLEAR PRGM&lt;/kbd&gt; followed by a label&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Delete &lt;em&gt;&lt;strong&gt;ALL programs&lt;/strong&gt;&lt;/em&gt; :  &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt; and &lt;em class=&quot;u&quot;&gt;long press&lt;/em&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;CLEAR PRGM&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;  FIX/SCI/ENG don&amp;#039;t round numbers unless &lt;kbd class=&quot;__keyboard&quot;&gt;g&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;RND&lt;/kbd&gt; is pressed.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;  &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ENG&lt;/kbd&gt;&lt;code&gt;nn&lt;/code&gt; sets the number of significant digits as requested, &lt;strong&gt;UNLIKE&lt;/strong&gt; the original HP15C where &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ENG&lt;/kbd&gt;&lt;code&gt;n&lt;/code&gt; sets the significant digits to &lt;code&gt;n + 1&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt;  There are 10 user flags, from 0 to 9. &lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; There are no LCD annunciators to show state, but flags can be set, cleared and tested for decision making in program branching&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;  Long press &lt;kbd class=&quot;__keyboard&quot;&gt;GTO&lt;/kbd&gt; in program mode to access &lt;code&gt;go to label&lt;/code&gt; feature (single press in run mode)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;  Long press &lt;kbd class=&quot;__keyboard&quot;&gt;GSB&lt;/kbd&gt; in program mode to access &lt;code&gt;go to line number&lt;/code&gt; feature (single press in run mode)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;  When running a program step by step, a long press on &lt;kbd class=&quot;__keyboard&quot;&gt;SST&lt;/kbd&gt; doesn’t execute the current step.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Unused Keys&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;USER&lt;/kbd&gt;, &lt;kbd class=&quot;__keyboard&quot;&gt;g&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;MEM&lt;/kbd&gt;, &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;DIM&lt;/kbd&gt;, &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;MATRIX&lt;/kbd&gt; and &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;RESULT&lt;/kbd&gt; are not implemented and don&amp;#039;t do anything at the moment.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;And the rest&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;and_the_rest&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:22,&amp;quot;range&amp;quot;:&amp;quot;15763-18112&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit23&quot; id=&quot;lf15c_serial_port_info&quot;&gt;LF15C Serial Port Info&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Serial Port dump info : &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046-post-194697.html#pid194697&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046-post-194697.html#pid194697&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.hpmuseum.org/forum/thread-20046-post-194697.html#pid194697&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Serial Port settings&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Rate : 57600&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Data : 8 bit&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Stop : 1 bit&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Parity : None&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Flow Control : None&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;strong&gt; ALWAYS INCLUDE AT LEAST ONE TRAILING ZERO FROM THE STRING OF DIGITS REPRESENTING THE MEMORY DUMP &lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; To extract a dump from calculator press and hold &lt;kbd class=&quot;__keyboard&quot;&gt;STO&lt;/kbd&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; the string of digits can be copy/pasted into a text file for storage&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; it is only necessary to keep &lt;strong&gt;one final zero&lt;/strong&gt; - the rest of the zeros can be ignored&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; To upload a previously saved dump &lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; copy it to clipboard and then &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; press and hold &lt;kbd class=&quot;__keyboard&quot;&gt;RCL&lt;/kbd&gt; until the terminal shows &lt;code&gt;Paste PrgMemory:&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; in Putty &lt;kbd class=&quot;__keyboard&quot;&gt;Shift&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;Insert&lt;/kbd&gt; to paste clipboard text into terminal&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;LF15C Serial Port Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;lf15c_serial_port_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:23,&amp;quot;range&amp;quot;:&amp;quot;18113-18970&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit24&quot; id=&quot;lf15c_firmware_files&quot;&gt;LF15C Firmware Files&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Tabulated List of LF15C firmware versions
&lt;/p&gt;
&lt;div class=&quot;table sectionedit25&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Date&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Firmware&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Version&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Firmware File&lt;/th&gt;&lt;th class=&quot;col4&quot;&gt;Comments&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;12/09/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta240911&lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta240911.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta240911.zip (67.2 KB)&quot;&gt;lf15c_beta240911.zip&lt;/a&gt;     &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt; initial public beta  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;15/09/24  &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; LF15C  &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta240914 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta240914.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta240914.zip (67 KB)&quot;&gt;lf15c_beta240914.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;17/09/24   &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; beta240916  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta240916.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta240916.zip (67.1 KB)&quot;&gt;lf15c_beta240916.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;   &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;17/09/24   &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; beta240916_2  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta240916_2.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta240916_2.zip (67.5 KB)&quot;&gt;lf15c_beta240916_2.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;   &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt; 21/09/24  &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta240920 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta240920.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta240920.zip (66.8 KB)&quot;&gt;lf15c_beta240920.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; very fast &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:benchmarking:start&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:benchmarking:start&quot; data-wiki-id=&quot;public:calculator:benchmarking:start&quot;&gt;Benchmarking&lt;/a&gt;, roots of -ve numbers bug &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 21/09/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta240921 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta240921.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta240921.zip (66.8 KB)&quot;&gt;lf15c_beta240921.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; Fix of “powers of negative numbers” bug, new 10^x bug &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 23/09/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta240923 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta240923.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta240923.zip (66.8 KB)&quot;&gt;lf15c_beta240923.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 10^x fix, other bug fixes &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;25/09/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta240925 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta240925.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta240925.zip (67.3 KB)&quot;&gt;lf15c_beta240925.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046-post-192246.html#pid192246&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046-post-192246.html#pid192246&quot; rel=&quot;ugc nofollow noopener&quot;&gt; Bug fixes&lt;/a&gt; &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046-post-192255.html#pid192255&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046-post-192255.html#pid192255&quot; rel=&quot;ugc nofollow noopener&quot;&gt; More new bugs&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;28/09/24&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta240928 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta240928.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta240928.zip (68 KB)&quot;&gt;lf15c_beta240928.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046-post-192465.html#pid192465&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046-post-192465.html#pid192465&quot; rel=&quot;ugc nofollow noopener&quot;&gt; bug fixes &lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 30/09/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta240929 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta240929.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta240929.zip (68 KB)&quot;&gt;lf15c_beta240929.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046-post-192556.html#pid192556&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046-post-192556.html#pid192556&quot; rel=&quot;ugc nofollow noopener&quot;&gt; Bug Fixes etc. &lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row11&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 30/09/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta240929_2 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta240929_2.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta240929_2.zip (68 KB)&quot;&gt;lf15c_beta240929_2.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046-post-192560.html#pid192560&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046-post-192560.html#pid192560&quot; rel=&quot;ugc nofollow noopener&quot;&gt; RCL I Bug fix &lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row12&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 01/10/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta240930 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta240930.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta240930.zip (68.2 KB)&quot;&gt;lf15c_beta240930.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046-post-192625.html#pid192625&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046-post-192625.html#pid192625&quot; rel=&quot;ugc nofollow noopener&quot;&gt; Bug Fixes &lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row13&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 02/10/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; debug241001 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_debug_for_john241001.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_debug_for_john241001.zip (68.3 KB)&quot;&gt;lf15c_debug_for_john241001.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046-post-192676.html#pid192676&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046-post-192676.html#pid192676&quot; rel=&quot;ugc nofollow noopener&quot;&gt; version pre-loaded with my B.Fil prog for debug purposes &lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row14&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 02/10/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta241002 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta241002.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta241002.zip (68.2 KB)&quot;&gt;lf15c_beta241002.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046-post-192696.html#pid192696&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046-post-192696.html#pid192696&quot; rel=&quot;ugc nofollow noopener&quot;&gt; Bug Fix &lt;/a&gt; my B.Fil runs correctly. No known showstoppers left? &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row15&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 03/10/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta241003 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta241003.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta241003.zip (68.3 KB)&quot;&gt;lf15c_beta241003.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; fPREFIX fix. Discovered inverse HYP SIN bug &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row16&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 06/10/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta241005 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta241005.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta241005.zip (68.1 KB)&quot;&gt;lf15c_beta241005.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;&lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046-post-192859.html#pid192859&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046-post-192859.html#pid192859&quot; rel=&quot;ugc nofollow noopener&quot;&gt; fixes &lt;/a&gt;,HYP ASIN bug still present &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row17&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 07/10/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta241006 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta241006.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta241006.zip (67.6 KB)&quot;&gt;lf15c_beta241006.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046-post-192907.html#pid192907&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046-post-192907.html#pid192907&quot; rel=&quot;ugc nofollow noopener&quot;&gt; Bug fix and new runTime function &lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row18&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 08/10/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta241007 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta241007.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta241007.zip (67.6 KB)&quot;&gt;lf15c_beta241007.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046-post-192956.html#pid192956&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046-post-192956.html#pid192956&quot; rel=&quot;ugc nofollow noopener&quot;&gt; Bug Fixes &lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row19&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 10/10/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta241009 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta241009.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta241009.zip (67.3 KB)&quot;&gt;lf15c_beta241009.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046-post-193093.html#pid193093&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046-post-193093.html#pid193093&quot; rel=&quot;ugc nofollow noopener&quot;&gt; Bug Fixes &lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row20&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 12/10/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta241011 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta241011.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta241011.zip (67.6 KB)&quot;&gt;lf15c_beta241011.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046-post-193245.html#pid193245&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046-post-193245.html#pid193245&quot; rel=&quot;ugc nofollow noopener&quot;&gt; RND bug fix &lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row21&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 14/10/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta241014 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta241014.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta241014.zip (68.3 KB)&quot;&gt;lf15c_beta241014.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row22&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 20/10/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta241020 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta241020.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta241020.zip (68.8 KB)&quot;&gt;lf15c_beta241020.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row23&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 21/10/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta241021 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta241021.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta241021.zip (68.7 KB)&quot;&gt;lf15c_beta241021.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row24&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 22/10/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta241022 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta241022.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta241022.zip (68.7 KB)&quot;&gt;lf15c_beta241022.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row25&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 24/10/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta241024 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta241024.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta241024.zip (68.9 KB)&quot;&gt;lf15c_beta241024.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row26&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 31/10/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta241031 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta241031.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta241031.zip (69.1 KB)&quot;&gt;lf15c_beta241031.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row27&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 02/11/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta241102 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta241102.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta241102.zip (68.9 KB)&quot;&gt;lf15c_beta241102.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row28&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 10/12/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta241210_2 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta241210_2.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta241210_2.zip (69.4 KB)&quot;&gt;lf15c_beta241210_2.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046-post-196923.html#pid196923&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046-post-196923.html#pid196923&quot; rel=&quot;ugc nofollow noopener&quot;&gt;Integrate feature&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row29&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 17/12/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta241217 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta241217.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta241217.zip (69.5 KB)&quot;&gt;lf15c_beta241217.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046-post-197261.html#pid197261&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046-post-197261.html#pid197261&quot; rel=&quot;ugc nofollow noopener&quot;&gt; Integrate improvements &lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row30&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 21/12/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta241221 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta241221.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta241221.zip (64.9 KB)&quot;&gt;lf15c_beta241221.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046-post-197462.html#pid197462&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046-post-197462.html#pid197462&quot; rel=&quot;ugc nofollow noopener&quot;&gt; Bug Fixes &lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row31&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 22/12/24 &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; LF15C  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; beta241222   &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta241222.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta241222.zip (67.4 KB)&quot;&gt;lf15c_beta241222.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046-post-197516.html#pid197516&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046-post-197516.html#pid197516&quot; rel=&quot;ugc nofollow noopener&quot;&gt; Sin(180)=0 Fixed &lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row32&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 14/02/25 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta250123 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta250123.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta250123.zip (67.5 KB)&quot;&gt;lf15c_beta250123.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;&lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046-post-198747.html#pid198747&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046-post-198747.html#pid198747&quot; rel=&quot;ugc nofollow noopener&quot;&gt; Enter Key bug fixes &lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row33&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 15/02/25 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta250215 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta250215.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta250215.zip (68.9 KB)&quot;&gt;lf15c_beta250215.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;&lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046-post-199820.html#pid199820&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046-post-199820.html#pid199820&quot; rel=&quot;ugc nofollow noopener&quot;&gt; Better integration routine and bug fixes&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row34&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 16/02/25 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta250216 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta250216.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta250216.zip (68.9 KB)&quot;&gt;lf15c_beta250216.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; Y↑X and TEST &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046-post-199841.html#pid199841&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046-post-199841.html#pid199841&quot; rel=&quot;ugc nofollow noopener&quot;&gt; bug fixes&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row35&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 17/02/25 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta250217b &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta250217b.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta250217b.zip (69.5 KB)&quot;&gt;lf15c_beta250217b.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; Integration &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046-post-199875.html#pid199875&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046-post-199875.html#pid199875&quot; rel=&quot;ugc nofollow noopener&quot;&gt; bug fix &lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row36&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 19/02/25 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta250218 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta250218.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta250218.zip (69.3 KB)&quot;&gt;lf15c_beta250218.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; Integration &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046-post-199946.html#pid199946&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046-post-199946.html#pid199946&quot; rel=&quot;ugc nofollow noopener&quot;&gt; programability &lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row37&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 20/02/25 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta250220 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta250220.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta250220.zip (69.3 KB)&quot;&gt;lf15c_beta250220.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046-post-200014.html#pid200014&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046-post-200014.html#pid200014&quot; rel=&quot;ugc nofollow noopener&quot;&gt; Linear Regression bug fix &lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row38&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 21/02/25 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta250221 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta250221.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta250221.zip (70.3 KB)&quot;&gt;lf15c_beta250221.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046-post-200051.html#pid200051&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046-post-200051.html#pid200051&quot; rel=&quot;ugc nofollow noopener&quot;&gt; Complex/non-integer factorial &lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row39&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 25/02/25 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta250225 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta250225.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:lf15c_beta250225.zip (70.4 KB)&quot;&gt;lf15c_beta250225.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046-post-200298.html#pid200298&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046-post-200298.html#pid200298&quot; rel=&quot;ugc nofollow noopener&quot;&gt; improved precision in x! function &lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row40&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 26/02/25 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; beta250226 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_beta250226.hex&quot; class=&quot;media mediafile mf_hex&quot; title=&quot;public:calculator:info:lf15c_beta250226.hex (178.9 KB)&quot;&gt;lf15c_beta250226.hex&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046-post-200326.html#pid200326&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046-post-200326.html#pid200326&quot; rel=&quot;ugc nofollow noopener&quot;&gt; f-PREFIX bug fix &lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row41&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 12/01/26 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 250408 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:lf15c_250408.hex&quot; class=&quot;media mediafile mf_hex&quot; title=&quot;public:calculator:info:lf15c_250408.hex (175.8 KB)&quot;&gt;lf15c_250408.hex&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; no longer BETA. Stable version - mature?? &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row42&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 31/03/26 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 260331 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:3rd:lf15c_260331.hex&quot; class=&quot;media mediafile mf_hex&quot; title=&quot;public:calculator:3rd:lf15c_260331.hex (176.5 KB)&quot;&gt;lf15c_260331.hex&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; Differences unknown - various changes since last stable version 250408. Has Solver issues? &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row43&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 04/04/26 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 260404 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:3rd:lf15c_260404.hex&quot; class=&quot;media mediafile mf_hex&quot; title=&quot;public:calculator:3rd:lf15c_260404.hex (176.5 KB)&quot;&gt;lf15c_260404.hex&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; Differences unknown… performs well on all tests, solver issues resolved &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row44&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 12/04/26 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; LF15C &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 260412 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:3rd:lf15c_260412.hex&quot; class=&quot;media mediafile mf_hex&quot; title=&quot;public:calculator:3rd:lf15c_260412.hex (177.2 KB)&quot;&gt;lf15c_260412.hex&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; SOLVE adjustments &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table3&amp;quot;,&amp;quot;secid&amp;quot;:25,&amp;quot;range&amp;quot;:&amp;quot;19049-26112&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;LF15C Firmware Files&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;lf15c_firmware_files&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:24,&amp;quot;range&amp;quot;:&amp;quot;18971-26115&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit26&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; LF15C program dumps &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:progs:dm15l_progs#program_dumps_for_lf15c&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:progs:dm15l_progs&quot; data-wiki-id=&quot;public:calculator:progs:dm15l_progs&quot;&gt;Program dumps for LF15C&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Page created  : 17/02/26 17:51 GMT
&lt;/p&gt;

&lt;p&gt;
Page updated : 19/04/26 21:20 BST
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:calculator&amp;amp;do=showtag&amp;amp;tag=calculator&quot; class=&quot;wikilink1&quot; title=&quot;tag:calculator&quot; rel=&quot;tag&quot;&gt;calculator&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:dm15l&amp;amp;do=showtag&amp;amp;tag=dm15l&quot; class=&quot;wikilink1&quot; title=&quot;tag:dm15l&quot; rel=&quot;tag&quot;&gt;dm15l&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:lf15c&amp;amp;do=showtag&amp;amp;tag=lf15c&quot; class=&quot;wikilink1&quot; title=&quot;tag:lf15c&quot; rel=&quot;tag&quot;&gt;lf15c&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:26,&amp;quot;range&amp;quot;:&amp;quot;26116-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sun, 19 Apr 2026 20:20:12 +0000</pubDate>
        </item>
        <item>
            <title>DM32 Info</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:info:dm32_info</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:info:start&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:info:start&quot; data-wiki-id=&quot;public:calculator:info:start&quot;&gt;Calculator Hardware&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;dm32_info&quot;&gt;DM32 Info&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; The new entry-Level do-it-all machine &lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
Release June 2023 with Beta Firmware - community providing feedback of bugs and errors
to help drive firmware development
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://forum.swissmicros.com/viewforum.php?f=33&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://forum.swissmicros.com/viewforum.php?f=33&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://forum.swissmicros.com/viewforum.php?f=33&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DM32 Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dm32_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-264&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;photos&quot;&gt;Photos&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Acalculator%3Ainfo%3Adm32_info&amp;amp;media=public:calculator:info:dm32_2.jpg&quot; class=&quot;media&quot; title=&quot;public:calculator:info:dm32_2.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=400&amp;amp;tok=48d7a0&amp;amp;media=public:calculator:info:dm32_2.jpg&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Photos&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;photos&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;265-585&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;purchase_information&quot;&gt;Purchase Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Date   : July 2023&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; From   : Swiss Micros&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Price  : CHF249 + CHF70 DHL Delivery = CHF319 = £296&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Serial : 00812&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Purchase Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;purchase_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;586-747&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;firmware&quot;&gt;Firmware&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;table sectionedit5&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Date&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;DM32 Version&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;DMCP Version&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Firmware Files&lt;/th&gt;&lt;th class=&quot;col4&quot;&gt;Comments&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 20/07/23 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 2.03 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 3.50t25 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:dmcp5_flash_3.50t25_dm32-2.03.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:dmcp5_flash_3.50t25_dm32-2.03.zip (406.6 KB)&quot;&gt;dmcp5_flash_3.50t25_dm32-2.03.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;Equation Solver Bug - sometimes shows LOG(0) or DIVIDE BY 0 - also Complex powers bug -  Forum says “fixed in next F/W release” &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 01/08/23 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 2.04 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 3.50t29 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:dmcp5_flash_3.50t29_dm32-2.04.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:dmcp5_flash_3.50t29_dm32-2.04.zip (407.8 KB)&quot;&gt;dmcp5_flash_3.50t29_dm32-2.04.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;Bugs I&amp;#039;d spotted in 2.03 now resolved &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 13/09/23 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 2.05 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 3.50t31 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:dmcp5_flash_3.50t31_dm32-2.05.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:dmcp5_flash_3.50t31_dm32-2.05.zip (410.4 KB)&quot;&gt;dmcp5_flash_3.50t31_dm32-2.05.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;4-line prog editor, 4-line EQN list &amp;amp; more&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 09/11/23 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 2.06 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 3.50t33 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:dmcp5_flash_3.50t33_dm32-2.06.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:dmcp5_flash_3.50t33_dm32-2.06.zip (417.9 KB)&quot;&gt;dmcp5_flash_3.50t33_dm32-2.06.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;Various fixes &amp;amp; new features &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 06/05/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 2.07 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 3.50t36 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:dmcp5_flash_3.50t36_dm32-2.07.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:dmcp5_flash_3.50t36_dm32-2.07.zip (419.3 KB)&quot;&gt;dmcp5_flash_3.50t36_dm32-2.07.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;Various new features including “remote calls” to routines in non-loaded calculator “states” &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 06/05/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 2.08 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 3.50t38 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:dmcp5_flash_3.50t38_dm32-2.08.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:dmcp5_flash_3.50t38_dm32-2.08.zip (423 KB)&quot;&gt;dmcp5_flash_3.50t38_dm32-2.08.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;USB Speed Up and other new features &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;07/05/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 2.09 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 3.50t38 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:dmcp5_flash_3.50t38_dm32-2.09.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:dmcp5_flash_3.50t38_dm32-2.09.zip (423.6 KB)&quot;&gt;dmcp5_flash_3.50t38_dm32-2.09.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; Right-align stack display option&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;20/08/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 2.10 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 3.51 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:dmcp5_flash_3.51_dm32-2.10.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:dmcp5_flash_3.51_dm32-2.10.zip (429.1 KB)&quot;&gt;dmcp5_flash_3.51_dm32-2.10.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; Official Release Version &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;24/01/26 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 2.11 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 3.56 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:dmcp5_flash_3.56_dm32-2.11.bin&quot; class=&quot;media mediafile mf_bin&quot; title=&quot;public:calculator:info:dmcp5_flash_3.56_dm32-2.11.bin (1.1 MB)&quot;&gt;dmcp5_flash_3.56_dm32-2.11.bin&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; Minor bug-fixes &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;770-2126&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Firmware&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;firmware&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;748-2128&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;changes&quot;&gt;Changes&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_b6b7ec5db4cfd04272a9dc73a1df4d10_1&quot;&gt;Changelog &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_b6b7ec5db4cfd04272a9dc73a1df4d10_1&quot;&gt;
&lt;h4&gt;DM32 v2.11: 2025-12-05&lt;/h4&gt;

&lt;p&gt;
Fixes
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;  Fixed: crash after using equation solver with Flag-11 (forum)
  Font design: visually improved a selection of glyphs in the SwissKeys font (the &amp;quot;bold&amp;quot; font).&lt;/pre&gt;

&lt;h4&gt;DM32 v2.10: 2024-08-17&lt;/h4&gt;

&lt;p&gt;
Fixes
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;  Fixed: Difference in error messages (STAT ERROR and INVALID y^x)
  Fixed: SOLVE (i) asks for solve variable&lt;/pre&gt;

&lt;h4&gt;DM32 v2.09: 2024-05-06&lt;/h4&gt;

&lt;p&gt;
Enhancements
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;  Added RANDSEED to statefile
  Statefile parsing enhancements
  Stack Right-align option (see in doc)&lt;/pre&gt;

&lt;h4&gt;DM32 v2.08: 2024-03-18&lt;/h4&gt;

&lt;p&gt;
Enhancements
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;  Added CPU frequency switching when powered from USB
  Added remote calls from CALC mode
  Added Extended GTO functionality (see in doc)
  Added support for automatic load of dependent states (see in doc)&lt;/pre&gt;

&lt;p&gt;
Fixes
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;  Fixed: The &amp;#039;0&amp;#039; style doesn&amp;#039;t match register font in SHOW box
  Fixed: F3 (SST) should act only if no other key processing is pending
  Fixed: F3 (SST) long press to NULL behavior
  Fixed: Remote XEQ calls to current context
  Fixed: First remote XEQ call should clear remote call stack
  Fixed: Current state filename should be pre-selected in &amp;quot;Save&amp;quot; dialog&lt;/pre&gt;

&lt;h4&gt;DM32 v2.07: 2023-12-08&lt;/h4&gt;

&lt;p&gt;
Enhancements
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;  Added remote XEQ functionality (see in manual)
  Added SHOW view of EQN message
  SHOW extended to all program lines in program mode&lt;/pre&gt;

&lt;p&gt;
Fixes
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;  F2 key (i.e. debug view toggle) deactivated for non-CALC modes and during number entry
  Fixed USB disk id to 0483:5720 so it corresponds to USB MSC by STM
  Fixed: Program SOLVE ending in &amp;quot;NO ROOT FOUND&amp;quot; prevents subsequently keyed XEQ from running (until pressing [R/S])
  Fixed: Number entered as &amp;#039;1E-&amp;#039; ([E][+/-]) should be interpreted as &amp;#039;1&amp;#039;
  Fixed: Message triangle cut-off after File-&amp;gt;Load Clean State
  Fixed: Left/right scrolling of long EQN message (i.e. EQN in PRGM mode with flag10 set) doesn&amp;#039;t work&lt;/pre&gt;

&lt;h4&gt;DM32 v2.06: 2023-11-01&lt;/h4&gt;
&lt;pre class=&quot;code&quot;&gt;  Added &amp;quot;Debug View&amp;quot; (see in manual)
  Added Step-out and Step-over (see in manual)
  SHOW box style changed to better match overall look
  Fixed: Sometimes SHOW displays &amp;quot;SHOW&amp;quot; instead of expected text on long key press
  Fixed: Wrong CLEAR menu in PRGM and EQN mode after elaborated key combinations
  SHOW hold isn&amp;#039;t killed by shift presses (simplifies screenshot invocation)
  SHOW hold isn&amp;#039;t canceled by screenshot
  Fixed: Integration ends on overflow when Flag5=0 (should give an integration result) .. this also fixed a problem with restarting integration after an overflow
  Fixed: Memory corruption in EQN list (reported by Raul). Exhibit itself during EQN edit by displaying &amp;quot;NO EQN&amp;quot; on other lines and all those equations are lost.&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
For the full list see &lt;a href=&quot;https://technical.swissmicros.com/dm32/firmware/history.html&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://technical.swissmicros.com/dm32/firmware/history.html&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://technical.swissmicros.com/dm32/firmware/history.html&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
For current USER MANUAL see &lt;a href=&quot;https://technical.swissmicros.com/dm32/doc/dm32_user_manual.html&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://technical.swissmicros.com/dm32/doc/dm32_user_manual.html&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://technical.swissmicros.com/dm32/doc/dm32_user_manual.html&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Changes&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;changes&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;2129-5034&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;rtc_correction&quot;&gt;RTC Correction&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; approx. error : -23ppm (-2.0s/d)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Correction factor C from &lt;code&gt;C = 2^20 P /(10^6 + P)&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Approximations : &lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;C = 1.04858 P&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;P = 0.953674 C&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Calculated &lt;code&gt;C = 24.2&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Put a text file &lt;code&gt;/rtccalib.cfg&lt;/code&gt; in root directory of FAT drive with contents:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;24.2&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;RTC Correction&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;rtc_correction&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;5035-5356&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;section2023&quot;&gt;2023&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;table sectionedit9&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Start&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Stop&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Accumulated Error (s)&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Rate Error (s/d)&lt;/th&gt;&lt;th class=&quot;col4&quot;&gt;Comments&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 20/07/23 &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; 22/07/23   &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; -3.5 &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt; -2.0   &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; First 2 days initial test. -23ppm &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 22/07/23 &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; 22/11/23  &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; +17.3 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; +0.1 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; with correction 24.2 (22.9ppm) applied = slightly over-corrected? &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;5373-5619&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;2023&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;section2023&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;5357-5620&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit10&quot; id=&quot;update_january_2026&quot;&gt;Update January 2026&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Using my &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:watchcheck&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:watchcheck&quot; data-wiki-id=&quot;public:miscellany:watches:watchcheck&quot;&gt;python Watchcheck&lt;/a&gt;
&lt;/p&gt;
&lt;div class=&quot;table sectionedit11&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Date Start&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Date Check&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Delta&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Latest Rate Error&lt;/th&gt;&lt;th class=&quot;col4&quot;&gt;Average Rate Error&lt;/th&gt;&lt;th class=&quot;col5&quot;&gt;Comments&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;27/01/26&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; +4.4 &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; New Period. Correction 22.9ppm &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 27/01/26 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 14/04/26 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; +14.8s &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; +0.1 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; +0.1 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; 77 days  +10 seconds &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table2&amp;quot;,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;5720-5925&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Update January 2026&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;update_january_2026&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;5621-5930&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit12&quot; id=&quot;dm32_info1&quot;&gt;DM32 Info&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Firmware      : &lt;a href=&quot;https://technical.swissmicros.com/dm32/firmware/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://technical.swissmicros.com/dm32/firmware/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://technical.swissmicros.com/dm32/firmware/&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; YouTube videos by NA McBee : &lt;a href=&quot;https://www.youtube.com/@N.A._McBee/video&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.youtube.com/@N.A._McBee/video&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.youtube.com/@N.A._McBee/video&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Swissmicros forum : &lt;a href=&quot;https://forum.swissmicros.com/viewforum.php?f=33&amp;amp;sid=2185cf0ed161a970070277183ff137c0&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://forum.swissmicros.com/viewforum.php?f=33&amp;amp;sid=2185cf0ed161a970070277183ff137c0&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://forum.swissmicros.com/viewforum.php?f=33&amp;amp;sid=2185cf0ed161a970070277183ff137c0&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DM32 Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dm32_info1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;5931-6222&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit13&quot; id=&quot;hardware_firmware_issue&quot;&gt;Hardware / Firmware issue&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
I received the following email from Swiss Micros in 8th March 2024 explaining a hardware change that&amp;#039;s required to early production units to ensure correct operation with the latest firmware, which allows the processing speed to increase when powered via USB (as per the DM41X and DM42).
&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_b6b7ec5db4cfd04272a9dc73a1df4d10_2&quot;&gt;email re: hardware mod &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_b6b7ec5db4cfd04272a9dc73a1df4d10_2&quot;&gt;&lt;pre class=&quot;code&quot;&gt;Dear valued customer,

We appreciate your decision to purchase the DM32 calculator. 
As one of our early adopters, your support means a lot to us.

 

In our initial firmware versions, we restricted the CPU speed 
to 48MHz due to power limitations from the CR2032 battery. 
However, in upcoming firmware updates, we&amp;#039;re introducing the ability 
to switch to 160MHz when powered by USB. It&amp;#039;s crucial to note that 
upon unplugging the USB, the CPU speed must swiftly revert to 48MHz 
to prevent battery voltage drop and subsequent CPU resets.

Regrettably, we&amp;#039;ve identified an issue affecting units purchased 
before December 2023. In specific scenarios, the CPU speed doesn&amp;#039;t 
transition quickly enough, potentially leading to calculator resets.

This may happen upon USB disconnection if the device is engaged in 
processing tasks rather than merely awaiting user input or being powered down.

All units ordered post-November 2023 have been enhanced to ensure consistent 
performance. This modification entails replacing R4 with a 22k resistor 
instead of the previous 100k one.

To address this issue, we offer several solutions:
 

    If you&amp;#039;re comfortable soldering, replacing R4 is a straightforward fix. We&amp;#039;re happy to dispatch a replacement 
    resistor to you in an envelope, see  https://www.swissmicros.com/product/r4-22k-resistor
    
    Alternatively, you can send your DM32 to us, and we&amp;#039;ll replace the resistor and return it to you promptly, 
    see https://www.swissmicros.com/product/rma
    
    We anticipate a new batch of PCBs to be available in approximately three months. Once ready, we can send you 
    a replacement PCB. We kindly request that you return the replaced PCB to us. 
    
    https://www.swissmicros.com/product/dm32-replacement-pcb

 

We sincerely apologize for any inconvenience caused and appreciate your 
understanding and cooperation in resolving this matter.
 
Thank you for your continued support and patience.

 

Best regards

Michael Steinmann

SwissMicros
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
I find the DM32 plenty fast enough running on batteries, so I&amp;#039;m not necessarily going to be plugging it it to boost its performance &lt;strong&gt;but&lt;/strong&gt; I do want to stay up to date with firmware changes and don&amp;#039;t want to risk any problems, so I&amp;#039;ve ordered the replacement SMD resistor and plan to swap it myself.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt; update 24/01/26 &lt;/strong&gt; - I &lt;em&gt;think&lt;/em&gt; I did the swap…. after receiving the new resistor, not sure of the date…. I&amp;#039;m fairly sure I did, anyway!
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Hardware \/ Firmware issue&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hardware_firmware_issue&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;6223-9063&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit14&quot; id=&quot;hp-32sii_owner_s_manual&quot;&gt;HP-32Sii Owner&amp;#039;s Manual&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Download from &lt;a href=&quot;https://literature.hpcalc.org/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://literature.hpcalc.org/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://literature.hpcalc.org/&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HP-32sii Owner&amp;#039;s Manual : &lt;a href=&quot;https://literature.hpcalc.org/community/hp32sii-om-en.pdf&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://literature.hpcalc.org/community/hp32sii-om-en.pdf&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://literature.hpcalc.org/community/hp32sii-om-en.pdf&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;HP-32Sii Owner&amp;#039;s Manual&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hp-32sii_owner_s_manual&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;9064-9244&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit15&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:calculator&amp;amp;do=showtag&amp;amp;tag=calculator&quot; class=&quot;wikilink1&quot; title=&quot;tag:calculator&quot; rel=&quot;tag&quot;&gt;calculator&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:dm32&amp;amp;do=showtag&amp;amp;tag=dm32&quot; class=&quot;wikilink1&quot; title=&quot;tag:dm32&quot; rel=&quot;tag&quot;&gt;dm32&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;9245-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 14 Apr 2026 13:44:01 +0000</pubDate>
        </item>
        <item>
            <title>DM41X Info</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:info:dm41x_info</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:info:start&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:info:start&quot; data-wiki-id=&quot;public:calculator:info:start&quot;&gt;Calculator Hardware&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;dm41x_info&quot;&gt;DM41X Info&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Acalculator%3Ainfo%3Adm41x_info&amp;amp;media=public:calculator:dm41_2.jpg&quot; class=&quot;media&quot; title=&quot;public:calculator:dm41_2.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=400&amp;amp;tok=9c74b4&amp;amp;media=public:calculator:dm41_2.jpg&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DM41X Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dm41x_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;10-287&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;purchase_information&quot;&gt;Purchase Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Date   : February 2022&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; From   : Swiss Micros (Direct)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Price  : £185&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Serial : 01266&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Battery Swap&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 22/09/22&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 11/02/25&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 19/02/26&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 13/04/26&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Purchase Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;purchase_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;288-502&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;firmware&quot;&gt;Firmware&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;table sectionedit4&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Date&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Serial No.&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;DM41X Version&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;DMCP Version&lt;/th&gt;&lt;th class=&quot;col4&quot;&gt;Firmware Files&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;24/05/22 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;01266&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 2.1 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 3.20 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:dmcp_flash_3.20_dm41x-2.1.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:dmcp_flash_3.20_dm41x-2.1.zip (248.6 KB)&quot;&gt;dmcp_flash_3.20_dm41x-2.1.zip&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;27/07/24&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 01266&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 2.2 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 3.25 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:dmcp_flash_3.25_dm41x-2.2.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:dmcp_flash_3.25_dm41x-2.2.zip (254.9 KB)&quot;&gt;dmcp_flash_3.25_dm41x-2.2.zip&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;21/12/25 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 01266 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 2.3 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 3.28 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:dmcp_flash_3.28_dm41x-2.3.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:dmcp_flash_3.28_dm41x-2.3.zip (262.7 KB)&quot;&gt;dmcp_flash_3.28_dm41x-2.3.zip&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;525-859&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Firmware&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;firmware&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;503-860&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;rtc_correction&quot;&gt;RTC Correction&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; approx. error +3.5s/d = +40.5ppm&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Correction factor C from &lt;code&gt;C = 2^20 P /(10^6 + P)&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Approximations : &lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;C = 1.04858 P&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;P = 0.953674 C&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Calculated &lt;code&gt;C = -42.47&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Put a text file &lt;code&gt;/rtccalib.cfg&lt;/code&gt; in root directory of FAT drive with contents:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;-42.47&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;RTC Correction&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;rtc_correction&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;861-1186&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;update_28_5_22&quot;&gt;Update 28/5/22&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
After a period of observation the rate is now over-corrected. Try reducing correction to &lt;code&gt;-37.5&lt;/code&gt; which corresponds to a ppm error of &lt;code&gt;35.76ppm&lt;/code&gt;, or &lt;code&gt;3.26 s/d&lt;/code&gt;.
&lt;/p&gt;
&lt;div class=&quot;table sectionedit7&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Date Start&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Date Check&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Accumulated Error (s)&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Rate Error (s/d)&lt;/th&gt;&lt;th class=&quot;col4&quot;&gt;Comments&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;28/3/22 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;24/5/22 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;-0.1 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;correction applied (C=40). Uncorrected error +3.5&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;24/5/22&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;new correction C=-42.47 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;24/5/22&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;25/5/22&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;-0.3 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;new correction in wrong direction? &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;28/5/22&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;-0.3&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;still over-corrected. New factor: -37.5. DM41X reports this is a correction of -35.3ppm &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;28/5/22&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;31/5/22 &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;+0.2 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; Now under-corrected? Difference across 3 days is only 0.5 seconds, so perhaps needs longer to reduce reaction-time-error&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;28/5/22 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;28/6/22 &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; +0.1 &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;Almost 1 month later. Delta 31/5/22 = -15.7s, Delta 28/6/22 = -11.6s. +4.1s in 28 days  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;28/5/22&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 8/7/22&lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; +0.1 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;Delta -10.1s &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;28/5/22 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 21/9/22 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; + 0.2 &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt; Delta +1.2s. Still slightly under-corrected but good enough  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;28/5/22 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 15/4/23&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; -7.6 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; +0.0 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; Delta -7.6s in 322 days = 0.02 s/d &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;15/04/23 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 22/11/23 &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; +33.3   &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt; +0.2   &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 33.3s in 221 days = 0.15 s/d &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;1381-2292&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Update 28\/5\/22&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;update_28_5_22&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;1187-2293&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;update_january_2026&quot;&gt;Update January 2026&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Using my &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:watchcheck&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:watchcheck&quot; data-wiki-id=&quot;public:miscellany:watches:watchcheck&quot;&gt;python Watchcheck&lt;/a&gt;
&lt;/p&gt;
&lt;div class=&quot;table sectionedit9&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Date Start&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Date Check&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Delta&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Latest Rate Error&lt;/th&gt;&lt;th class=&quot;col4&quot;&gt;Average Rate Error&lt;/th&gt;&lt;th class=&quot;col5&quot;&gt;Comments&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;23/01/26 &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; +2.7 &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; New Period: correction-35.3ppm &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;23/01/26&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 24/01/26 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; +2.6 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; -0.1 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; -0.1 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; After 24 hours &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;23/01/26&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 26/01/26 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; +3.0 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; +0.2 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; +0.1 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; After 3 days &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;23/01/26&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 27/01/26 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; +3.2 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; +0.3 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; +0.1 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; After 4 days &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;23/01/26&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 04/02/26 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; +5.0 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; +0.2 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; +0.2 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; After 12 days &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;23/01/26&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 11/02/26 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; +6.1 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; +0.1 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; +0.2 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; After 19 days &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table2&amp;quot;,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;2393-2822&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Update January 2026&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;update_january_2026&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;2294-2824&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit10&quot; id=&quot;notes&quot;&gt;Notes&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Notes&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;notes&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;2825-2843&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit11&quot; id=&quot;complex_numbers&quot;&gt;Complex Numbers&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
For more about the &lt;code&gt;41Z&lt;/code&gt; see the separate page &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:guides:41z_module&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:guides:41z_module&quot; data-wiki-id=&quot;public:calculator:guides:41z_module&quot;&gt;DM41X 41z Module&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
I&amp;#039;m using the &lt;code&gt;41Z complex number&lt;/code&gt; module by Angel Martin to add a 4-level complex number stack. It&amp;#039;s a bit confusing at first to get to grips with, but adds a lot of functionality to the the DM41x.
&lt;/p&gt;

&lt;p&gt;
After a bit of trial and error (this is my first play with a “plug-in module” after all) I discovered the simplest way to make the keyboard function normally, and get easy access when needed to the complex functions, was to assign a USER key (usually the statistics summation key &lt;code&gt;∑+&lt;/code&gt; to the 41Z module function &lt;code&gt;∑ZL&lt;/code&gt;. 
&lt;/p&gt;

&lt;p&gt;
Each press of &lt;code&gt;∑+&lt;/code&gt; now temporarily modifies all the keys to access specific 41Z functions. The functions available are extensive, through the use of the &lt;kbd class=&quot;__keyboard&quot;&gt;SHIFT&lt;/kbd&gt; key and by multiple presses of the &lt;code&gt;∑+&lt;/code&gt; (henceforth referred to as  &lt;code&gt;Z&lt;/code&gt;) key. 
&lt;/p&gt;

&lt;p&gt;
I drew out a diagram to show the various functions available. 
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Acalculator%3Ainfo%3Adm41x_info&amp;amp;media=public:calculator:2022-02-18_23.03.17.jpg&quot; class=&quot;media&quot; title=&quot;public:calculator:2022-02-18_23.03.17.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=400&amp;amp;tok=edcd4e&amp;amp;media=public:calculator:2022-02-18_23.03.17.jpg&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Once a selection is made the keyboard switches back to its normal behaviour, so all the usual functionality is available.
&lt;/p&gt;

&lt;p&gt;
Most of these are unlikely to be used often - and it&amp;#039;s also possible to make a much narrow selection of 41Z functions and make your own &lt;code&gt;USER&lt;/code&gt; assignments, rather than use the &lt;code&gt;∑ZL&lt;/code&gt; keyboard - although this might mean you block access to inbuilt functions you might want - which would mean switching out of USER keyboard mode at times. At the moment the &lt;code&gt;∑ZL&lt;/code&gt; option seems the most versatile.
&lt;/p&gt;

&lt;p&gt;
Many of the 41Z functions available are beyond my pay grade and unlikely to ever find a use, but the Complex Keyboard still makes things much easier to deal with.
&lt;/p&gt;

&lt;p&gt;
For example the two keypresses:
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt;  &lt;kbd class=&quot;__keyboard&quot;&gt;1\x&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
is much easier than the 7 it would otherwise need to invert a complex number 
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ALPHA&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;I&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;N&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;V&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ALPHA&lt;/kbd&gt;
I need to practice finding the right function (the main ones printed on the keyboard as well as the new ones provided by 41Z&amp;#039;s &lt;code&gt;∑ZL&lt;/code&gt; keyboard, but my fingers are slowly starting to move in the right direction.
&lt;/p&gt;

&lt;p&gt;
One thing I do notice, though, as that due to the need to press various keys (&lt;code&gt;XEQ, ALPHA, SHIFT&lt;/code&gt; etc) it&amp;#039;s sometimes possible to make a real mess if you miss a vital key in the middle of entering lots of data &amp;amp; instructions and find your stack totally screwed up, or several lines of program code full of nonsense….  
&lt;/p&gt;

&lt;p&gt;
I&amp;#039;m sure it&amp;#039;ll all become second nature soon enough.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Acalculator%3Ainfo%3Adm41x_info&amp;amp;media=public:calculator:2022-02-18_23.42.07.jpg&quot; class=&quot;media&quot; title=&quot;public:calculator:2022-02-18_23.42.07.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=300&amp;amp;tok=cf5ef2&amp;amp;media=public:calculator:2022-02-18_23.42.07.jpg&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Acalculator%3Ainfo%3Adm41x_info&amp;amp;media=public:calculator:2022-02-18_23.41.20.jpg&quot; class=&quot;media&quot; title=&quot;public:calculator:2022-02-18_23.41.20.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=300&amp;amp;tok=aafcc6&amp;amp;media=public:calculator:2022-02-18_23.41.20.jpg&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;hr /&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Complex Numbers&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;complex_numbers&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;2844-5684&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit12&quot; id=&quot;hp16c_emulator_module&quot;&gt;HP16C Emulator module&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
This is another interesting module to add the functionality of the HP16C - the &lt;strong&gt;Programmer&amp;#039;s Calculator&lt;/strong&gt; designed to handle calculations in various mathematical bases as used in computer programming and networking : Binary, Octal, Hexadecimal and Decimal. I adds much more value than the rather basic functions in the &lt;em&gt;Advantage Pac&lt;/em&gt; module.
&lt;/p&gt;

&lt;p&gt;
After much trial and error I found a combination of HP16C module and &lt;em&gt;Library 4&lt;/em&gt; library that worked correctly. The &lt;code&gt;HP16C&lt;/code&gt; module &lt;em&gt;needs&lt;/em&gt; the &lt;code&gt;Library 4&lt;/code&gt; module, but I found some problems with different versions. Using the versions contained in the &lt;em&gt;Swiss Micros&lt;/em&gt; package had a weird bug - the &lt;strong&gt;16* &lt;/strong&gt; (multiplication) function simply didn&amp;#039;t work. I found a post by Angel Martin on the HP Calculator Forum with a ZIP file containing the 2 modules that &lt;em&gt;&lt;strong&gt;worked&lt;/strong&gt;&lt;/em&gt; correctly.
&lt;/p&gt;

&lt;p&gt;
Here is the zip file : &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:hp-16c_rev.1a.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:hp-16c_rev.1a.zip (19.5 KB)&quot;&gt;hp-16c_rev.1a.zip&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
I&amp;#039;ll make a separate guide to using the main features here &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:guides:hp16c_emulator&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:guides:hp16c_emulator&quot; data-wiki-id=&quot;public:calculator:guides:hp16c_emulator&quot;&gt;DM41X HP16C Module&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;HP16C Emulator module&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hp16c_emulator_module&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;5685-6728&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit13&quot; id=&quot;guides&quot;&gt;Guides&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:guides:start&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:guides:start&quot; data-wiki-id=&quot;public:calculator:guides:start&quot;&gt;Hints &amp;amp; Tips&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Guides&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;guides&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;6729-6787&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit14&quot; id=&quot;swiss_micros_info&quot;&gt;Swiss Micros Info&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Firmware      : &lt;a href=&quot;https://technical.swissmicros.com/dm41x/firmware/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://technical.swissmicros.com/dm41x/firmware/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://technical.swissmicros.com/dm41x/firmware/&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Documentation : &lt;a href=&quot;https://technical.swissmicros.com/dm41x/doc/dm41x_user_manual.html&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://technical.swissmicros.com/dm41x/doc/dm41x_user_manual.html&quot; rel=&quot;ugc nofollow noopener&quot;&gt;Online User Manual&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Documentation : &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:dm41x_user_manual.pdf&quot; class=&quot;media mediafile mf_pdf&quot; title=&quot;public:calculator:info:dm41x_user_manual.pdf (1.2 MB)&quot;&gt; PDF Manual&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Product Page  : &lt;a href=&quot;https://www.swissmicros.com/product/dm41x&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.swissmicros.com/product/dm41x&quot; rel=&quot;ugc nofollow noopener&quot;&gt;DM41X&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Swiss Micros Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;swiss_micros_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;6788-7160&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit15&quot; id=&quot;issues&quot;&gt;Issues&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Arrived new with a speck of dirt behind the glass in front of the LCD. &lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Able to remove by carefully prising the glass from its bezel (it&amp;#039;s held in with double-sided tape)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Issues&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;issues&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;7161-7362&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit16&quot; id=&quot;z_deluxe_module&quot;&gt;41Z Deluxe Module&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_895bd392576554e817cf2ced8edce012_1&quot;&gt;Weird behaviour with its &amp;quot;common factor&amp;quot; display &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_895bd392576554e817cf2ced8edce012_1&quot;&gt;&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; A number such as &lt;code&gt;10 + j 1&lt;/code&gt; &lt;em&gt;displays&lt;/em&gt; as &lt;code&gt;10(1 + j)&lt;/code&gt; which is &lt;strong&gt;wrong&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; example:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;( 5 + j 10 ) + ( 45 - j 5 ) &lt;/code&gt; is really &lt;code&gt;( 50 + j 5)&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; calculator displays &lt;code&gt;50(1 + j)&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; the actual numbers in the registers are correct (50 for Real in X and 5 for imaginary in Y) but the answer displayed as &lt;code&gt;50( 1 + j )&lt;/code&gt; is badly misleading.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; doing further calculations with the number on the stack is correct, as long as the answer doesn&amp;#039;t have the same display-factorisation bug to mislead you. The only way to be sure is to look at the underlying X and Y stack registers. This spoils the nice &lt;code&gt;ALPHA&lt;/code&gt; display of complex numbers, though.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; it appears whenever the real and imaginary numbers are related by factors of 10 (e.g. 5 and 50, 2 and 20, 3 and 3000, 25 and 250)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;em class=&quot;u&quot;&gt;My&lt;/em&gt; Solution is to abandon the &lt;code&gt;deluxe&lt;/code&gt; module and revert to a previous version, &lt;em class=&quot;u&quot;&gt;not deluxe&lt;/em&gt; : &lt;code&gt;HP41Z Complex Number Module&lt;/code&gt; version &lt;code&gt;4L&lt;/code&gt; and the appropriate &lt;code&gt;library4&lt;/code&gt; module.&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; This module seems to handle the &lt;code&gt;common factor&lt;/code&gt; display correctly. &lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; it &lt;strong&gt;does not&lt;/strong&gt; show &lt;code&gt;50 + j 5&lt;/code&gt; as &lt;code&gt;50( 1 + j )&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; it &lt;strong&gt;does&lt;/strong&gt; show &lt;code&gt;50 + j 50 &lt;/code&gt; as &lt;code&gt;50( 1 + j )&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; It requires a different &lt;code&gt;USER KEY&lt;/code&gt; assignment:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
 &lt;kbd class=&quot;__keyboard&quot;&gt;SHIFT&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ASN&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ALPHA&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;K&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;B&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;R&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;D&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ALPHA&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;Σ+&lt;/kbd&gt;
&lt;/p&gt;

&lt;h4&gt;Module files that work (for me)&lt;/h4&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:41z.mod&quot; class=&quot;media mediafile mf_mod&quot; title=&quot;public:calculator:info:41z.mod (10.8 KB)&quot;&gt;41z.mod&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:library4.mod&quot; class=&quot;media mediafile mf_mod&quot; title=&quot;public:calculator:info:library4.mod (5.8 KB)&quot;&gt;library4.mod&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; See &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:guides:41z_module&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:guides:41z_module&quot; data-wiki-id=&quot;public:calculator:guides:41z_module&quot;&gt;DM41X 41z Module&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;update_september_2024&quot;&gt;Update September 2024&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
The factorization error in the &lt;code&gt;deluxe&lt;/code&gt; version has been fixed by Angel…. 
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://forum.swissmicros.com/viewtopic.php?f=26&amp;amp;t=4029&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://forum.swissmicros.com/viewtopic.php?f=26&amp;amp;t=4029&quot; rel=&quot;ugc nofollow noopener&quot;&gt; Swiss Micros forum discussion about the issue &lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; the fixed version &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:41z_bs_2x2_2_.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:41z_bs_2x2_2_.zip (16 KB)&quot;&gt;41z_bs_2x2_2_.zip&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; My page &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:guides:41z_module&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:guides:41z_module&quot; data-wiki-id=&quot;public:calculator:guides:41z_module&quot;&gt;DM41X 41z Module&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;41Z Deluxe Module&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;z_deluxe_module&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:16,&amp;quot;range&amp;quot;:&amp;quot;7363-9380&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit17&quot; id=&quot;dm41x_program_listings&quot;&gt;DM41X Program Listings&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; See &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:progs:dm41x_progs&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:progs:dm41x_progs&quot; data-wiki-id=&quot;public:calculator:progs:dm41x_progs&quot;&gt;DM41X Progs&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DM41X Program Listings&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dm41x_program_listings&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:17,&amp;quot;range&amp;quot;:&amp;quot;9381-9467&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit18&quot; id=&quot;hp-41cx_owner_s_manuals&quot;&gt;HP-41CX Owner&amp;#039;s Manuals&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Download from &lt;a href=&quot;https://literature.hpcalc.org&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://literature.hpcalc.org&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://literature.hpcalc.org&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HP-41CX Owner&amp;#039;s Manual Vol. 1 : &lt;a href=&quot;https://literature.hpcalc.org/community/hp41cx-om-vol1-en.pdf&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://literature.hpcalc.org/community/hp41cx-om-vol1-en.pdf&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://literature.hpcalc.org/community/hp41cx-om-vol1-en.pdf&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HP-41CX Owner&amp;#039;s Manual Vol. 2 : &lt;a href=&quot;https://literature.hpcalc.org/community/hp41cx-om-vol2-en.pdf&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://literature.hpcalc.org/community/hp41cx-om-vol2-en.pdf&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://literature.hpcalc.org/community/hp41cx-om-vol2-en.pdf&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HP-41CX Quick Reference Guide : &lt;a href=&quot;https://literature.hpcalc.org/community/hp41cx-qrg-en.pdf&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://literature.hpcalc.org/community/hp41cx-qrg-en.pdf&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://literature.hpcalc.org/community/hp41cx-qrg-en.pdf&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Page Updated : 13/04/26 19:35 BST
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:calculator&amp;amp;do=showtag&amp;amp;tag=calculator&quot; class=&quot;wikilink1&quot; title=&quot;tag:calculator&quot; rel=&quot;tag&quot;&gt;calculator&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:dm41x&amp;amp;do=showtag&amp;amp;tag=dm41x&quot; class=&quot;wikilink1&quot; title=&quot;tag:dm41x&quot; rel=&quot;tag&quot;&gt;dm41x&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;HP-41CX Owner&amp;#039;s Manuals&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hp-41cx_owner_s_manuals&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:18,&amp;quot;range&amp;quot;:&amp;quot;9468-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 13 Apr 2026 18:35:30 +0000</pubDate>
        </item>
        <item>
            <title>Sandbox Server</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:sandbox_server</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:start&quot; class=&quot;wikilink1&quot; title=&quot;public:computers:archive:start&quot; data-wiki-id=&quot;public:computers:archive:start&quot;&gt;Archive&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;sandbox_server&quot;&gt;Sandbox Server&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; UPDATE — &lt;em&gt;John Pumford-Green 04/03/25 08:02 GMT&lt;/em&gt; &lt;/strong&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteclassic&quot;&gt;The hardware running this little machine has recently become unreliable, the SSD is dying, so I&amp;#039;ve turned it off. I&amp;#039;ll leave any old information about this box for future reference

&lt;/div&gt;
&lt;p&gt;
&lt;strong&gt; UPDATE — &lt;em&gt;John Pumford-Green 27/04/23 06:16&lt;/em&gt; &lt;/strong&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteclassic&quot;&gt;I have removed the self-signed SSL configuration on the shack &lt;em&gt;sandbox&lt;/em&gt; server and reverted it to plain HTTP.
I may re-instate it at some point in the future, but I decided I didn&amp;#039;t want the hassle of persuading Chrome to accept the self-signed &lt;em&gt;unsafe&lt;/em&gt; certificate all the time.
&lt;p&gt;
The details below show how it was originally set up, and can be used in future should I decide to repeat the process.
&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Sandbox Server&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;sandbox_server&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-779&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;encryption&quot;&gt;Encryption&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
The shack webserver has a mirror of my &lt;em&gt;real&lt;/em&gt; dokuwiki, to use as a test-bed and after setting it up I discovered that the encryption plugin I was using on the &lt;em&gt;real&lt;/em&gt; wiki &lt;a href=&quot;https://www.dokuwiki.org/plugin:encryptedpasswords&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.dokuwiki.org/plugin:encryptedpasswords&quot; rel=&quot;ugc nofollow noopener&quot;&gt;Encrypted Passwords Plugin&lt;/a&gt; didn&amp;#039;t work.
&lt;/p&gt;

&lt;p&gt;
After some head scratching, and after trying out another plugin (dokucrypt2 plugin), I figured out the difference between the 2 web servers….
&lt;/p&gt;

&lt;p&gt;
The &lt;em&gt;real&lt;/em&gt; server is configured to do proper HTTPS, with a real, signed SSL certificate. The shack server only does plain old HTTP, no encryption.
&lt;/p&gt;

&lt;p&gt;
To test out my theory that this is what was &lt;em&gt;breaking&lt;/em&gt; Encrypted Password Plugin I setup self-signed SSL on the shack webserver. It&amp;#039;s just for local testing so there&amp;#039;s no need for traceable certification, just the ability to handle HTTPS traffic.
&lt;/p&gt;

&lt;p&gt;
It turned out to be quite simple….
&lt;/p&gt;

&lt;p&gt;
I found the information here : &lt;a href=&quot;https://www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl-certificate-for-apache-in-ubuntu-16-04&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl-certificate-for-apache-in-ubuntu-16-04&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.digitalocean.com/community/tutorials/how-to-create-a-self-signed-ssl-certificate-for-apache-in-ubuntu-16-04&lt;/a&gt;
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;shack:~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ssl_setup$ &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; openssl req &lt;span class=&quot;re5&quot;&gt;-x509&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-nodes&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-days&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;365&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-newkey&lt;/span&gt; rsa:&lt;span class=&quot;nu0&quot;&gt;2048&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-keyout&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ssl&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;private&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;apache-selfsigned.key &lt;span class=&quot;re5&quot;&gt;-out&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ssl&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;certs&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;apache-selfsigned.crt
Generating a RSA private key
.......................+++++
...........+++++
writing new private key to &lt;span class=&quot;st_h&quot;&gt;&#039;/etc/ssl/private/apache-selfsigned.key&#039;&lt;/span&gt;
&lt;span class=&quot;re5&quot;&gt;-----&lt;/span&gt;
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter &lt;span class=&quot;st_h&quot;&gt;&#039;.&#039;&lt;/span&gt;, the field will be left blank.
&lt;span class=&quot;re5&quot;&gt;-----&lt;/span&gt;
Country Name &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; letter code&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;AU&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;:GB
State or Province Name &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;full name&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Some-State&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;:Shetland
Locality Name &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;eg, city&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;:Clousta
Organization Name &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;eg, company&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Internet Widgits Pty Ltd&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;:GM4SLV
Organizational Unit Name &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;eg, section&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;:GM4SLV
Common Name &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;e.g. server FQDN or YOUR name&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;:shack
Email Address &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;:&lt;/pre&gt;

&lt;p&gt;
The certificates are put in the directories already pointed to in the default SSL site config file so all I had to do was tell apache to enable ssl 
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; a2enmod ssl&lt;/pre&gt;

&lt;p&gt;
and enable the default SSL site
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;shack:&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;apache2&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sites-enabled$ &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; a2ensite default-ssl.conf
Enabling site default-ssl.
To activate the new configuration, you need to run:
  systemctl reload apache2
gm4slv&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;shack:&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;apache2&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sites-enabled$ &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; service apache2 restart&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Encryption&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;encryption&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;780-3302&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;ssl_enabled&quot;&gt;SSL enabled&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Browse to &lt;a href=&quot;https://shack/dokuwiki&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://shack/dokuwiki&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://shack/dokuwiki&lt;/a&gt; and I got the usual dire Chrome warning
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:computers:screenshot_2022-05-30_19.19.16.png&quot; class=&quot;media&quot; title=&quot;public:computers:screenshot_2022-05-30_19.19.16.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=400&amp;amp;tok=aa13cc&amp;amp;media=public:computers:screenshot_2022-05-30_19.19.16.png&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
…. but chose to continue anyway…
&lt;/p&gt;

&lt;p&gt;
and it works!
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:computers:screenshot_2022-05-30_19.15.26.png&quot; class=&quot;media&quot; title=&quot;public:computers:screenshot_2022-05-30_19.15.26.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=400&amp;amp;tok=863cab&amp;amp;media=public:computers:screenshot_2022-05-30_19.15.26.png&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;SSL enabled&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;ssl_enabled&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;3303-3600&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;encrypted_password_plugin&quot;&gt;Encrypted Password Plugin&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Then I tested the Encrypted Passwords Plugin and &lt;strong&gt; it also works &lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
UPDATE— &lt;em&gt;John Pumford-Green 31/05/22 21:13&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
The &lt;a href=&quot;https://www.dokuwiki.org/plugin:encryptedpasswords&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.dokuwiki.org/plugin:encryptedpasswords&quot; rel=&quot;ugc nofollow noopener&quot;&gt;plugin page&lt;/a&gt; does say that HTTPS is needed:
&lt;/p&gt;
&lt;blockquote&gt;&lt;div class=&quot;no&quot;&gt;
 Please note that the modern encryption mechanisms used within this Plugin require a modern Browser, JavaScript enabled and a wiki served via HTTPS!&lt;/div&gt;&lt;/blockquote&gt;

&lt;/div&gt;

&lt;h4 id=&quot;result&quot;&gt;Result!&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
I can now use the &lt;em&gt;sandbox&lt;/em&gt; wiki to test everything that&amp;#039;s running on the &lt;em&gt;real&lt;/em&gt; wiki server.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;redirect_to_https&quot;&gt;Redirect to https&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
(&lt;strong&gt;UPDATE&lt;/strong&gt; — &lt;em&gt;John Pumford-Green 31/05/22 10:08&lt;/em&gt;)
&lt;/p&gt;

&lt;p&gt;
edit 
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;/etc/apache2/sites-enabled/000-default.conf&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
to add 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;ServerName gm4slv.plus.com
Redirect permanent / https://gm4slv.plus.com/&lt;/pre&gt;

&lt;p&gt;
Open &amp;amp; forward router&amp;#039;s port TCP/443 to the shack webserver
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;sudo service apache2 restart&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Hey presto - external access to HTTPS 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Encrypted Password Plugin&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;encrypted_password_plugin&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;3601-4503&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;page_info&quot;&gt;Page Info&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 30/05/22 19:05&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Page last updated: 30/12/25 09:55 GMT
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:ssl&amp;amp;do=showtag&amp;amp;tag=ssl&quot; class=&quot;wikilink1&quot; title=&quot;tag:ssl&quot; rel=&quot;tag&quot;&gt;ssl&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:apache&amp;amp;do=showtag&amp;amp;tag=apache&quot; class=&quot;wikilink1&quot; title=&quot;tag:apache&quot; rel=&quot;tag&quot;&gt;apache&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:dokuwiki&amp;amp;do=showtag&amp;amp;tag=dokuwiki&quot; class=&quot;wikilink1&quot; title=&quot;tag:dokuwiki&quot; rel=&quot;tag&quot;&gt;dokuwiki&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Page Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;page_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;4504-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 30 Dec 2025 09:55:07 +0000</pubDate>
        </item>
        <item>
            <title>DokuWiki Tweaks</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:dokuwiki:dokuwiki_tweaks</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:dokuwiki:start&quot; class=&quot;wikilink1&quot; title=&quot;public:computers:dokuwiki:start&quot; data-wiki-id=&quot;public:computers:dokuwiki:start&quot;&gt;Dokuwiki&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;dokuwiki_tweaks&quot;&gt;DokuWiki Tweaks&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DokuWiki Tweaks&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dokuwiki_tweaks&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;16-46&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;hide_revisions_and_page_source_for_not-admin_in_users&quot;&gt;Hide Revisions and Page Source for not-ADMIN in Users&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Edit &lt;code&gt;../lib/tpl/monobook/conf/tabs.php&lt;/code&gt; to add the check of &lt;code&gt;AUTH_ADMIN&lt;/code&gt; for the tabs for Page Source and Revisions
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;a target=&quot;_BLANK&quot; href=&quot;http://www.php.net/empty&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$INFO&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;exists&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$_monobook_tabs&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;ca-edit&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;text&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$lang&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;btn_edit&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;//language comes from DokuWiki core&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
                &lt;span class=&quot;re0&quot;&gt;$_monobook_tabs&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;ca-edit&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;text&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$lang&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;btn_create&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;//language comes from DokuWiki core&lt;/span&gt;
            &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;elseif&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;actionOK&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;source&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;auth_quickaclcheck&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$ID&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; AUTH_ADMIN&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;//check if action is disabled and also that AUTH_ADMIN is logged in&lt;/span&gt;
        &lt;span class=&quot;re0&quot;&gt;$_monobook_tabs&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;ca-edit&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;text&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;      &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$lang&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;btn_source&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;//language comes from DokuWiki core&lt;/span&gt;
        &lt;span class=&quot;re0&quot;&gt;$_monobook_tabs&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;ca-edit&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;accesskey&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;E&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;//old versions/revisions tab&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;a target=&quot;_BLANK&quot; href=&quot;http://www.php.net/empty&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;empty&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$INFO&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;exists&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;
            actionOK&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;revisions&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;auth_quickaclcheck&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$ID&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; AUTH_ADMIN&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;// check AUTH_ADMIN is logged in to see old revisions&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;//check if action is disabled&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;//ATTENTION: &amp;quot;ca-history&amp;quot; is used as css id selector!&lt;/span&gt;
        &lt;span class=&quot;re0&quot;&gt;$_monobook_tabs&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;ca-history&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;text&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;      &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$lang&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;btn_revs&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;//language comes from DokuWiki core&lt;/span&gt;
        &lt;span class=&quot;re0&quot;&gt;$_monobook_tabs&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;ca-history&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;href&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;      &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; wl&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;cleanID&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;getId&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;a target=&quot;_BLANK&quot; href=&quot;http://www.php.net/array&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;do&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;revisions&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;amp;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;re0&quot;&gt;$_monobook_tabs&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;ca-history&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;accesskey&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;O&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$ACT&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;revisions&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;//$ACT comes from DokuWiki core&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$_monobook_tabs&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;ca-history&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;class&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;selected&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Hide Revisions and Page Source for not-ADMIN in Users&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hide_revisions_and_page_source_for_not-admin_in_users&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;47-1607&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;include_blog_read_more&quot;&gt;Include / Blog &amp;quot;Read More...&amp;quot;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The default is for a “read more…” link to be placed at the extreme right of the page - which is not ideal when using Monobook template.
&lt;/p&gt;

&lt;p&gt;
I found the css setting that controls the position of “read more…” in &lt;code&gt;../lib/plugins/include/style.css&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code css&quot;&gt;div&lt;span class=&quot;re1&quot;&gt;.dokuwiki&lt;/span&gt; p&lt;span class=&quot;re1&quot;&gt;.include_readmore&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;text-align&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;right&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
changing it to 
&lt;/p&gt;
&lt;pre class=&quot;code css&quot;&gt;div&lt;span class=&quot;re1&quot;&gt;.dokuwiki&lt;/span&gt; p&lt;span class=&quot;re1&quot;&gt;.include_readmore&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;text-align&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;left&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
solved the problem and “read more…” is now on the left, directly at the point that the eyes get to when reading a post on the main blog index page.
&lt;/p&gt;

&lt;p&gt;
To prevent this being overwritten on updates I found it works to put the same stanza in &lt;code&gt;../conf/userstyle.css&lt;/code&gt; which should keep it safe…
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Include \/ Blog \&amp;quot;Read More...\&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;include_blog_read_more&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1608-2366&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;vector_monobook_tweaks&quot;&gt;Vector / Monobook tweaks&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
I like the Vector and Monobook templates, very similar feel to Wikipedia
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Vector \/ Monobook tweaks&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;vector_monobook_tweaks&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;2367-2478&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;logout_errors_with_later_versions_of_dokuwiki&quot;&gt;Logout errors with later versions of Dokuwiki&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
After upgrading Dokuwiki to &lt;em&gt;Igor&lt;/em&gt; it became impossible to log out due to a warning 
&lt;/p&gt;
&lt;div class=&quot;plugin_note notewarning&quot;&gt;Security Token did not match. Possible CSRF attack.

&lt;/div&gt;
&lt;p&gt;
I initially ignored it but then downgraded back to &lt;em&gt;Hogfather&lt;/em&gt; as there seemed to be no fix - other than to use a different template.
&lt;/p&gt;

&lt;p&gt;
I recently upgraded to the latest Dokuwiki (Jack Jackrum), and upgraded all plugins and templates where possible. However the problem with logout with Vector and Monobook re-appeared.
&lt;/p&gt;

&lt;p&gt;
I found there was a fix described on the forum:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://forum.dokuwiki.org/d/20248-security-token-did-not-match-possible-csrf-attack-cannot-log-out&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://forum.dokuwiki.org/d/20248-security-token-did-not-match-possible-csrf-attack-cannot-log-out&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://forum.dokuwiki.org/d/20248-security-token-did-not-match-possible-csrf-attack-cannot-log-out&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
and the cure is to edit the appropriate line in &lt;code&gt;main.php&lt;/code&gt; for each template, as the author seems not to be maintaining these templates any more, at least not the official ones accessed via Dokuwiki&amp;#039;s Template/Extension installer. The github repository shows that the fix has been applied to &lt;code&gt;Vector&lt;/code&gt;, and a pull request submitted to fix &lt;code&gt;Monobook&lt;/code&gt;, the fixes haven&amp;#039;t appeared in the official versions. 
&lt;/p&gt;

&lt;p&gt;
The &lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/images/smileys/fixme.svg&quot; class=&quot;icon smiley&quot; alt=&quot;FIXME&quot; /&gt; does work, though…
&lt;/p&gt;

&lt;p&gt;
For Vector edit &lt;code&gt;/var/www/html/dokuwiki/lib/tpl/vector/main.php&lt;/code&gt; to add &lt;code&gt;, &amp;#039;sectok&amp;#039; ⇒ getSecurityToken()&lt;/code&gt; in the &lt;code&gt;array&lt;/code&gt; statement after &lt;code&gt;“do” ⇒ “logout”&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt;  &lt;span class=&quot;st0&quot;&gt;&amp;quot;      &amp;lt;li id=&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;pt-logout&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;a href=&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;wl&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;cleanID&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;getId&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;a target=&quot;_BLANK&quot; href=&quot;http://www.php.net/array&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;do&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;logout&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;sectok&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; getSecurityToken&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt; rel=&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;nofollow&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;&amp;gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;hsc&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$lang&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;btn_logout&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;//language comes from DokuWiki core&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
and the same for &lt;code&gt;Monobook&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt;  &lt;span class=&quot;st0&quot;&gt;&amp;quot;          &amp;lt;li id=&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;pt-logout&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;a href=&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;wl&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;cleanID&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;getId&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;a target=&quot;_BLANK&quot; href=&quot;http://www.php.net/array&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;do&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;logout&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;sectok&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; getSecurityToken&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt; rel=&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;nofollow&lt;span class=&quot;es1&quot;&gt;\&amp;quot;&lt;/span&gt;&amp;gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;hsc&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$lang&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;btn_logout&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;span class=&quot;es1&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;//language comes from DokuWiki core&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Logout errors with later versions of Dokuwiki&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;logout_errors_with_later_versions_of_dokuwiki&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;2479-4309&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;monospace_font&quot;&gt;Monospace font&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
I found the style applied to &lt;code&gt;monospace&lt;/code&gt; text was a little underwhelming. 
&lt;/p&gt;

&lt;p&gt;
I found the place to change it:
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt; /var/www/html/dokuwiki/lib/tpl/{vector|monobook}/user/screen.css &lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
add the the following and adjust as needed:
&lt;/p&gt;
&lt;pre class=&quot;code css&quot;&gt;div#&lt;span class=&quot;kw2&quot;&gt;content&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;.dokuwiki&lt;/span&gt; code &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;100%&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;padding-left&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;5px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;padding-right&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;5px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;background-color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#eee&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#00f&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;direction&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ltr&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;text-align&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;left&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Monospace font&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;monospace_font&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;4310-4758&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;footer_buttons&quot;&gt;Footer Buttons&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Remove the default footer buttons by editing &lt;code&gt;{vector|monobook}/user/buttons.php&lt;/code&gt; and adding
&lt;/p&gt;
&lt;div class=&quot;plugin_note notetip&quot;&gt;For Monobook, change to &lt;pre class=&quot;code&quot;&gt;$_monobook_btns = array();&lt;/pre&gt;

&lt;/div&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;co1&quot;&gt;//delete all (defaults)&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$_vector_btns&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a target=&quot;_BLANK&quot; href=&quot;http://www.php.net/array&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
this suppresses the inclusion of footer buttons from &lt;code&gt;vector/conf/buttons.php&lt;/code&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;add_just_the_dokuwiki_and_vector_monobook_buttons&quot;&gt;Add just the Dokuwiki and Vector/Monobook Buttons&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Edit &lt;code&gt;{vector|monobook}/user/buttons.php&lt;/code&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note notetip&quot;&gt;Swap &lt;code&gt;monobook&lt;/code&gt; for &lt;code&gt;vector&lt;/code&gt; as appropriate

&lt;/div&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;//check if we are running within the DokuWiki environment&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;a target=&quot;_BLANK&quot; href=&quot;http://www.php.net/defined&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;defined&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;DOKU_INC&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;a target=&quot;_BLANK&quot; href=&quot;http://www.php.net/die&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;die&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;//delete all (defaults)&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$_vector_btns&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;a target=&quot;_BLANK&quot; href=&quot;http://www.php.net/array&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;  
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;//note: The buttons will be rendered in the order they were defined. Means:&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;//      first button will be rendered first, last button will be rendered at&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;//      last.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;//DokuWiki button&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$_vector_btns&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;dw&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;img&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;      &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; DOKU_TPL&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;static/img/button-dw.png&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$_vector_btns&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;dw&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;href&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;     &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;https://www.dokuwiki.org/&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$_vector_btns&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;dw&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;width&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;    &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;80&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$_vector_btns&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;dw&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;height&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;   &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$_vector_btns&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;dw&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;title&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;    &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;DokuWiki&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$_vector_btns&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;dw&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;nofollow&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;cleanID&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;getID&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;start&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;//&amp;quot;vector for DokuWiki&amp;quot; button&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$_vector_btns&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;vecfdw&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;img&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;      &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; DOKU_TPL&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;static/img/button-vector.png&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$_vector_btns&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;vecfdw&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;href&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;     &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;https://www.dokuwiki.org/template:vector&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$_vector_btns&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;vecfdw&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;width&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;    &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;80&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$_vector_btns&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;vecfdw&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;height&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;   &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$_vector_btns&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;vecfdw&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;title&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;    &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$lang&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;vector_mdtemplatefordw&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$_vector_btns&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;vecfdw&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;nofollow&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;cleanID&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;getID&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;===&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;start&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Footer Buttons&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;footer_buttons&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:6,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;4759-6393&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;symbol_chooser_font_size&quot;&gt;Symbol Chooser font size&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
The drop-down picker for choosing a symbol to insert in the text being edited is very small in Monobook as standard.
&lt;/p&gt;

&lt;p&gt;
It&amp;#039;s controlled by the &lt;code&gt;pickerbutton&lt;/code&gt; class and is set at &lt;code&gt;80%&lt;/code&gt; in the standard &lt;code&gt;monobook&lt;/code&gt; css.
&lt;/p&gt;

&lt;p&gt;
It&amp;#039;s adjusted thus (to 1.2em) and some extra margin added around the symbols:
&lt;/p&gt;

&lt;p&gt;
button.pickerbutton {
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;padding: 0px;
margin: 2px 2px 2px 2px;
border: 0;
background-color: transparent;
font-size: 1.2em;
cursor: pointer;&lt;/pre&gt;

&lt;p&gt;
}
&lt;/p&gt;

&lt;p&gt;
Put this in &lt;code&gt;user/screen.css&lt;/code&gt; with all the other tweaks.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Symbol Chooser font size&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;symbol_chooser_font_size&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;6394-6944&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;mobile_scaling&quot;&gt;Mobile Scaling&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
The layout on a phone isn&amp;#039;t too good, and can&amp;#039;t be zoomed/scaled. 
&lt;/p&gt;

&lt;p&gt;
I found this thread:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://forum.dokuwiki.org/d/12469-vector-template-doesn-t-display-correctly-on-mobile-devices/6&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://forum.dokuwiki.org/d/12469-vector-template-doesn-t-display-correctly-on-mobile-devices/6&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://forum.dokuwiki.org/d/12469-vector-template-doesn-t-display-correctly-on-mobile-devices/6&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
and applied the comment-out of the line :
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;co1&quot;&gt;//echo &amp;quot;&amp;lt;meta name=\&amp;quot;viewport\&amp;quot; content=\&amp;quot;width=device-width,initial-scale=1\&amp;quot; /&amp;gt;&amp;quot;;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
in &lt;code&gt;main.php&lt;/code&gt; and &lt;code&gt;mediamanager.php&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
the page now scales/zooms okay to make it useable on a phone.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Mobile Scaling&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;mobile_scaling&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;6945-7417&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit10&quot; id=&quot;monobook_user_screencss&quot;&gt;Monobook user/screen.css&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code css&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;/* Give sidebar more space.
&amp;nbsp;
   Default widths:
   - 12.2em as left spacer for the content area. This example is using 14.2em
     instead.
   - 11.6em as sidebar width. This example is using 13.6em instead.
   - 10.9em as width for the search input field. This example is using 12.9em
     instead.
   - 150px as left spacer for the Ajax searchbox. This example is using 180px.
*/&lt;/span&gt;
&lt;span class=&quot;coMULTI&quot;&gt;/* move content container more to the right */&lt;/span&gt;
#&lt;span class=&quot;kw2&quot;&gt;content&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;margin&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;2.8em&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;14.2em&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;#column-content&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;margin&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;.6em&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;-14.2em&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;#column-content&lt;/span&gt; #&lt;span class=&quot;kw2&quot;&gt;content&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;margin-left&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;14.2em&lt;/span&gt; !important&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;coMULTI&quot;&gt;/* adjustment for  IE (7) */&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;coMULTI&quot;&gt;/* redefine sidebar width + tab bar position */&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.portlet&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;13.6em&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;#p-cactions&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;left&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;13.6em&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;coMULTI&quot;&gt;/* tab bar */&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;coMULTI&quot;&gt;/* search input field */&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;#qsearch__in&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;11.5em&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;coMULTI&quot;&gt;/* ajax &amp;quot;matching pagename&amp;quot; searchbox */&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;#qsearch__out&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;left&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;180px&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
div&lt;span class=&quot;re1&quot;&gt;.dokuwiki&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#dw__toc&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;margin&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1.2em&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;2em&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;right&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;200px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; 
  &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;100%&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;clear&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;both&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;background-color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; __background__&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; 
&amp;nbsp;
div#&lt;span class=&quot;kw2&quot;&gt;content&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;.dokuwiki&lt;/span&gt; code &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1.1em&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;padding-left&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;5px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;padding-right&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;5px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;background-color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#eee&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#22f&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;direction&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ltr&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;text-align&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;left&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;white-space&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;pre&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
div#&lt;span class=&quot;kw2&quot;&gt;content&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;.dokuwiki&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;pre&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;5px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;background-color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#faffff&lt;/span&gt; !important&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
button&lt;span class=&quot;re1&quot;&gt;.pickerbutton&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;0px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;margin&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;2px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;2px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;2px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;2px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;background-color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;transparent&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1.2em&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;cursor&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;pointer&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.pBody&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1.1em&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;padding-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1em&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;#bodyContent&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
	&lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1.1em&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
kbd&lt;span class=&quot;re1&quot;&gt;.__keyboard&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#0000ff&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;background-color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#defede&lt;/span&gt; !important&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;text-align&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;center&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;border-left&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#cfcfcf&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;border-top&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#cfcfcf&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;border-right&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;3px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#666666&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;border-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;3px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#666666&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  -moz-border-radius&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;6px&lt;/span&gt; !important&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;padding-left&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;3px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;padding-top&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;0px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;padding-right&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;3px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;padding-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;0px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;margin-left&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;2px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;margin-right&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;2px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;vertical-align&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;top&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;font-family&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sans-serif&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;white-space&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;nowrap&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1.1em&lt;/span&gt; !important&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
div&lt;span class=&quot;re1&quot;&gt;.qq-upload-button&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
 &lt;span class=&quot;kw1&quot;&gt;border&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; __border__&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Monobook user\/screen.css&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;monobook_user_screencss&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:10,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;7418-9664&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit11&quot; id=&quot;dokuwiki_template_css&quot;&gt;Dokuwiki Template CSS&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Standard settings for font sizes etc. for different elements is here:
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;/var/www/html/dokuwiki/lib/tpl/dokuwiki/css/design.less&lt;/code&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; add any modified tweaks to the CSS to a &lt;code&gt;userstyle.css&lt;/code&gt; i.e. &lt;code&gt;/var/www/html/dokuwiki/conf/userstyle.css&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;font-size&lt;/code&gt; etc&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code css&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;pre&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;10px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;background-color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#fcffff&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
code &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#c72522&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1.1em&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;0.1em&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;0.3em&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;0px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;.dokuwiki&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;.aside&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;90%&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
body &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;90%&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.dokuwiki&lt;/span&gt; div&lt;span class=&quot;re1&quot;&gt;.breadcrumbs&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;90%&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
See also &lt;a href=&quot;#dokuwiki_template_monospace_font&quot; title=&quot;public:computers:dokuwiki:dokuwiki_tweaks ↵&quot; class=&quot;wikilink1&quot;&gt;Dokuwiki Template monospace font&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Dokuwiki Template CSS&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dokuwiki_template_css&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:11,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;9665-10350&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit12&quot; id=&quot;dokuwiki_template_tagline&quot;&gt;Dokuwiki Template Tagline&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;p style=&amp;quot;font-size:12px;background-color:#a5e4fa;&amp;quot;&amp;gt;Try to learn &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;something&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; about everything, and &amp;lt;b&amp;gt;&amp;lt;i&amp;gt;everything&amp;lt;/i&amp;gt;&amp;lt;/b&amp;gt; about something &amp;lt;br&amp;gt; &amp;lt;i&amp;gt; -Thomas Huxley “Darwin&amp;#039;s bulldog” (1824-1895)&amp;lt;/i&amp;gt;&amp;lt;/p&amp;gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Dokuwiki Template Tagline&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dokuwiki_template_tagline&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:12,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;10351-10621&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit13&quot; id=&quot;dokuwiki_timezone&quot;&gt;Dokuwiki Timezone&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; I noticed the timestamps on file creation/modification were in UTC&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; I&amp;#039;d rather have “local time” so I don&amp;#039;t have to think too hard&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; The answer is here → &lt;a href=&quot;https://www.dokuwiki.org/tips:timezone&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.dokuwiki.org/tips:timezone&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.dokuwiki.org/tips:timezone&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; I used the first option, after successfully testing the second (editing &lt;code&gt;php.ini&lt;/code&gt;)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; I created &lt;code&gt;conf/local.protected.php&lt;/code&gt; with &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt;
&lt;a target=&quot;_BLANK&quot; href=&quot;http://www.php.net/date_default_timezone_set&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;date_default_timezone_set&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Europe/London&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; I did &lt;code&gt;sudo chown www-data:www-data local.protected.php&lt;/code&gt; too, just to be sure&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; All looks good - pages created/modified while in &lt;em&gt;summer time&lt;/em&gt; show the time in &lt;code&gt;BST&lt;/code&gt; and pages modified in &lt;em&gt;winter time&lt;/em&gt; show the time in &lt;code&gt;GMT&lt;/code&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Dokuwiki Timezone&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dokuwiki_timezone&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:13,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;10622-11313&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit14&quot; id=&quot;add_dw2pdf&quot;&gt;Add DW2PDF&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; To allow export of pages from Wiki → PDF format install plugin &lt;a href=&quot;https://www.dokuwiki.org/plugin:dw2pdf&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.dokuwiki.org/plugin:dw2pdf&quot; rel=&quot;ugc nofollow noopener&quot;&gt;dw2pdf&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; to enable functionality it was necessary to install &lt;code&gt;php-mbstring&lt;/code&gt; package on the VPS&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;pre class=&quot;code&quot;&gt;sudo apt-get install php-mbstring&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;pre class=&quot;code&quot;&gt;sudo service apache2 restart&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Add DW2PDF&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;add_dw2pdf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:14,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;11314-11647&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit15&quot; id=&quot;update&quot;&gt;UPDATE&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 26/04/23 10:04&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
removed &lt;code&gt;dw2pdf&lt;/code&gt; plugin, it is largely unused and adds pointless bloat.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;UPDATE&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;update&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:16,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;11648-11782&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit16&quot; id=&quot;increase_maximum_file_size_upload_for_media_manager&quot;&gt;Increase maximum file size upload for Media Manager&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; edit &lt;code&gt;php.ini&lt;/code&gt; &lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;pre class=&quot;code&quot;&gt;sudo vi /etc/php/XX/apache2/php.ini&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; change  &lt;code&gt;upload_max_filesize = 2M&lt;/code&gt; to &lt;code&gt;upload_max_filesize = 20M&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; change &lt;code&gt;post_max_size = 2M&lt;/code&gt; to &lt;code&gt;post_max_size = 20M&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;pre class=&quot;code&quot;&gt;sudo service apache2 restart&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Increase maximum file size upload for Media Manager&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;increase_maximum_file_size_upload_for_media_manager&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:16,&amp;quot;secid&amp;quot;:16,&amp;quot;range&amp;quot;:&amp;quot;11783-12112&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit17&quot; id=&quot;allow_any_file-type_upload&quot;&gt;Allow any file-type upload&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
From &lt;a href=&quot;https://forum.dokuwiki.org/d/3318-allow-upload-of-any-filetype/5&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://forum.dokuwiki.org/d/3318-allow-upload-of-any-filetype/5&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://forum.dokuwiki.org/d/3318-allow-upload-of-any-filetype/5&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Edit &lt;code&gt;/var/www/html/www/dokuwiki/inc/media.php&lt;/code&gt; and comment out :
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;    &lt;span class=&quot;co1&quot;&gt;// because a temp file was created already&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;//if (!preg_match(&#039;/\.(&#039; . $regex . &#039;)$/i&#039;, $fn)) {&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;//    return [$lang[&#039;uploadwrong&#039;], -1];&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;//}&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Allow any file-type upload&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;allow_any_file-type_upload&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:18,&amp;quot;secid&amp;quot;:17,&amp;quot;range&amp;quot;:&amp;quot;12113-12475&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit18&quot; id=&quot;jpg_upload_error_-_xml&quot;&gt;jpg upload error - XML&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Media manage red warnings when uploading jpg image files
&lt;/p&gt;
&lt;div class=&quot;plugin_note notewarning&quot;&gt;Error: Call to undefined function xml_parser_create()

&lt;/div&gt;
&lt;p&gt;
New VPS was missing the &lt;code&gt; php-xml &lt;/code&gt; package.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo apt install php-xml
sudo service apache2 restart&lt;/pre&gt;

&lt;p&gt;
&lt;a href=&quot;https://forum.dokuwiki.org/d/21045-error-call-to-undefined-function-xml-parser-create&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://forum.dokuwiki.org/d/21045-error-call-to-undefined-function-xml-parser-create&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://forum.dokuwiki.org/d/21045-error-call-to-undefined-function-xml-parser-create&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;jpg upload error - XML&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;jpg_upload_error_-_xml&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:19,&amp;quot;secid&amp;quot;:18,&amp;quot;range&amp;quot;:&amp;quot;12476-12847&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit19&quot; id=&quot;acronyms_abbreviations&quot;&gt;Acronyms &amp;amp; Abbreviations&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
I find the underlining and “explanation” of some abbreviations/acronyms by dokuwiki, when rendering a page, to be annoying.
&lt;/p&gt;

&lt;p&gt;
such as DNS and ACL
&lt;/p&gt;

&lt;p&gt;
The process is described &lt;a href=&quot;https://www.dokuwiki.org/abbreviations&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.dokuwiki.org/abbreviations&quot; rel=&quot;ugc nofollow noopener&quot;&gt; HERE &lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
To disable this I simply copied the default &lt;code&gt;conf/acronyms.conf&lt;/code&gt; to a local version &lt;code&gt;conf/acronyms.local.conf&lt;/code&gt; and then edited the &lt;code&gt;local&lt;/code&gt; version to remove all the explanations.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;# Acronyms.

ACL
AFAICS
AFAIK
AFAIR
API
ASAP
ASCII
BTW
CMS
CSS
DNS
EOF
EOL
EOM
EOT
FAQ
FTP
FOSS
FLOSS
FUD
FYI
GB
GHz
GPL
GUI
HTML
IANAL
IE
IIRC
IMHO
IMO
IOW
IRC
IRL
KISS
LAN
LGPL
LOL
MathML
MB
MHz
MSIE
OMG
OS
OSS
OTOH
PITA
RFC
ROTFL
RTFM
spec
TIA
TL;DR
TOC
URI
URL
W3C
WTF?
WYSIWYG
YMMV
&lt;/pre&gt;

&lt;p&gt;
This supresses the annoyance.
&lt;/p&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 30/04/23 13:49&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Acronyms &amp;amp; Abbreviations&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;acronyms_abbreviations&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:19,&amp;quot;secid&amp;quot;:19,&amp;quot;range&amp;quot;:&amp;quot;12848-13671&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit20&quot; id=&quot;add_folded_plugin&quot;&gt;Add folded plugin&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
make a clickable hide/reveal section with 
&lt;/p&gt;

&lt;p&gt;

++++ visible text | 

hidden text blah blah 

++++

&lt;/p&gt;

&lt;p&gt;
e.g.
&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_6905d78f3aa2024d930cb931efaca3ef_33&quot;&gt;There is a table here... &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_6905d78f3aa2024d930cb931efaca3ef_33&quot;&gt;&lt;div class=&quot;table sectionedit21&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Col1&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Col2&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Col3&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;one&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;two&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;three&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:21,&amp;quot;range&amp;quot;:&amp;quot;13843-13875&amp;quot;} --&gt;&lt;pre class=&quot;code python&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; func&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;hello world&amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Add folded plugin&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;add_folded_plugin&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:20,&amp;quot;secid&amp;quot;:20,&amp;quot;range&amp;quot;:&amp;quot;13672-13941&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit22&quot; id=&quot;increase_tagcloud_font_size&quot;&gt;Increase TAGCLOUD font size&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
edit &lt;code&gt;/var/www/html/dokuwiki/lib/plugins/cloud/style.less&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
increase &lt;code&gt;size factor&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code css&quot;&gt;&lt;span class=&quot;coMULTI&quot;&gt;/* Size factor. */&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;@sF&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1.2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
force re-fresh of browser to show new font size.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Increase TAGCLOUD font size&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;increase_tagcloud_font_size&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:21,&amp;quot;secid&amp;quot;:22,&amp;quot;range&amp;quot;:&amp;quot;13942-14169&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit23&quot; id=&quot;keyboard_plugin&quot;&gt;Keyboard Plugin&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; tweak the size, border and colour&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;example_keys&quot;&gt;example keys&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;Ctrl&lt;/kbd&gt;+&lt;kbd class=&quot;__keyboard&quot;&gt;C&lt;/kbd&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;tweaks&quot;&gt;Tweaks&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
&lt;code&gt;/var/www/html/dokuwiki/lib/plugins/keyboard/all.css&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code css&quot;&gt;kbd&lt;span class=&quot;re1&quot;&gt;.__keyboard&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#0000ff&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;background-color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#defede&lt;/span&gt; !important&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;text-align&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;center&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;border-left&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#cfcfcf&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;border-top&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#cfcfcf&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;border-right&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;3px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#666666&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;border-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;3px&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;solid&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#666666&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  -moz-border-radius&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;4px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;padding-left&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;3px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;padding-top&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;0px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;padding-right&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;3px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;padding-bottom&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;0px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;margin-left&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;2px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;margin-right&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;2px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;vertical-align&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;top&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;font-family&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sans-serif&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;white-space&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;nowrap&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1.2em&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Keyboard Plugin&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;keyboard_plugin&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:22,&amp;quot;secid&amp;quot;:23,&amp;quot;range&amp;quot;:&amp;quot;14170-14868&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit24&quot; id=&quot;dokuwiki_template_monospace_font&quot;&gt;Dokuwiki Template monospace font&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; the colour of the mono font is the same as general text and doesn&amp;#039;t stand out as well as in other templates.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; edit &lt;code&gt;/var/www/html/dokuwiki/lib/tpl/dokuwiki/css/basic.less&lt;/code&gt; with a hex code for a better colour&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; but see below for a better place to do the configuraiton&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code css&quot;&gt;code &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#c72522&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1.1em&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;0.1em&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;0.3em&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; To prevent upgrades overwriting these changes - add them to &lt;code&gt;/var/www/html/dokuwiki/conf/userstyle.css&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;pre&lt;/code&gt; relates to the blocks of &amp;lt;code&amp;gt; ////// &amp;lt;/code&amp;gt; &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;code&lt;/code&gt; relates to &lt;code&gt;monospaced text&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code css&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;pre&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;10px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
         &lt;span class=&quot;kw1&quot;&gt;background-color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#fcffff&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
code &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;color&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;#c72522&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;font-size&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;1.1em&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;0.1em&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;0.3em&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;border-radius&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;0px&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Dokuwiki Template monospace font&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dokuwiki_template_monospace_font&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:23,&amp;quot;secid&amp;quot;:24,&amp;quot;range&amp;quot;:&amp;quot;14869-15743&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit25&quot; id=&quot;remove_dokuwiki_template_footer_buttons&quot;&gt;Remove Dokuwiki template footer buttons&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; edit &lt;code&gt;/var/www/html/dokuwiki/lib/tpl/dokuwiki/tpl_footer.php&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; comment out ( &amp;lt;!-- ///// --&amp;gt; ) the license stanza &lt;strong&gt;and/or&lt;/strong&gt; the &amp;lt;div&amp;gt; that contains the “buttons”&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt;
&lt;span class=&quot;co4&quot;&gt;/**&lt;/span&gt;
&lt;span class=&quot;co4&quot;&gt;&amp;nbsp;* Template footer, included in the main and detail files&lt;/span&gt;
&lt;span class=&quot;co4&quot;&gt;&amp;nbsp;*/&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;// must be run from within DokuWiki&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;a target=&quot;_BLANK&quot; href=&quot;http://www.php.net/defined&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;defined&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;DOKU_INC&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;a target=&quot;_BLANK&quot; href=&quot;http://www.php.net/die&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;die&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;
&amp;nbsp;
&amp;lt;!-- ********** FOOTER ********** --&amp;gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;lt;div id=&amp;quot;dokuwiki__footer&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;pad&amp;quot;&amp;gt;
&amp;nbsp;
&lt;span class=&quot;xtra ln-xtra&quot;&gt;&amp;lt;!--    &lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; tpl_license&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;// license text ?&amp;gt; --&amp;gt;&lt;/span&gt;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;xtra ln-xtra&quot;&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;lt;!--&lt;/span&gt;    &lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;div &lt;span class=&quot;kw2&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;buttons&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt;
            tpl_license&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;button&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;// license button, no wrapper&lt;/span&gt;
            &lt;span class=&quot;re0&quot;&gt;$target&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$conf&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;target&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;extern&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; ? &lt;span class=&quot;st_h&quot;&gt;&#039;target=&amp;quot;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$conf&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;target&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;extern&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;&amp;quot;&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;
        &amp;lt;a href=&amp;quot;https://www.dokuwiki.org/donate&amp;quot; title=&amp;quot;Donate&amp;quot; &lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$target&lt;/span&gt;&lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&amp;gt;&amp;lt;img
            src=&amp;quot;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; tpl_basedir&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;images/button-donate.gif&amp;quot; width=&amp;quot;80&amp;quot; height=&amp;quot;15&amp;quot; alt=&amp;quot;Donate&amp;quot; /&amp;gt;&amp;lt;/a&amp;gt;
        &amp;lt;a href=&amp;quot;https://php.net&amp;quot; title=&amp;quot;Powered by PHP&amp;quot; &lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$target&lt;/span&gt;&lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&amp;gt;&amp;lt;img
            src=&amp;quot;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; tpl_basedir&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;images/button-php.gif&amp;quot; width=&amp;quot;80&amp;quot; height=&amp;quot;15&amp;quot; alt=&amp;quot;Powered by PHP&amp;quot; /&amp;gt;&amp;lt;/a&amp;gt;
        &amp;lt;a href=&amp;quot;//validator.w3.org/check/referer&amp;quot; title=&amp;quot;Valid HTML5&amp;quot; &lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$target&lt;/span&gt;&lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&amp;gt;&amp;lt;img
            src=&amp;quot;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; tpl_basedir&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;images/button-html5.png&amp;quot; width=&amp;quot;80&amp;quot; height=&amp;quot;15&amp;quot; alt=&amp;quot;Valid HTML5&amp;quot; /&amp;gt;&amp;lt;/a&amp;gt;
        &amp;lt;a href=&amp;quot;//jigsaw.w3.org/css-validator/check/referer?profile=css3&amp;quot; title=&amp;quot;Valid CSS&amp;quot; &lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$target&lt;/span&gt;&lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&amp;gt;&amp;lt;img
            src=&amp;quot;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; tpl_basedir&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;images/button-css.png&amp;quot; width=&amp;quot;80&amp;quot; height=&amp;quot;15&amp;quot; alt=&amp;quot;Valid CSS&amp;quot; /&amp;gt;&amp;lt;/a&amp;gt;
        &amp;lt;a href=&amp;quot;https://dokuwiki.org/&amp;quot; title=&amp;quot;Driven by DokuWiki&amp;quot; &lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$target&lt;/span&gt;&lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;&amp;gt;&amp;lt;img
            src=&amp;quot;&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;echo&lt;/span&gt; tpl_basedir&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;?&amp;gt;&lt;/span&gt;images/button-dw.png&amp;quot; width=&amp;quot;80&amp;quot; height=&amp;quot;15&amp;quot;
            alt=&amp;quot;Driven by DokuWiki&amp;quot; /&amp;gt;&amp;lt;/a&amp;gt;
    &amp;lt;/div&amp;gt;
&lt;span class=&quot;xtra ln-xtra&quot;&gt;--&amp;gt;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;!-- /footer --&amp;gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;&amp;lt;?php&lt;/span&gt;
tpl_includeFile&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;footer.html&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Remove Dokuwiki template footer buttons&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;remove_dokuwiki_template_footer_buttons&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:25,&amp;quot;secid&amp;quot;:25,&amp;quot;range&amp;quot;:&amp;quot;15744-17735&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit26&quot; id=&quot;bootstrap3_themebynamespace&quot;&gt;Bootstrap3 ThemeByNamespace&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
To force specific &lt;code&gt;bootstrap/bootswatch&lt;/code&gt; themes dependant on the namespace
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; enable &lt;code&gt;ThemeByNamespace&lt;/code&gt; option &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; create a file in &lt;code&gt;&amp;lt;dokuwiki&amp;gt;/conf&lt;/code&gt; called &lt;code&gt;bootstrap3.themes.conf&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;chown www-data:www-data bootstrap3.themes.conf&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; add the required theme/namespace mapping:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# Namespace  Bootswatch Theme&lt;/span&gt;
start                   bootswatch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;darkly
public                  bootswatch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;darkly
public:calculator       bootswatch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;slate
public:journal          bootswatch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;journal
private                 bootswatch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;flatly
playground              bootswatch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;united
private:wire2waves      bootswatch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;paper
blog                    bootswatch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;yeti&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; it seems necessary to disable &lt;code&gt;showThemeSwitcher&lt;/code&gt; and to select a default theme to be used outside of any listed in the conf file&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Bootstrap3 ThemeByNamespace&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;bootstrap3_themebynamespace&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:26,&amp;quot;secid&amp;quot;:26,&amp;quot;range&amp;quot;:&amp;quot;17736-18594&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit27&quot; id=&quot;alternative&quot;&gt;Alternative&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;strong&gt; Using the &lt;code&gt;loadskin&lt;/code&gt; plugin &lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
it&amp;#039;s possible to switch to the default &lt;code&gt;dokuwiki&lt;/code&gt; template when on a mobile device and the &lt;code&gt;vector&lt;/code&gt; template when on a computer.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteimportant&quot;&gt;The &lt;code&gt;loadskin&lt;/code&gt; plugin seems to lead to problems switching between &lt;code&gt;monobook&lt;/code&gt; and &lt;code&gt;vector&lt;/code&gt; - the &lt;strong&gt;navigation sidebar&lt;/strong&gt; seems to disappear on one or the other. Not sure where the problem is.
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Alternative&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;alternative&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:27,&amp;quot;secid&amp;quot;:27,&amp;quot;range&amp;quot;:&amp;quot;18595-19008&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit28&quot; id=&quot;note_plugin&quot;&gt;Note Plugin&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Various Coloured notes:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
&amp;lt;note&amp;gt;
This is my note ! Remember it!!
&amp;lt;/note&amp;gt;

&amp;lt;note important&amp;gt;
Warning ! You&amp;#039;re about to lose your mind ;-)
&amp;lt;/note&amp;gt;

&amp;lt;note tip&amp;gt;
The clues are in the images.
&amp;lt;/note&amp;gt;

&amp;lt;note warning&amp;gt;
Beware of the cat when you open the door !!
&amp;lt;/note&amp;gt;


++++Note in a Folded section|
&amp;lt;note warning&amp;gt;
Ça fonctionne seulement avec le //div// pas le //span//.
&amp;lt;/note&amp;gt;
++++
&lt;/pre&gt;
&lt;div class=&quot;plugin_note noteclassic&quot;&gt;This is my note ! Remember it!!

&lt;/div&gt;&lt;div class=&quot;plugin_note noteimportant&quot;&gt;Warning ! You&amp;#039;re about to lose your mind &lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/images/smileys/wink.svg&quot; class=&quot;icon smiley&quot; alt=&quot;;-)&quot; /&gt;

&lt;/div&gt;&lt;div class=&quot;plugin_note notetip&quot;&gt;The clues are in the images.

&lt;/div&gt;&lt;div class=&quot;plugin_note notewarning&quot;&gt;Beware of the cat when you open the door !!

&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_6905d78f3aa2024d930cb931efaca3ef_34&quot;&gt;Note in a Folded section &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_6905d78f3aa2024d930cb931efaca3ef_34&quot;&gt;&lt;div class=&quot;plugin_note notewarning&quot;&gt;Ça fonctionne seulement avec le &lt;em&gt;div&lt;/em&gt; pas le &lt;em&gt;span&lt;/em&gt;.

&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Note Plugin&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;note_plugin&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:27,&amp;quot;secid&amp;quot;:28,&amp;quot;range&amp;quot;:&amp;quot;19009-19784&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit29&quot; id=&quot;monobook_tweaks&quot;&gt;Monobook Tweaks&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Monobook Tweaks&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;monobook_tweaks&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:28,&amp;quot;secid&amp;quot;:29,&amp;quot;range&amp;quot;:&amp;quot;19785-19813&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit30&quot; id=&quot;pdf_export_tab&quot;&gt;PDF Export Tab&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
The &lt;code&gt;dw2pdf&lt;/code&gt; plugin provides a button on many templates to trigger export to &lt;code&gt;PDF&lt;/code&gt; but not on &lt;code&gt;monobook&lt;/code&gt;. It&amp;#039;s possible to add a tab to the top of the page, beside the &lt;code&gt;edit&lt;/code&gt; etc. tabs, to do the the &lt;code&gt;pdf export&lt;/code&gt; function.
&lt;/p&gt;
&lt;div class=&quot;plugin_note notetip&quot;&gt;add the following code to to &lt;code&gt;monobook/user/tabs.php&lt;/code&gt;
&lt;/div&gt;&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;co1&quot;&gt;//PDF plugin: export tab&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;a target=&quot;_BLANK&quot; href=&quot;http://www.php.net/file_exists&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;file_exists&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;DOKU_PLUGIN&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;dw2pdf/action.php&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;
    &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;plugin_isdisabled&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;dw2pdf&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$_monobook_tabs&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;tab-export-pdf&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;text&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;pdf export&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;re0&quot;&gt;$_monobook_tabs&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;tab-export-pdf&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;href&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; wl&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;getID&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;a target=&quot;_BLANK&quot; href=&quot;http://www.php.net/array&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;array&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;do&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;export_pdf&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;amp;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;PDF Export Tab&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;pdf_export_tab&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:28,&amp;quot;secid&amp;quot;:30,&amp;quot;range&amp;quot;:&amp;quot;19814-20446&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit31&quot; id=&quot;vector_interwiki_icons&quot;&gt;Vector Interwiki Icons&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The icon shown on interwiki links almost always appears as a small “lock” rather than the correct icon 
&lt;/p&gt;

&lt;p&gt;
commenting out the &lt;code&gt;.link-https&lt;/code&gt; section in &lt;code&gt;/vector/static/3rd/vector/main-ltr.css&lt;/code&gt; stops this :
&lt;/p&gt;
&lt;pre class=&quot;code css&quot;&gt;div#&lt;span class=&quot;kw2&quot;&gt;content&lt;/span&gt; a.external&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
div#&lt;span class=&quot;kw2&quot;&gt;content&lt;/span&gt; a&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;href &lt;span class=&quot;sy0&quot;&gt;^=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;gopher://&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;co2&quot;&gt;static/3rd/vector/external-link-ltr-icon.png&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;center&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;right&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;no-repeat&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;13px&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;coMULTI&quot;&gt;/*
div#content a[href ^=&amp;quot;https://&amp;quot;],
.link-https {
        background: url(static/3rd/vector/lock-icon.png) center right no-repeat;
        padding: 0 13px 0 0;
}
*/&lt;/span&gt;
&amp;nbsp;
div#&lt;span class=&quot;kw2&quot;&gt;content&lt;/span&gt; a&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;href &lt;span class=&quot;sy0&quot;&gt;^=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;mailto:&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;.link-mailto&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;co2&quot;&gt;static/3rd/vector/mail-icon.png&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;center&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;right&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;no-repeat&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;re3&quot;&gt;13px&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Page Updated: 19/04/26 16:02 BST
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:dokuwiki&amp;amp;do=showtag&amp;amp;tag=dokuwiki&quot; class=&quot;wikilink1&quot; title=&quot;tag:dokuwiki&quot; rel=&quot;tag&quot;&gt;dokuwiki&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Vector Interwiki Icons&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;vector_interwiki_icons&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:29,&amp;quot;secid&amp;quot;:31,&amp;quot;range&amp;quot;:&amp;quot;20447-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sun, 19 Apr 2026 15:02:31 +0000</pubDate>
        </item>
        <item>
            <title>YaDDNet Data Backup</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:yaddnet:yaddnet_data_backup</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:yaddnet:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:yaddnet:start&quot; data-wiki-id=&quot;public:radio:topics:yaddnet:start&quot;&gt;YaDDNet&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;yaddnet_data_backup&quot;&gt;YaDDNet Data Backup&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; Offsite Text file backups of all DSC messages &lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Alan Spindel initially suggested an offsite backup of the DSC messages in 2019&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; YaDDNet has had the facility to send copies of each new message out to specified IP addresses via UDP since that time&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; The DSC messages are sent by UDP as simple plain text, for easy archiving&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; The archived text file can be used if necessary to rebuild the SQL database table containing the DSC messages in case of disaster&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Since I&amp;#039;m now hosting YaDDNet again I decided I should run a UDP log receiver at home to improve the backup provision&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; The daily archive files will be &lt;code&gt;gzipped&lt;/code&gt; and stored on Dropbox&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; I could share the link to anyone who is interested in using the saved data&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;YaDDNet Data Backup&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;yaddnet_data_backup&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-795&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;yaddnet_udp_send_to_mirror&quot;&gt;YaDDNet UDP Send to Mirror&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; In the &lt;code&gt;PyYadd.py&lt;/code&gt; function a DSC message is created from the raw incoming data from YaDD (and DSC Decoder) in a standard format.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; This involves converting MMSI → Coast or Ship name, finding the &lt;code&gt;[MID]&lt;/code&gt; and corresponding country etc.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Prior to using the newly created message to inject new data into the SQL server &lt;code&gt;PyYadd.py&lt;/code&gt; calls the function &lt;code&gt;send_to_mirror()&lt;/code&gt; to send out the UDP packet to any configured IP addresses&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;PyYadd.py&lt;/code&gt; then inserts the new data in the SQL server &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Any addressed &amp;amp; listening UDP clients receive the UDP packets and append them to a log file&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code python&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; send_to_mirror&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    log_data &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;[log];&amp;quot;&lt;/span&gt;+data
    port &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2505&lt;/span&gt;
    host &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;aaa.bbb.ccc.ddd.eee&amp;quot;&lt;/span&gt;
    host2 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;fff.ggg.hhh.iii&amp;quot;&lt;/span&gt;
    sock &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;socket&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;socket&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;socket&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;AF_INET&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;socket&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;SOCK_DGRAM&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    sock.&lt;span class=&quot;me1&quot;&gt;sendto&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;log_data&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;host&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; port&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    sock.&lt;span class=&quot;me1&quot;&gt;sendto&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;log_data&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;host2&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; port&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;YaDDNet UDP Send to Mirror&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;yaddnet_udp_send_to_mirror&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;796-1747&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;backup_udp_receive_and_logrotate&quot;&gt;Backup UDP receive and logrotate&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Backup UDP receive and logrotate&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;backup_udp_receive_and_logrotate&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1748-1794&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;udp_listener&quot;&gt;UDP Listener&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code python&quot;&gt;&lt;span class=&quot;co1&quot;&gt;#!/usr/bin/env python&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# udp_logger.py&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;SocketServer&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;socket&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;class&lt;/span&gt; ThreadedUDPRequestHandler&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;SocketServer&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;BaseRequestHandler&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; handle&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        data &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;request&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strip&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw3&quot;&gt;socket&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;request&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write_file&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; write_file&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;text&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        filename &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;/home/gm4slv/yaddlogs/yaddnet_udp_log.txt&#039;&lt;/span&gt;
        f &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;filename&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;a+&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        log &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; text
        f.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;log+&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        f.&lt;span class=&quot;me1&quot;&gt;close&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;class&lt;/span&gt; ThreadedUDPServer&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;SocketServer&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ThreadingMixIn&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;SocketServer&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;UDPServer&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; __name__ &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;__main__&amp;quot;&lt;/span&gt;:
    HOST&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; PORT &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2505&lt;/span&gt;
    server &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; ThreadedUDPServer&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;HOST&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; PORT&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; ThreadedUDPRequestHandler&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    ip&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; port &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; server.&lt;span class=&quot;me1&quot;&gt;server_address&lt;/span&gt;
    server.&lt;span class=&quot;me1&quot;&gt;serve_forever&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;# Start a thread with the server -- &lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;# that thread will then start one&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;# more thread for each request&lt;/span&gt;
    server_thread &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Thread&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;server.&lt;span class=&quot;me1&quot;&gt;serve_forever&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;# Exit the server thread when the main thread terminates&lt;/span&gt;
    server_thread.&lt;span class=&quot;me1&quot;&gt;daemon&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;True&lt;/span&gt;
    server_thread.&lt;span class=&quot;me1&quot;&gt;start&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    server.&lt;span class=&quot;me1&quot;&gt;shutdown&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; The UDP Log Receiver listens to UDP/2505 for incoming packets from YaDDNet. These are of the form:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;
[log];2024-04-19 08:43:06;NLD_MB_HF1;2187.5;SEL;002050480;COAST;205;Belgium;Ostende Radio;SAF;636092799;SHIP;636;Liberia;CISNES, D5HF4, Cargo;TEST;NOINF;--;--;REQ;OK
[log];2024-04-19 08:43:28;BDXC-Han-Remote;12577.0;SEL;002241022;COAST;224;Spain;Coruna Radio;SAF;538005991;SHIP;538;Marshall Islands;NAVIG8 VIOLETTE, V7IH3, Tanker;TEST;NOINF;--;--;REQ;OK&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; each new packet is appended to the running log file &lt;code&gt;/home/gm4slv/yaddlogs/yaddnet_udp_log.txt&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; the file will grow indefinitely if left to itself!&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;UDP Listener&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;udp_listener&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1795-3580&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;logrotate&quot;&gt;Logrotate&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; run by Crontab every day at midnight&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; copies the current running log to a timestamped file&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; erases the contents of the running log file &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;gzips&lt;/code&gt; the timestamped copy and moves it to &lt;em&gt;Dropbox&lt;/em&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;## CRONTAB ENTRY&lt;/span&gt;
&amp;nbsp;
00 00 &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;yaddlog_rotate.sh &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;null &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# yaddlog_rotate.sh&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;DROPBOX&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Dropbox&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Yaddlogs&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DIR&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;yaddlogs
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;INFILE&lt;/span&gt;=yaddnet_udp_log.txt
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;TIMESTAMP&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;date&lt;/span&gt; +&lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt;Y&lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt;m&lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt;d_&lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt;H&lt;span class=&quot;sy0&quot;&gt;%&lt;/span&gt;M&lt;span class=&quot;sy0&quot;&gt;`&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;OUTFILE&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$TIMESTAMP&lt;/span&gt;\_&lt;span class=&quot;re1&quot;&gt;$INFILE&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$DIR&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$INFILE&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$DIR&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$OUTFILE&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;null &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$DIR&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$INFILE&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;gzip&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$DIR&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$OUTFILE&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;mv&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$DIR&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$OUTFILE&lt;/span&gt;.gz &lt;span class=&quot;re1&quot;&gt;$DROPBOX&lt;/span&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; This creates a &lt;code&gt;gzipped&lt;/code&gt; log file in my Dropbox of each day&amp;#039;s new DSC messages&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;starting_the_udp_listener_at_boot-up&quot;&gt;Starting the UDP Listener at boot-up&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; crontab entry to start it as a background job at &lt;code&gt;@reboot&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# CRONTAB ENTRY&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;reboot python &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;udp_logger.py &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 19/04/24 09:31 BST&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Last updated : 04/06/26 07:39 BST
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Logrotate&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;logrotate&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;3581-4601&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.yaddnet.org/index.php&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.yaddnet.org/index.php&quot; rel=&quot;ugc nofollow noopener&quot;&gt; YaDDNet&lt;/a&gt;
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:yaddnet&amp;amp;do=showtag&amp;amp;tag=yaddnet&quot; class=&quot;wikilink1&quot; title=&quot;tag:yaddnet&quot; rel=&quot;tag&quot;&gt;yaddnet&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:6,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;4602-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 06:39:56 +0000</pubDate>
        </item>
        <item>
            <title>Laptop FreeBSD</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:laptop_freebsd</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:start&quot; class=&quot;wikilink1&quot; title=&quot;public:computers:start&quot; data-wiki-id=&quot;public:computers:start&quot;&gt;Computers&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;laptop_freebsd&quot;&gt;Laptop FreeBSD&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
I moved my Dell laptop from Devuan Linux to FreeBSD and here are some things I needed to do and some things I did for convenience….
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Laptop FreeBSD&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;laptop_freebsd&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-181&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;graphics&quot;&gt;Graphics&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
I found the basic install of the recommended &lt;code&gt;drm-kmod&lt;/code&gt; package and &lt;code&gt;i915kms&lt;/code&gt; driver wouldn&amp;#039;t work - it crashed/hung during boot.
&lt;/p&gt;

&lt;p&gt;
Removing this package and using the SCFB video driver worked, but didn&amp;#039;t give (for example) DPMS control of the LCD screen.
&lt;/p&gt;

&lt;p&gt;
I used SCFB temporarily be adding an xorg conf file &lt;code&gt;20-vesa.conf&lt;/code&gt; to &lt;code&gt;/usr/local/etc/X11/xorg.conf.d/&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;Section &lt;span class=&quot;st0&quot;&gt;&amp;quot;Device&amp;quot;&lt;/span&gt;
        Identifier &lt;span class=&quot;st0&quot;&gt;&amp;quot;Card0&amp;quot;&lt;/span&gt;
        Driver &lt;span class=&quot;st0&quot;&gt;&amp;quot;scfb&amp;quot;&lt;/span&gt;
EndSection&lt;/pre&gt;

&lt;p&gt;
This was a reasonable workaround, but I found the solution to using correct Intel i915kms driver here : &lt;a href=&quot;https://blog.hofstede.it/freebsd-150-on-the-thinkpad-t480-efficient-stable-and-8-hours-on-battery/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://blog.hofstede.it/freebsd-150-on-the-thinkpad-t480-efficient-stable-and-8-hours-on-battery/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://blog.hofstede.it/freebsd-150-on-the-thinkpad-t480-efficient-stable-and-8-hours-on-battery/&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
This is what worked:
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Graphics&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;graphics&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;182-902&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;installed_new_packages&quot;&gt;Installed new packages&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;code&gt;drm-latest-kmod&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;gpu-firmware-intel-kmod-kabylake&lt;/code&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Installed new packages&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;installed_new_packages&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;903-996&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;added_to_etc_rcconf&quot;&gt;added to /etc/rc.conf&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;kld_list=&amp;quot;i915kms&amp;quot;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;added to \/etc\/rc.conf&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;added_to_etc_rcconf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;997-1053&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;added_to_boot_loaderconf&quot;&gt;added to /boot/loader.conf&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;# Graphics and power tuning
i915kms_load=&amp;quot;YES&amp;quot;
drm.i915.enable_rc6=7
drm.i915.enable_fbc=1
drm.i915.lvds_downclock=1
drm.i915.enable_psr=1
compat.linuxkpi.i915_disable_power_well=&amp;quot;0&amp;quot;
&lt;/pre&gt;

&lt;p&gt;
&lt;code&gt;i915kms&lt;/code&gt;  now loads and I have access to DPMS for turning off the LCD
screen.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;added to \/boot\/loader.conf&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;added_to_boot_loaderconf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1054-1374&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;lcd_panel_on_off&quot;&gt;LCD Panel on/off&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
I made a few small shell scripts to assist in controlling the
battery consumption by being able to alter LCD brightness, and turn
the LCD off via DPMS and makde i3 shorcuts to them.
&lt;/p&gt;

&lt;p&gt;
(later I made the same key actions for DWM when I moved back to using DWM)
&lt;/p&gt;

&lt;p&gt;
now I can “$mod+Shift+o” to reduce brightness and “$mod+Shift+p” to
increase it, and “$mod+Shift+i” to turn the LCD screen off
completely.
&lt;/p&gt;

&lt;p&gt;
I also added a devd rule to turn the LCD screen off when the lid is
closed - this confused me initially, as it worked when testing it
by adding the rule, restarting devd and testing, from within an
X-Session…. but didn&amp;#039;t work when devd was started during
bootup…
&lt;/p&gt;

&lt;p&gt;
This was due to the lack of &lt;code&gt;DISPLAY&lt;/code&gt; if the script was triggered
from “outside” the X session. Changing the script to set the
&lt;code&gt;DISPLAY&lt;/code&gt; variable was the solution.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;LCD Panel on\/off&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;lcd_panel_on_off&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;1375-2240&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;etc_devd_rulesd_lidconf&quot;&gt;/etc/devd/rules.d/lid.conf&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;notify 20 {
match &amp;quot;system&amp;quot; &amp;quot;ACPI&amp;quot;;
match &amp;quot;subsystem&amp;quot; &amp;quot;Lid&amp;quot;;
match &amp;quot;notify&amp;quot; &amp;quot;0x01&amp;quot;;
action &amp;quot;/home/g4slv/bin/on&amp;quot;;
};
notify 20 {
match &amp;quot;system&amp;quot; &amp;quot;ACPI&amp;quot;;
match &amp;quot;subsystem&amp;quot; &amp;quot;Lid&amp;quot;;
match &amp;quot;notify&amp;quot; &amp;quot;0x00&amp;quot;;
action &amp;quot;/home/g4slv/bin/off&amp;quot;;
};
&lt;/pre&gt;

&lt;p&gt;
The lid actions call one of these →
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;~/bin/on&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/usr/local/bin/bash&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;su&lt;/span&gt; g4slv &lt;span class=&quot;re5&quot;&gt;-c&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;setenv DISPLAY :0.0 &amp;amp;&amp;amp; /usr/local/bin/xset dpms force on&#039;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
&lt;code&gt;~/bin/off &lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/usr/local/bin/bash&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;su&lt;/span&gt; g4slv &lt;span class=&quot;re5&quot;&gt;-c&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;setenv DISPLAY :0.0 &amp;amp;&amp;amp; /usr/local/bin/xset dpms force off&#039;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\/etc\/devd\/rules.d\/lid.conf&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;etc_devd_rulesd_lidconf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;2241-2830&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;other_tweaks&quot;&gt;Other tweaks&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Small scripts to automate swithing between Wifi and Ethernet
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Other tweaks&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;other_tweaks&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;2831-2919&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;net_wlansh&quot;&gt;net_wlan.sh&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/sh&lt;/span&gt;
&amp;nbsp;
doas service netif stop em0 
doas service netif start wlan0
doas service dhclient restart wlan0&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;net_wlan.sh&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;net_wlansh&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;2920-3071&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit10&quot; id=&quot;net_ethsh&quot;&gt;net_eth.sh&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/sh&lt;/span&gt;
&amp;nbsp;
doas service netif stop wlan0 
doas service netif start em0
doas service dhclient restart em0&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;net_eth.sh&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;net_ethsh&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:6,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;3072-3221&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit11&quot; id=&quot;serial_usb_adaptors&quot;&gt;Serial USB Adaptors&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
To get access to a USB serial device as normal user (as long as I&amp;#039;m in the &lt;code&gt;wheel&lt;/code&gt; group) I added a rule in &lt;code&gt;/etc/devd.conf&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;notify &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        match &lt;span class=&quot;st0&quot;&gt;&amp;quot;system&amp;quot;&lt;/span&gt;          &lt;span class=&quot;st0&quot;&gt;&amp;quot;DEVFS&amp;quot;&lt;/span&gt;;
        match &lt;span class=&quot;st0&quot;&gt;&amp;quot;subsystem&amp;quot;&lt;/span&gt;       &lt;span class=&quot;st0&quot;&gt;&amp;quot;CDEV&amp;quot;&lt;/span&gt;;
        match &lt;span class=&quot;st0&quot;&gt;&amp;quot;type&amp;quot;&lt;/span&gt;            &lt;span class=&quot;st0&quot;&gt;&amp;quot;CREATE&amp;quot;&lt;/span&gt;;
        match &lt;span class=&quot;st0&quot;&gt;&amp;quot;cdev&amp;quot;&lt;/span&gt;            &lt;span class=&quot;st0&quot;&gt;&amp;quot;ttyU[0-9]+&amp;quot;&lt;/span&gt;;
        action &lt;span class=&quot;st0&quot;&gt;&amp;quot;chmod ug+rw /dev/&lt;span class=&quot;es2&quot;&gt;$cdev&lt;/span&gt;&amp;quot;&lt;/span&gt;;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;;&lt;/pre&gt;

&lt;p&gt;
This makes the device R/W for the &lt;code&gt;wheel&lt;/code&gt; group. Without this rule (the chmod part) the device is only R/W for root.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Serial USB Adaptors&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;serial_usb_adaptors&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;3222-3755&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit12&quot; id=&quot;other_config_files&quot;&gt;Other Config Files&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Other Config Files&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;other_config_files&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;3756-3787&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit13&quot; id=&quot;etc_rcconf&quot;&gt;/etc/rc.conf&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;hostname=&amp;quot;proton&amp;quot;
keymap=&amp;quot;uk.kbd&amp;quot;
wlans_iwm0=&amp;quot;wlan0&amp;quot;
ifconfig_wlan0=&amp;quot;WPA  DHCP&amp;quot;
ip6addrctl_enable=&amp;quot;NO&amp;quot;
ipv6_activate_all_interfaces=&amp;quot;NO&amp;quot;
ifconfig_wlan0_ipv6=&amp;quot;inet6 ifdisabled&amp;quot;
ifconfig_em0_ipv6=&amp;quot;inet6 ifdisabled&amp;quot;
ifconfig_lo0_ipv6=&amp;quot;inet6 ifdisabled&amp;quot;
create_args_wlan0=&amp;quot;country GB regdomain NONE&amp;quot;
sshd_enable=&amp;quot;YES&amp;quot;
sshd_flags=&amp;quot;-4&amp;quot;

ntpd_enable=&amp;quot;YES&amp;quot;
ntpd_sync_on_start=&amp;quot;YES&amp;quot;
ntpd_flags=&amp;quot;-4&amp;quot;

ftpd_enable=&amp;quot;YES&amp;quot;
ftpd_flags=&amp;quot;-4&amp;quot;


moused_nondefault_enable=&amp;quot;NO&amp;quot;
# Set dumpdev to &amp;quot;AUTO&amp;quot; to enable crash dumps, &amp;quot;NO&amp;quot; to disable
dumpdev=&amp;quot;AUTO&amp;quot;
zfs_enable=&amp;quot;YES&amp;quot;
cupsd_enable=&amp;quot;YES&amp;quot;
devfs_system_ruleset=&amp;quot;system&amp;quot;
dbus_enable=&amp;quot;YES&amp;quot;


avahi_daemon_enable=&amp;quot;YES&amp;quot;

avahi_dnsconfd_enable=&amp;quot;YES&amp;quot;
inetd_enable=&amp;quot;YES&amp;quot;
rwhod_enable=&amp;quot;YES&amp;quot;

kld_list=&amp;quot;i915kms&amp;quot;

powerd_enable=&amp;quot;YES&amp;quot;
powerd_flags=&amp;quot;-a adaptive -b minimum &amp;quot;
update_motd=&amp;quot;NO&amp;quot;
dynamic_motd=&amp;quot;YES&amp;quot;
ifconfig_em0=&amp;quot;DHCP&amp;quot;
autofs_enable=&amp;quot;YES&amp;quot;
&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\/etc\/rc.conf&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;etc_rcconf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;3788-4698&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit14&quot; id=&quot;boot_loaderconf&quot;&gt;/boot/loader.conf&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;kern.geom.label.disk_ident.enable=&amp;quot;0&amp;quot;
kern.geom.label.gptid.enable=&amp;quot;0&amp;quot;
zfs_load=&amp;quot;YES&amp;quot;
i915kms_load=&amp;quot;YES&amp;quot;
drm.i915.enable_rc6=&amp;quot;7&amp;quot;
drm.i915.semaphores=&amp;quot;1&amp;quot;
drm.i915.enable_fbc=&amp;quot;1&amp;quot;
drm.i915.lvds_downclock=1
drm.i915.enable_psr=1
compat.linuxkpi.i915_disable_power_well=&amp;quot;0&amp;quot;
fuse_load=&amp;quot;YES&amp;quot;
iwm8265fw_load=&amp;quot;YES&amp;quot;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\/boot\/loader.conf&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;boot_loaderconf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;4699-5050&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit15&quot; id=&quot;xinitrc&quot;&gt;~/.xinitrc&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code bash&quot;&gt;xrdb &lt;span class=&quot;re5&quot;&gt;-load&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;.Xdefaults
setxkbmap &lt;span class=&quot;re5&quot;&gt;-layout&lt;/span&gt; gb
&lt;span class=&quot;kw2&quot;&gt;xset&lt;/span&gt; s noblank
&lt;span class=&quot;kw2&quot;&gt;xset&lt;/span&gt; s noexpose
&lt;span class=&quot;kw2&quot;&gt;xset&lt;/span&gt; dpms &lt;span class=&quot;nu0&quot;&gt;600&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;660&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;670&lt;/span&gt;
backlight &lt;span class=&quot;nu0&quot;&gt;40&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw3&quot;&gt;eval&lt;/span&gt; $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;gnome-keyring-daemon --start&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt; SSH_AUTH_LOCK
&amp;nbsp;
feh &lt;span class=&quot;re5&quot;&gt;--bg-center&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-B&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;#005577&amp;quot;&lt;/span&gt;  ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;freebsd.svg
&amp;nbsp;
pulseaudio &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&lt;/span&gt;
&amp;nbsp;
dwmblocks &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&lt;/span&gt;
&amp;nbsp;
pasystray &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&lt;/span&gt;
&amp;nbsp;
nextcloud &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&lt;/span&gt; 
&amp;nbsp;
&lt;span class=&quot;kw3&quot;&gt;exec&lt;/span&gt; dbus-launch &lt;span class=&quot;re5&quot;&gt;--exit-with-x11&lt;/span&gt; dwm&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;~\/.xinitrc&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;xinitrc&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:10,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;5051-5402&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit16&quot; id=&quot;pkg_prime-list&quot;&gt;pkg prime-list&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Here&amp;#039;s the list of intentionally installed packages currently 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;FreeBSD-kernel-generic
FreeBSD-kernel-generic-dbg
FreeBSD-set-base
FreeBSD-set-lib32
FreeBSD-set-minimal
alpine
ansilove
automount
avahi
bash
bombadillo
claws-mail
claws-mail-bogofilter
claws-mail-dillo
claws-mail-pdf_viewer
detox
dmidecode
doas
drm-latest-kmod
dunst
dynamic_motd
evince
feh
ffmpegthumbnailer
figlet
firefox-esr
fldigi
foomatic-db-hpijs
freebsd-ftpd
freebsd-telnetd
fusefs-jmtpfs
gmake
gnome-keyring
gnucash
gopher
gpu-firmware-intel-kmod-kabylake
gvfs
hplip
i3blocks
imv
iperf
libptytty
libreoffice
librewolf
lynx
mixertui
most
mousepad
mpv
musikcube
nano
neofetch
nextcloudclient
nss_mdns
openshot
pasystray
pavucontrol
pcmanfm
pkg
pkgconf
polo
py311-i3ipc
py311-pip
rename
rsync
sacc
scrot
setsid
shotwell
slock
slrn
thunar
thunar-archive-plugin
tightvnc
tmux
vim
vlc
wireshark
xarchiver
xorg
yt-dlp
zip&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;pkg prime-list&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;pkg_prime-list&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:11,&amp;quot;secid&amp;quot;:16,&amp;quot;range&amp;quot;:&amp;quot;5403-6334&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit17&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Page created  : 04/06/26 11:04 BST
&lt;/p&gt;

&lt;p&gt;
Page updated : 05/06/26 09:43 BST
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:computer&amp;amp;do=showtag&amp;amp;tag=computer&quot; class=&quot;wikilink1&quot; title=&quot;tag:computer&quot; rel=&quot;tag&quot;&gt;computer&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:freebsd&amp;amp;do=showtag&amp;amp;tag=freebsd&quot; class=&quot;wikilink1&quot; title=&quot;tag:freebsd&quot; rel=&quot;tag&quot;&gt;freebsd&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:12,&amp;quot;secid&amp;quot;:17,&amp;quot;range&amp;quot;:&amp;quot;6335-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 05 Jun 2026 08:43:16 +0000</pubDate>
        </item>
        <item>
            <title>DM41X 41z Module</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:guides:41z_module</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:start&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:start&quot; data-wiki-id=&quot;public:calculator:start&quot;&gt;Calculators&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;dm41x_41z_module&quot;&gt;DM41X 41z Module&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DM41X 41z Module&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dm41x_41z_module&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;13-45&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;keyboard_overlay&quot;&gt;Keyboard Overlay&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Acalculator%3Aguides%3A41z_module&amp;amp;media=public:calculator:guides:large_41z.png&quot; class=&quot;media&quot; title=&quot;public:calculator:guides:large_41z.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=400&amp;amp;tok=6b3f4d&amp;amp;media=public:calculator:guides:large_41z.png&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Keyboard Overlay&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;keyboard_overlay&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;46-127&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;setup&quot;&gt;Setup&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; assign the &lt;em&gt;complex keyboard&lt;/em&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;code&gt;i.e. function ΣZL&lt;/code&gt; to USER menu on key &lt;kbd class=&quot;__keyboard&quot;&gt;Σ+&lt;/kbd&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;SHIFT&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ASN&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ALPHA&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;SHIFT&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;F&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;L&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ALPHA&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Σ+&lt;/kbd&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;SHIFT&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;F&lt;/kbd&gt; is the method of getting &lt;code&gt;Σ&lt;/code&gt; from the ALPHA keyboard (see the back of calculator)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Enter &lt;code&gt;USER&lt;/code&gt; mode with &lt;kbd class=&quot;__keyboard&quot;&gt;USR&lt;/kbd&gt; key&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; The &lt;kbd class=&quot;__keyboard&quot;&gt;Σ+&lt;/kbd&gt; now activates a &lt;em&gt;complex number&lt;/em&gt; function when it&amp;#039;s pressed - for one operation only&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Setup&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;setup&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;128-688&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;module&quot;&gt;Module&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:41z_bs_2x2_2_.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:41z_bs_2x2_2_.zip (16 KB)&quot;&gt; Fixed version Sept. 2024&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Module&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;module&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;689-786&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;user_guide&quot;&gt;User Guide&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:guides:41z_deluxe_manual_1_.pdf&quot; class=&quot;media mediafile mf_pdf&quot; title=&quot;public:calculator:guides:41z_deluxe_manual_1_.pdf (4.5 MB)&quot;&gt;41z_deluxe_manual_1_.pdf&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;User Guide&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;user_guide&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;787-870&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;zk_yn_update_5_8_22&quot;&gt;ZK?YN (UPDATE 5/8/22)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_58b855adad2e04b23d13476b918efba9_2&quot;&gt;ZK?YN Info &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_58b855adad2e04b23d13476b918efba9_2&quot;&gt;
&lt;p&gt;
To simplify use it&amp;#039;s possible change the keyboard to the &lt;em&gt;complex keyboard&lt;/em&gt;, and remove the need to trigger &lt;em&gt;every&lt;/em&gt; command with &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
Enable the keyboard with &lt;code&gt;ZK?YN&lt;/code&gt; and answer &lt;code&gt;Y&lt;/code&gt;. 
&lt;/p&gt;

&lt;p&gt;
Put &lt;code&gt;ZK?YN&lt;/code&gt; on the &lt;code&gt;CST&lt;/code&gt; custom user menu for quick access!
&lt;/p&gt;

&lt;p&gt;
Now the &lt;code&gt;USER&lt;/code&gt; keyboard is re-mapped to match the overlay and things are much easier. To use &lt;code&gt;normal&lt;/code&gt; functions simply press &lt;kbd class=&quot;__keyboard&quot;&gt;USR&lt;/kbd&gt; to temporarily switch off the &lt;em&gt;complex keyboard&lt;/em&gt;. Press &lt;kbd class=&quot;__keyboard&quot;&gt;USR&lt;/kbd&gt; to switch back to &lt;em&gt;complex&lt;/em&gt; mode. To leave &lt;em&gt;complex&lt;/em&gt; mode completely and return &lt;code&gt;USER&lt;/code&gt; keyboard to normal re-run &lt;code&gt;ZK?YN&lt;/code&gt; and answer &lt;code&gt;N&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
To enter a complex number in this mode :
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;2 + 3i&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;2&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;3&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
To add &lt;code&gt;2 + 3i&lt;/code&gt; &lt;code&gt;+&lt;/code&gt; &lt;code&gt;10 - 4i&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;2&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;3&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;10&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;4&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;CHS&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;+&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
Result:
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;12 - j 1&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
The alternative “permanent Z-Keyboard” method is less cumbersome and more intuitive. 
&lt;/p&gt;

&lt;h4&gt;Some commands still require the Z prefix to access sub-functions&lt;/h4&gt;

&lt;p&gt;
 e.g. &lt;code&gt;POLAR&lt;/code&gt; mode
&lt;/p&gt;

&lt;p&gt;
Enter a complex number in rectangular mode and then switch to &lt;code&gt;POLAR&lt;/code&gt; mode
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;50&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;23&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;6&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;55.04 ∠ 24.70&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
All further entries will remain as &lt;code&gt;POLAR&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
eg a new complex number in POLAR format 
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;100 ∠ - 85&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;100&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;85&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;CHS&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
display : 
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;100 ∠ - 85&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Switch back to &lt;code&gt;RECT&lt;/code&gt; mode
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;5&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;8.72 - 99.62&lt;/code&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;strong&gt;
 The rest of the guide was written without the use of full-time ZKEYS in mind 
&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; in the  &lt;a href=&quot;https://forum.swissmicros.com/viewtopic.php?f=26&amp;amp;t=4029&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://forum.swissmicros.com/viewtopic.php?f=26&amp;amp;t=4029&quot; rel=&quot;ugc nofollow noopener&quot;&gt; forum thread&lt;/a&gt; dealing with the factorization bug in the &lt;code&gt;deluxe&lt;/code&gt; version Angel recommended I use the &lt;code&gt;ΣZL&lt;/code&gt; method. He fears that occasionally &lt;code&gt;ZKEYS&lt;/code&gt; might be broken with incorrect/missing &lt;code&gt;USER&lt;/code&gt; assignments - so I&amp;#039;ll try to stick to the normal &lt;code&gt;ΣZL&lt;/code&gt; method. &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;ZK?YN (UPDATE 5\/8\/22)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;zk_yn_update_5_8_22&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;871-3009&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;quick_ref&quot;&gt;Quick Ref&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; = &lt;kbd class=&quot;__keyboard&quot;&gt;Σ+&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;↑IM/AG&lt;/kbd&gt; = &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ZREAL↑&lt;/kbd&gt; = &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;RCL&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ZIMAG↑&lt;/kbd&gt; = &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ZINV&lt;/kbd&gt; = &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;1/X&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;POLAR&lt;/kbd&gt; = &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R→P&lt;/kbd&gt; (i.e. &lt;kbd class=&quot;__keyboard&quot;&gt;6&lt;/kbd&gt;)  &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;RECT&lt;/kbd&gt; = &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;P→R&lt;/kbd&gt;  (i.e. &lt;kbd class=&quot;__keyboard&quot;&gt;5&lt;/kbd&gt;)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ZCONJ&lt;/kbd&gt; = &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;SHIFT&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;CHS&lt;/kbd&gt; (complex conjugate)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z ^ X&lt;/kbd&gt; = &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;EEX&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z ^ 1/X&lt;/kbd&gt; = &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;EEX&lt;/kbd&gt; (root(s) of complex number) : see &lt;a href=&quot;#cubic_roots&quot; title=&quot;public:calculator:guides:41z_module ↵&quot; class=&quot;wikilink1&quot;&gt;Cubic Roots&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ZNXTNRT _&lt;/kbd&gt; = &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;SHIFT&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;√x&lt;/kbd&gt; &lt;code&gt;NEXT ROOT&lt;/code&gt;  enter the root you want &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ZWDOT&lt;/kbd&gt; = &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;.&lt;/kbd&gt; : dot product of 2 vectors/complex numbers&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ZWCROSS&lt;/kbd&gt; = &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;2&lt;/kbd&gt; : &lt;strong&gt;Magnitude&lt;/strong&gt; of the Cross Product of 2 vectors/complex numbers (no sign)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ZWDET&lt;/kbd&gt; = &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;7&lt;/kbd&gt; : Determinant (Cross Product) of 2 vectors/complex numbers, incl. sign/direction&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Quick Ref&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;quick_ref&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;3010-4251&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;basic_operation&quot;&gt;Basic Operation&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Basic Operation&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;basic_operation&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;4252-4280&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;enter_two_numbers_and_add_them_together&quot;&gt;enter two numbers and add them together&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;the_natural_entry_method&quot;&gt;The &amp;#039;&amp;#039;natural&amp;#039;&amp;#039; entry method&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Enter a complex number to the stack&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt; 5 + j 20 &lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;5&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;2&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;0&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;Z XEQ&lt;/code&gt; is &lt;code&gt;^IM/AG&lt;/code&gt; - set the imaginary part&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; add a second number to the stack&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;10 - j 32&lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;10&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;3&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;2&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;CHS&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; add the two numbers together&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;+&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;15 - j 12&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;enter two numbers and add them together&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;enter_two_numbers_and_add_them_together&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;4281-4830&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit10&quot; id=&quot;enter_a_real_number&quot;&gt;Enter a real number&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt; 2.75 + j 0 &lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;2.75&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;RCL&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Enter a real number&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;enter_a_real_number&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;4831-4946&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit11&quot; id=&quot;enter_an_imaginary_number&quot;&gt;Enter an imaginary number&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt; 0 + j 3.1415 &lt;/code&gt; (i Pi)&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;SHIFT&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;π&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;use_it_to_calculate_with&quot;&gt;Use it to calculate with....&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; calculate e&lt;sup&gt;iπ&lt;/sup&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;SHIFT&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;e&lt;sup&gt;x&lt;/sup&gt;&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt; - 1 + j 0 &lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; e&lt;sup&gt;iπ&lt;/sup&gt; = -1&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Enter an imaginary number&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;enter_an_imaginary_number&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;4947-5274&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit12&quot; id=&quot;parallel_impedances&quot;&gt;Parallel Impedances&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
This involves the &lt;code&gt;complex inverse&lt;/code&gt; function &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;1/x&lt;/kbd&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;Z1 = 50 + j 13&lt;/code&gt; in parallel with &lt;code&gt;Z2 = 23 - j 85&lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; enter Z1 &lt;kbd class=&quot;__keyboard&quot;&gt;50&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;13&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; and invert it &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;1/X&lt;/kbd&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;0.02 - j 4.87E-3&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; enter Z2 &lt;kbd class=&quot;__keyboard&quot;&gt;23&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;85&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;CHS&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; and invert it &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;1/X&lt;/kbd&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;2.97E-3 + j0.01&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; add them together &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;+&lt;/kbd&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;0.02 +j0.01&lt;/code&gt; and invert &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;1/X&lt;/kbd&gt; &lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;42.72 - j 11.99&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Parallel Impedances&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;parallel_impedances&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;5275-5919&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit13&quot; id=&quot;convert_to_rectangular_polar_operation&quot;&gt;convert to Rectangular ⇔ Polar operation&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;Z = 50 - j 23&lt;/code&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; initially in rectangular form…&lt;sup&gt;&lt;a href=&quot;#fn__1&quot; id=&quot;fnt__1&quot; class=&quot;fn_top&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; enter Z as usual&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;50&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;23&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;CHS&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; convert to Polar format&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;6&lt;/kbd&gt; ( &lt;strong&gt;6&lt;/strong&gt; is &lt;code&gt;R→P&lt;/code&gt; but needs &lt;strong&gt;two&lt;/strong&gt; presses of &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; to activate it)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;55.04 ∠ -24.70&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; convert back to Rectangular operation&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;5&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;50 - j 23&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;convert to Rectangular \u21d4 Polar operation&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;convert_to_rectangular_polar_operation&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;5920-6506&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit14&quot; id=&quot;enter_a_number_directly_in_polar_format&quot;&gt;enter a number directly in Polar format&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; To enter &lt;code&gt;5 ∠ 53.13&lt;/code&gt; directly&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; switch to Polar format &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;6&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; enter Mag / Angle:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;5&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;53.13&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; display : &lt;code&gt;5 ∠ 53.13&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; convert to Rect&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;5&lt;/kbd&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; display : &lt;code&gt;3.00 + j 4.00&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;enter a number directly in Polar format&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;enter_a_number_directly_in_polar_format&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;6507-6908&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit15&quot; id=&quot;cubic_roots&quot;&gt;Cubic Roots&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;rectangular&quot;&gt;Rectangular&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; enter complex &lt;code&gt;real&lt;/code&gt; number &lt;code&gt;-8 + j 0&lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;8&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;CHS&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;RCL&lt;/kbd&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt; -8 + j 0&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; enter &lt;kbd class=&quot;__keyboard&quot;&gt;3&lt;/kbd&gt; (&lt;code&gt;goes into the normal X register&lt;/code&gt;)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; find the result of &lt;code&gt;Z↑1/x&lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;EEX&lt;/kbd&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;1 + j 1.732&lt;/code&gt;  (the first of the cube-roots of -8)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; find the next root with the function &lt;code&gt;ZNXTNRT&lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;SHIFT&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;√x&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; enter &lt;kbd class=&quot;__keyboard&quot;&gt;3&lt;/kbd&gt; at the &lt;code&gt;_&lt;/code&gt; prompt&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;-2 + j 0&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; find the next root with the function &lt;code&gt;ZNXTNRT&lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;SHIFT&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;√x&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; enter &lt;kbd class=&quot;__keyboard&quot;&gt;3&lt;/kbd&gt; at the &lt;code&gt;_&lt;/code&gt; prompt&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;1 - j 1.732&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
The 3 cube roots of &lt;code&gt;-8&lt;/code&gt; are
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;1 + j 1.732&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;-2 + j 0&lt;/code&gt; (the basic &lt;code&gt;real&lt;/code&gt; cube root)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;1 - j 1.732&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;polar&quot;&gt;Polar&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; enter complex &lt;code&gt;real&lt;/code&gt; number &lt;code&gt;-8 + j 0&lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;8&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;CHS&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;RCL&lt;/kbd&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt; -8 + j 0&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; convert to POLAR&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level4 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;6&lt;/kbd&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level5&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;8 ∠ 180&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; enter &lt;kbd class=&quot;__keyboard&quot;&gt;3&lt;/kbd&gt; (&lt;code&gt;goes into the normal X register&lt;/code&gt;)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; find the result of &lt;code&gt;Z↑1/x&lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;EEX&lt;/kbd&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;2 ∠ 60.000&lt;/code&gt;  (the first of the cube-roots of -8)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; find the next root with the function &lt;code&gt;ZNXTNRT&lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;SHIFT&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;√x&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; enter &lt;kbd class=&quot;__keyboard&quot;&gt;3&lt;/kbd&gt; at the &lt;code&gt;_&lt;/code&gt; prompt&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;2 ∠ 180&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; find the next root with the function &lt;code&gt;ZNXTNRT&lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;SHIFT&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;√x&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; enter &lt;kbd class=&quot;__keyboard&quot;&gt;3&lt;/kbd&gt; at the &lt;code&gt;_&lt;/code&gt; prompt&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;2 ∠ -60.000&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
The 3 cube roots (in &lt;code&gt;POLAR&lt;/code&gt;) of &lt;code&gt;-8&lt;/code&gt; are
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;2 ∠ 60.000&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;2 ∠ 180&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;2 ∠ -60.000&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Cubic Roots&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;cubic_roots&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;6909-8790&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit16&quot; id=&quot;alternate_input_method&quot;&gt;Alternate input method&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;strong&gt;BEWARE&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; key Imaginary part first &amp;amp; press &lt;em&gt;normal&lt;/em&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; key real part (and no ENTER)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; do &lt;code&gt;complex enter&lt;/code&gt; (&lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt;) or another &lt;code&gt;complex function&lt;/code&gt; (e.g. &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;+&lt;/kbd&gt;) (be careful with the stack lift or it gets confusing)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; e.g. &lt;code&gt;52 + j 36&lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;36&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;52&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;52 + j 36&lt;/code&gt; is now in Stack&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; enter second number &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; e.g. &lt;code&gt;23 - j 15&lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;15&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;CHS&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;23&lt;/kbd&gt; (&lt;strong&gt;don&amp;#039;t&lt;/strong&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; this…!!)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; to add them together use &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;+&lt;/kbd&gt; now (instead of &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt;)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; result : &lt;code&gt;75 + j 21&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;gotcha&quot;&gt;gotcha&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; pressing &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; after the second number (instead of the required complex function) will give you&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;table sectionedit17&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Stack value&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Stack&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; U &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;52 + j 36 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; V &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;23 - j 15 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; W &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;23 - j 15 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Z &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:17,&amp;quot;range&amp;quot;:&amp;quot;9690-9770&amp;quot;} --&gt;
&lt;p&gt;
doing a &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;+&lt;/kbd&gt; now will add the second number to itself and the result will be &lt;code&gt;46 - j 30&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
This is normal RPN stack behaviour, but is confusing when you&amp;#039;re building complex numbers. 
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;use_im_ag_instead&quot;&gt;use  ↑IM/AG instead&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
The &lt;code&gt;natural&lt;/code&gt; entry mode is &lt;em&gt;much&lt;/em&gt; better
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; you enter the real and imaginary parts in the order you expect them&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; the stack operation is less obscure. &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; It just seems more intuitive.&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
Page created Wed May 25 15:14:29 2022 by John Pumford-Green
&lt;/p&gt;

&lt;p&gt;
Page last updated: 17/02/26 15:42 GMT
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:calculator&amp;amp;do=showtag&amp;amp;tag=calculator&quot; class=&quot;wikilink1&quot; title=&quot;tag:calculator&quot; rel=&quot;tag&quot;&gt;calculator&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:dm41x&amp;amp;do=showtag&amp;amp;tag=dm41x&quot; class=&quot;wikilink1&quot; title=&quot;tag:dm41x&quot; rel=&quot;tag&quot;&gt;dm41x&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Alternate input method&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;alternate_input_method&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:16,&amp;quot;range&amp;quot;:&amp;quot;8791-&amp;quot;} --&gt;&lt;div class=&quot;footnotes&quot;&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__1&quot; id=&quot;fn__1&quot; class=&quot;fn_bot&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt; 
&lt;div class=&quot;content&quot;&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;Z&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;5&lt;/kbd&gt; to make sure!&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 17 Feb 2026 15:42:44 +0000</pubDate>
        </item>
        <item>
            <title>DM41X PPC ROM Solve &amp; Integrate</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:guides:dm41x_ppc</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:guides:start&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:guides:start&quot; data-wiki-id=&quot;public:calculator:guides:start&quot;&gt;Hints &amp;amp; Tips&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;dm41x_ppc_rom_solve_integrate&quot;&gt;DM41X PPC ROM Solve &amp;amp; Integrate&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DM41X PPC ROM Solve &amp;amp; Integrate&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dm41x_ppc_rom_solve_integrate&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-64&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;solve_sv&quot;&gt;Solve (SV)&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Similar to other Solvers (e.g. the Advantage Pac &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:guides:dm41x_solve&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:guides:dm41x_solve&quot; data-wiki-id=&quot;public:calculator:guides:dm41x_solve&quot;&gt;Solve&lt;/a&gt;) but with some minor differences to be aware of.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;ASTO&lt;/code&gt; the Global Label (name) of the program (in this example it&amp;#039;s &lt;code&gt;LBL AA&lt;/code&gt;) containing the expression to be solved in &lt;strong&gt;Register 06&lt;/strong&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ALPHA&lt;/kbd&gt;&lt;code&gt;AA&lt;/code&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ALPHA&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ALPHA&lt;/kbd&gt;&lt;code&gt;ASTO&lt;/code&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ALPHA&lt;/kbd&gt;&lt;code&gt;06&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; The program with the expression to be solved must be written as though unknown &lt;code&gt;x&lt;/code&gt; is on the x-stack only&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; other solvers “fill the stack” with &lt;code&gt;x&lt;/code&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; here you need to manipulate the stack to get &lt;code&gt;x&lt;/code&gt; as needed. It&amp;#039;s easiest is to just &lt;code&gt;ENTER&lt;/code&gt; &lt;code&gt;ENTER&lt;/code&gt; &lt;code&gt;ENTER&lt;/code&gt; and then treat the stack the same as other solvers (i.e. as if it&amp;#039;s filled with &lt;code&gt;x&lt;/code&gt; and you use &lt;code&gt;x&amp;lt;&amp;gt;y&lt;/code&gt; to pull a fresh copy of &lt;code&gt;x&lt;/code&gt; as needed in the expression).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Put a “step size” in y and a “start value” in x (e.g. &lt;code&gt;-3&lt;/code&gt;)&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;0&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; &lt;code&gt;-3&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; run &lt;code&gt;SV&lt;/code&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Solve (SV)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;solve_sv&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;65-1034&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;example&quot;&gt;example&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;code&gt; 2x&lt;sup&gt;2&lt;/sup&gt; + 3x - 4 = 0 &lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Prog “AA”
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;LBL AA
ENTER
ENTER
ENTER
x^2
2
*
x&amp;lt;&amp;gt;y
3
*
+
4
-
RTN
&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;for_the_first_root&quot;&gt;for the first root&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;0&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; &lt;code&gt;1&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ALPHA&lt;/kbd&gt; &lt;code&gt;SV&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ALPHA&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
and the answer comes…..
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;0.850781059&lt;/code&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;for_the_second_root&quot;&gt;for the second root&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;0&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; &lt;code&gt;-3&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ALPHA&lt;/kbd&gt; &lt;code&gt;SV&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ALPHA&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
and the answer comes…..
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;-2.350781060&lt;/code&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;example&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;example&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1035-1508&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;integrate_ig&quot;&gt;Integrate (IG)&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
This is very similar to &lt;code&gt;SV&lt;/code&gt; - the main difference is that the Global Label for the program containing the expression to be integrated is stored with &lt;code&gt;ASTO&lt;/code&gt; in &lt;strong&gt;Register 10&lt;/strong&gt;. 
&lt;/p&gt;

&lt;p&gt;
I&amp;#039;m using &lt;code&gt;AA&lt;/code&gt; as a general scratchpad Program label for use with Solve and Integrate…
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ALPHA&lt;/kbd&gt;&lt;code&gt;AA&lt;/code&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ALPHA&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ALPHA&lt;/kbd&gt;&lt;code&gt;ASTO&lt;/code&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ALPHA&lt;/kbd&gt;&lt;code&gt;10&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
For &lt;code&gt;SV&lt;/code&gt; it&amp;#039;s R06.
&lt;/p&gt;

&lt;p&gt;
Otherwise carry out the same procedure for storing the expression.
&lt;/p&gt;

&lt;p&gt;
Time taken for integration, and the accuracy obtained, is set by the display format - the more digits the longer the integration takes.
&lt;/p&gt;

&lt;p&gt;
Set &lt;code&gt;SCI 04&lt;/code&gt; for most cases.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Set the name of the prog. in &lt;code&gt;Reg 10&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Edit the prog. for the expression to be integrated&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Set the display format/accuracy to &lt;code&gt;SCI 04&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; The limits of integration are set &lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;lower&lt;/code&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; &lt;code&gt;upper&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Then the &lt;code&gt;IG&lt;/code&gt; routine is executed&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ALPHA&lt;/kbd&gt;&lt;code&gt;IG&lt;/code&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ALPHA&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Integrate (IG)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;integrate_ig&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1509-2512&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
See also : &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:guides:ppc_cv&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:guides:ppc_cv&quot; data-wiki-id=&quot;public:calculator:guides:ppc_cv&quot;&gt;DM41X PPC ROM Curve Fit&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Page created : 24/01/26 10:29 GMT
&lt;/p&gt;

&lt;p&gt;
Page updated : 19/04/26 21:11 BST
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:calculator&amp;amp;do=showtag&amp;amp;tag=calculator&quot; class=&quot;wikilink1&quot; title=&quot;tag:calculator&quot; rel=&quot;tag&quot;&gt;calculator&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:dm41x&amp;amp;do=showtag&amp;amp;tag=dm41x&quot; class=&quot;wikilink1&quot; title=&quot;tag:dm41x&quot; rel=&quot;tag&quot;&gt;dm41x&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;2513-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sun, 19 Apr 2026 20:11:47 +0000</pubDate>
        </item>
        <item>
            <title>DM15L Info</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:info:dm15l_information</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:info:start&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:info:start&quot; data-wiki-id=&quot;public:calculator:info:start&quot;&gt;Calculator Hardware&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;dm15l_info&quot;&gt;DM15L Info&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Acalculator%3Ainfo%3Adm15l_information&amp;amp;media=public:calculator:dm15_1.jpg&quot; class=&quot;media&quot; title=&quot;public:calculator:dm15_1.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=600&amp;amp;tok=a3f105&amp;amp;media=public:calculator:dm15_1.jpg&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DM15L Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dm15l_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;10-314&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;purchase_information&quot;&gt;Purchase Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Date   : September 2021&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; From   : Swiss Micros (direct)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Price  : £95&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Serial : 21350&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; New Battery&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; July 27&lt;sup&gt;th&lt;/sup&gt; 2022&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; July 26&lt;sup&gt;th&lt;/sup&gt; 2024&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; April 17&lt;sup&gt;th&lt;/sup&gt; 2026&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Purchase Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;purchase_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;315-563&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;firmware&quot;&gt;Firmware&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Firmware&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;firmware&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;564-585&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;upgrade_firmware_on_linux&quot;&gt;Upgrade firmware on Linux&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;code&gt;sudo lpc21isp &amp;lt;firmware_file&amp;gt; /dev/ttyUSB0 115200 12000&lt;/code&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;bash_scripts&quot;&gt;bash scripts&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
just to reduce the typing…. still need to press the hidden &lt;code&gt;reset&lt;/code&gt; button to start the flashing and to start the new firmware.
&lt;/p&gt;

&lt;p&gt;
You can have separate scripts for ease of loading different firmware
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;./lf_flash.sh&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;FWARE&lt;/span&gt;=LF15C_250408.hex
&amp;nbsp;
lpc21isp &lt;span class=&quot;re1&quot;&gt;$FWARE&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ttyUSB0 &lt;span class=&quot;nu0&quot;&gt;115200&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1200&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
&lt;code&gt;./dm32_flash.sh&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;FWARE&lt;/span&gt;=DM15_M1B_32.hex
&amp;nbsp;
lpc21isp &lt;span class=&quot;re1&quot;&gt;$FWARE&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ttyUSB0 &lt;span class=&quot;nu0&quot;&gt;115200&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1200&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
&lt;code&gt;./dm34_flash.sh&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;FWARE&lt;/span&gt;=DM15_M1B_34.hex
&amp;nbsp;
lpc21isp &lt;span class=&quot;re1&quot;&gt;$FWARE&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ttyUSB0 &lt;span class=&quot;nu0&quot;&gt;115200&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1200&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Upgrade firmware on Linux&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;upgrade_firmware_on_linux&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;586-1276&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;upgrade_firware_on_windows&quot;&gt;Upgrade firware on Windows&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;serial_usb_driver_for_windows&quot;&gt;Serial USB Driver for Windows&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:cp210x_universal_windows_driver.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:cp210x_universal_windows_driver.zip (280.1 KB)&quot;&gt;cp210x_universal_windows_driver.zip&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;windows_firmware_upload_tool&quot;&gt;Windows Firmware Upload Tool&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:voyage_firmware_tool.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:voyage_firmware_tool.zip (368.8 KB)&quot;&gt;voyage_firmware_tool.zip&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Upgrade firware on Windows&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;upgrade_firware_on_windows&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1277-1511&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;swiss_micros_official&quot;&gt;Swiss Micros Official&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;swiss_micros_firmware_files&quot;&gt;Swiss Micros Firmware files&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;div class=&quot;table sectionedit7&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Date&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Serial No.&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Firmware&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Version&lt;/th&gt;&lt;th class=&quot;col4&quot;&gt;Firmware Files&lt;/th&gt;&lt;th class=&quot;col5&quot;&gt;Comments&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;24/05/22 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;21350 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;DM15_M1B &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;32 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:dm15_m1b_32.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:dm15_m1b_32.zip (53.9 KB)&quot;&gt;dm15_m1b_32.zip&lt;/a&gt;&lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; Extended User Registers&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;22/11/23&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;21350&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;DM15&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;32&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:dm15_32.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:dm15_32.zip (53.8 KB)&quot;&gt;dm15_32.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; Standard User Registers &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;21/12/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 21350 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; DM15_M1B &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 33 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:dm15_m1b_33.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:dm15_m1b_33.zip (70.1 KB)&quot;&gt;dm15_m1b_33.zip&lt;/a&gt;&lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; New 2-line stack and other mods &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;23/01/26 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 21350 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; DM15_M1B &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 34 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:dm15_m1b_34.hex&quot; class=&quot;media mediafile mf_hex&quot; title=&quot;public:calculator:info:dm15_m1b_34.hex (160 KB)&quot;&gt;dm15_m1b_34.hex&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; Bug fixes to new version &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;1583-2068&amp;quot;} --&gt;&lt;div class=&quot;table sectionedit8&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;ROM &lt;/th&gt;&lt;th class=&quot;col1&quot;&gt; Allocatable registers &lt;/th&gt;&lt;th class=&quot;col2 rightalign&quot;&gt;	RAM base addr. &lt;/th&gt;&lt;th class=&quot;col3 rightalign&quot;&gt;	Initial Memory Status&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;DM15 (Original ROM)&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 64 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;0xc0&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 19 46 0-0&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;DM15_M80&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;128&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;0x80&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;19 110 0-0&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;DM15_M1B&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;229&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;0x1b&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;19 211 0-0&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;2070-2245&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Swiss Micros Official&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;swiss_micros_official&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;1512-2246&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;lf15c_-_3rd_party_firmware&quot;&gt;LF15C - 3rd Party Firmware&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; From HP Forum &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-20046.html&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-20046.html&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.hpmuseum.org/forum/thread-20046.html&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
For more details see &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:3rd:lf15c&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:3rd:lf15c&quot; data-wiki-id=&quot;public:calculator:3rd:lf15c&quot;&gt;LF15C - firmware for the DM15&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;LF15C - 3rd Party Firmware&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;lf15c_-_3rd_party_firmware&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;2247-2396&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit10&quot; id=&quot;desk-15_-_3rd_party_firmware&quot;&gt;DESK-15 - 3rd Party Firmware&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; From HP Forum &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-23488.html&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-23488.html&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.hpmuseum.org/forum/thread-23488.html&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; You Tube &lt;a href=&quot;https://youtu.be/ktrKZzN3wJw&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://youtu.be/ktrKZzN3wJw&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://youtu.be/ktrKZzN3wJw&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Github for firmware and brief README guide &lt;a href=&quot;https://github.com/zooxo/desk15&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://github.com/zooxo/desk15&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://github.com/zooxo/desk15&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
I&amp;#039;ll try it out and write up some details…..
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:3rd:desk15&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:3rd:desk15&quot; data-wiki-id=&quot;public:calculator:3rd:desk15&quot;&gt;Desk15 - firmware for the DM15&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DESK-15 - 3rd Party Firmware&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;desk-15_-_3rd_party_firmware&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;2397-2710&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit11&quot; id=&quot;rtc_error&quot;&gt;RTC Error&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTC is not capable of calibration/correction&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTC appears to continue running even when switching firmware&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; LF15C has no ability to display RTC but it the rate appears unaffected by the firmware changes&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Requires that Swiss Micros firmware is loaded in order to check current RTC time&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;RTC Error&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;rtc_error&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;2711-3036&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit12&quot; id=&quot;update_january_2026&quot;&gt;Update January 2026&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Using my &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:watchcheck&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:watchcheck&quot; data-wiki-id=&quot;public:miscellany:watches:watchcheck&quot;&gt;python Watchcheck&lt;/a&gt;
&lt;/p&gt;
&lt;div class=&quot;table sectionedit13&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Date Start&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Date Check&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Delta&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Latest Rate Error&lt;/th&gt;&lt;th class=&quot;col4&quot;&gt;Average Rate Error&lt;/th&gt;&lt;th class=&quot;col5&quot;&gt;Comments&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;23/01/26&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; -49.0 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; Delta -49.0. New firmware DM15 V34 loaded. New Period &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;23/01/26&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 24/01/26&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; -47.0 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;+2.1 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; +2.1 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; After 24 hours &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;23/01/26&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 26/01/26 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; -43.4 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; +1.9 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; +2.0 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; After 3 days &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;23/01/26&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 27/01/26 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; -41.9 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; +1.8 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; +1.9 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; After 4 days. LF15C loaded after time check &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;23/01/26&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 11/02/26 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; -11.2 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; +2.0 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; +2.0 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; After 19 days. DM15_M1B_34 reloaded to check time &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;23/01/26&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 04/04/26 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; +88.3 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; +1.9 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; +1.9 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; After 71 days &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table2&amp;quot;,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;3136-3658&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Update January 2026&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;update_january_2026&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;3037-3662&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit14&quot; id=&quot;swiss_micros_info&quot;&gt;Swiss Micros Info&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Firmware      : &lt;a href=&quot;https://technical.swissmicros.com/voyager/firmware/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://technical.swissmicros.com/voyager/firmware/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://technical.swissmicros.com/voyager/firmware/&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Documentation : &lt;a href=&quot;https://technical.swissmicros.com/voyager/doc/voyager_user_manual.html&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://technical.swissmicros.com/voyager/doc/voyager_user_manual.html&quot; rel=&quot;ugc nofollow noopener&quot;&gt; Online HTML User Manual&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Documentation : &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:voyager_user_manual.pdf&quot; class=&quot;media mediafile mf_pdf&quot; title=&quot;public:calculator:info:voyager_user_manual.pdf (1.7 MB)&quot;&gt; PDF Manual&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Product Page  : &lt;a href=&quot;https://www.swissmicros.com/product/dm15l&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.swissmicros.com/product/dm15l&quot; rel=&quot;ugc nofollow noopener&quot;&gt;DM15L&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Swiss Micros Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;swiss_micros_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;3663-4049&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit15&quot; id=&quot;hp-15c_owner_s_handbooks&quot;&gt;HP-15C Owner&amp;#039;s Handbooks&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Download from &lt;a href=&quot;https://literature.hpcalc.org/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://literature.hpcalc.org/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://literature.hpcalc.org/&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HP-15C Owner&amp;#039;s Handbook : &lt;a href=&quot;https://literature.hpcalc.org/community/hp15c-oh-en.pdf&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://literature.hpcalc.org/community/hp15c-oh-en.pdf&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://literature.hpcalc.org/community/hp15c-oh-en.pdf&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HP-15C Advanced Functions Handbook : &lt;a href=&quot;https://literature.hpcalc.org/community/hp15c-afh-en.pdf&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://literature.hpcalc.org/community/hp15c-afh-en.pdf&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://literature.hpcalc.org/community/hp15c-afh-en.pdf&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;HP-15C Owner&amp;#039;s Handbooks&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hp-15c_owner_s_handbooks&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;4050-4331&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit16&quot; id=&quot;dm15l_memory_dumps_and_program_listings&quot;&gt;DM15L Memory Dumps and Program Listings&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; See &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:progs:dm15l_progs&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:progs:dm15l_progs&quot; data-wiki-id=&quot;public:calculator:progs:dm15l_progs&quot;&gt;DM15L Progs&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:calculator&amp;amp;do=showtag&amp;amp;tag=calculator&quot; class=&quot;wikilink1&quot; title=&quot;tag:calculator&quot; rel=&quot;tag&quot;&gt;calculator&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:dm15l&amp;amp;do=showtag&amp;amp;tag=dm15l&quot; class=&quot;wikilink1&quot; title=&quot;tag:dm15l&quot; rel=&quot;tag&quot;&gt;dm15l&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DM15L Memory Dumps and Program Listings&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dm15l_memory_dumps_and_program_listings&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:16,&amp;quot;range&amp;quot;:&amp;quot;4332-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 17 Apr 2026 10:45:56 +0000</pubDate>
        </item>
        <item>
            <title>DM41L Info</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:info:dm41l_info</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:info:start&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:info:start&quot; data-wiki-id=&quot;public:calculator:info:start&quot;&gt;Calculator Hardware&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;dm41l_info&quot;&gt;DM41L Info&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DM41L Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dm41l_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-41&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;purchase_information&quot;&gt;Purchase Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Date   : 26 Aug 2024&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; From   : Swiss Micros (Direct)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Price  : approx £200&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Serial : 05121&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Battery Change&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 26/08/24&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 04/04/26&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Purchase Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;purchase_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;42-231&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;firmware&quot;&gt;Firmware&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:cp210x_universal_windows_driver.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:cp210x_universal_windows_driver.zip (280.1 KB)&quot;&gt;cp210x_universal_windows_driver.zip&lt;/a&gt;
&lt;/p&gt;
&lt;div class=&quot;table sectionedit4&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Date&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Serial No.&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Firmware&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Version&lt;/th&gt;&lt;th class=&quot;col4&quot;&gt;Firmware Files&lt;/th&gt;&lt;th class=&quot;col5&quot;&gt;Firmware Tool&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 26/08/24&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 05121 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; DM41 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; V32 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:dm41_32.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:dm41_32.zip (73.2 KB)&quot;&gt;dm41_32.zip&lt;/a&gt;&lt;/td&gt;&lt;td class=&quot;col5&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:voyage_firmware_tool.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:voyage_firmware_tool.zip (368.8 KB)&quot;&gt;voyage_firmware_tool.zip&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 01/02/25 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 05121 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; DM41 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; V33 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:dm41_33.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:dm41_33.zip (74.3 KB)&quot;&gt;dm41_33.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col5 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 21/12/25 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 05121 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; DM41 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; V34 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:dm41_34.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:dm41_34.zip (75.3 KB)&quot;&gt;dm41_34.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; Linux, using lpc21isp &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;325-700&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Firmware&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;firmware&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;232-701&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;rtc&quot;&gt;RTC&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; RTC is not capable of calibration/correction?&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Perhaps the HP41CX Time corr. feature works?&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Gather data on inherent time error for a period and then try to change the values via HP41CX functionality&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;RTC&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;rtc&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;702-933&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;update_january_2026&quot;&gt;Update January 2026&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Using my &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:watchcheck&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:watchcheck&quot; data-wiki-id=&quot;public:miscellany:watches:watchcheck&quot;&gt;python Watchcheck&lt;/a&gt;
&lt;/p&gt;
&lt;div class=&quot;table sectionedit7&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Date Start&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Date Check&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Delta&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Latest Rate Error&lt;/th&gt;&lt;th class=&quot;col4&quot;&gt;Average Rate Error&lt;/th&gt;&lt;th class=&quot;col5&quot;&gt;Comments&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;23/01/26 &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;+49.6  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; New Period Start &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;23/01/26&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;24/01/26 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;+50.6 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;+1.0 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;+1.0 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; After 24 hours &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;23/01/26&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;26/01/26&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;+52.8 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;+1.2 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;+1.1 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; After 3 days &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;23/01/26&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;27/01/26 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;+53.6 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;+1.0 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;+1.1 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; After 4 days &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;1033-1322&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Update January 2026&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;update_january_2026&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;934-1323&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;swiss_micros_info&quot;&gt;Swiss Micros Info&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Firmware      : &lt;a href=&quot;https://technical.swissmicros.com/voyager/firmware/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://technical.swissmicros.com/voyager/firmware/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://technical.swissmicros.com/voyager/firmware/&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Documentation : &lt;a href=&quot;https://technical.swissmicros.com/voyager/doc/voyager_user_manual.html&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://technical.swissmicros.com/voyager/doc/voyager_user_manual.html&quot; rel=&quot;ugc nofollow noopener&quot;&gt;Online HTML User Manual&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Documentation : &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:voyager_user_manual.pdf&quot; class=&quot;media mediafile mf_pdf&quot; title=&quot;public:calculator:info:voyager_user_manual.pdf (1.7 MB)&quot;&gt; PDF Manual&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Product Page  : &lt;a href=&quot;https://www.swissmicros.com/product/dm41l&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.swissmicros.com/product/dm41l&quot; rel=&quot;ugc nofollow noopener&quot;&gt;DM41L&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Swiss Micros Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;swiss_micros_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;1324-1709&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit9&quot; id=&quot;hp-41cx_owner_s_manuals&quot;&gt;HP-41CX Owner&amp;#039;s Manuals&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Download from &lt;a href=&quot;https://literature.hpcalc.org&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://literature.hpcalc.org&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://literature.hpcalc.org&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HP-41CX Owner&amp;#039;s Manual Vol. 1 : &lt;a href=&quot;https://literature.hpcalc.org/community/hp41cx-om-vol1-en.pdf&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://literature.hpcalc.org/community/hp41cx-om-vol1-en.pdf&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://literature.hpcalc.org/community/hp41cx-om-vol1-en.pdf&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HP-41CX Owner&amp;#039;s Manual Vol. 2 : &lt;a href=&quot;https://literature.hpcalc.org/community/hp41cx-om-vol2-en.pdf&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://literature.hpcalc.org/community/hp41cx-om-vol2-en.pdf&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://literature.hpcalc.org/community/hp41cx-om-vol2-en.pdf&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HP-41CX Quick Reference Guide : &lt;a href=&quot;https://literature.hpcalc.org/community/hp41cx-qrg-en.pdf&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://literature.hpcalc.org/community/hp41cx-qrg-en.pdf&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://literature.hpcalc.org/community/hp41cx-qrg-en.pdf&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;HP-41CX Owner&amp;#039;s Manuals&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hp-41cx_owner_s_manuals&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;1710-2098&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit10&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:progs:dm41l_progs&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:progs:dm41l_progs&quot; data-wiki-id=&quot;public:calculator:progs:dm41l_progs&quot;&gt;DM41L Progs&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:benchmarking:start&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:benchmarking:start&quot; data-wiki-id=&quot;public:calculator:benchmarking:start&quot;&gt;Benchmarking&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:calculator&amp;amp;do=showtag&amp;amp;tag=calculator&quot; class=&quot;wikilink1&quot; title=&quot;tag:calculator&quot; rel=&quot;tag&quot;&gt;calculator&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:dm41l&amp;amp;do=showtag&amp;amp;tag=dm41l&quot; class=&quot;wikilink1&quot; title=&quot;tag:dm41l&quot; rel=&quot;tag&quot;&gt;dm41l&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;2099-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sat, 04 Apr 2026 10:33:16 +0000</pubDate>
        </item>
        <item>
            <title>DM41L Progs</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:progs:dm41l_progs</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:progs:start&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:progs:start&quot; data-wiki-id=&quot;public:calculator:progs:start&quot;&gt;Programs&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;dm41l_progs&quot;&gt;DM41L Progs&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Memo &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:progs:03319.pdf&quot; class=&quot;media mediafile mf_pdf&quot; title=&quot;public:calculator:progs:03319.pdf (280.2 KB)&quot;&gt;03319.pdf&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; from HP Documents archive. &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DM41L Progs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dm41l_progs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-128&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;memory_dump&quot;&gt;Memory Dump&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 15&lt;sup&gt;th&lt;/sup&gt; Feb 2025&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;DM41
00  91000000000000  09000000000000  02000000000000  02000000000000
04  02016000000000  00000000000000  00000000000000  00000000000000
08  2b000000000000  c0020020020000  0000000000c000  00000000000000
0c  000000000041a7  1d9001691ce1a7  0000002c028000  00000020004000
40  000020022ef0bf  00000000000000  00000000000000  00000000000000
94  00000000000000  ffffffffffffff  00000000000000  00000000000000
ac  00000000000000  00000000000000  323530313233ff  354c2042455441
b0  33373210444d31  52434320343738  31342e30300b4d  0b434153482024
b4  30b4001000201e  4d454d4f202020  9c000000c8072d  10428085c80609
b8  9c214a6d131610  5b409700b200a6  0102515250555e  83838331a69cce
bc  81121419193011  c600f400535647  10000000031008  53564720202020
1a4  00000000000000  00000000000000  00000000000000  ca110900c80029
1a8  00cf6aa64db400  a6547ead1584b4  43a66168a66a04  0119a64cac16a6
1ac  8e9201f220249b  414d4f554e543f  2024a65d1003f7  7ea646a64231f2
1b0  1316a65c66b400  b10002a654a66a  78b2001140a66a  a64466b3058368
1b4  00a91601a65d66  3f8c8e8bad17b4  a917f54954454d  454d4fa66b9c02
1b8  454d4f1031f44d  0309c600f51a4d  425431202185c6  20114043561210
1bc  5332524c301141  c60309c600f500  11414331222185  10435730114020
1c0  00524c32533212  85c80709c600f5  458e4311101042  714132f453495a
1c4  f547524f53538e  401a1415144231  11101042111643  52458e83687169
1c8  00474153f45441  85c20409c600f4  02131016411843  18421310164085
1cc  1310157145b201  c000f400445454  00000000000000  91000000000000
1d0  01175000000001  00000000000000  01015789474002  04620836303000
1d8  00000000000000  08111332867002  03457375047005  06100000000002
1dc  01860500000005  02473956524005  02000000000000  00000000000000
200  00000000000000  000000400002ef  ffffffffffffff  00000000000000
A: c000f400445454  B: 0000002c0280fd  C: 0000002c0280fd
S: 00100100000000
M: 00011cd5ff73cb  N: 000000000c1440  G: 00

&lt;/pre&gt;

&lt;p&gt;
This decodes as :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;; SIZE = 50
; STACK = 2 2 9 -1 2.016
; REG00 = 0 -1 11.75 0
; REG04 = 101.5789474 4.620836303 0 0
; REG08 = 0 0 0 811.1332867
; REG12 = 345737.5047 610 186050 247395.6524
; REG16 = 2 0 0 0
; REG48 = 0 0
LBL &amp;quot;DTT&amp;quot;
305
X&amp;lt;&amp;gt;Y
X&amp;gt;Y?
GTO 01
8
*
306
+
RTN
LBL 01
306
-
8
/
RTN
END
LBL &amp;quot;GAS&amp;quot;
&amp;quot;TARE&amp;quot;
PROMPT
ENTER
INT
X&amp;lt;&amp;gt;Y
FRC
100
*
16
/
+
.454
*
STO 01
&amp;quot;GROSS&amp;quot;
PROMPT
X&amp;lt;&amp;gt;Y
-
STO 02
&amp;quot;SIZE&amp;quot;
PROMPT
/
100
*
RTN
END
LBL &amp;quot;RL2S&amp;quot;
STO 02
20
/
10^X
STO 00
1
+
RCL 00
1
-
/
STO 01
RCL 02
RCL 01
RTN
END
LBL &amp;quot;S2RL&amp;quot;
STO 00
1
-
RCL 00
1
+
/
LOG
20
*
CHS
STO 01
RCL 00
RCL 01
RTN
END
LBL &amp;quot;MEMO&amp;quot;  ; Key: -22
0
STO 01
&amp;quot;MEMO&amp;quot;
SEEKPTA  ;XROM 25,43
FIX 02
CF 23
&amp;quot;ITEM?&amp;quot;
AON
PROMPT
AOFF
FC? 23
GTO 03
CF 22
LBL 00
POSFL  ;XROM 25,29
X&amp;lt;0?
APPREC  ;XROM 25,04
X&amp;lt;0?
GTO 02
ENTER
INT
X=Y?
GTO 01
1
+
SEEKPT  ;XROM 25,42
GTO 00
LBL 01
GETREC  ;XROM 25,20
SEEKPT  ;XROM 25,42
36
POSA  ;XROM 25,28
X&amp;lt;0?
GTO 03
AVIEW
AROT  ;XROM 25,06
ANUM  ;XROM 25,02
STO 01
&amp;quot; $&amp;quot;
POSFL  ;XROM 25,29
0
LBL 02
&amp;quot;AMOUNT?&amp;quot;
PROMPT
ST+ 01
&amp;quot; $&amp;quot;
ARCL 01
9
DELCHR  ;XROM 25,12
FS? 22
APPCHR  ;XROM 25,03
RCLPT  ;XROM 25,33
INT
SEEKPT  ;XROM 25,42
LBL 03
GETREC  ;XROM 25,20
AVIEW
FC? 21
STOP
GTO 03
LBL E
DELREC  ;XROM 25,13
GTO 03
END
END
; MEM = 40  000020022ef0bf  00000000000000  00000000000000  00000000000000
; MEM = 94  00000000000000  ffffffffffffff  00000000000000  00000000000000
; MEM = ac  00000000000000  00000000000000  323530313233ff  354c2042455441
; MEM = b0  33373210444d31  52434320343738  31342e30300b4d  0b434153482024
; MEM = b4  30b4001000201e  4d454d4f202020  9c000000c8072d  10428085c80609
; MEM = b8  9c214a6d131610  5b409700b200a6  0102515250555e  83838331a69cce
; MEM = bc  81121419193011  c600f400535647  10000000031008  53564720202020
; MEM = 200  00000000000000  000000400002ef  ffffffffffffff  00000000000000
&lt;/pre&gt;

&lt;p&gt;
using the Voyager decoder at &lt;a href=&quot;https://dm41.swissmicros.com/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://dm41.swissmicros.com/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://dm41.swissmicros.com/&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Memory Dump&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;memory_dump&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;129-3959&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;section_two&quot;&gt;Section Two&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 15/02/25 14:19 GMT&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Section Two&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;section_two&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;3960-4033&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:calculator&amp;amp;do=showtag&amp;amp;tag=calculator&quot; class=&quot;wikilink1&quot; title=&quot;tag:calculator&quot; rel=&quot;tag&quot;&gt;calculator&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:dm41l&amp;amp;do=showtag&amp;amp;tag=dm41l&quot; class=&quot;wikilink1&quot; title=&quot;tag:dm41l&quot; rel=&quot;tag&quot;&gt;dm41l&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;4034-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 23 Jan 2026 14:50:00 +0000</pubDate>
        </item>
        <item>
            <title>DokuWiki Unison Backup</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:dokuwiki_backup</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;dokuwiki_unison_backup&quot;&gt;DokuWiki Unison Backup&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Using &lt;code&gt;unison&lt;/code&gt; to sync a copy of the full &lt;code&gt;dokuwiki&lt;/code&gt; data on the VPS to a Dropbox folder on my Shack PC, so that I have a backup copy, &lt;em&gt;in the cloud&lt;/em&gt; in case of disaster. I&amp;#039;d hate to lose all the work that goes into writing this stuff…
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DokuWiki Unison Backup&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dokuwiki_unison_backup&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-283&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;config_files&quot;&gt;Config Files&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; on the Shack PC create a &lt;code&gt;~/.unison/dokuwiki.prf&lt;/code&gt; file&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code bash&quot;&gt;root = &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Dropbox&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Documents&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dokuwiki
root = ssh:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;gm4slv.org.uk&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;www&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dokuwiki
sshargs = &lt;span class=&quot;re5&quot;&gt;-C&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
To account for making the laptop&amp;#039;s copy into a &lt;code&gt;git&lt;/code&gt; repository  I added: 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;ignore = Path .git&lt;/pre&gt;

&lt;p&gt;
to the laptop config (see &lt;a href=&quot;#github_repository&quot; title=&quot;public:computers:archive:dokuwiki_backup ↵&quot; class=&quot;wikilink1&quot;&gt;Github Repository&lt;/a&gt; )  — &lt;em&gt;John Pumford-Green 29/05/22 00:29&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; on the VPS server create a similar &lt;code&gt;~/.unison/dokuwiki.prf&lt;/code&gt; file&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code bash&quot;&gt;root = &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dokuwiki
root = ssh:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;gm4slv.plus.com:&lt;span class=&quot;nu0&quot;&gt;27659&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Dropbox&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Documents&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dokuwiki
sshargs = &lt;span class=&quot;re5&quot;&gt;-C&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Config Files&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;config_files&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;284-907&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;first_run&quot;&gt;First Run&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Run the first time on the Shack PC to download the dokuwiki directory tree &lt;em&gt;from&lt;/em&gt; the VPS 
&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_57174af551d1af75af5c5b6f3b3ffc5a_1&quot;&gt;unison dokuwiki &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_57174af551d1af75af5c5b6f3b3ffc5a_1&quot;&gt;&lt;pre class=&quot;code&quot;&gt;gm4slv@laptop:~/.unison $ unison dokuwiki
Unison 2.51.3 (ocaml 4.11.1): Contacting server...
Connected [//gm4slv//var/www/html/dokuwiki -&amp;gt; //laptop//home/gm4slv/Dropbox/Docu                                                                                                 ments/dokuwiki]
Looking for changes
Warning: No archive files were found for these roots, whose canonical names are:
        /home/gm4slv/Dropbox/Documents/dokuwiki
        //gm4slv//var/www/html/dokuwiki
This can happen either
because this is the first time you have synchronized these roots,
or because you have upgraded Unison to a new version with a different
archive format.

Update detection may take a while on this run if the replicas are
large.

Unison will assume that the &amp;#039;last synchronized state&amp;#039; of both replicas
was completely empty.  This means that any files that are different
will be reported as conflicts, and any files that exist only on one
replica will be judged as new and propagated to the other replica.
If the two replicas are identical, then no changes will be reported.

If you see this message repeatedly, it may be because one of your machines
is getting its address from DHCP, which is causing its host name to change
between synchronizations.  See the documentation for the UNISONLOCALHOSTNAME
environment variable for advice on how to correct this.

Donations to the Unison project are gratefully accepted:
http://www.cis.upenn.edu/~bcpierce/unison


Press return to continue.[&amp;lt;spc&amp;gt;]
  Waiting for changes from server
Reconciling changes

local          gm4slv
         &amp;lt;---- file       .htaccess.dist  [f]
         &amp;lt;---- file       COPYING  [f]
         &amp;lt;---- file       README  [f]
         &amp;lt;---- file       VERSION  [f]
         &amp;lt;---- dir        bin  [f]
         &amp;lt;---- dir        conf  [f]
         &amp;lt;---- dir        data  [f]
         &amp;lt;---- file       doku.php  [f]
         &amp;lt;---- file       feed.php  [f]
         &amp;lt;---- dir        inc  [f]
         &amp;lt;---- file       index.php  [f]
         &amp;lt;---- file       install.php  [f]
         &amp;lt;---- dir        lib  [f]
         &amp;lt;---- dir        vendor  [f]

Proceed with propagating updates? [] y
Propagating updates

........
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
Everything is downloaded from the VPS and saved in the Dropbox folder, from where it is uploaded to the &lt;em&gt;cloud&lt;/em&gt;.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;First Run&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;first_run&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;908-3362&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;future_runs&quot;&gt;Future runs...&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
I could automate the process, using various command line switches to automatically &lt;em&gt;“do the right thing”&lt;/em&gt; without needing to answer Yes/No questions
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;unison -auto -batch -silent dokuwiki&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
and even put it in a cron job,  but for now just running it every now and again manually might be enough.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Future runs...&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;future_runs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;3363-3692&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;restore_from_backup&quot;&gt;restore from backup&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
If the VPS version of the dokuwiki ever gets totally screwed up I can restore it by running the same script from the other side and chosing which direction to do the sync in ( shack → VPS ) 
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; on the VPS server&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;code&gt;unison dokuwkiki&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
which will pull the last sync&amp;#039;d version &lt;em&gt;from&lt;/em&gt; my backup &lt;em&gt;to&lt;/em&gt; my &lt;strong&gt;home&lt;/strong&gt; directory on the VPS ( i.e. not straight to &lt;code&gt;/var/www/html/dokuwiki&lt;/code&gt;) from where I can copy it back to the webserver directory. 
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;I can run this command regularly to keep a mirror of the Dropbox backup on the VPS in case I need it later.&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
(&lt;em class=&quot;u&quot;&gt;update 28/5/22&lt;/em&gt;) I&amp;#039;ve added it to &lt;code&gt;crontab&lt;/code&gt; to run daily at 04:30:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&amp;nbsp;
unison &lt;span class=&quot;re5&quot;&gt;-batch&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-auto&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-silent&lt;/span&gt; dokuwiki&lt;/pre&gt;

&lt;p&gt;
crontab:
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;30 04 * * * /home/gm4slv/bin/dokuwiki_unison.sh &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;/code&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;restore from backup&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;restore_from_backup&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;3693-4513&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;github_repository&quot;&gt;Github Repository&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
I made a new github repository to hold the Dokuwiki folder tree, too. The &lt;code&gt;laptop / Dropbox&lt;/code&gt; backup, taken via Unison from the VPS server, is the local repository.
&lt;/p&gt;

&lt;p&gt;
The workflow to keep things backed up:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; on Shack Laptop&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; run unison to retrieve the current &lt;em&gt;production&lt;/em&gt; copy of the DokuWiki directory tree:&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;pre class=&quot;code&quot;&gt; unison -batch -auto dokuwiki &lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; there was an error flagged → the &lt;code&gt;.git&lt;/code&gt; folder isn&amp;#039;t present on the VPS&amp;#039;s webserver root but &lt;em&gt;is&lt;/em&gt; in the unison backup directory on the laptop. &lt;em&gt;Just ignore it?&lt;/em&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; I found you can tell &lt;code&gt;unison&lt;/code&gt; to ignore the &lt;code&gt;.git&lt;/code&gt; folder by adding &lt;pre class=&quot;code&quot;&gt;ignore = Path .git&lt;/pre&gt;

&lt;p&gt;
 to the &lt;code&gt;prf&lt;/code&gt; config file on laptop — &lt;em&gt;John Pumford-Green 29/05/22 00:30&lt;/em&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; cd into &lt;code&gt;~/Dropbox/Documents/dokuwiki&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; add all files to git &lt;pre class=&quot;code&quot;&gt;git add .&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; commit &lt;pre class=&quot;code&quot;&gt;git commit -m &amp;quot;backup&amp;quot;&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; push to github &lt;pre class=&quot;code&quot;&gt;git push&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; on VPS&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; in &lt;code&gt;home&lt;/code&gt; directory, run &lt;pre class=&quot;code&quot;&gt;unison -batch dokuwiki&lt;/pre&gt;

&lt;p&gt;
 to pull the &lt;code&gt;dropbox&lt;/code&gt; copy back to the VPS
&lt;/p&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; copy the dokuwiki tree to &lt;code&gt;/var/www/html/&lt;/code&gt; (is &lt;code&gt;unison&lt;/code&gt; also useful here?) (or rsync &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:dokuwiki_mirror&quot; class=&quot;wikilink1&quot; title=&quot;public:computers:archive:dokuwiki_mirror&quot; data-wiki-id=&quot;public:computers:archive:dokuwiki_mirror&quot;&gt;Dokuwiki Mirror&lt;/a&gt;)&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; in extremis it should be possible to simply clone the &lt;code&gt;github&lt;/code&gt; repository instead of using &lt;code&gt;unison&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
Page Updated : 04/06/26 08:17 BST
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:linux&amp;amp;do=showtag&amp;amp;tag=linux&quot; class=&quot;wikilink1&quot; title=&quot;tag:linux&quot; rel=&quot;tag&quot;&gt;linux&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:vps&amp;amp;do=showtag&amp;amp;tag=vps&quot; class=&quot;wikilink1&quot; title=&quot;tag:vps&quot; rel=&quot;tag&quot;&gt;vps&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:dokuwiki&amp;amp;do=showtag&amp;amp;tag=dokuwiki&quot; class=&quot;wikilink1&quot; title=&quot;tag:dokuwiki&quot; rel=&quot;tag&quot;&gt;dokuwiki&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:unison&amp;amp;do=showtag&amp;amp;tag=unison&quot; class=&quot;wikilink1&quot; title=&quot;tag:unison&quot; rel=&quot;tag&quot;&gt;unison&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:github&amp;amp;do=showtag&amp;amp;tag=github&quot; class=&quot;wikilink1&quot; title=&quot;tag:github&quot; rel=&quot;tag&quot;&gt;github&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Github Repository&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;github_repository&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;4514-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 07:17:50 +0000</pubDate>
        </item>
        <item>
            <title>Anytone AT-D878UV</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:radio_database:at-d878uv</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:radio_database:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:radio_database:start&quot; data-wiki-id=&quot;public:radio:radio_database:start&quot;&gt;Rig and Key List&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;anytone_at-d878uv&quot;&gt;Anytone AT-D878UV&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Anytone AT-D878UV&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;anytone_at-d878uv&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-51&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;files&quot;&gt;Files&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;table sectionedit3&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Date&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;File&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Comments&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 17/03/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:radio_database:current_878_170324.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:radio:radio_database:current_878_170324.zip (4.8 MB)&quot;&gt;current_878_170324.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; Codeplug 3 DMR plus DMR2YSF &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 17/03/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:radio_database:d878uv_v1.21.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:radio:radio_database:d878uv_v1.21.zip (7.7 MB)&quot;&gt;d878uv_v1.21.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; Working 1.21 &amp;amp; CPS &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 17/03/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:radio_database:878_contacts.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:radio:radio_database:878_contacts.zip (4.3 MB)&quot;&gt;878_contacts.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; Pruned Contacts file &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 06/04/25 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:radio_database:current_878_050425.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:radio:radio_database:current_878_050425.zip (4.7 MB)&quot;&gt;current_878_050425.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; Codeplug 3 DMR &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 06/04/25 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:radio_database:contacts_050425.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:radio:radio_database:contacts_050425.zip (4.2 MB)&quot;&gt;contacts_050425.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; Pruned Contacts file &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;71-560&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Files&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;files&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;52-562&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;page_info&quot;&gt;Page Info&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Page created Wed May 25 00:02:24 2022 by John Pumford-Green
&lt;/p&gt;

&lt;p&gt;
Page last updated: 04/06/26 07:39 BST
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Page Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;page_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;563-676&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;tags&quot;&gt;tags&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:dv&amp;amp;do=showtag&amp;amp;tag=dv&quot; class=&quot;wikilink1&quot; title=&quot;tag:dv&quot; rel=&quot;tag&quot;&gt;dv&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:dmr&amp;amp;do=showtag&amp;amp;tag=dmr&quot; class=&quot;wikilink1&quot; title=&quot;tag:dmr&quot; rel=&quot;tag&quot;&gt;dmr&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;tags&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;tags&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;677-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 06:39:56 +0000</pubDate>
        </item>
        <item>
            <title>Xeigu G90</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:radio_database:xeigu_g90</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:radio_database:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:radio_database:start&quot; data-wiki-id=&quot;public:radio:radio_database:start&quot;&gt;Rig and Key List&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;xeigu_g90&quot;&gt;Xeigu G90&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Xeigu G90&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;xeigu_g90&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-43&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;documentation&quot;&gt;Documentation&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Documentation&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;documentation&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;44-71&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;firmware_upgrade_process&quot;&gt;Firmware Upgrade process&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Use TeraTerm and “blue USB Serial adaptor”
&lt;/p&gt;

&lt;p&gt;
Set TerraTerm to 115200 8n1 and the appropriate COM port
&lt;/p&gt;

&lt;p&gt;
Plug to Main unit COM port
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Hold &lt;kbd class=&quot;__keyboard&quot;&gt;SPACE&lt;/kbd&gt; and power-on G90&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Choose “1. Update F/W”&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; After “Erase” select F/W file to send in TerraTerm via “File → Transfer → XMODEM → Send&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; check the “1k” box&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Power off Radio after transfer completes&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;  Move to Front Panel COM port&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Hold &lt;kbd class=&quot;__keyboard&quot;&gt;SPACE&lt;/kbd&gt; and power-on G90 again&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; repeat process to upgrade front panel&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Once complete depower radio. &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Wait 5 seconds (remove COM connection)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Power on as normal&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Firmware Upgrade process&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;firmware_upgrade_process&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;72-706&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;firmware&quot;&gt;Firmware&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;table sectionedit5&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Date&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Firmware Version&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Firmware Files&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Comments&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;     &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;         &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;      &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0 rightalign&quot;&gt;  12/5/23&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 1.79b03 &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:radio_database:g90fw_v1.79_fw_v1.79b03_221026.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:radio:radio_database:g90fw_v1.79_fw_v1.79b03_221026.zip (296.8 KB)&quot;&gt;g90fw_v1.79_fw_v1.79b03_221026.zip&lt;/a&gt;     &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; new IF Filter adjust method - not intuitive &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 12/5/23 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 1.78b01 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:radio_database:g90_fw_v1.78b01-20220119.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:radio:radio_database:g90_fw_v1.78b01-20220119.zip (320.6 KB)&quot;&gt;g90_fw_v1.78b01-20220119.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; downgraded - not sure of new Bandwidth method &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 12/5/23 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 1.79b03 main / 1.80 display &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:radio_database:g90_fw_1.80disp.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:radio:radio_database:g90_fw_1.80disp.zip (124.1 KB)&quot;&gt;g90_fw_1.80disp.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; Display → 1.80 fixes C-IV bugs. Main Unit on 1.79b03. Trying to adapt to new IF bandwidth method &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 14/5/23 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 1.78b01 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:radio_database:g90_fw_v1.78b01-20220119.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:radio:radio_database:g90_fw_v1.78b01-20220119.zip (320.6 KB)&quot;&gt;g90_fw_v1.78b01-20220119.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; Downgraded again, old filter adjustment method much better, but clicks on audio on strong signals&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 14/5/23 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 1.77b &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:radio_database:xiegu_g90_fw_v1.77b.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:radio:radio_database:xiegu_g90_fw_v1.77b.zip (563.1 KB)&quot;&gt;xiegu_g90_fw_v1.77b.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; back to best compromise version (so far) &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;729-1597&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Firmware&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;firmware&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;707-1600&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;manual_etc&quot;&gt;Manual etc&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;table sectionedit7&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Date&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;File&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;02/04/24&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:radio_database:xiegu_g90_user_manual_v4.31_20230607.pdf&quot; class=&quot;media mediafile mf_pdf&quot; title=&quot;public:radio:radio_database:xiegu_g90_user_manual_v4.31_20230607.pdf (3.3 MB)&quot;&gt;xiegu_g90_user_manual_v4.31_20230607.pdf&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;02/04/24&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:radio_database:cheat-sheet-v1.75-091520.pdf&quot; class=&quot;media mediafile mf_pdf&quot; title=&quot;public:radio:radio_database:cheat-sheet-v1.75-091520.pdf (540 KB)&quot;&gt;cheat-sheet-v1.75-091520.pdf&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;1623-1798&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Manual etc&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;manual_etc&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;1601-1799&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;page_info&quot;&gt;Page Info&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Page created Wed May 25 00:00:02 2022 by John Pumford-Green
&lt;/p&gt;

&lt;p&gt;
Page last updated: 04/06/26 07:39 BST
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Page Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;page_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;1800-1913&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;tags&quot;&gt;tags&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:g90&amp;amp;do=showtag&amp;amp;tag=g90&quot; class=&quot;wikilink1&quot; title=&quot;tag:g90&quot; rel=&quot;tag&quot;&gt;g90&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;tags&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;tags&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;1914-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 06:39:56 +0000</pubDate>
        </item>
        <item>
            <title>Openweb SDR</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:sdr</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:start&quot; data-wiki-id=&quot;public:radio:topics:start&quot;&gt;Radio Topics&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;openweb_sdr&quot;&gt;Openweb SDR&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Openweb SDR&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;openweb_sdr&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;11-37&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;hardware&quot;&gt;Hardware&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;table sectionedit3&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Platform &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Raspberry Pi&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;SDR &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Funcube Dongle Pro+&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Antenna &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Wellbrook ALA1530 Loop&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;60-145&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Hardware&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hardware&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;38-146&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;network_access&quot;&gt;Network Access&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Accessible as &lt;a href=&quot;http://gm4slv.plus.com:8073&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;http://gm4slv.plus.com:8073&quot; rel=&quot;ugc nofollow noopener&quot;&gt;http://gm4slv.plus.com:8073&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Aradio%3Atopics%3Asdr&amp;amp;media=public:radio:screenshot_2022-05-04_13.17.16.png&quot; class=&quot;media&quot; title=&quot;public:radio:screenshot_2022-05-04_13.17.16.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=600&amp;amp;tok=e0e2ea&amp;amp;media=public:radio:screenshot_2022-05-04_13.17.16.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
and listed at &lt;a href=&quot;https://www.receiverbook.de/map&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.receiverbook.de/map&quot; rel=&quot;ugc nofollow noopener&quot;&gt;Receiverbook&lt;/a&gt; too….
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Aradio%3Atopics%3Asdr&amp;amp;media=public:radio:screenshot_2022-05-04_13.21.06.png&quot; class=&quot;media&quot; title=&quot;public:radio:screenshot_2022-05-04_13.21.06.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=600&amp;amp;tok=da1c0a&amp;amp;media=public:radio:screenshot_2022-05-04_13.21.06.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Network Access&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;network_access&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;147-412&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;see_also&quot;&gt;See Also&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Part of the &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:rpi_farm&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:rpi_farm&quot; data-wiki-id=&quot;public:radio:topics:rpi_farm&quot;&gt;Raspberry Pi Farm&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
—- &lt;em&gt;&lt;a href=&quot;mailto:&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#64;&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#46;&amp;#112;&amp;#108;&amp;#117;&amp;#115;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&quot; class=&quot;mail&quot; title=&quot;&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#64;&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#46;&amp;#112;&amp;#108;&amp;#117;&amp;#115;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&quot;&gt;John Pumford-Green&lt;/a&gt; Wed May  4 10:34:54 2022&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Page Updated : 05/06/26 08:43 BST
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:pi&amp;amp;do=showtag&amp;amp;tag=pi&quot; class=&quot;wikilink1&quot; title=&quot;tag:pi&quot; rel=&quot;tag&quot;&gt;pi&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:linux&amp;amp;do=showtag&amp;amp;tag=linux&quot; class=&quot;wikilink1&quot; title=&quot;tag:linux&quot; rel=&quot;tag&quot;&gt;linux&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:openwebrx&amp;amp;do=showtag&amp;amp;tag=openwebrx&quot; class=&quot;wikilink1&quot; title=&quot;tag:openwebrx&quot; rel=&quot;tag&quot;&gt;openwebrx&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:sdr&amp;amp;do=showtag&amp;amp;tag=sdr&quot; class=&quot;wikilink1&quot; title=&quot;tag:sdr&quot; rel=&quot;tag&quot;&gt;sdr&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;See Also&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;see_also&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;413-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 05 Jun 2026 07:43:43 +0000</pubDate>
        </item>
        <item>
            <title>Damasko DA36</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:start</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:start&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:start&quot; data-wiki-id=&quot;public:miscellany:watches:start&quot;&gt;Watches&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;damasko_da36&quot;&gt;Damasko DA36&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;div class=&quot;table sectionedit2&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Bought Date  &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;25/10/2016&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Bought From  &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Damasko, Germany&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Price        &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;€1796 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Movement     &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;ETA2836-2 : 25 Jewels, Automatic, Day/Date, 28,800vph &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Serial Number&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;DA36-1981&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Anti-magnetic&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;80,000A/m,1000 Gauss&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Water Resistance&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;100m&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Strap&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Damasko Steel Bracelet&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;43-317&amp;quot;} --&gt;
&lt;p&gt;
&lt;script type=&quot;text/javascript&quot;&gt; catlist_baseurl = &quot;https://www.g4slv.info/dokuwiki/&quot;; catlist_basescript = &quot;doku.php&quot;; catlist_useslash = 0; catlist_userewrite = 0; catlist_sepchar = &quot;_&quot;; catlist_deaccent = 1; catlist_pagename_sanitize = 1; &lt;/script&gt;&lt;ul style=&quot;-webkit-column-count: 3; -moz-column-count: 3; column-count: 3;&quot; class=&quot;catlist_columns catlist-nslist&quot; &gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:da36dailyrates&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:damasko:da36dailyrates&quot; data-wiki-id=&quot;public:miscellany:watches:damasko:da36dailyrates&quot;&gt;Damasko DA36 Daily Rates (2016-2019)&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:da36measurements&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:damasko:da36measurements&quot; data-wiki-id=&quot;public:miscellany:watches:damasko:da36measurements&quot;&gt;Damasko DA36 Measurements (2019)&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:da36repair&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:damasko:da36repair&quot; data-wiki-id=&quot;public:miscellany:watches:damasko:da36repair&quot;&gt;Damasko DA36 Repair (2019)&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:da36tests1&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:damasko:da36tests1&quot; data-wiki-id=&quot;public:miscellany:watches:damasko:da36tests1&quot;&gt;Damasko DA36 Tests 1 (2019)&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:da36tests2&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:damasko:da36tests2&quot; data-wiki-id=&quot;public:miscellany:watches:damasko:da36tests2&quot;&gt;Damasko DA36 Tests 2 (2019)&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:measurements_2022&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:damasko:measurements_2022&quot; data-wiki-id=&quot;public:miscellany:watches:damasko:measurements_2022&quot;&gt;Measurements (2022)&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:repair_service_2022&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:damasko:repair_service_2022&quot; data-wiki-id=&quot;public:miscellany:watches:damasko:repair_service_2022&quot;&gt;Repair and Service 2022&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Damasko DA36&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;damasko_da36&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;13-360&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;the_da36&quot;&gt;The DA36&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
I see this watch as a modern version of Rolex&amp;#039;s &lt;em&gt;Milgauss&lt;/em&gt; - tough with the same level of Magnetic Resistance as the original &lt;em&gt;Milgauss&lt;/em&gt; (1000 Gauss). The original anti-magnetic engineer&amp;#039;s watch from Rolex wasn&amp;#039;t the &lt;em&gt;multi-thousands-of-pounds&lt;/em&gt; bauble they sell today.
&lt;/p&gt;

&lt;p&gt;
Originally Rolex produced &lt;em&gt;relatively expensive&lt;/em&gt;, but &lt;em class=&quot;u&quot;&gt;still affordable&lt;/em&gt;, tool-watches. 
&lt;/p&gt;

&lt;p&gt;
Unlike the &lt;a href=&quot;https://en.wikipedia.org/wiki/veblen_good&quot; class=&quot;interwiki iw_wp&quot; title=&quot;https://en.wikipedia.org/wiki/veblen_good&quot;&gt;Veblen Goods&lt;/a&gt; they churn out today.
&lt;/p&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;group wrap__dark plugin_wrap&quot;&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_half wrap_column wrap__dark plugin_wrap&quot;&gt;
&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:watches:damasko:da36_1.jpg&quot; class=&quot;media&quot; title=&quot;public:watches:damasko:da36_1.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=400&amp;amp;tok=d6bf65&amp;amp;media=public:watches:damasko:da36_1.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_half wrap_column wrap__dark plugin_wrap&quot;&gt;
&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:watches:damasko:da36_2.jpg&quot; class=&quot;media&quot; title=&quot;public:watches:damasko:da36_2.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=300&amp;amp;tok=45864e&amp;amp;media=public:watches:damasko:da36_2.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;group wrap__dark plugin_wrap&quot;&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_half wrap_column wrap__dark plugin_wrap&quot;&gt;
&lt;p&gt;
Damasko&amp;#039;s original and iconic watch, the DA36, is something akin to an early Rolex. Not &lt;em&gt;cheap&lt;/em&gt;, but also not ridiculously over-priced. It has no obvious external frills, but has plenty of technology inside to justify the price and to add functional value. 
&lt;/p&gt;

&lt;p&gt;
I often ponder whether I&amp;#039;d buy a &lt;em&gt;Milgauss&lt;/em&gt; if I could afford the £7000+ price tag. And now I&amp;#039;ve lived with the DA36 for almost 6 years I don&amp;#039;t know that I would. My watch is now &lt;em class=&quot;u&quot;&gt;my&lt;/em&gt; watch.  Why swap for another expensive toy?
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_half wrap_column wrap__dark plugin_wrap&quot;&gt;
&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:watches:damasko:2022-05-24_11.39.55.jpg&quot; class=&quot;media&quot; title=&quot;public:watches:damasko:2022-05-24_11.39.55.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=400&amp;amp;tok=7007ed&amp;amp;media=public:watches:damasko:2022-05-24_11.39.55.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:16,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;group wrap__dark plugin_wrap&quot;&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:18,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_half wrap_column wrap__dark plugin_wrap&quot;&gt;
&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:watches:damasko:da36_3.jpg&quot; class=&quot;media&quot; title=&quot;public:watches:damasko:da36_3.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=600&amp;amp;tok=e9cc25&amp;amp;media=public:watches:damasko:da36_3.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:19,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:20,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_half wrap_column wrap__dark plugin_wrap&quot;&gt;
&lt;p&gt;
Damasko have recently re-configured their range of watches and dropped the DA36, and most of the others from their early years of production, as they move upwards, into making higher price watches with &lt;a href=&quot;https://en.wikipedia.org/wiki/Manufacture_d%27horlogerie&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://en.wikipedia.org/wiki/Manufacture_d%27horlogerie&quot; rel=&quot;ugc nofollow noopener&quot;&gt; in-house&lt;/a&gt; movements, rather than using off-the-shelf ETA units. 
&lt;/p&gt;

&lt;p&gt;
I&amp;#039;d love a DA36 to appear with the &lt;em&gt;in-house&lt;/em&gt; movement, but I don&amp;#039;t know that this is going to happen.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;UPDATE&lt;/strong&gt;
— &lt;em&gt;John Pumford-Green 24/04/23 17:45&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
The DA36 has now reappeared - as the &lt;strong&gt;DK36&lt;/strong&gt; with the new in-house &lt;strong&gt;A26-3&lt;/strong&gt; movement.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.damasko-watches.com/en/DK36/SW10053.10&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.damasko-watches.com/en/DK36/SW10053.10&quot; rel=&quot;ugc nofollow noopener&quot;&gt; DK36 at Damasko&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
My watch developed a fault after a couple of years but this was easily repaired by Damasko. I &lt;em&gt;might&lt;/em&gt; have introduced the fault myself after opening it up a few times to regulate it - perhaps I let in some dirt that found its way to the escapement and caused some abrasion? 
&lt;/p&gt;

&lt;p&gt;
I don&amp;#039;t know. 
&lt;/p&gt;

&lt;p&gt;
It&amp;#039;s now working perfectly well after 2½ years of continuous daily wear. I only take it off to have a bath/shower and (usually) to sleep, and very rarely if I need to squeeze my left hand into a tight space when working on cars, Land Rovers or transmitters. I don&amp;#039;t think I&amp;#039;ve let it run down since the repair in December 2019.
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:21,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:17,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;The DA36&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;the_da36&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;361-3056&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit22&quot; id=&quot;the_milgauss&quot;&gt;The Milgauss&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:23,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;group wrap__dark plugin_wrap&quot;&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:25,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_half wrap_column wrap__dark plugin_wrap&quot;&gt;
&lt;p&gt;
A modern Milgauss for comparison. There&amp;#039;s not a lot of aesthetic similarity, the modern Milgauss is quite gaudy, with its green sapphire crystal and shiny dial. 
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:watches:damasko:milgauss.jpg&quot; class=&quot;media&quot; title=&quot;public:watches:damasko:milgauss.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=300&amp;amp;tok=79abe0&amp;amp;media=public:watches:damasko:milgauss.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:26,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:27,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_half wrap_column wrap__dark plugin_wrap&quot;&gt;
&lt;p&gt;
The 1960&amp;#039;s version ref. 1019 (not the original &lt;em&gt;submariner style&lt;/em&gt; with a timing bezel) looks more workmanlike and is the one I&amp;#039;d go for if I had the money. When I last looked a &lt;em&gt;birth year&lt;/em&gt; 1966 Milgauss fetches around £22,000…. so I&amp;#039;ll stick with &lt;em&gt;my&lt;/em&gt; DA36 and let it age with me.
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Amiscellany%3Awatches%3Adamasko%3Astart&amp;amp;media=public:watches:damasko:mil_1019.jpg&quot; class=&quot;media&quot; title=&quot;public:watches:damasko:mil_1019.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=300&amp;amp;tok=f04c19&amp;amp;media=public:watches:damasko:mil_1019.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:28,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:24,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;The Milgauss&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;the_milgauss&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:22,&amp;quot;range&amp;quot;:&amp;quot;3057-3718&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit29&quot; id=&quot;the_damasko_steel_bracelet&quot;&gt;The Damasko Steel Bracelet&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The DA36 was bought &lt;em&gt;with&lt;/em&gt; the &lt;a href=&quot;https://www.damasko-watches.com/en/accessories/manufactory-steel-bracelets/158/manufactory-steel-bracelet-ice-hardened-stainless-steel&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.damasko-watches.com/en/accessories/manufactory-steel-bracelets/158/manufactory-steel-bracelet-ice-hardened-stainless-steel&quot; rel=&quot;ugc nofollow noopener&quot;&gt;Damasko steel bracelet&lt;/a&gt; and initially I was happy with it. 
&lt;/p&gt;

&lt;p&gt;
It is super-engineered. Each link, of &lt;em&gt;ice hardened&lt;/em&gt; bead-blasted steel to match the watch&amp;#039;s case, is fixed with strong torx secured pivot pins. The whole bracelet can be dismantled for cleaning. It&amp;#039;s very strong, very well designed and very well made.  
&lt;/p&gt;

&lt;p&gt;
After time though the lack of adjustment (even &lt;em&gt;with&lt;/em&gt; the two supplied “long” links) meant it became difficult to find a good comfortable fit.
&lt;/p&gt;

&lt;p&gt;
The DA36 was then worn mostly on the Damasko leather strap or a variety of NATO straps, including some elastic &lt;em&gt;MN&lt;/em&gt; types, which are certainly very comfortable. 
&lt;/p&gt;

&lt;p&gt;
The steel bracelet was sold in 2017, to someone in the USA, after I decided I couldn&amp;#039;t get on with it. 
&lt;/p&gt;

&lt;p&gt;
Following the appearance of the rate-error fault in 2018, I switched to my &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:inventory:seiko_skx007&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:inventory:seiko_skx007&quot; data-wiki-id=&quot;public:miscellany:watches:inventory:seiko_skx007&quot;&gt;Seiko SKX007&lt;/a&gt; on a Strapcode Oyster steel bracelet, and liked it so much I decided to buy another Damasko steel bracelet for the DA36, and to request a set of &lt;em&gt;additional&lt;/em&gt; adjustment links to allow more variation in size. The longer links can be bought in sets of 2 pairs, which along with the 2 pairs that come with the bracelet, allow a smooth adjustment in tiny steps, almost matching the difference made by adding or removing a normal link. 
&lt;/p&gt;

&lt;p&gt;
The new bracelet and links were bought in November 2019.
&lt;/p&gt;

&lt;p&gt;
This allowed the use of up to 5 &lt;sup&gt;&lt;a href=&quot;#fn__1&quot; id=&quot;fnt__1&quot; class=&quot;fn_top&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt; &lt;em&gt;adjustment&lt;/em&gt; links to step smoothly between the jump in one &lt;em&gt;normal&lt;/em&gt; link. A good fit was obtained with 3 or 4 added &lt;em&gt;long links&lt;/em&gt;. After some time I found I could wear the bracelet with &lt;strong&gt;no&lt;/strong&gt; adjustment links, my wrist settled to a size that suited a whole number of &lt;em&gt;normal&lt;/em&gt; links, but I have the option of a good range of adjustment, if things should change in future. 
&lt;/p&gt;

&lt;p&gt;
I occasionally put a NATO strap on, but it rarely stays for more than a day or two before the pull of the super-strong super-engineered bracelet wins out.
&lt;/p&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:30,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;group wrap__dark plugin_wrap&quot;&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:32,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_half wrap_column wrap__dark plugin_wrap&quot;&gt;
&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:watches:damasko:2022-05-24_11.37.46.jpg&quot; class=&quot;media&quot; title=&quot;public:watches:damasko:2022-05-24_11.37.46.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=400&amp;amp;tok=487679&amp;amp;media=public:watches:damasko:2022-05-24_11.37.46.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:watches:damasko:2022-05-24_11.36.48.jpg&quot; class=&quot;media&quot; title=&quot;public:watches:damasko:2022-05-24_11.36.48.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=400&amp;amp;tok=65c201&amp;amp;media=public:watches:damasko:2022-05-24_11.36.48.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:watches:damasko:2022-05-24_11.36.39.jpg&quot; class=&quot;media&quot; title=&quot;public:watches:damasko:2022-05-24_11.36.39.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=400&amp;amp;tok=443571&amp;amp;media=public:watches:damasko:2022-05-24_11.36.39.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:33,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:34,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_half wrap_column wrap__dark plugin_wrap&quot;&gt;
&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:watches:damasko:2022-05-24_11.35.42.jpg&quot; class=&quot;media&quot; title=&quot;public:watches:damasko:2022-05-24_11.35.42.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=400&amp;amp;tok=937a70&amp;amp;media=public:watches:damasko:2022-05-24_11.35.42.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:watches:damasko:2022-05-24_11.35.18.jpg&quot; class=&quot;media&quot; title=&quot;public:watches:damasko:2022-05-24_11.35.18.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=400&amp;amp;tok=462371&amp;amp;media=public:watches:damasko:2022-05-24_11.35.18.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:35,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:31,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;
&lt;p&gt;
&lt;span class=&quot;todo&quot;&gt;&lt;input type=&quot;checkbox&quot; class=&quot;todocheckbox&quot; data-index=&quot;0&quot; data-date=&quot;1767088507&quot; data-pageid=&quot;public:miscellany:watches:damasko:start&quot; data-strikethrough=&quot;1&quot; checked=&quot;checked&quot; /&gt; &lt;span class=&quot;todouser&quot;&gt;[✓ John Pumford-Green, 2025-03-09]&lt;/span&gt;&lt;span class=&quot;todotext clickabletodo todohlght&quot;&gt;&lt;del&gt;&lt;span class=&quot;todoinnertext&quot;&gt; add some photos of the DA36&lt;/span&gt;&lt;/del&gt;&lt;/span&gt;&lt;/span&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;The Damasko Steel Bracelet&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;the_damasko_steel_bracelet&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:29,&amp;quot;range&amp;quot;:&amp;quot;3719-6396&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit36&quot; id=&quot;watch-u-seek_threads&quot;&gt;Watch-u-seek threads&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.watchuseek.com/threads/da36-a-year-on-the-wrist.4590983/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.watchuseek.com/threads/da36-a-year-on-the-wrist.4590983/&quot; rel=&quot;ugc nofollow noopener&quot;&gt; A Year On the Wrist&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.watchuseek.com/threads/show-your-damasko-the-second-and-new-thread.3106906/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.watchuseek.com/threads/show-your-damasko-the-second-and-new-thread.3106906/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;Damasko Pics.....&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Watch-u-seek threads&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;watch-u-seek_threads&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:36,&amp;quot;range&amp;quot;:&amp;quot;6397-6640&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit37&quot; id=&quot;history&quot;&gt;History&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Bought : 25/10/16
Arrived : 2/11/16
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;History&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;history&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:37,&amp;quot;range&amp;quot;:&amp;quot;6641-6698&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit38&quot; id=&quot;initial_rate_tests&quot;&gt;Initial Rate Tests&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;First 20 Days : Δ +11.4s -&amp;gt; +0.6s/d&lt;/pre&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_4d8bb2a5ab9f9749281d28f64c749147_1&quot;&gt;Watchcheck data etc .... &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_4d8bb2a5ab9f9749281d28f64c749147_1&quot;&gt;&lt;div class=&quot;table sectionedit39&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Month&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Δ / s&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Average Rate s/d&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Nov 2016&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;+19.2&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;+0.7&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Dec 2016&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;+28.0&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;+1.2&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Jan 2017&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;+50.2&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;+1.4&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Feb 2017&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;+7.4&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;+0.2&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Mar 2017&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;+6.9&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;+0.3&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Apr 2017&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;-1.3&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;0.0&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;May 2017&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;-47.4&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;-1.4&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Jun 2017&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;-43.4&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;-1.6&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Jul 2017&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;-79.4&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;-2.6&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Aug 2017&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;-84.3&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;-2.7&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row11&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Sep 2017&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;-67.5&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;-3.9&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:39,&amp;quot;range&amp;quot;:&amp;quot;6800-7069&amp;quot;} --&gt;
&lt;h4&gt;First Regulation after 12 months&lt;/h4&gt;
&lt;pre class=&quot;code&quot;&gt;18/12/17	+22.0	-2.3
19/12/17	+20.9	-1.1		__1st attempt to regulate → __
20/12/17	+22.1	+4.0		after regulation and dial-down overnight
21/12/17	+22.5	+0.4		dial-up overnight (usual position)
22/12/17	+22.7	+0.1		regulation seems to have corrected rate error
23/12/17	+22.3	-0.4		time reset to -0.3 s&lt;/pre&gt;

&lt;h4&gt;Second Regulation&lt;/h4&gt;
&lt;pre class=&quot;code&quot;&gt;19/01/18	-11.0	-2.2
20/01/18	-16.1	-5.1		???
21/01/18	-19.2	-3.0		??
22/01/18	-22.2	-3.7		regulated later in day to attempt to correct recent -ve rate
23/01/18	-22.1	+0.8		timegrapher showed odd spells of low amplitude.
24/01/18	-20.5	+1.5&lt;/pre&gt;

&lt;h4&gt;Third Regulation&lt;/h4&gt;
&lt;pre class=&quot;code&quot;&gt;05/03/18	+24.1	+5.8
06/03/18	+31.9	+8.1
07/03/18	+37.2	+5.4
08/03/18	+44.6	+6.9		__Regulated for 3rd time__ to reduce rate.
09/03/18	+44.4	-0.1
10/03/18	+42.8	-1.6		too far?&lt;/pre&gt;

&lt;h4&gt;Fourth Regulation&lt;/h4&gt;
&lt;pre class=&quot;code&quot;&gt;21/03/18	+18.4	-0.9
22/03/18	+17.7	-0.7
23/03/18	+13.8	-4.1		__regulated for 4th time__ to increase rate
24/03/18	+13.2	-0.5
25/03/18	+12.6	-0.6		reset to DST. -0.7s
26/03/18	+0.3	+1.2
27/03/18	+0.5	+0.2&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Initial Rate Tests&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;initial_rate_tests&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:38,&amp;quot;range&amp;quot;:&amp;quot;6699-8177&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit40&quot; id=&quot;fault_apparent&quot;&gt;Fault apparent&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;29/08/18	-5.7	-2.1
30/08/18	-36.3	-31.4		????? Massive loss in one day!!! 
&lt;/pre&gt;

&lt;p&gt;
Rate and amplitude errors v. bad on Timegrapher.
&lt;/p&gt;

&lt;p&gt;
Watch put aside and not worn, until October 2019!!
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Fault apparent&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;fault_apparent&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:40,&amp;quot;range&amp;quot;:&amp;quot;8178-8399&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit41&quot; id=&quot;worn_again_after_12_months&quot;&gt;Worn again after 12 months&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;10/11/19	-11.9	-2.4		dial down overnight
11/11/19	-14.1	-2.3		dial up overnight. Low amp. observed during the previous day?
12/11/19	-16.2	-2.2		Overnight on winder. Low amp. observed during the previous day
13/11/19	-18.6	-2.3		overnight on winder. being consistent day → day despite amplitude concerns.
14/11/19	-21.0	-2.3		overnight on winder.&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Worn again after 12 months&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;worn_again_after_12_months&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:41,&amp;quot;range&amp;quot;:&amp;quot;8400-8802&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit42&quot; id=&quot;fault_re-appears&quot;&gt;Fault Re-appears&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;New period - fault re-appearing

14/11/19	-32.6	-44.9 		(21:04:32) on winder for previous hour. 2 seconds lost.    	      
15/11/19	-45.2	-19.5  		(17:36:45) on TG since 06:30.... variable amp. &amp;amp; poor rate
&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Fault Re-appears&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;fault_re-appears&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:6,&amp;quot;secid&amp;quot;:42,&amp;quot;range&amp;quot;:&amp;quot;8803-9054&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit43&quot; id=&quot;repair_details&quot;&gt;2019 Repair Details&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:da36dailyrates&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:damasko:da36dailyrates&quot; data-wiki-id=&quot;public:miscellany:watches:damasko:da36dailyrates&quot;&gt;Damasko DA36 Daily Rates (2016-2019)&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:da36tests1&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:damasko:da36tests1&quot; data-wiki-id=&quot;public:miscellany:watches:damasko:da36tests1&quot;&gt;Damasko DA36 Tests 1 (2019)&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:da36tests2&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:damasko:da36tests2&quot; data-wiki-id=&quot;public:miscellany:watches:damasko:da36tests2&quot;&gt;Damasko DA36 Tests 2 (2019)&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:da36measurements&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:damasko:da36measurements&quot; data-wiki-id=&quot;public:miscellany:watches:damasko:da36measurements&quot;&gt;Damasko DA36 Measurements (2019)&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:da36repair&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:damasko:da36repair&quot; data-wiki-id=&quot;public:miscellany:watches:damasko:da36repair&quot;&gt;Damasko DA36 Repair (2019)&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Sent to Damasko for inspection and repair : &lt;strong&gt;18/11/19&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
Damasko confirm fault as 
&lt;/p&gt;
&lt;blockquote  class=&quot;wrap__dark blockquote-plugin&quot;&gt;
&lt;p&gt;
After checking it our watchmaker told us that there is many abrasion in the movement.
&lt;/p&gt;

&lt;/blockquote&gt;
&lt;p&gt;
Repair details
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Cleaning, and oiling the escapement

Regulate DA36.1981 €120

Shipping costs UK €50

Total amount €170&lt;/pre&gt;

&lt;p&gt;
Returned from Damasko : &lt;strong&gt;14/12/19&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;em class=&quot;u&quot;&gt;&lt;strong&gt;Fault now absent &lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/images/smileys/smile.svg&quot; class=&quot;icon smiley&quot; alt=&quot;:-)&quot; /&gt; &lt;/strong&gt;&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;2019 Repair Details&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;repair_details&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:43,&amp;quot;range&amp;quot;:&amp;quot;9055-9592&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit44&quot; id=&quot;performance_after_repair&quot;&gt;Performance after repair&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:45,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;group wrap__dark plugin_wrap&quot;&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:47,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_third wrap_column wrap__dark plugin_wrap&quot;&gt;
&lt;h4 id=&quot;timegrapher_check_20_11_20&quot;&gt;Timegrapher Check 20/11/20&lt;/h4&gt;

&lt;p&gt;
After 11 months of daily wear
&lt;/p&gt;
&lt;div class=&quot;table sectionedit49&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Pos&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Amp&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Rate&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Dial Up&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;321&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;+8&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Dial Down&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;290&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;+6&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;6H&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;278&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;+2&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;3H&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;283&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;+2&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;9H&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;295&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;+5&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;12H&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;302&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;+4&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Ave&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;(294)&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;+4&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;D&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; -6&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table2&amp;quot;,&amp;quot;secid&amp;quot;:49,&amp;quot;range&amp;quot;:&amp;quot;9732-9856&amp;quot;} --&gt;&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:48,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:50,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_third wrap_column wrap__dark plugin_wrap&quot;&gt;
&lt;h4 id=&quot;timegrapher_check_19_12_21&quot;&gt;Timegrapher Check 19/12/21&lt;/h4&gt;

&lt;p&gt;
2 Years after repair. Worn Daily
&lt;/p&gt;
&lt;div class=&quot;table sectionedit52&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Pos&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Amp&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Rate&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;D up&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;321&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;+5&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;D dn&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;308&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;+3&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;6H&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;305&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;+2&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;3H&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;306&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;+1&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;9H&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;291&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;+1&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;12H&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;303&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;0&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Ave&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;(305)&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;+2&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;D&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;-3&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table3&amp;quot;,&amp;quot;secid&amp;quot;:52,&amp;quot;range&amp;quot;:&amp;quot;9957-10071&amp;quot;} --&gt;&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:51,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:53,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_third wrap_column wrap__dark plugin_wrap&quot;&gt;
&lt;h2 class=&quot;sectionedit55&quot; id=&quot;timegrapher_check_18_1_22&quot;&gt;Timegrapher Check 18/1/22&lt;/h2&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Timegrapher Check 18\/1\/22&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;timegrapher_check_18_1_22&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:55,&amp;quot;range&amp;quot;:&amp;quot;10102-&amp;quot;} --&gt;
&lt;p&gt;
Still wearing daily
&lt;/p&gt;
&lt;div class=&quot;table sectionedit56&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Pos&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Amp&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Rate&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;D up&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;313 &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;+2  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;D dn&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;316  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;+1  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;6H&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;296  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;+1  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;3H&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;292  &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;0 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;9H&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;278  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;0  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;12H&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;286  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;0  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Ave&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;(297)&lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;+1  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;D&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;-1&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table4&amp;quot;,&amp;quot;secid&amp;quot;:56,&amp;quot;range&amp;quot;:&amp;quot;10162-10299&amp;quot;} --&gt;&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:54,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:46,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Performance after repair&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;performance_after_repair&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:44,&amp;quot;range&amp;quot;:&amp;quot;9593-10317&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit57&quot; id=&quot;watchcheck_2022&quot;&gt;Watchcheck 2022&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;table sectionedit58&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Start&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Stop&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Average&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;1/1/22&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;1/2/22&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;+0.9&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;1/2/22&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;1/3/22&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;+1.2&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;1/3/22&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;27/3/22&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;+0.3&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;27/3/22&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;17/5/22&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;-1.0&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;17/5/22&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;22/5/22&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;-2.1&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table5&amp;quot;,&amp;quot;secid&amp;quot;:58,&amp;quot;range&amp;quot;:&amp;quot;10347-10477&amp;quot;} --&gt;
&lt;p&gt;
Rate is now dropping after 2½ years of daily wear. Will monitor and wait for rate to exceed manufacturer&amp;#039;s specification before sending for service/regulation.
&lt;/p&gt;

&lt;p&gt;
See dedicated page &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:repair_service_2022&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:damasko:repair_service_2022&quot; data-wiki-id=&quot;public:miscellany:watches:damasko:repair_service_2022&quot;&gt;Repair and Service 2022&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Watchcheck 2022&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;watchcheck_2022&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:57,&amp;quot;range&amp;quot;:&amp;quot;10318-10684&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit59&quot; id=&quot;timegrapher_check_22_5_22&quot;&gt;Timegrapher Check 22/5/22&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
A morning and afternoon test to compare readings of different levels of power.
&lt;/p&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:60,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;group wrap__dark plugin_wrap&quot;&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:62,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_half wrap_column wrap__dark plugin_wrap&quot;&gt;&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Time : 10:15&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; After overnight Dial Up&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;table sectionedit64&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Pos&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Amp&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Rate&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;D up&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;299  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;-3  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;D dn&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;300  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;-1  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;6H&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;277  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;-4  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;3H&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;272  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;-4  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;9H&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;269  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;-3  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;12H&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;277  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;-4  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Ave&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;(282)&lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;-3.3  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;D&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; -1&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table6&amp;quot;,&amp;quot;secid&amp;quot;:64,&amp;quot;range&amp;quot;:&amp;quot;10888-11033&amp;quot;} --&gt;&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:63,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:65,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_half wrap_column wrap__dark plugin_wrap&quot;&gt;&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Time : 15:45&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; worn for 7 hours&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;table sectionedit67&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Pos&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Amp&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Rate&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;D up&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;317  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;+1  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;D dn&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;307  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;+3  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;6H&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;289  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;-1  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;3H&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;302  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;0  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;9H&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;301  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;0  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;12H&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;299  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;-1  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Ave&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;(303)&lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;+0.3  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;D&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; -2&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table7&amp;quot;,&amp;quot;secid&amp;quot;:67,&amp;quot;range&amp;quot;:&amp;quot;11104-11247&amp;quot;} --&gt;&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:66,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:61,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Timegrapher Check 22\/5\/22&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;timegrapher_check_22_5_22&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:59,&amp;quot;range&amp;quot;:&amp;quot;10685-11265&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit68&quot; id=&quot;update_may_2022&quot;&gt;Update May 2022&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
I&amp;#039;ve owned the DA36 now for over 5 years. After the repair, and getting the 2&lt;sup&gt;nd&lt;/sup&gt; bracelet, it&amp;#039;s rarely off my wrist. I&amp;#039;ll occasionally wear another watch (typically a &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:inventory:casio_gm-w5610&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:inventory:casio_gm-w5610&quot; data-wiki-id=&quot;public:miscellany:watches:inventory:casio_gm-w5610&quot;&gt;Casio GW-M5610&lt;/a&gt;) on my &lt;strong&gt;right&lt;/strong&gt; wrist. 
&lt;/p&gt;

&lt;p&gt;
The DA36 stays on the &lt;strong&gt;left&lt;/strong&gt;. 
&lt;/p&gt;

&lt;p&gt;
The &lt;em&gt;ice-hardened&lt;/em&gt; steel is very resistant to scratching or other marks. After 5 years I &lt;em&gt;can&lt;/em&gt; see some slight blemishes - just signs of an active life. The bracelet has more marks than the watch case itself - links rub against each other and the bracelet is more likely to be rubbed against hard surfaces than the watch - and as time goes by it slowly (very slowly) starts to look less like a new watch and more like a &lt;em&gt;tool watch&lt;/em&gt;. 
&lt;/p&gt;

&lt;p&gt;
There are marks on the bezel, and on the bracelet end-link, at the 12 o&amp;#039;clock position, I guess I caught it on something abrasive at some time…. more &lt;a href=&quot;https://en.wikipedia.org/wiki/wabi-sabi&quot; class=&quot;interwiki iw_wp&quot; title=&quot;https://en.wikipedia.org/wiki/wabi-sabi&quot;&gt;wabi-sabi&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
The hardened steel, and matte bead-blasted finish, mean that there is no slow development of a general &lt;em&gt;swirly patina&lt;/em&gt;. A scratch shows up, in the right light, as a shiny area of un-bead-blasted reflective steel. It&amp;#039;s just the characteristic of the material. I wonder what it&amp;#039;ll look like in another 10 years?
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Update May 2022&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;update_may_2022&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:68,&amp;quot;range&amp;quot;:&amp;quot;11266-12489&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit69&quot; id=&quot;time_keeping_performance&quot;&gt;Time Keeping performance&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Still well within &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:cosc&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:cosc&quot; data-wiki-id=&quot;public:miscellany:watches:cosc&quot;&gt;COSC&lt;/a&gt; standards ( -4 / +6 ) at around -2s/d as of May 2022. Rolex now guarantee their watches to run better than COSC, at ±2 s/d. My DA36 has been within this range for the last few years, and is only now starting to fall outside that range. It may wander back towards &lt;em&gt;zero&lt;/em&gt; over time. Who knows how all the different variables inter-react to make up the overall rate error, and how they vary with time?
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Time Keeping performance&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;time_keeping_performance&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:69,&amp;quot;range&amp;quot;:&amp;quot;12490-12962&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit70&quot; id=&quot;time_grapher_23_5_22&quot;&gt;Time Grapher 23/5/22&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:71,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;group wrap__dark plugin_wrap&quot;&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:73,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_half wrap_column wrap__dark plugin_wrap&quot;&gt;&lt;div class=&quot;table sectionedit75&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Pos&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Amp&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Rate&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Dial Up&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;316&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;+2&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Dial Down&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;315&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;+4&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;6H&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;283&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;-2&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;3H&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;288&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;-1&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;9H&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;288&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;0&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;12H&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;288&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;0&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Ave&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;(299)&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;+0.5&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;D&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;-4&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table8&amp;quot;,&amp;quot;secid&amp;quot;:75,&amp;quot;range&amp;quot;:&amp;quot;13028-13151&amp;quot;} --&gt;&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:74,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:76,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_half wrap_column wrap__dark plugin_wrap&quot;&gt;
&lt;p&gt;
Quick shot on the TimeGrapher…
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:watches:damasko:2022-05-23_23.02.16.jpg&quot; class=&quot;media&quot; title=&quot;public:watches:damasko:2022-05-23_23.02.16.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=300&amp;amp;tok=93420f&amp;amp;media=public:watches:damasko:2022-05-23_23.02.16.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:77,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:72,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Time Grapher 23\/5\/22&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;time_grapher_23_5_22&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:70,&amp;quot;range&amp;quot;:&amp;quot;12963-13295&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit78&quot; id=&quot;photos&quot;&gt;Photos&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:79,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;group wrap__dark plugin_wrap&quot;&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:81,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_half wrap_column wrap__dark plugin_wrap&quot;&gt;
&lt;h3 class=&quot;sectionedit83&quot; id=&quot;on_a_marine-nationale_green_yellow_nato&quot;&gt;On a Marine-Nationale Green/Yellow NATO&lt;/h3&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;On a Marine-Nationale Green\/Yellow NATO&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;on_a_marine-nationale_green_yellow_nato&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:83,&amp;quot;range&amp;quot;:&amp;quot;13350-&amp;quot;} --&gt;
&lt;p&gt;
— &lt;em&gt;John Pumford-Green 31/05/22 12:54&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
A change from the super-tough steel bracelet.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:watches:damasko:2022-05-31_12.48.37.jpg&quot; class=&quot;media&quot; title=&quot;public:watches:damasko:2022-05-31_12.48.37.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=400&amp;amp;tok=5beaa0&amp;amp;media=public:watches:damasko:2022-05-31_12.48.37.jpg&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:82,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:84,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_half wrap_column wrap__dark plugin_wrap&quot;&gt;
&lt;h3 class=&quot;sectionedit86&quot; id=&quot;new_watchgecko_nato&quot;&gt;New WatchGecko NATO&lt;/h3&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;New WatchGecko NATO&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;new_watchgecko_nato&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:86,&amp;quot;range&amp;quot;:&amp;quot;13588-&amp;quot;} --&gt;
&lt;p&gt;
— &lt;em&gt;John Pumford-Green 05/06/22 17:25&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.watchgecko.com/watchgecko-signature-nato-strap-olive-green&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.watchgecko.com/watchgecko-signature-nato-strap-olive-green&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.watchgecko.com/watchgecko-signature-nato-strap-olive-green&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:watches:damasko:img_20220605_163525_7.jpg&quot; class=&quot;media&quot; title=&quot;public:watches:damasko:img_20220605_163525_7.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=400&amp;amp;tok=b44564&amp;amp;media=public:watches:damasko:img_20220605_163525_7.jpg&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:85,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:80,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;
&lt;p&gt;
Page created Sun May 22 00:25:30 2022 by John Pumford-Green
&lt;/p&gt;

&lt;p&gt;
Page last updated: 30/12/25 09:55 GMT
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:watch&amp;amp;do=showtag&amp;amp;tag=watch&quot; class=&quot;wikilink1&quot; title=&quot;tag:watch&quot; rel=&quot;tag&quot;&gt;watch&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:damasko&amp;amp;do=showtag&amp;amp;tag=damasko&quot; class=&quot;wikilink1&quot; title=&quot;tag:damasko&quot; rel=&quot;tag&quot;&gt;damasko&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Photos&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;photos&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:78,&amp;quot;range&amp;quot;:&amp;quot;13296-&amp;quot;} --&gt;&lt;div class=&quot;footnotes&quot;&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__1&quot; id=&quot;fn__1&quot; class=&quot;fn_bot&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt; 
&lt;div class=&quot;content&quot;&gt;yes, I&amp;#039;ve actually got 5 pairs in total, can&amp;#039;t remember the details of how this happened!&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 30 Dec 2025 09:55:07 +0000</pubDate>
        </item>
        <item>
            <title>GM4SLV Allstar</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:allstar:gm4slv_allstar</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:allstar:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:allstar:start&quot; data-wiki-id=&quot;public:radio:topics:allstar:start&quot;&gt;AllStar Linking&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;gm4slv_allstar&quot;&gt;GM4SLV Allstar&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;div class=&quot;plugin_note noteclassic&quot;&gt;June 3 2025 
&lt;p&gt;
I&amp;#039;m working on this project again….
&lt;/p&gt;

&lt;p&gt;
First try… &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:allstar:gm4slv_allstar_2025&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:allstar:gm4slv_allstar_2025&quot; data-wiki-id=&quot;public:radio:topics:allstar:gm4slv_allstar_2025&quot;&gt;GM4SLV Allstar 2025&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
And then more, much more… &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:allstar:allstar_expands&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:allstar:allstar_expands&quot; data-wiki-id=&quot;public:radio:topics:allstar:allstar_expands&quot;&gt;Explorations&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;strong&gt; UHF Allstar Gateway &lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;GM4SLV Allstar&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;gm4slv_allstar&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-256&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;hardware&quot;&gt;Hardware&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;table sectionedit3&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Platform&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Rapsberry Pi&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Interface&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;CM108 Soundcard&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Radio&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;FT-8900&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Frequency&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;430.050MHz&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Monitor&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;http://gm4slv.plus.com:42111/allmon2/link.php?nodes=48148&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;http://gm4slv.plus.com:42111/allmon2/link.php?nodes=48148&quot; rel=&quot;ugc nofollow noopener&quot;&gt;Allmon2&lt;/a&gt; &lt;a href=&quot;http://gm4slv.plus.com:42111/supermon/link.php?nodes=48148&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;http://gm4slv.plus.com:42111/supermon/link.php?nodes=48148&quot; rel=&quot;ugc nofollow noopener&quot;&gt;Supermon&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;AllStar &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;a href=&quot;http://stats.allstarlink.org/stats/48148&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;http://stats.allstarlink.org/stats/48148&quot; rel=&quot;ugc nofollow noopener&quot;&gt;http://stats.allstarlink.org/stats/48148&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;280-580&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Hardware&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hardware&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;257-582&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;config&quot;&gt;Config&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:gm4slv_allstar_config.tar&quot; class=&quot;media mediafile mf_tar&quot; title=&quot;public:radio:gm4slv_allstar_config.tar (350 KB)&quot;&gt; Config files &lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Config&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;config&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;583-663&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;commands&quot;&gt;Commands&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
 * DTMF Commands
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Please send * 7 3 to ensure all links are disconnected before making any new links&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;table sectionedit6&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0 leftalign&quot;&gt;Command	&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;DTMF Sequence&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Disconect from Node xxxx	&lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  * 1 xxxx  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Connect RX Only to xxxx	&lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  * 2 xxxx  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Connect Transceive to xxxx	&lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  * 3 xxxx  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Speak the Node Status	&lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  * 7 0  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Disconnect ALL nodes	&lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  * 7 3  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Reconnect ALL nodes	&lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  * 7 4  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Send Node ID	&lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  * 8 0  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Speak the Local Time	&lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  * 8 1  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Parrot ON	&lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  * 9 1  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Parrot OFF	&lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  * 9 2  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row11&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Parrot ONCE	&lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  * 9 3  &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;791-1173&amp;quot;} --&gt;&lt;div class=&quot;table sectionedit7&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  Name  &lt;/th&gt;&lt;th class=&quot;col1 leftalign&quot;&gt;* 5 Macro shortcut to…	&lt;/th&gt;&lt;th class=&quot;col2 centeralign&quot;&gt;  DTMF Sequence  &lt;/th&gt;&lt;th class=&quot;col3 centeralign&quot;&gt;  Node No.  &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  Hubnet  &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;Disconnect from Hubnet	&lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  * 5 1 1  &lt;/td&gt;&lt;td class=&quot;col3 centeralign&quot;&gt;  41223  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  Hubnet  &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;Connect RX Only to Hubnet	&lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  * 5 2 1  &lt;/td&gt;&lt;td class=&quot;col3 centeralign&quot;&gt;  41223  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  Hubnet  &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;Connect Transceive to Hubnet	&lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  * 5 3 1  &lt;/td&gt;&lt;td class=&quot;col3 centeralign&quot;&gt;  41223  &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table2&amp;quot;,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;1176-1429&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Commands&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;commands&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;664-1432&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;courtesy_tones&quot;&gt;Courtesy Tones&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Can give information about the node status.
&lt;/p&gt;

&lt;p&gt;
After a local Transmission on the “input” frequency the reponse will be one of:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Morse Letter &lt;strong&gt;I&lt;/strong&gt; (di-dit) = node is not connected to any other nodes&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Morse Letter &lt;strong&gt;R&lt;/strong&gt; (di-dah-dit) = node is connected in “Monitor/RX only” mode to one or more nodes&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Morse Letter &lt;strong&gt;K&lt;/strong&gt; (dah-di-dah) = node is connected in “Transceive” mode to one or more nodes&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
There are other tones, e.g. when a station on a linked node unkeys there&amp;#039;s a low-pitched “bloop”
&lt;/p&gt;

&lt;p&gt;
When a local RF station sends a command there&amp;#039;s a “bip bip” (not to be confused with the Morse letter I)
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Courtesy Tones&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;courtesy_tones&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;1433-2069&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit9&quot; id=&quot;echolink&quot;&gt;Echolink&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
AllStar nodes can also connect to &lt;a href=&quot;https://www.echolink.org/logins.jsp&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.echolink.org/logins.jsp&quot; rel=&quot;ugc nofollow noopener&quot;&gt;Echolink&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
The node is occasionally connected to Echolink as &lt;code&gt;GM4SLV-L &lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;del&gt;
(&lt;strong&gt;UPDATE&lt;/strong&gt; — &lt;em&gt;John Pumford-Green 24/04/23 14:47&lt;/em&gt; )

I have disabled the Echolink connection by editing &lt;code&gt;/etc/asterisk/modules.conf&lt;/code&gt; to change the channel driver for Echolink to &lt;code&gt;noload&lt;/code&gt; →

&lt;/del&gt;
&lt;/p&gt;

&lt;p&gt;
To turn Echolink &lt;strong&gt;ON&lt;/strong&gt; or &lt;strong&gt;OFF&lt;/strong&gt; edit &lt;code&gt;/etc/asterisk/modules.conf&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt; OFF &lt;/strong&gt;
&lt;/p&gt;
&lt;pre class=&quot;code conf&quot;&gt;noload =&amp;gt; chan_echolink.so ;&lt;/pre&gt;

&lt;p&gt;
&lt;strong&gt; ON &lt;/strong&gt;
&lt;/p&gt;
&lt;pre class=&quot;code conf&quot;&gt;load =&amp;gt; chan_echolink.so ;&lt;/pre&gt;

&lt;p&gt;
an Asterisk reload is necessary:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;mb7aze:&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;asterisk$ &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; astres.sh
Restarting Asterisk
systemctl restart asterisk.service&lt;/pre&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 24/04/23 14:44&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Echolink&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;echolink&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;2070-2844&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit10&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:allstar&amp;amp;do=showtag&amp;amp;tag=allstar&quot; class=&quot;wikilink1&quot; title=&quot;tag:allstar&quot; rel=&quot;tag&quot;&gt;allstar&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:echolink&amp;amp;do=showtag&amp;amp;tag=echolink&quot; class=&quot;wikilink1&quot; title=&quot;tag:echolink&quot; rel=&quot;tag&quot;&gt;echolink&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;2845-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 06:39:56 +0000</pubDate>
        </item>
        <item>
            <title>GM4SLV Allstar 2025</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:allstar:gm4slv_allstar_2025</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:allstar:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:allstar:start&quot; data-wiki-id=&quot;public:radio:topics:allstar:start&quot;&gt;AllStar Linking&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;gm4slv_allstar_2025&quot;&gt;GM4SLV Allstar 2025&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; New explorations into Allstar and Bridging &lt;/strong&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note notetip&quot;&gt;This was an initial experiment, I&amp;#039;ve used what I learned to set up a bigger system (still under development) and described here : &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:allstar:allstar_expands&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:allstar:allstar_expands&quot; data-wiki-id=&quot;public:radio:topics:allstar:allstar_expands&quot;&gt;Explorations&lt;/a&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;GM4SLV Allstar 2025&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;gm4slv_allstar_2025&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-273&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;hardware&quot;&gt;Hardware&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;table sectionedit3&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Platform&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Rapsberry Pi&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Interface&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;CM108 Soundcard - modified&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Radio&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;FT-1500M&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Frequency&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;144.9125MHz&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Allstar Node &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 48148 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Dashboards&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;a href=&quot;http://gm4slv.plus.com:42110/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;http://gm4slv.plus.com:42110/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;http://gm4slv.plus.com:42110/&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;297-468&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Hardware&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hardware&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;274-469&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;dvswitch_bridging&quot;&gt;DVSwitch Bridging&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
To investigate the bridging of Allstar analogue nodes and DMR I installed DVSwitch on the Allstar node. 
&lt;/p&gt;

&lt;p&gt;
Instructions here: &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:asl-to-dmr-bridge.pdf&quot; class=&quot;media mediafile mf_pdf&quot; title=&quot;public:radio:asl-to-dmr-bridge.pdf (367.2 KB)&quot;&gt; ASL to DMR Bridge&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
The first part is easy, modifying a working Allstar node to add the private node and the USRP channel driver that will be used for the connection to the bridging.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DVSwitch Bridging&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dvswitch_bridging&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;470-850&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;my_configs&quot;&gt;My configs&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_ed4ecf13d41d641e55f7d559ac75cabb_3&quot;&gt;/etc/asterisk/rpt.conf before bridging added &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_ed4ecf13d41d641e55f7d559ac75cabb_3&quot;&gt;&lt;pre class=&quot;code bash&quot;&gt;; Radio Repeater configuration &lt;span class=&quot;kw2&quot;&gt;file&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; use with app_rpt&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
; Your Repeater
&lt;span class=&quot;sy0&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
;
; This is where you define your nodes &lt;span class=&quot;kw2&quot;&gt;which&lt;/span&gt; can be connected to.
;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;nodes&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
; Note, &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; you are using automatic update &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; allstar &lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt; nodes,
; no allstar &lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt; nodes should be defined here. Only place a definition
; &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; your &lt;span class=&quot;kw3&quot;&gt;local&lt;/span&gt; nodes, and private &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;off of allstar &lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; nodes here.
&amp;nbsp;
;&lt;span class=&quot;nu0&quot;&gt;481480&lt;/span&gt; = radio&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;127.0.0.1:&lt;span class=&quot;nu0&quot;&gt;4569&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;481480&lt;/span&gt;,NONE	; This must be changed to your node number
&lt;span class=&quot;nu0&quot;&gt;48148&lt;/span&gt; = radio&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;127.0.0.1:&lt;span class=&quot;nu0&quot;&gt;4569&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;48148&lt;/span&gt;,NONE	; This must be changed to your node number
                                        ; and iax port number &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; not the default
&amp;nbsp;
;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;481480&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;					; Change this to your assigned node number
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;48148&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;					; Change this to your assigned node number
&amp;nbsp;
                                        ; Must also be enabled &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; modules.conf
					; Rx audio&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;signalling channel. Choose ONLY &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; per node stanza
&amp;nbsp;
					; Enable the selected channel driver &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; modules.conf &lt;span class=&quot;sy0&quot;&gt;!!!&lt;/span&gt;
;rxchannel = dahdi&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pseudo	        ; No radio &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;hub&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
rxchannel = SimpleUSB&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usb_48148	; SimpleUSB
; rxchannel = Pi&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;                      ; Raspberry Pi PiTA
; rxchannel = Radio&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usb_48148		; USBRadio &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;DSP&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
; rxchannel = Dahdi&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;			; PCI Quad card
; rxchannel = Beagle&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;			; BeagleBoard
; rxchannel = USRP&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;127.0.0.1:&lt;span class=&quot;nu0&quot;&gt;34001&lt;/span&gt;:&lt;span class=&quot;nu0&quot;&gt;32001&lt;/span&gt;; GNU Radio interface USRP
; rxchannel = Voter&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;48148&lt;/span&gt;                ; RTCM device
&amp;nbsp;
&amp;nbsp;
duplex = &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;                              ; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; = Half duplex with no telemetry tones or hang time.
                                        ;     Special Case: Full duplex &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; linktolink is &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; to yes.
                                        ;     This mode is preferred when interfacing with an external multiport repeater controller.
					;     Comment out idrecording and idtalkover to suppress IDs also
                                        ; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; = Half duplex with telemetry tones and hang time. Does not repeat audio.
                                        ;     This mode is preferred when interfacing a simplex node.
                                        ; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; = Full Duplex with telemetry tones and hang time.
                                        ;     This mode is preferred when interfacing a repeater.
                                        ; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; = Full Duplex with telemetry tones and hang &lt;span class=&quot;kw1&quot;&gt;time&lt;/span&gt;, but no repeated audio.
                                        ; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt; = Full Duplex with telemetry tones and hang time. Repeated audio only when the autopatch is down.
&amp;nbsp;
linktolink = no				; disables forcing physical half-duplex operation of main repeater &lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt;
					; still keeping half-duplex semantics &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;optional&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
linkmongain = &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;				; Link Monitor Gain adjusts the audio level of monitored nodes when a signal from another node or the &lt;span class=&quot;kw3&quot;&gt;local&lt;/span&gt; receiver is received.
					; If linkmongain is &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; to a negative number the monitored audio will decrease by the &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; amount &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; db.
					; If linkmongain &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; to a positive number monitored audio will increase by the &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; amount &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; db.
					; The value of linkmongain is &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; db. The default value is &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; db.
&amp;nbsp;
erxgain = &lt;span class=&quot;re5&quot;&gt;-3&lt;/span&gt;				; Echolink receive gain adjustment
					; Note: Gain is &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; db-volts &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;20logVI&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;VO&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
etxgain = &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;				; Echolink transmit gain adjustment
					; Note: Gain is &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; db-volts &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;20logVI&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;VO&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
eannmode = &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;                           ; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; = Say only node number on echolink connects &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;default = &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                                        ; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; = say phonetic call sign only on echolink connects
                                        ; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; = say phonetic call sign and node number on echolink connects
&amp;nbsp;
;controlstates = controlstates		; system control state stanza
&amp;nbsp;
scheduler = schedule			; scheduler stanza
functions = functions			; Repeater Function stanza
phone_functions = functions		; Phone Function stanza
link_functions = functions		; Link Function stanza
&amp;nbsp;
telemetry = telemetry			; Telemetry stanza
morse = morse				; Morse stanza
wait_times = wait-times			; Wait &lt;span class=&quot;kw3&quot;&gt;times&lt;/span&gt; stanza
&amp;nbsp;
context = radio				; dialing context &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; phone
callerid = &lt;span class=&quot;st0&quot;&gt;&amp;quot;Repeater&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;0000000000&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;	; callerid &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; phone calls
accountcode = RADIO                     ; account code &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;optional&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
hangtime = &lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt;				; squelch &lt;span class=&quot;kw2&quot;&gt;tail&lt;/span&gt; hang &lt;span class=&quot;kw1&quot;&gt;time&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; ms&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;optional, default &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt; seconds, &lt;span class=&quot;nu0&quot;&gt;5000&lt;/span&gt; ms&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
althangtime = &lt;span class=&quot;nu0&quot;&gt;300&lt;/span&gt;			; longer squelch &lt;span class=&quot;kw2&quot;&gt;tail&lt;/span&gt;
totime = &lt;span class=&quot;nu0&quot;&gt;300000&lt;/span&gt;				; &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt; mins &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; transmit time-out &lt;span class=&quot;kw1&quot;&gt;time&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; ms&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;optional, default &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; minutes &lt;span class=&quot;nu0&quot;&gt;180000&lt;/span&gt; ms&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
telemnomdb = &lt;span class=&quot;re5&quot;&gt;-3&lt;/span&gt;				;
telemduckdb = &lt;span class=&quot;re5&quot;&gt;-10&lt;/span&gt;			;
&amp;nbsp;
;idrecording = &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gm4slv_id
;idrecording = &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mb7aze_id
idrecording = &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;iGM4SLV				; Main ID message
&amp;nbsp;
;idtalkover = &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;iGM4SLV				; Talkover ID message
idtalkover = &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;iGM4SLV				; Talkover ID message
					; See Telemetry section Example: idrecording = rpt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nodenames&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;48148&lt;/span&gt;
idtime = &lt;span class=&quot;nu0&quot;&gt;900000&lt;/span&gt;				; &lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt; mins &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;id&lt;/span&gt; interval &lt;span class=&quot;kw1&quot;&gt;time&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; ms&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;optional&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; Default &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt; minutes &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;300000&lt;/span&gt; ms&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
politeid = &lt;span class=&quot;nu0&quot;&gt;30000&lt;/span&gt;			; &lt;span class=&quot;kw1&quot;&gt;time&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; milliseconds before ID timer expires to try and ID &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; the tail. &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;optional, default &lt;span class=&quot;nu0&quot;&gt;30000&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
unlinkedct = ct12			; Send a this courtesy tone when the user unkeys &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; the node is not connected to any other nodes. &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;optional, default is none&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
remotect = ct3				; remote linked courtesy tone &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;indicates a remote is &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; the list of links&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
linkunkeyct = ct4			; sent when a transmission received over the &lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt; unkeys
;nolocallinkct = &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;			; Send unlinkedct instead &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; another &lt;span class=&quot;kw3&quot;&gt;local&lt;/span&gt; node is connected to this node &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;hosted on the same PC&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.
&amp;nbsp;
; Supermon smlogger
&lt;span class=&quot;re2&quot;&gt;connpgm&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;local&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sbin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;supermon&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;smlogger &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;discpgm&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;local&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sbin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;supermon&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;smlogger &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&amp;nbsp;
;connpgm = yourconnectprogram		; Disabled. Execute a program you specify on connect. &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;default&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
					; passes &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;command&lt;/span&gt; line arguments to your program:
					; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;. node number &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; this stanza &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;us&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
					; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;. node number being connected to us &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;them&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
;discpgm = yourdisconnectprogram	; Disabled. Execute a program you specify on disconnect. &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;default&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
					; passes &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;command&lt;/span&gt; line arguments to your program:
					; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;. node number &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; this stanza &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;us&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
					; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;. node number being disconnected from us &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;them&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
lnkactenable = &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;			; Set to &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; to &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; the &lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt; activity timer. Applicable to standard nodes only.
&amp;nbsp;
lnkacttime = &lt;span class=&quot;nu0&quot;&gt;3600&lt;/span&gt;			; Link activity timer &lt;span class=&quot;kw1&quot;&gt;time&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; seconds.
lnkactmacro = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;73&lt;/span&gt;			; Function to execute when &lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt; activity timer expires.
lnkacttimerwarn = custom&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;timeout		; Message to play when the &lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt; activity timer has &lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt; seconds left.
&amp;nbsp;
;remote_inact_timeout =	&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;		; Specifies the amount of &lt;span class=&quot;kw1&quot;&gt;time&lt;/span&gt; without keying from the link. Set to &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; to disable timeout. &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
;remote_timeout =			; Session &lt;span class=&quot;kw1&quot;&gt;time&lt;/span&gt; out &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; remote base. Set to &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; to disable. &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
;remote_timeout_warning_freq =		; &lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt;
;remote_timeout_warning =		; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
;nounkeyct = &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;				; Set to a &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; to eliminate courtesy tones and associated delays.
&amp;nbsp;
holdofftelem = &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;			; Hold off all telemetry when signal is present on receiver or from connected nodes
					; except when an ID needs to be &lt;span class=&quot;kw1&quot;&gt;done&lt;/span&gt; and there is a signal coming from a connected node.
&amp;nbsp;
telemdefault = &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;                        ; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; = telemetry output off
                                        ; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; = telemetry output on &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;default = &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                                        ; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; = timed telemetry output on &lt;span class=&quot;kw3&quot;&gt;command&lt;/span&gt; execution and &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; a short &lt;span class=&quot;kw1&quot;&gt;time&lt;/span&gt; thereafter.
&amp;nbsp;
telemdynamic = &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;                        ; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; = disallow &lt;span class=&quot;kw2&quot;&gt;users&lt;/span&gt; to change the &lt;span class=&quot;kw3&quot;&gt;local&lt;/span&gt; telemetry setting with a COP &lt;span class=&quot;kw3&quot;&gt;command&lt;/span&gt;,
                                        ; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; = Allow &lt;span class=&quot;kw2&quot;&gt;users&lt;/span&gt; to change the setting with a COP command. &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;default = &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
beaconing = &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;				; Send ID regardless of repeater activity &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Required &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; the UK, but probably illegal &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; the US&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
parrotmode = &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;				; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; = Parrot Off &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;default = &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
					; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; = Parrot On Command
					; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; = Parrot Always
					; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; = Parrot Once by Command
&amp;nbsp;
parrottime = &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;			; Set the amount of &lt;span class=&quot;kw1&quot;&gt;time&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; milliseconds
					; to &lt;span class=&quot;kw3&quot;&gt;wait&lt;/span&gt; before parroting what was received
&amp;nbsp;
;&lt;span class=&quot;re2&quot;&gt;rxnotch&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1065&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;40&lt;/span&gt;                        ; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Optional&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; Notch a particular frequency &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; a specified
                                        ; b&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;w. app_rpt must have been compiled with
                                        ; the notch option
&amp;nbsp;
startup_macro = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;80&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;81&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;70&lt;/span&gt;
&amp;nbsp;
; nodenames = &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;asterisk&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sounds&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;rpt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nodenames.callsign	; Point to alternate nodename sound directory
&amp;nbsp;
; Stream your node audio to Broadcastify or similar. See https:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;wiki.allstarlink.org&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;wiki&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Stream_Node_Audio_to_Broadcastify
; outstreamcmd = &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;sh&lt;/span&gt;,-c,&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;lame&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--preset&lt;/span&gt; cbr &lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-m&lt;/span&gt; m &lt;span class=&quot;re5&quot;&gt;-s&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--bitwidth&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt; - - &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ezstream &lt;span class=&quot;re5&quot;&gt;-qvc&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ezstream.xml
&amp;nbsp;
&lt;span class=&quot;sy0&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
; Need &lt;span class=&quot;kw2&quot;&gt;more&lt;/span&gt; information on these
&amp;nbsp;
;extnodes = extnodes-different	; section &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; extnodefile containing dynamic node information &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;optional&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
;extnodefile = &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;rpt_extnodes	; Points to nodelist &lt;span class=&quot;kw2&quot;&gt;file&lt;/span&gt; containing dynamic node info default = &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;asterisk&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;rpt_extnodes &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;optional&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
;extnodefile2 =			; Is this a list of node files? Possible a list of private nodes or a list of static IPs &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; known nodes????
;nodenames = &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;foo&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;names         ; locaton of node sound files default = &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;asterisk&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sounds&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;rpt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nodenames
;archivedir = &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmp              ; defines and enables activity recording into specified directory &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;optional&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
;monminblocks = &lt;span class=&quot;nu0&quot;&gt;2048&lt;/span&gt;            ; Min 1K blocks to be left on partition &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;will not save monitor output &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; disk too full&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
;                               ; The tailmessagetime,tailsquashedtime, and tailmessagelist need to be &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt;
;                               ; to support &lt;span class=&quot;kw2&quot;&gt;tail&lt;/span&gt; messages. They can be omitted otherwise.
;tailmessagetime = &lt;span class=&quot;nu0&quot;&gt;300000&lt;/span&gt;       ; Play a &lt;span class=&quot;kw2&quot;&gt;tail&lt;/span&gt; message every &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt; mins
;tailsquashedtime = &lt;span class=&quot;nu0&quot;&gt;30000&lt;/span&gt;       ; If squashed by another user,
;                               ; try again after &lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt; seconds
;tailmessagelist = msg1,msg2    ; list of messages to be played &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;tail&lt;/span&gt; message
&amp;nbsp;
; alt_functions
; ctgroup
; dphone_functions
; idtime
; iobase
; iospeed
; locallist
; mars		Remote Base
; memory
; nobusyout
; nodes
; nolocallinkct
; notelemtx
; outxlat
; parrot
; propagate_phonedtmf
; rptnode
; rptinactmacro  Macro to execute when inactivity timer expires
; rptinacttime   Inactivity timer &lt;span class=&quot;kw1&quot;&gt;time&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; seconds  &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; seconds disables feature&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
; rxnotch	Optional Audio notch
; simplexphonedelay
; tonemacro
; tonezone
; txlimits
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;sy0&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;;
&amp;nbsp;
&amp;nbsp;
; &lt;span class=&quot;sy0&quot;&gt;***&lt;/span&gt; Status Reporting &lt;span class=&quot;sy0&quot;&gt;***&lt;/span&gt;
&amp;nbsp;
; Comment the following statpost line stop to reporting of the status of your node to stats.allstarlink.org
statpost_url = http:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;stats.allstarlink.org&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;uhandler ; Status updates
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;functions&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
; Prefix	Functions
; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;		Disconnect Link
; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;		Monitor Link
; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;		Connect Link
; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;		Command Mode
; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;		Macros
; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;		User Functions
; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;		Connection Status&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Functions
; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;		User Functions
; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;9&lt;/span&gt;		User Functions
; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;		User Functions
&amp;nbsp;
; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;A		User Functions
; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;B		User Functions
; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;C		User Functions
; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;D		User Functions
&amp;nbsp;
&amp;nbsp;
; Mandatory Command Codes
&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; = ilink,&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;		; Disconnect specified &lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; = ilink,&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;		; Connect specified &lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--&lt;/span&gt; monitor only
&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; = ilink,&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;		; Connect specified &lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--&lt;/span&gt; tranceive
&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt; = ilink,&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;		; Enter &lt;span class=&quot;kw3&quot;&gt;command&lt;/span&gt; mode on specified &lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;nu0&quot;&gt;70&lt;/span&gt; = ilink,&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;		; System status
&amp;nbsp;
;&lt;span class=&quot;nu0&quot;&gt;99&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;              ; PTT &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;phone mode only&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
; End Mandatory Command Codes
&amp;nbsp;
&lt;span class=&quot;nu0&quot;&gt;73&lt;/span&gt; = ilink,&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;		; Disconnect All Links
&lt;span class=&quot;nu0&quot;&gt;74&lt;/span&gt; = ilink,&lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt;		; Reconnect links disconnected with &lt;span class=&quot;st0&quot;&gt;&amp;quot;disconnect all links&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;nu0&quot;&gt;80&lt;/span&gt; = status,&lt;span class=&quot;nu0&quot;&gt;11&lt;/span&gt;         ; Force ID &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;local&lt;/span&gt; only&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;81&lt;/span&gt; = status,&lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;         ; Give Time of Day &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;local&lt;/span&gt; only&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;nu0&quot;&gt;91&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;21&lt;/span&gt;		; Enable Parrot Mode
&lt;span class=&quot;nu0&quot;&gt;92&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;22&lt;/span&gt;		; Disable Parrot Mode
&lt;span class=&quot;nu0&quot;&gt;93&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;55&lt;/span&gt;		; Parrot Once &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; parrot mode is disabled
&amp;nbsp;
&lt;span class=&quot;nu0&quot;&gt;98&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;		; System &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;99&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;		; System disable
&amp;nbsp;
&lt;span class=&quot;nu0&quot;&gt;901&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;				; System warm boot
&amp;nbsp;
&lt;span class=&quot;sy0&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&amp;nbsp;
; Macro Commands
&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt; = macro
&amp;nbsp;
&lt;span class=&quot;sy0&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;;
&amp;nbsp;
; Autopatch Commands
; Note, This may be a good place &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; other &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; digit frequently used commands
&amp;nbsp;
;&lt;span class=&quot;nu0&quot;&gt;61&lt;/span&gt; = autopatchup,noct = &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;,farenddisconnect = &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;,dialtime = &lt;span class=&quot;nu0&quot;&gt;20000&lt;/span&gt;  ; Autopatch up
;&lt;span class=&quot;nu0&quot;&gt;62&lt;/span&gt; = autopatchdn                                                 ; Autopatch down
&amp;nbsp;
; autopatchup can optionally take comma delimited &lt;span class=&quot;re2&quot;&gt;setting&lt;/span&gt;=value pairs:
&amp;nbsp;
; context = string		; Override default context with &lt;span class=&quot;st0&quot;&gt;&amp;quot;string&amp;quot;&lt;/span&gt;
; dialtime = ms			; Specify the max number of milliseconds between phone number digits &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt; milliseconds = &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; second&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
; farenddisconnect = &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;		; Automatically disconnect when called party hangs up
; noct = &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;			; Don&lt;span class=&quot;st_h&quot;&gt;&#039;t send repeater courtesy tone during autopatch calls
; quiet = 1			; Don&#039;&lt;/span&gt;t send dial tone, or connect messages. Do not send &lt;span class=&quot;kw2&quot;&gt;patch&lt;/span&gt; down message when called party hangs up
				; Example: &lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt;=autopatchup,&lt;span class=&quot;re2&quot;&gt;dialtime&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;20000&lt;/span&gt;,&lt;span class=&quot;re2&quot;&gt;noct&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;,&lt;span class=&quot;re2&quot;&gt;farenddisconnect&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sy0&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;;
&amp;nbsp;
; Status Commands
&amp;nbsp;
; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; - Force ID &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;global&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; - Give Time of Day &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;global&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; - Give software Version &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;global&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt; - Give GPS location info
; &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt; - Last &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;dtmf&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; user
; &lt;span class=&quot;nu0&quot;&gt;11&lt;/span&gt; - Force ID &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;local&lt;/span&gt; only&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
; &lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt; - Give Time of Day &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;local&lt;/span&gt; only&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
;&lt;span class=&quot;nu0&quot;&gt;721&lt;/span&gt; = status,&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;          ; Force ID &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;global&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
;&lt;span class=&quot;nu0&quot;&gt;722&lt;/span&gt; = status,&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;          ; Give Time of Day &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;global&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
;&lt;span class=&quot;nu0&quot;&gt;723&lt;/span&gt; = status,&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;          ; Give software Version &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;global&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
;&lt;span class=&quot;nu0&quot;&gt;724&lt;/span&gt; = status,&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;          ; Give GPS location info
;&lt;span class=&quot;nu0&quot;&gt;725&lt;/span&gt; = status,&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;          ; Last &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;dtmf&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; user
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;sy0&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;;
&amp;nbsp;
; Link Commands
&amp;nbsp;
; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; - Disconnect specified &lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt;
; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; - Connect specified &lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--&lt;/span&gt; monitor only
; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; - Connect specified &lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--&lt;/span&gt; tranceive
; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt; - Enter &lt;span class=&quot;kw3&quot;&gt;command&lt;/span&gt; mode on specified &lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt;
; &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt; - System status
; &lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt; - Disconnect all links
; &lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt; - Last Node to Key Up
; &lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt; - Connect specified &lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;local&lt;/span&gt; monitor only
; &lt;span class=&quot;nu0&quot;&gt;9&lt;/span&gt; - Send Text Message &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;9&lt;/span&gt;,&lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;destnodeno or &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; all&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;,Message Text, etc.
; &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; - Disconnect all RANGER links &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;except permalinks&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
; &lt;span class=&quot;nu0&quot;&gt;11&lt;/span&gt; - Disconnect a previously permanently connected &lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt;
; &lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt; - Permanently connect specified &lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--&lt;/span&gt; monitor only
; &lt;span class=&quot;nu0&quot;&gt;13&lt;/span&gt; - Permanently connect specified &lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--&lt;/span&gt; tranceive
; &lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt; - Full system status &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;all nodes&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
; &lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt; - Reconnect links disconnected with &lt;span class=&quot;st0&quot;&gt;&amp;quot;disconnect all links&amp;quot;&lt;/span&gt;
; &lt;span class=&quot;nu0&quot;&gt;17&lt;/span&gt; - MDC &lt;span class=&quot;kw3&quot;&gt;test&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; diag purposes&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
; &lt;span class=&quot;nu0&quot;&gt;18&lt;/span&gt; - Permanently Connect specified &lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;local&lt;/span&gt; monitor only
&amp;nbsp;
; ilink commands &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; through &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt; are defined &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; the Mandatory Command section
&amp;nbsp;
;&lt;span class=&quot;nu0&quot;&gt;806&lt;/span&gt; = ilink,&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;			; Disconnect all links
;&lt;span class=&quot;nu0&quot;&gt;827&lt;/span&gt; = ilink,&lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;			; Last Node to Key Up
;&lt;span class=&quot;nu0&quot;&gt;808&lt;/span&gt; = ilink,&lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;			; Connect specified &lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;local&lt;/span&gt; monitor only
;&lt;span class=&quot;nu0&quot;&gt;809&lt;/span&gt; = ilink,&lt;span class=&quot;nu0&quot;&gt;9&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;48148&lt;/span&gt;,&lt;span class=&quot;st0&quot;&gt;&amp;quot;Testing&amp;quot;&lt;/span&gt;	; would send a text message to node &lt;span class=&quot;nu0&quot;&gt;48148&lt;/span&gt; replace &lt;span class=&quot;nu0&quot;&gt;48148&lt;/span&gt; with &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; all connected nodes
;&lt;span class=&quot;nu0&quot;&gt;810&lt;/span&gt; = ilink,&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;			; Disconnect all RANGER links &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;except permalinks&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
;&lt;span class=&quot;nu0&quot;&gt;811&lt;/span&gt; = ilink,&lt;span class=&quot;nu0&quot;&gt;11&lt;/span&gt;			; Disconnect a previously permanently connected &lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt;
;&lt;span class=&quot;nu0&quot;&gt;812&lt;/span&gt; = ilink,&lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;			; Permanently connect specified &lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--&lt;/span&gt; monitor only
;&lt;span class=&quot;nu0&quot;&gt;823&lt;/span&gt; = ilink,&lt;span class=&quot;nu0&quot;&gt;13&lt;/span&gt;			; Permanently connect specified &lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--&lt;/span&gt; tranceive
;&lt;span class=&quot;nu0&quot;&gt;815&lt;/span&gt; = ilink,&lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;			; Full system status &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;all nodes&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
;&lt;span class=&quot;nu0&quot;&gt;817&lt;/span&gt; = ilink,&lt;span class=&quot;nu0&quot;&gt;17&lt;/span&gt;			; MDC &lt;span class=&quot;kw3&quot;&gt;test&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; diag purposes&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
;&lt;span class=&quot;nu0&quot;&gt;818&lt;/span&gt; = ilink,&lt;span class=&quot;nu0&quot;&gt;18&lt;/span&gt;			; Permanently Connect specified &lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;local&lt;/span&gt; monitor only
&amp;nbsp;
&lt;span class=&quot;sy0&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&amp;nbsp;
; Control operator &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;cop&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; functions.
; Change these to something other than these codes listed below&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;
; Uncomment &lt;span class=&quot;kw2&quot;&gt;as&lt;/span&gt; needed.
&amp;nbsp;
;&lt;span class=&quot;nu0&quot;&gt;901&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;				; System warm boot
&amp;nbsp;
; &lt;span class=&quot;nu0&quot;&gt;904&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;				; Test tone on&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;off &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;toggle&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
; &lt;span class=&quot;nu0&quot;&gt;905&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;				; Dump system variables on console &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;debug use only&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
; &lt;span class=&quot;nu0&quot;&gt;907&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;				; Time out timer &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt;
; &lt;span class=&quot;nu0&quot;&gt;908&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;				; Time out timer disable
&amp;nbsp;
; &lt;span class=&quot;nu0&quot;&gt;909&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;9&lt;/span&gt;				; Autopatch &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt;
; &lt;span class=&quot;nu0&quot;&gt;910&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;				; Autopatch disable
&amp;nbsp;
; &lt;span class=&quot;nu0&quot;&gt;911&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;11&lt;/span&gt;				; User linking functions &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt;
; &lt;span class=&quot;nu0&quot;&gt;912&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;				; User linking functions disable
&amp;nbsp;
; &lt;span class=&quot;nu0&quot;&gt;913&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;13&lt;/span&gt;				; Query system control state
; &lt;span class=&quot;nu0&quot;&gt;914&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;14&lt;/span&gt;				; Set system control state
&amp;nbsp;
; &lt;span class=&quot;nu0&quot;&gt;915&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;				; Scheduler &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt;
; &lt;span class=&quot;nu0&quot;&gt;916&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt;				; Scheduler disable
&amp;nbsp;
; &lt;span class=&quot;nu0&quot;&gt;917&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;17&lt;/span&gt;				; User functions &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;time&lt;/span&gt;, &lt;span class=&quot;kw2&quot;&gt;id&lt;/span&gt;, etc&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
; &lt;span class=&quot;nu0&quot;&gt;918&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;18&lt;/span&gt;				; User functions disable
&amp;nbsp;
; &lt;span class=&quot;nu0&quot;&gt;919&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;19&lt;/span&gt;				; Select alternate hang &lt;span class=&quot;kw1&quot;&gt;time&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;althangtime&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
; &lt;span class=&quot;nu0&quot;&gt;920&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;				; Select standard hangtime &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;hangtime&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
; &lt;span class=&quot;nu0&quot;&gt;924&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;				; Flush all telemetry
; &lt;span class=&quot;nu0&quot;&gt;925&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;25&lt;/span&gt;				; Query &lt;span class=&quot;kw2&quot;&gt;last&lt;/span&gt; node un-keyed
; &lt;span class=&quot;nu0&quot;&gt;926&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;26&lt;/span&gt;				; Query all nodes keyed&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;unkeyed
; &lt;span class=&quot;nu0&quot;&gt;927&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;27&lt;/span&gt;				; Reset DAQ minimum on a pin
; &lt;span class=&quot;nu0&quot;&gt;928&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;28&lt;/span&gt;				; Reset DAQ maximum on a pin
&amp;nbsp;
; &lt;span class=&quot;nu0&quot;&gt;930&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt;				; Recall Memory Setting &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; Attached Xcvr
&amp;nbsp;
; &lt;span class=&quot;nu0&quot;&gt;931&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;31&lt;/span&gt;				; Channel Selector &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; Parallel Programmed Xcvr
&amp;nbsp;
; &lt;span class=&quot;nu0&quot;&gt;932&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;32&lt;/span&gt;				; Touchtone pad test: &lt;span class=&quot;kw3&quot;&gt;command&lt;/span&gt; + Digit string + &lt;span class=&quot;co0&quot;&gt;# to playback all digits pressed&lt;/span&gt;
&amp;nbsp;
; &lt;span class=&quot;nu0&quot;&gt;933&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;33&lt;/span&gt;				; Local Telemetry Output Enable
; &lt;span class=&quot;nu0&quot;&gt;934&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;34&lt;/span&gt;				; Local Telemetry Output Disable
; &lt;span class=&quot;nu0&quot;&gt;935&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;35&lt;/span&gt;				; Local Telemetry Output on Demand
&amp;nbsp;
; &lt;span class=&quot;nu0&quot;&gt;936&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;36&lt;/span&gt;				; Foreign Link Local Output Path Enable
; &lt;span class=&quot;nu0&quot;&gt;937&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;37&lt;/span&gt;				; Foreign Link Local Output Path Disable
; &lt;span class=&quot;nu0&quot;&gt;938&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;38&lt;/span&gt;				; Foreign Link Local Output Path Follows Local Telemetry
; &lt;span class=&quot;nu0&quot;&gt;939&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;39&lt;/span&gt;				; Foreign Link Local Output Path on Demand
&amp;nbsp;
; &lt;span class=&quot;nu0&quot;&gt;942&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;42&lt;/span&gt;				; Echolink announce node &lt;span class=&quot;co0&quot;&gt;# only&lt;/span&gt;
; &lt;span class=&quot;nu0&quot;&gt;943&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;43&lt;/span&gt;				; Echolink announce node Callsign only
; &lt;span class=&quot;nu0&quot;&gt;944&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;44&lt;/span&gt;				; Echolink announce node &lt;span class=&quot;co0&quot;&gt;# &amp;amp; Callsign&lt;/span&gt;
&amp;nbsp;
; &lt;span class=&quot;nu0&quot;&gt;945&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;45&lt;/span&gt;				; Link Activity timer &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt;
; &lt;span class=&quot;nu0&quot;&gt;945&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;46&lt;/span&gt;				; Link Activity timer disable
; &lt;span class=&quot;nu0&quot;&gt;947&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;47&lt;/span&gt;				; Reset &lt;span class=&quot;st0&quot;&gt;&amp;quot;Link Config Changed&amp;quot;&lt;/span&gt; Flag
&amp;nbsp;
; &lt;span class=&quot;nu0&quot;&gt;948&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;48&lt;/span&gt;				; Send Page Tone &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Tone specs separated by parenthesis&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
; &lt;span class=&quot;nu0&quot;&gt;949&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;49&lt;/span&gt;				; Disable incoming connections &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;control state noice&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
; &lt;span class=&quot;nu0&quot;&gt;950&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;				; Enable incoming connections &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;control state noicd&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
; &lt;span class=&quot;nu0&quot;&gt;951&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;51&lt;/span&gt;				; Enable &lt;span class=&quot;kw2&quot;&gt;sleep&lt;/span&gt; mode
; &lt;span class=&quot;nu0&quot;&gt;952&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;52&lt;/span&gt;				; Disable &lt;span class=&quot;kw2&quot;&gt;sleep&lt;/span&gt; mode
; &lt;span class=&quot;nu0&quot;&gt;953&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;53&lt;/span&gt;				; Wake up from &lt;span class=&quot;kw2&quot;&gt;sleep&lt;/span&gt;
; &lt;span class=&quot;nu0&quot;&gt;954&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;54&lt;/span&gt;				; Go to &lt;span class=&quot;kw2&quot;&gt;sleep&lt;/span&gt;
&amp;nbsp;
; &lt;span class=&quot;nu0&quot;&gt;956&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;56&lt;/span&gt;                            ; Rx CTCSS Enable
; &lt;span class=&quot;nu0&quot;&gt;957&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;57&lt;/span&gt;                            ; Rx CTCSS Disable
&amp;nbsp;
; &lt;span class=&quot;nu0&quot;&gt;958&lt;/span&gt; = cop.58                            ; Tx CTCSS On Input only Enable
; &lt;span class=&quot;nu0&quot;&gt;959&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;59&lt;/span&gt;                            ; Tx CTCSS On Input only Disable
&amp;nbsp;
; &lt;span class=&quot;nu0&quot;&gt;960&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;                            ; Send MDC-&lt;span class=&quot;nu0&quot;&gt;1200&lt;/span&gt; Burst &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;cop,&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;,&lt;span class=&quot;kw3&quot;&gt;type&lt;/span&gt;,UnitID&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;,DestID,SubCode&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
;                                         ; Type is &lt;span class=&quot;st_h&quot;&gt;&#039;I&#039;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; PttID, &lt;span class=&quot;st_h&quot;&gt;&#039;E&#039;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; Emergency, and &lt;span class=&quot;st_h&quot;&gt;&#039;C&#039;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; Call
;                                         ; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;SelCall or Alert&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;, or &lt;span class=&quot;st_h&quot;&gt;&#039;SX&#039;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; STS &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ststus&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;, where X is &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;-F.
;                                         ; DestID and subcode are only specified &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt;  the &lt;span class=&quot;st_h&quot;&gt;&#039;C&#039;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;type&lt;/span&gt; message.
;                                         ; UnitID is the &lt;span class=&quot;kw3&quot;&gt;local&lt;/span&gt; systems UnitID. DestID is the MDC1200 ID of
;                                         ; the radio being called, and the subcodes are &lt;span class=&quot;kw2&quot;&gt;as&lt;/span&gt; follows:
;                                         ; Subcode &lt;span class=&quot;st_h&quot;&gt;&#039;8205&#039;&lt;/span&gt; is Voice Selective Call &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; Spectra &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;Call&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
;                                         ; Subcode &lt;span class=&quot;st_h&quot;&gt;&#039;8015&#039;&lt;/span&gt; is Voice Selective Call &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; Maxtrac &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;SC&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; or
;                                         ; Astro-Saber&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039;Call&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
;                                         ; Subcode &lt;span class=&quot;st_h&quot;&gt;&#039;810D&#039;&lt;/span&gt; is Call Alert &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;like Maxtrac &lt;span class=&quot;st_h&quot;&gt;&#039;CA&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
; &lt;span class=&quot;nu0&quot;&gt;961&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;61&lt;/span&gt;                            ; Send Message to USB to control GPIO pins &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;cop,&lt;span class=&quot;nu0&quot;&gt;61&lt;/span&gt;,&lt;span class=&quot;re2&quot;&gt;GPIO1&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;,&lt;span class=&quot;re2&quot;&gt;GPIO4&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;.....&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
; &lt;span class=&quot;nu0&quot;&gt;962&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;62&lt;/span&gt;                            ; Send Message to USB to control GPIO pins, quietly &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;cop,&lt;span class=&quot;nu0&quot;&gt;62&lt;/span&gt;,&lt;span class=&quot;re2&quot;&gt;GPIO1&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;,&lt;span class=&quot;re2&quot;&gt;GPIO4&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;.....&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
; &lt;span class=&quot;nu0&quot;&gt;963&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;63&lt;/span&gt;                            ; Send pre-configred APRSTT notification &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;cop,&lt;span class=&quot;nu0&quot;&gt;63&lt;/span&gt;,CALL&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;,OVERLAYCHR&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
; &lt;span class=&quot;nu0&quot;&gt;964&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;64&lt;/span&gt;                            ; Send pre-configred APRSTT notification, quietly &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;cop,&lt;span class=&quot;nu0&quot;&gt;64&lt;/span&gt;,CALL&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;,OVERLAYCHR&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
; &lt;span class=&quot;nu0&quot;&gt;965&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;65&lt;/span&gt;                            ; Send POCSAG page &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;equipped channel types only&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;functions-remote&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; = remote,&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;                            ; Retrieve Memory
&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; = remote,&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;                            ; Set freq.
&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; = remote,&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;                            ; Set tx PL tone
&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; = remote,&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;                            ; Set rx PL tone
&lt;span class=&quot;nu0&quot;&gt;40&lt;/span&gt; = remote,&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;                         ; Rx PL off
&lt;span class=&quot;nu0&quot;&gt;41&lt;/span&gt; = remote,&lt;span class=&quot;nu0&quot;&gt;101&lt;/span&gt;                         ; Rx PL on
&lt;span class=&quot;nu0&quot;&gt;42&lt;/span&gt; = remote,&lt;span class=&quot;nu0&quot;&gt;102&lt;/span&gt;                         ; Tx PL off
&lt;span class=&quot;nu0&quot;&gt;43&lt;/span&gt; = remote,&lt;span class=&quot;nu0&quot;&gt;103&lt;/span&gt;                         ; Tx PL on
&lt;span class=&quot;nu0&quot;&gt;44&lt;/span&gt; = remote,&lt;span class=&quot;nu0&quot;&gt;104&lt;/span&gt;                         ; Low Power
&lt;span class=&quot;nu0&quot;&gt;45&lt;/span&gt; = remote,&lt;span class=&quot;nu0&quot;&gt;105&lt;/span&gt;                         ; Medium Power
&lt;span class=&quot;nu0&quot;&gt;46&lt;/span&gt; = remote,&lt;span class=&quot;nu0&quot;&gt;106&lt;/span&gt;                         ; High Power
&lt;span class=&quot;nu0&quot;&gt;711&lt;/span&gt; = remote,&lt;span class=&quot;nu0&quot;&gt;107&lt;/span&gt;                        ; Bump &lt;span class=&quot;re5&quot;&gt;-20&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;714&lt;/span&gt; = remote,&lt;span class=&quot;nu0&quot;&gt;108&lt;/span&gt;                        ; Bump &lt;span class=&quot;re5&quot;&gt;-100&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;717&lt;/span&gt; = remote,&lt;span class=&quot;nu0&quot;&gt;109&lt;/span&gt;                        ; Bump &lt;span class=&quot;re5&quot;&gt;-500&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;713&lt;/span&gt; = remote,&lt;span class=&quot;nu0&quot;&gt;110&lt;/span&gt;                        ; Bump +&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;716&lt;/span&gt; = remote,&lt;span class=&quot;nu0&quot;&gt;111&lt;/span&gt;                        ; Bump +&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;719&lt;/span&gt; = remote,&lt;span class=&quot;nu0&quot;&gt;112&lt;/span&gt;                        ; Bump +&lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;721&lt;/span&gt; = remote,&lt;span class=&quot;nu0&quot;&gt;113&lt;/span&gt;                        ; Scan - slow
&lt;span class=&quot;nu0&quot;&gt;724&lt;/span&gt; = remote,&lt;span class=&quot;nu0&quot;&gt;114&lt;/span&gt;                        ; Scan - quick
&lt;span class=&quot;nu0&quot;&gt;727&lt;/span&gt; = remote,&lt;span class=&quot;nu0&quot;&gt;115&lt;/span&gt;                        ; Scan - fast
&lt;span class=&quot;nu0&quot;&gt;723&lt;/span&gt; = remote,&lt;span class=&quot;nu0&quot;&gt;116&lt;/span&gt;                        ; Scan + slow
&lt;span class=&quot;nu0&quot;&gt;726&lt;/span&gt; = remote,&lt;span class=&quot;nu0&quot;&gt;117&lt;/span&gt;                        ; Scan + quick
&lt;span class=&quot;nu0&quot;&gt;729&lt;/span&gt; = remote,&lt;span class=&quot;nu0&quot;&gt;118&lt;/span&gt;                        ; Scan + fast
&lt;span class=&quot;nu0&quot;&gt;79&lt;/span&gt; = remote,&lt;span class=&quot;nu0&quot;&gt;119&lt;/span&gt;                         ; Tune
&lt;span class=&quot;nu0&quot;&gt;51&lt;/span&gt; = remote,&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;                           ; Long status query
&lt;span class=&quot;nu0&quot;&gt;52&lt;/span&gt; = remote,&lt;span class=&quot;nu0&quot;&gt;140&lt;/span&gt;				; Short status query
&lt;span class=&quot;nu0&quot;&gt;67&lt;/span&gt; = remote,&lt;span class=&quot;nu0&quot;&gt;210&lt;/span&gt;				; Send a &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;69&lt;/span&gt; = remote,&lt;span class=&quot;nu0&quot;&gt;211&lt;/span&gt;				; Send a &lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
;&lt;span class=&quot;nu0&quot;&gt;91&lt;/span&gt; = remote,&lt;span class=&quot;nu0&quot;&gt;99&lt;/span&gt;,CALLSIGN,LICENSETAG     ; Remote base login.
                                        ; Define a different dtmf sequence &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; each user &lt;span class=&quot;kw2&quot;&gt;which&lt;/span&gt; is
                                        ; authorized to use the remote base to control access to it.
                                        ; For examble &lt;span class=&quot;nu0&quot;&gt;9139583&lt;/span&gt;=remote,&lt;span class=&quot;nu0&quot;&gt;99&lt;/span&gt;,WB6NIL,G would grant access to
                                        ; the remote base and announce WB6NIL &lt;span class=&quot;kw2&quot;&gt;as&lt;/span&gt; being logged in.
                                        ; Another entry, &lt;span class=&quot;nu0&quot;&gt;9148351&lt;/span&gt;=remote,&lt;span class=&quot;nu0&quot;&gt;99&lt;/span&gt;,WA6ZFT,E would grant access to
                                        ; the remote base and announce WA6ZFT &lt;span class=&quot;kw2&quot;&gt;as&lt;/span&gt; being logged in.
                                        ; When the remote base is disconnected from the originating node, the
                                        ; user will be logged out. The LICENSETAG argument is used to enforce
					; tx frequency limits. See &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;txlimits&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; below.
&lt;span class=&quot;nu0&quot;&gt;85&lt;/span&gt; = cop,&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;                              ; Remote base telephone key
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;telemetry&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
; Telemetry entries can be shared across all repeaters, or defined &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; each repeater.
; Can be a tone sequence, morse string, or a &lt;span class=&quot;kw2&quot;&gt;file&lt;/span&gt;
;
; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;t - Tone escape sequence
;
; Tone sequences consist of &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; or &lt;span class=&quot;kw2&quot;&gt;more&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;-tuple entries &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;freq1, freq2, duration, amplitude&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
; Single frequencies are created by setting freq1 or freq2 to zero.
;
; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;m - Morse escape sequence
;
; Sends Morse code at the telemetry amplitude and telemetry frequency &lt;span class=&quot;kw2&quot;&gt;as&lt;/span&gt; defined &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; the
; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;morse&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; section.
;
; Follow with an alphanumeric string
;
; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;i - Morse ID escape sequence
;
; Sends Morse code at the ID amplitude and ID frequency &lt;span class=&quot;kw2&quot;&gt;as&lt;/span&gt; defined &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; the
; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;morse&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; section.
;
; path&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;to&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sound&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;file&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;without&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;extension
;
; Send the sound &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; place of a constructed tone. Do not include the &lt;span class=&quot;kw2&quot;&gt;file&lt;/span&gt; extension
; Example: ct8 = rpt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bloop
; Example: idrecording = rpt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;nodenames&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;48148&lt;/span&gt;
&amp;nbsp;
ct1 = &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;t&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;350&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;2048&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;2048&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;660&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;2048&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
ct2 = &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;t&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;660&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;880&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;150&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;2048&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
ct3 = &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;t&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;440&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;150&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;4096&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
ct4 = &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;t&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;550&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;150&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;2048&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
ct5 = &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;t&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;660&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;150&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;2048&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
ct6 = &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;t&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;880&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;150&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;2048&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
ct7 = &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;t&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;660&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;440&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;150&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;2048&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
ct8 = &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;t&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;700&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;1100&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;150&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;2048&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
ranger = &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;t&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1800&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;3072&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1800&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;3072&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1800&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;3072&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1800&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;3072&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1800&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;3072&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1800&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;3072&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;150&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
remotemon = &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;mR
;remotemon = &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;t&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1209&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;2048&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;                                  ; &lt;span class=&quot;kw3&quot;&gt;local&lt;/span&gt; courtesy tone when receive only
remotetx = &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;mK
;remotetx = &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;t&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1633&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;3000&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;80&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1209&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;3000&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;		; &lt;span class=&quot;kw3&quot;&gt;local&lt;/span&gt; courtesy tone when linked Trancieve mode
cmdmode = &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;t&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;900&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;903&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;2048&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
;functcomplete = &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;mW
functcomplete = &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;t&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;2048&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;2048&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
remcomplete = &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;t&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;650&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;2048&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;650&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;2048&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;650&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;2048&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
pfxtone = &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;t&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;350&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;440&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;30000&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;3072&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
patchup = rpt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;callproceeding
patchdown = rpt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;callterminated
&amp;nbsp;
ct12 = &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;me
ct13 = &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;mR
&amp;nbsp;
; As far &lt;span class=&quot;kw2&quot;&gt;as&lt;/span&gt; what the numbers mean,
; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;000,000,010,000&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
;   &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;   &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;   &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;   &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;-------amplitude
;   &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;   &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;   &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;-------------duration
;   &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;   &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;-------------------Tone &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
;   &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;-------------------------Tone &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&amp;nbsp;
; So, with &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; That says No Tone1, No Tone2, 10ms duration, &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; Amplitude.
; Use it &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; a delay.  Fine tuning &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; how long before telemetry is sent, &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; conjunction with the telemdelay parameter&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
; The numbers, like &lt;span class=&quot;nu0&quot;&gt;350&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;440&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;2048&lt;/span&gt; are 350Hz, 440Hz, 10ms delay, amplitude of &lt;span class=&quot;nu0&quot;&gt;2048&lt;/span&gt;.
&amp;nbsp;
; Morse code parameters, these are common to all repeaters.
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;morse&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
speed = &lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;				; Approximate speed &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; WPM
frequency = &lt;span class=&quot;nu0&quot;&gt;600&lt;/span&gt;				; Morse Telemetry Frequency
amplitude = &lt;span class=&quot;nu0&quot;&gt;2048&lt;/span&gt;			; Morse Telemetry Amplitude
idfrequency = &lt;span class=&quot;nu0&quot;&gt;1065&lt;/span&gt;			; Morse ID Frequency
idamplitude = &lt;span class=&quot;nu0&quot;&gt;1024&lt;/span&gt;			; Morse ID Amplitude
&amp;nbsp;
;
; This section allows &lt;span class=&quot;kw3&quot;&gt;wait&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;times&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; telemetry events to be adjusted
; A section &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;wait&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;times&lt;/span&gt; can be defined &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; every repeater
;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;wait-times&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
telemwait = &lt;span class=&quot;nu0&quot;&gt;400&lt;/span&gt;                        ; Time to &lt;span class=&quot;kw3&quot;&gt;wait&lt;/span&gt; before sending most telemetry
idwait = &lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;                            ; Time to &lt;span class=&quot;kw3&quot;&gt;wait&lt;/span&gt; before starting ID
unkeywait = &lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt;                        ; Time to &lt;span class=&quot;kw3&quot;&gt;wait&lt;/span&gt; after unkey before sending CT&lt;span class=&quot;st_h&quot;&gt;&#039;s and link telemetry
calltermwait = 2000                     ; Time to wait before announcing &amp;quot;call terminated&amp;quot;
&amp;nbsp;
; Memories for remote bases
&amp;nbsp;
[memory]
;00 = 146.580,100.0,m
;01 = 147.030,103.5,m+t
;02 = 147.240,103.5,m+t
;03 = 147.765,79.7,m-t
;04 = 146.460,100.0,m
;05 = 146.550,100.0,m
&amp;nbsp;
; Place command macros here
&amp;nbsp;
[macro]
&amp;nbsp;
&amp;nbsp;
11 = *141223# ; disc. hubnet
21 = *241223# ; monitor hubnet
31 = *341223# ; transceive hubnet
&amp;nbsp;
&amp;nbsp;
12 = *1424611# ; disc MilNet
22 = *2424611# ; monitor MilNet
32 = *3424611# ; transceive MilNet
&amp;nbsp;
;13 = *129332# ; disc Alaska
;23 = *229332# ; monitor Alaska
;33 = *329332# ; transceive Alaska
&amp;nbsp;
;14 = *154383# ; disc CQ North
;24 = *254383# ; monitor CQ North
;34 = *354383# ; transceive CQ North
&amp;nbsp;
;191 = *140894# ; disconnect hubnet Echo
;391 = *340894# ; connect hubnet echo
&amp;nbsp;
19 = *13009999#	; dis echolink echotest
39 = *33009999#	; con echolink echotest
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
; Data Acquisition configuration
&amp;nbsp;
;[daq-list]
;device = device_name1
;device = device_name2
&amp;nbsp;
;Where: device_name1 and device_name2 are stanzas you define in this file
&amp;nbsp;
;device = daq-cham-1
&amp;nbsp;
; Device name
&amp;nbsp;
;[daq-cham-1]				; Defined in [daq-list]
;hwtype = uchameleon			; DAQ hardware type
;devnode = /dev/ttyUSB0			; DAQ device node (if required)
;1 = inadc				; Pin definition for an ADC channel
;2 = inadc
;3 = inadc
;4 = inadc
;5 = inadc
;6 = inadc
;7 = inadc
;8 = inadc
;9 = inp				; Pin definition for an input with a weak pullup resistor
;10 = inp
;11 = inp
;12 = inp
;13 = in				; Pin definition for an input without a weak pullup resistor
;14 = out				; Pin definition for an output
;15 = out
;16 = out
;17 = out
;18 = out
&amp;nbsp;
;[meter-faces]
&amp;nbsp;
;face = scale(scalepre,scalediv,scalepost),word/?,...
;
; scalepre = offset to add before dividing with scalediv
; scalediv = full scale/number of whole units (e.g. 256/20 or 12.8 for 20 volts).
; scalepost = offset to add after dividing with scalediv
;
;face = range(X-Y:word,X2-Y2:word,...),word/?,...
;face = bit(low-word,high-word),word/?,...
;
; word/? is either a word in /var/lib/asterisk/sounds or one of its subdirectories,
; or a question mark which is  a placeholder for the measured value.
;
;
; Battery voltage 0-20 volts
;batvolts = scale(0,12.8,0),rpt/thevoltageis,?,ha/volts
; 4 quadrant wind direction
;winddir = range(0-33:north,34-96:west,97-160:south,161-224:east,225-255:north),rpt/thewindis,?
; LM34 temperature sensor with 130 deg. F full scale
;lm34f = scale(0,1.969,0),rpt/thetemperatureis,?,degrees,fahrenheit
; Status poll (non alarmed)
;light = bit(ha/off,ha/on),ha/light,?
&amp;nbsp;
;[alarms]
;
;tag = device,pin,node,ignorefirst,func-low,func-hi
;
;tag = a unique name for the alarm
;device = daq device to poll
;pin = the device pin to be monitored
;ignorefirstalarm = set to 1 to throwaway first alarm event, or 0 to report it
;node = the node number to execute the function on
;func-low = the DTMF function to execute on a high to low transition
;func-high = the DTMF function to execute on a low to high transition
;
; a  &#039;&lt;/span&gt;-&lt;span class=&quot;st_h&quot;&gt;&#039; as a function name is shorthand for no-operation
;
;door = daq-cham-1,9,1,2017,*7,-
;pwrfail = daq-cham-1,10,0,2017,*911111,-
;
; Control states
; Allow several control operator functions to be changed at once using one command (good for scheduling)
;
;[controlstates]
;statenum = copcmd,[copcmd]...
;0 = rptena,lnkena,apena,totena,ufena,noicd  ; Normal operation
;1 = rptena,lnkena,apdis,totdis,ufena,noice  ; Net and news operation
;2 = rptena,lnkdis,apdis,totena,ufdis,noice  ; Repeater only operation
&amp;nbsp;
; Scheduler - execute a macro at a given time
&amp;nbsp;
[schedule]
;dtmf_function =  m h dom mon dow  ; ala cron, star is implied
;8 = 55 12 * * *   ; at midnight, execute macro 2.
&amp;nbsp;
; See https://wiki.allstarlink.org/wiki/Event_Management
[events]
&amp;nbsp;
#includeifexists custom/rpt.conf&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_ed4ecf13d41d641e55f7d559ac75cabb_4&quot;&gt;/etc/asterisk/rpt.conf after bridging added &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_ed4ecf13d41d641e55f7d559ac75cabb_4&quot;&gt;&lt;pre class=&quot;code bash&quot;&gt;; Radio Repeater configuration &lt;span class=&quot;kw2&quot;&gt;file&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; use with app_rpt&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
; Your Repeater
&lt;span class=&quot;sy0&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
;
; This is where you define your nodes &lt;span class=&quot;kw2&quot;&gt;which&lt;/span&gt; can be connected to.
;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;nodes&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
; Note, &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; you are using automatic update &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; allstar &lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt; nodes,
; no allstar &lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt; nodes should be defined here. Only place a definition
; &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; your &lt;span class=&quot;kw3&quot;&gt;local&lt;/span&gt; nodes, and private &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;off of allstar &lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; nodes here.
&amp;nbsp;
;&lt;span class=&quot;nu0&quot;&gt;481480&lt;/span&gt; = radio&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;127.0.0.1:&lt;span class=&quot;nu0&quot;&gt;4569&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;481480&lt;/span&gt;,NONE	; This must be changed to your node number
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;nu0&quot;&gt;1999&lt;/span&gt; = radio&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;127.0.0.1:&lt;span class=&quot;nu0&quot;&gt;4569&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1999&lt;/span&gt;,NONE
&amp;nbsp;
&lt;span class=&quot;nu0&quot;&gt;48148&lt;/span&gt; = radio&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;127.0.0.1:&lt;span class=&quot;nu0&quot;&gt;4569&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;48148&lt;/span&gt;,NONE	; This must be changed to your node number
                                        ; and iax port number &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; not the default
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1999&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
rxchannel = USRP&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;127.0.0.1:&lt;span class=&quot;nu0&quot;&gt;34001&lt;/span&gt;:&lt;span class=&quot;nu0&quot;&gt;31001&lt;/span&gt; ; Use the USRP channel driver. Must be enabled &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; modules.conf
 ; 127.0.0.1 = IP of the target application
 ; &lt;span class=&quot;nu0&quot;&gt;34001&lt;/span&gt; = UDP port the target application is listening on
 ; &lt;span class=&quot;nu0&quot;&gt;32001&lt;/span&gt; = UDP port ASL is listening on
duplex = &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; ; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; = Half duplex with no telemetry tones or hang time. Ah, but Allison STILL talks&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;
hangtime = &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; ; squelch &lt;span class=&quot;kw2&quot;&gt;tail&lt;/span&gt; hang &lt;span class=&quot;kw1&quot;&gt;time&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
althangtime = &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; ; longer squelch &lt;span class=&quot;kw2&quot;&gt;tail&lt;/span&gt; hang &lt;span class=&quot;kw1&quot;&gt;time&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
holdofftelem = &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; ; Hold off all telemetry when signal is present on receiver or from connected nodes
 ; except when an ID needs to be &lt;span class=&quot;kw1&quot;&gt;done&lt;/span&gt; and there is a signal coming from a connected node.
telemdefault = &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; ; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; = telemetry output off. Don&lt;span class=&quot;st_h&quot;&gt;&#039;t send Allison to DMR !!!!!!!!!!!!!!!!! Trust me.
telemdynamic = 0 ; 0 = disallow users to change the local telemetry setting with a COP command,
linktolink = no ; disables forcing physical half-duplex operation of main repeater while
 ; still keeping half-duplex semantics (optional)
nounkeyct = 1 ; Set to a 1 to eliminate courtesy tones and associated delays.
totime = 180000 ; transmit time-out time (in ms) (optional, default 3 minutes 180000 ms)
idrecording = |ie ; id recording or morse string see http://ohnosec.org/drupal/node/87
idtalkover = |ie ; Talkover ID (optional) default is none see http://ohnosec.org/drupal/node/129
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
;[481480]					; Change this to your assigned node number
[48148]					; Change this to your assigned node number
&amp;nbsp;
                                        ; Must also be enabled in modules.conf
					; Rx audio/signalling channel. Choose ONLY 1 per node stanza
&amp;nbsp;
					; Enable the selected channel driver in modules.conf !!!
;rxchannel = dahdi/pseudo	        ; No radio (hub)
rxchannel = SimpleUSB/usb_48148	; SimpleUSB
; rxchannel = Pi/1                      ; Raspberry Pi PiTA
; rxchannel = Radio/usb_48148		; USBRadio (DSP)
; rxchannel = Dahdi/1			; PCI Quad card
; rxchannel = Beagle/1			; BeagleBoard
; rxchannel = USRP/127.0.0.1:34001:32001; GNU Radio interface USRP
; rxchannel = Voter/48148                ; RTCM device
&amp;nbsp;
&amp;nbsp;
duplex = 1                              ; 0 = Half duplex with no telemetry tones or hang time.
                                        ;     Special Case: Full duplex if linktolink is set to yes.
                                        ;     This mode is preferred when interfacing with an external multiport repeater controller.
					;     Comment out idrecording and idtalkover to suppress IDs also
                                        ; 1 = Half duplex with telemetry tones and hang time. Does not repeat audio.
                                        ;     This mode is preferred when interfacing a simplex node.
                                        ; 2 = Full Duplex with telemetry tones and hang time.
                                        ;     This mode is preferred when interfacing a repeater.
                                        ; 3 = Full Duplex with telemetry tones and hang time, but no repeated audio.
                                        ; 4 = Full Duplex with telemetry tones and hang time. Repeated audio only when the autopatch is down.
&amp;nbsp;
linktolink = no				; disables forcing physical half-duplex operation of main repeater while
					; still keeping half-duplex semantics (optional)
&amp;nbsp;
linkmongain = 0				; Link Monitor Gain adjusts the audio level of monitored nodes when a signal from another node or the local receiver is received.
					; If linkmongain is set to a negative number the monitored audio will decrease by the set amount in db.
					; If linkmongain set to a positive number monitored audio will increase by the set amount in db.
					; The value of linkmongain is in db. The default value is 0 db.
&amp;nbsp;
erxgain = -3				; Echolink receive gain adjustment
					; Note: Gain is in db-volts (20logVI/VO)
etxgain = 3				; Echolink transmit gain adjustment
					; Note: Gain is in db-volts (20logVI/VO)
eannmode = 2                           ; 1 = Say only node number on echolink connects (default = 1)
                                        ; 2 = say phonetic call sign only on echolink connects
                                        ; 3 = say phonetic call sign and node number on echolink connects
&amp;nbsp;
;controlstates = controlstates		; system control state stanza
&amp;nbsp;
scheduler = schedule			; scheduler stanza
functions = functions			; Repeater Function stanza
phone_functions = functions		; Phone Function stanza
link_functions = functions		; Link Function stanza
&amp;nbsp;
telemetry = telemetry			; Telemetry stanza
morse = morse				; Morse stanza
wait_times = wait-times			; Wait times stanza
&amp;nbsp;
context = radio				; dialing context for phone
callerid = &amp;quot;Repeater&amp;quot; &amp;lt;0000000000&amp;gt;	; callerid for phone calls
accountcode = RADIO                     ; account code (optional)
&amp;nbsp;
hangtime = 200				; squelch tail hang time (in ms) (optional, default 5 seconds, 5000 ms)
althangtime = 300			; longer squelch tail
totime = 300000				; 5 mins (12/4/22) transmit time-out time (in ms) (optional, default 3 minutes 180000 ms)
&amp;nbsp;
telemnomdb = -3				;
telemduckdb = -10			;
&amp;nbsp;
;idrecording = /home/gm4slv/gm4slv_id
;idrecording = /home/gm4slv/mb7aze_id
idrecording = |iGM4SLV				; Main ID message
&amp;nbsp;
;idtalkover = |iGM4SLV				; Talkover ID message
idtalkover = |iGM4SLV				; Talkover ID message
					; See Telemetry section Example: idrecording = rpt/nodenames/48148
idtime = 900000				; 15 mins (12/4/22) id interval time (in ms) (optional) Default 5 minutes (300000 ms)
politeid = 30000			; time in milliseconds before ID timer expires to try and ID in the tail. (optional, default 30000)
&amp;nbsp;
unlinkedct = ct12			; Send a this courtesy tone when the user unkeys if the node is not connected to any other nodes. (optional, default is none)
remotect = ct3				; remote linked courtesy tone (indicates a remote is in the list of links)
linkunkeyct = ct4			; sent when a transmission received over the link unkeys
;nolocallinkct = 0			; Send unlinkedct instead if another local node is connected to this node (hosted on the same PC).
&amp;nbsp;
; Supermon smlogger
connpgm=/usr/local/sbin/supermon/smlogger 1
discpgm=/usr/local/sbin/supermon/smlogger 0
&amp;nbsp;
;connpgm = yourconnectprogram		; Disabled. Execute a program you specify on connect. (default)
					; passes 2 command line arguments to your program:
					; 1. node number in this stanza (us)
					; 2. node number being connected to us (them)
;discpgm = yourdisconnectprogram	; Disabled. Execute a program you specify on disconnect. (default)
					; passes 2 command line arguments to your program:
					; 1. node number in this stanza (us)
					; 2. node number being disconnected from us (them)
&amp;nbsp;
lnkactenable = 0			; Set to 1 to enable the link activity timer. Applicable to standard nodes only.
&amp;nbsp;
lnkacttime = 3600			; Link activity timer time in seconds.
lnkactmacro = *73			; Function to execute when link activity timer expires.
lnkacttimerwarn = custom/timeout		; Message to play when the link activity timer has 30 seconds left.
&amp;nbsp;
;remote_inact_timeout =	60		; Specifies the amount of time without keying from the link. Set to 0 to disable timeout. (15 * 60)
;remote_timeout =			; Session time out for remote base. Set to 0 to disable. (60 * 60)
;remote_timeout_warning_freq =		; 30
;remote_timeout_warning =		; (3 * 60)
&amp;nbsp;
;nounkeyct = 0				; Set to a 1 to eliminate courtesy tones and associated delays.
&amp;nbsp;
holdofftelem = 0			; Hold off all telemetry when signal is present on receiver or from connected nodes
					; except when an ID needs to be done and there is a signal coming from a connected node.
&amp;nbsp;
telemdefault = 1                        ; 0 = telemetry output off
                                        ; 1 = telemetry output on (default = 1)
                                        ; 2 = timed telemetry output on command execution and for a short time thereafter.
&amp;nbsp;
telemdynamic = 1                        ; 0 = disallow users to change the local telemetry setting with a COP command,
                                        ; 1 = Allow users to change the setting with a COP command. (default = 1)
&amp;nbsp;
beaconing = 0				; Send ID regardless of repeater activity (Required in the UK, but probably illegal in the US)
&amp;nbsp;
parrotmode = 1				; 0 = Parrot Off (default = 0)
					; 1 = Parrot On Command
					; 2 = Parrot Always
					; 3 = Parrot Once by Command
&amp;nbsp;
parrottime = 1000			; Set the amount of time in milliseconds
					; to wait before parroting what was received
&amp;nbsp;
;rxnotch=1065,40                        ; (Optional) Notch a particular frequency for a specified
                                        ; b/w. app_rpt must have been compiled with
                                        ; the notch option
&amp;nbsp;
startup_macro = *80*81*70
&amp;nbsp;
; nodenames = /var/lib/asterisk/sounds/rpt/nodenames.callsign	; Point to alternate nodename sound directory
&amp;nbsp;
; Stream your node audio to Broadcastify or similar. See https://wiki.allstarlink.org/wiki/Stream_Node_Audio_to_Broadcastify
; outstreamcmd = /bin/sh,-c,/usr/bin/lame --preset cbr 16 -r -m m -s 8 --bitwidth 16 - - | /usr/bin/ezstream -qvc /etc/ezstream.xml
&amp;nbsp;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Need more information on these
&amp;nbsp;
;extnodes = extnodes-different	; section in extnodefile containing dynamic node information (optional)
;extnodefile = /home/gm4slv/rpt_extnodes	; Points to nodelist file containing dynamic node info default = /var/lib/asterisk/rpt_extnodes (optional)
;extnodefile2 =			; Is this a list of node files? Possible a list of private nodes or a list of static IPs for known nodes????
;nodenames = /foo/names         ; locaton of node sound files default = /var/lib/asterisk/sounds/rpt/nodenames
;archivedir = /tmp              ; defines and enables activity recording into specified directory (optional)
;monminblocks = 2048            ; Min 1K blocks to be left on partition (will not save monitor output if disk too full)
&amp;nbsp;
;                               ; The tailmessagetime,tailsquashedtime, and tailmessagelist need to be set
;                               ; to support tail messages. They can be omitted otherwise.
;tailmessagetime = 300000       ; Play a tail message every 5 mins
;tailsquashedtime = 30000       ; If squashed by another user,
;                               ; try again after 30 seconds
;tailmessagelist = msg1,msg2    ; list of messages to be played for tail message
&amp;nbsp;
; alt_functions
; ctgroup
; dphone_functions
; idtime
; iobase
; iospeed
; locallist
; mars		Remote Base
; memory
; nobusyout
; nodes
; nolocallinkct
; notelemtx
; outxlat
; parrot
; propagate_phonedtmf
; rptnode
; rptinactmacro  Macro to execute when inactivity timer expires
; rptinacttime   Inactivity timer time in seconds  (0 seconds disables feature)
; rxnotch	Optional Audio notch
; simplexphonedelay
; tonemacro
; tonezone
; txlimits
&amp;nbsp;
&amp;nbsp;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
&amp;nbsp;
&amp;nbsp;
; *** Status Reporting ***
&amp;nbsp;
; Comment the following statpost line stop to reporting of the status of your node to stats.allstarlink.org
statpost_url = http://stats.allstarlink.org/uhandler ; Status updates
&amp;nbsp;
[functions]
&amp;nbsp;
; Prefix	Functions
; *1		Disconnect Link
; *2		Monitor Link
; *3		Connect Link
; *4		Command Mode
; *5		Macros
; *6		User Functions
; *7		Connection Status/Functions
; *8		User Functions
; *9		User Functions
; *0		User Functions
&amp;nbsp;
; *A		User Functions
; *B		User Functions
; *C		User Functions
; *D		User Functions
&amp;nbsp;
&amp;nbsp;
; Mandatory Command Codes
1 = ilink,1		; Disconnect specified link
2 = ilink,2		; Connect specified link -- monitor only
3 = ilink,3		; Connect specified link -- tranceive
4 = ilink,4		; Enter command mode on specified link
&amp;nbsp;
70 = ilink,5		; System status
&amp;nbsp;
;99 = cop,6              ; PTT (phone mode only)
&amp;nbsp;
; End Mandatory Command Codes
&amp;nbsp;
73 = ilink,6		; Disconnect All Links
74 = ilink,16		; Reconnect links disconnected with &amp;quot;disconnect all links&amp;quot;
&amp;nbsp;
80 = status,11         ; Force ID (local only)
81 = status,12         ; Give Time of Day (local only)
&amp;nbsp;
91 = cop,21		; Enable Parrot Mode
92 = cop,22		; Disable Parrot Mode
93 = cop,55		; Parrot Once if parrot mode is disabled
&amp;nbsp;
98 = cop,2		; System enable
99 = cop,3		; System disable
&amp;nbsp;
901 = cop,1				; System warm boot
&amp;nbsp;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
&amp;nbsp;
; Macro Commands
5 = macro
&amp;nbsp;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
&amp;nbsp;
; Autopatch Commands
; Note, This may be a good place for other 2 digit frequently used commands
&amp;nbsp;
;61 = autopatchup,noct = 1,farenddisconnect = 1,dialtime = 20000  ; Autopatch up
;62 = autopatchdn                                                 ; Autopatch down
&amp;nbsp;
; autopatchup can optionally take comma delimited setting=value pairs:
&amp;nbsp;
; context = string		; Override default context with &amp;quot;string&amp;quot;
; dialtime = ms			; Specify the max number of milliseconds between phone number digits (1000 milliseconds = 1 second)
; farenddisconnect = 1		; Automatically disconnect when called party hangs up
; noct = 1			; Don&#039;&lt;/span&gt;t send repeater courtesy tone during autopatch calls
; quiet = &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;			; Don&lt;span class=&quot;st_h&quot;&gt;&#039;t send dial tone, or connect messages. Do not send patch down message when called party hangs up
				; Example: 123=autopatchup,dialtime=20000,noct=1,farenddisconnect=1
&amp;nbsp;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
&amp;nbsp;
; Status Commands
&amp;nbsp;
; 1 - Force ID (global)
; 2 - Give Time of Day (global)
; 3 - Give software Version (global)
; 4 - Give GPS location info
; 5 - Last (dtmf) user
; 11 - Force ID (local only)
; 12 - Give Time of Day (local only)
&amp;nbsp;
;721 = status,1          ; Force ID (global)
;722 = status,2          ; Give Time of Day (global)
;723 = status,3          ; Give software Version (global)
;724 = status,4          ; Give GPS location info
;725 = status,5          ; Last (dtmf) user
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
&amp;nbsp;
; Link Commands
&amp;nbsp;
; 1 - Disconnect specified link
; 2 - Connect specified link -- monitor only
; 3 - Connect specified link -- tranceive
; 4 - Enter command mode on specified link
; 5 - System status
; 6 - Disconnect all links
; 7 - Last Node to Key Up
; 8 - Connect specified link -- local monitor only
; 9 - Send Text Message (9,&amp;lt;destnodeno or 0 (for all)&amp;gt;,Message Text, etc.
; 10 - Disconnect all RANGER links (except permalinks)
; 11 - Disconnect a previously permanently connected link
; 12 - Permanently connect specified link -- monitor only
; 13 - Permanently connect specified link -- tranceive
; 15 - Full system status (all nodes)
; 16 - Reconnect links disconnected with &amp;quot;disconnect all links&amp;quot;
; 17 - MDC test (for diag purposes)
; 18 - Permanently Connect specified link -- local monitor only
&amp;nbsp;
; ilink commands 1 through 5 are defined in the Mandatory Command section
&amp;nbsp;
;806 = ilink,6			; Disconnect all links
;827 = ilink,7			; Last Node to Key Up
;808 = ilink,8			; Connect specified link -- local monitor only
;809 = ilink,9,48148,&amp;quot;Testing&amp;quot;	; would send a text message to node 48148 replace 48148 with 0 for all connected nodes
;810 = ilink,10			; Disconnect all RANGER links (except permalinks)
;811 = ilink,11			; Disconnect a previously permanently connected link
;812 = ilink,12			; Permanently connect specified link -- monitor only
;823 = ilink,13			; Permanently connect specified link -- tranceive
;815 = ilink,15			; Full system status (all nodes)
;817 = ilink,17			; MDC test (for diag purposes)
;818 = ilink,18			; Permanently Connect specified link -- local monitor only
&amp;nbsp;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
&amp;nbsp;
; Control operator (cop) functions.
; Change these to something other than these codes listed below!
; Uncomment as needed.
&amp;nbsp;
;901 = cop,1				; System warm boot
&amp;nbsp;
; 904 = cop,4				; Test tone on/off (toggle)
; 905 = cop,5				; Dump system variables on console (debug use only)
&amp;nbsp;
; 907 = cop,7				; Time out timer enable
; 908 = cop,8				; Time out timer disable
&amp;nbsp;
; 909 = cop,9				; Autopatch enable
; 910 = cop,10				; Autopatch disable
&amp;nbsp;
; 911 = cop,11				; User linking functions enable
; 912 = cop,12				; User linking functions disable
&amp;nbsp;
; 913 = cop,13				; Query system control state
; 914 = cop,14				; Set system control state
&amp;nbsp;
; 915 = cop,15				; Scheduler enable
; 916 = cop,16				; Scheduler disable
&amp;nbsp;
; 917 = cop,17				; User functions enable (time, id, etc)
; 918 = cop,18				; User functions disable
&amp;nbsp;
; 919 = cop,19				; Select alternate hang time (althangtime)
; 920 = cop,20				; Select standard hangtime (hangtime)
&amp;nbsp;
&amp;nbsp;
; 924 = cop,24				; Flush all telemetry
; 925 = cop,25				; Query last node un-keyed
; 926 = cop,26				; Query all nodes keyed/unkeyed
; 927 = cop,27				; Reset DAQ minimum on a pin
; 928 = cop,28				; Reset DAQ maximum on a pin
&amp;nbsp;
; 930 = cop,30				; Recall Memory Setting in Attached Xcvr
&amp;nbsp;
; 931 = cop,31				; Channel Selector for Parallel Programmed Xcvr
&amp;nbsp;
; 932 = cop,32				; Touchtone pad test: command + Digit string + # to playback all digits pressed
&amp;nbsp;
; 933 = cop,33				; Local Telemetry Output Enable
; 934 = cop,34				; Local Telemetry Output Disable
; 935 = cop,35				; Local Telemetry Output on Demand
&amp;nbsp;
; 936 = cop,36				; Foreign Link Local Output Path Enable
; 937 = cop,37				; Foreign Link Local Output Path Disable
; 938 = cop,38				; Foreign Link Local Output Path Follows Local Telemetry
; 939 = cop,39				; Foreign Link Local Output Path on Demand
&amp;nbsp;
; 942 = cop,42				; Echolink announce node # only
; 943 = cop,43				; Echolink announce node Callsign only
; 944 = cop,44				; Echolink announce node # &amp;amp; Callsign
&amp;nbsp;
; 945 = cop,45				; Link Activity timer enable
; 945 = cop,46				; Link Activity timer disable
; 947 = cop,47				; Reset &amp;quot;Link Config Changed&amp;quot; Flag
&amp;nbsp;
; 948 = cop,48				; Send Page Tone (Tone specs separated by parenthesis)
&amp;nbsp;
; 949 = cop,49				; Disable incoming connections (control state noice)
; 950 = cop,50				; Enable incoming connections (control state noicd)
&amp;nbsp;
; 951 = cop,51				; Enable sleep mode
; 952 = cop,52				; Disable sleep mode
; 953 = cop,53				; Wake up from sleep
; 954 = cop,54				; Go to sleep
&amp;nbsp;
; 956 = cop,56                            ; Rx CTCSS Enable
; 957 = cop,57                            ; Rx CTCSS Disable
&amp;nbsp;
; 958 = cop.58                            ; Tx CTCSS On Input only Enable
; 959 = cop,59                            ; Tx CTCSS On Input only Disable
&amp;nbsp;
; 960 = cop,60                            ; Send MDC-1200 Burst (cop,60,type,UnitID[,DestID,SubCode])
;                                         ; Type is &#039;&lt;/span&gt;I&lt;span class=&quot;st_h&quot;&gt;&#039; for PttID, &#039;&lt;/span&gt;E&lt;span class=&quot;st_h&quot;&gt;&#039; for Emergency, and &#039;&lt;/span&gt;C&lt;span class=&quot;st_h&quot;&gt;&#039; for Call
;                                         ; (SelCall or Alert), or &#039;&lt;/span&gt;SX&lt;span class=&quot;st_h&quot;&gt;&#039; for STS (ststus), where X is 0-F.
;                                         ; DestID and subcode are only specified for  the &#039;&lt;/span&gt;C&lt;span class=&quot;st_h&quot;&gt;&#039; type message.
;                                         ; UnitID is the local systems UnitID. DestID is the MDC1200 ID of
;                                         ; the radio being called, and the subcodes are as follows:
;                                         ; Subcode &#039;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;8205&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039; is Voice Selective Call for Spectra (&#039;&lt;/span&gt;Call&lt;span class=&quot;st_h&quot;&gt;&#039;)
;                                         ; Subcode &#039;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;8015&lt;/span&gt;&lt;span class=&quot;st_h&quot;&gt;&#039; is Voice Selective Call for Maxtrac (&#039;&lt;/span&gt;SC&lt;span class=&quot;st_h&quot;&gt;&#039;) or
;                                         ; Astro-Saber(&#039;&lt;/span&gt;Call&lt;span class=&quot;st_h&quot;&gt;&#039;)
;                                         ; Subcode &#039;&lt;/span&gt;810D&lt;span class=&quot;st_h&quot;&gt;&#039; is Call Alert (like Maxtrac &#039;&lt;/span&gt;CA&lt;span class=&quot;st_h&quot;&gt;&#039;)
&amp;nbsp;
; 961 = cop,61                            ; Send Message to USB to control GPIO pins (cop,61,GPIO1=0[,GPIO4=1].....)
; 962 = cop,62                            ; Send Message to USB to control GPIO pins, quietly (cop,62,GPIO1=0[,GPIO4=1].....)
&amp;nbsp;
; 963 = cop,63                            ; Send pre-configred APRSTT notification (cop,63,CALL[,OVERLAYCHR])
; 964 = cop,64                            ; Send pre-configred APRSTT notification, quietly (cop,64,CALL[,OVERLAYCHR])
; 965 = cop,65                            ; Send POCSAG page (equipped channel types only)
&amp;nbsp;
[functions-remote]
&amp;nbsp;
0 = remote,1                            ; Retrieve Memory
1 = remote,2                            ; Set freq.
2 = remote,3                            ; Set tx PL tone
3 = remote,4                            ; Set rx PL tone
40 = remote,100                         ; Rx PL off
41 = remote,101                         ; Rx PL on
42 = remote,102                         ; Tx PL off
43 = remote,103                         ; Tx PL on
44 = remote,104                         ; Low Power
45 = remote,105                         ; Medium Power
46 = remote,106                         ; High Power
711 = remote,107                        ; Bump -20
714 = remote,108                        ; Bump -100
717 = remote,109                        ; Bump -500
713 = remote,110                        ; Bump +20
716 = remote,111                        ; Bump +100
719 = remote,112                        ; Bump +500
721 = remote,113                        ; Scan - slow
724 = remote,114                        ; Scan - quick
727 = remote,115                        ; Scan - fast
723 = remote,116                        ; Scan + slow
726 = remote,117                        ; Scan + quick
729 = remote,118                        ; Scan + fast
79 = remote,119                         ; Tune
51 = remote,5                           ; Long status query
52 = remote,140				; Short status query
67 = remote,210				; Send a *
69 = remote,211				; Send a #
;91 = remote,99,CALLSIGN,LICENSETAG     ; Remote base login.
                                        ; Define a different dtmf sequence for each user which is
                                        ; authorized to use the remote base to control access to it.
                                        ; For examble 9139583=remote,99,WB6NIL,G would grant access to
                                        ; the remote base and announce WB6NIL as being logged in.
                                        ; Another entry, 9148351=remote,99,WA6ZFT,E would grant access to
                                        ; the remote base and announce WA6ZFT as being logged in.
                                        ; When the remote base is disconnected from the originating node, the
                                        ; user will be logged out. The LICENSETAG argument is used to enforce
					; tx frequency limits. See [txlimits] below.
85 = cop,6                              ; Remote base telephone key
&amp;nbsp;
&amp;nbsp;
[telemetry]
&amp;nbsp;
; Telemetry entries can be shared across all repeaters, or defined for each repeater.
; Can be a tone sequence, morse string, or a file
;
; |t - Tone escape sequence
;
; Tone sequences consist of 1 or more 4-tuple entries (freq1, freq2, duration, amplitude)
; Single frequencies are created by setting freq1 or freq2 to zero.
;
; |m - Morse escape sequence
;
; Sends Morse code at the telemetry amplitude and telemetry frequency as defined in the
; [morse] section.
;
; Follow with an alphanumeric string
;
; |i - Morse ID escape sequence
;
; Sends Morse code at the ID amplitude and ID frequency as defined in the
; [morse] section.
;
; path/to/sound/file/without/extension
;
; Send the sound if in place of a constructed tone. Do not include the file extension
; Example: ct8 = rpt/bloop
; Example: idrecording = rpt/nodenames/48148
&amp;nbsp;
ct1 = |t(350,0,100,2048)(500,0,100,2048)(660,0,100,2048)
ct2 = |t(660,880,150,2048)
ct3 = |t(440,0,150,4096)
ct4 = |t(550,0,150,2048)
ct5 = |t(660,0,150,2048)
ct6 = |t(880,0,150,2048)
ct7 = |t(660,440,150,2048)
ct8 = |t(700,1100,150,2048)
ranger = |t(1800,0,60,3072)(0,0,50,0)(1800,0,60,3072)(0,0,50,0)(1800,0,60,3072)(0,0,50,0)(1800,0,60,3072)(0,0,50,0)(1800,0,60,3072)(0,0,50,0)(1800,0,60,3072)(0,0,150,0)
remotemon = |mR
;remotemon = |t(1209,0,50,2048)                                  ; local courtesy tone when receive only
remotetx = |mK
;remotetx = |t(1633,0,50,3000)(0,0,80,0)(1209,0,50,3000)		; local courtesy tone when linked Trancieve mode
cmdmode = |t(900,903,200,2048)
;functcomplete = |mW
functcomplete = |t(1000,0,100,2048)(0,0,100,0)(1000,0,100,2048)
remcomplete = |t(650,0,100,2048)(0,0,100,0)(650,0,100,2048)(0,0,100,0)(650,0,100,2048)
pfxtone = |t(350,440,30000,3072)
patchup = rpt/callproceeding
patchdown = rpt/callterminated
&amp;nbsp;
ct12 = |me
ct13 = |mR
&amp;nbsp;
; As far as what the numbers mean,
; (000,000,010,000)
;   |   |   |   |-------amplitude
;   |   |   |-------------duration
;   |   |-------------------Tone 2
;   |-------------------------Tone 1
&amp;nbsp;
; So, with 0,0,10,0 That says No Tone1, No Tone2, 10ms duration, 0 Amplitude.
; Use it for a delay.  Fine tuning for how long before telemetry is sent, in conjunction with the telemdelay parameter)
; The numbers, like 350,440,10,2048 are 350Hz, 440Hz, 10ms delay, amplitude of 2048.
&amp;nbsp;
; Morse code parameters, these are common to all repeaters.
&amp;nbsp;
[morse]
speed = 20				; Approximate speed in WPM
frequency = 600				; Morse Telemetry Frequency
amplitude = 2048			; Morse Telemetry Amplitude
idfrequency = 1065			; Morse ID Frequency
idamplitude = 1024			; Morse ID Amplitude
&amp;nbsp;
;
; This section allows wait times for telemetry events to be adjusted
; A section for wait times can be defined for every repeater
;
&amp;nbsp;
[wait-times]
telemwait = 400                        ; Time to wait before sending most telemetry
idwait = 500                            ; Time to wait before starting ID
unkeywait = 200                        ; Time to wait after unkey before sending CT&#039;&lt;/span&gt;s and &lt;span class=&quot;kw2&quot;&gt;link&lt;/span&gt; telemetry
calltermwait = &lt;span class=&quot;nu0&quot;&gt;2000&lt;/span&gt;                     ; Time to &lt;span class=&quot;kw3&quot;&gt;wait&lt;/span&gt; before announcing &lt;span class=&quot;st0&quot;&gt;&amp;quot;call terminated&amp;quot;&lt;/span&gt;
&amp;nbsp;
; Memories &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; remote bases
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;memory&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
;00 = &lt;span class=&quot;nu0&quot;&gt;146.580&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;100.0&lt;/span&gt;,m
;01 = &lt;span class=&quot;nu0&quot;&gt;147.030&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;103.5&lt;/span&gt;,m+t
;02 = &lt;span class=&quot;nu0&quot;&gt;147.240&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;103.5&lt;/span&gt;,m+t
;03 = &lt;span class=&quot;nu0&quot;&gt;147.765&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;79.7&lt;/span&gt;,m-t
;04 = &lt;span class=&quot;nu0&quot;&gt;146.460&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;100.0&lt;/span&gt;,m
;05 = &lt;span class=&quot;nu0&quot;&gt;146.550&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;100.0&lt;/span&gt;,m
&amp;nbsp;
; Place &lt;span class=&quot;kw3&quot;&gt;command&lt;/span&gt; macros here
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;macro&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;nu0&quot;&gt;11&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;141223&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;# ; disc. hubnet&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;21&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;241223&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;# ; monitor hubnet&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;31&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;341223&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;# ; transceive hubnet&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1424611&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;# ; disc MilNet&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;22&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2424611&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;# ; monitor MilNet&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;32&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3424611&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;# ; transceive MilNet&lt;/span&gt;
&amp;nbsp;
;&lt;span class=&quot;nu0&quot;&gt;13&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;129332&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;# ; disc Alaska&lt;/span&gt;
;&lt;span class=&quot;nu0&quot;&gt;23&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;229332&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;# ; monitor Alaska&lt;/span&gt;
;&lt;span class=&quot;nu0&quot;&gt;33&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;329332&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;# ; transceive Alaska&lt;/span&gt;
&amp;nbsp;
;&lt;span class=&quot;nu0&quot;&gt;14&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;154383&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;# ; disc CQ North&lt;/span&gt;
;&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;254383&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;# ; monitor CQ North&lt;/span&gt;
;&lt;span class=&quot;nu0&quot;&gt;34&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;354383&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;# ; transceive CQ North&lt;/span&gt;
&amp;nbsp;
;&lt;span class=&quot;nu0&quot;&gt;191&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;140894&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;# ; disconnect hubnet Echo&lt;/span&gt;
;&lt;span class=&quot;nu0&quot;&gt;391&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;340894&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;# ; connect hubnet echo&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;nu0&quot;&gt;19&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;13009999&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;#	; dis echolink echotest&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;39&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;33009999&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;#	; con echolink echotest&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
; Data Acquisition configuration
&amp;nbsp;
;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;daq-list&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
;device = device_name1
;device = device_name2
&amp;nbsp;
;Where: device_name1 and device_name2 are stanzas you define &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; this &lt;span class=&quot;kw2&quot;&gt;file&lt;/span&gt;
&amp;nbsp;
;device = daq-cham-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&amp;nbsp;
; Device name
&amp;nbsp;
;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;daq-cham-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;				; Defined &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;daq-list&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
;hwtype = uchameleon			; DAQ hardware &lt;span class=&quot;kw3&quot;&gt;type&lt;/span&gt;
;devnode = &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ttyUSB0			; DAQ device node &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; required&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; = inadc				; Pin definition &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; an ADC channel
;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; = inadc
;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; = inadc
;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt; = inadc
;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt; = inadc
;&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt; = inadc
;&lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt; = inadc
;&lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt; = inadc
;&lt;span class=&quot;nu0&quot;&gt;9&lt;/span&gt; = inp				; Pin definition &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; an input with a weak pullup resistor
;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; = inp
;&lt;span class=&quot;nu0&quot;&gt;11&lt;/span&gt; = inp
;&lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt; = inp
;&lt;span class=&quot;nu0&quot;&gt;13&lt;/span&gt; = &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt;				; Pin definition &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; an input without a weak pullup resistor
;&lt;span class=&quot;nu0&quot;&gt;14&lt;/span&gt; = out				; Pin definition &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; an output
;&lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt; = out
;&lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt; = out
;&lt;span class=&quot;nu0&quot;&gt;17&lt;/span&gt; = out
;&lt;span class=&quot;nu0&quot;&gt;18&lt;/span&gt; = out
&amp;nbsp;
;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;meter-faces&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
;face = scale&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;scalepre,scalediv,scalepost&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;,word&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;?,...
;
; scalepre = offset to add before dividing with scalediv
; scalediv = full scale&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;number of whole units &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;e.g. &lt;span class=&quot;nu0&quot;&gt;256&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt; or &lt;span class=&quot;nu0&quot;&gt;12.8&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt; volts&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.
; scalepost = offset to add after dividing with scalediv
;
;face = range&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;X-Y:word,X2-Y2:word,...&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;,word&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;?,...
;face = bit&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;low-word,high-word&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;,word&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;?,...
;
; word&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;? is either a word &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;asterisk&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sounds or one of its subdirectories,
; or a question mark &lt;span class=&quot;kw2&quot;&gt;which&lt;/span&gt; is  a placeholder &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; the measured value.
;
;
; Battery voltage &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt; volts
;batvolts = scale&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;12.8&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;,rpt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;thevoltageis,?,ha&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;volts
; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt; quadrant wind direction
;winddir = range&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;33&lt;/span&gt;:north,&lt;span class=&quot;nu0&quot;&gt;34&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;96&lt;/span&gt;:west,&lt;span class=&quot;nu0&quot;&gt;97&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;160&lt;/span&gt;:south,&lt;span class=&quot;nu0&quot;&gt;161&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;224&lt;/span&gt;:east,&lt;span class=&quot;nu0&quot;&gt;225&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;255&lt;/span&gt;:north&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;,rpt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;thewindis,?
; LM34 temperature sensor with &lt;span class=&quot;nu0&quot;&gt;130&lt;/span&gt; deg. F full scale
;lm34f = scale&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;1.969&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;,rpt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;thetemperatureis,?,degrees,fahrenheit
; Status poll &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;non alarmed&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
;light = bit&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ha&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;off,ha&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;on&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;,ha&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;light,?
&amp;nbsp;
;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;alarms&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
;
;tag = device,pin,node,ignorefirst,func-low,func-hi
;
;tag = a unique name &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; the alarm
;device = daq device to poll
;pin = the device pin to be monitored
;ignorefirstalarm = &lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; to &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; to throwaway first alarm event, or &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; to report it
;node = the node number to execute the &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; on
;func-low = the DTMF &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; to execute on a high to low transition
;func-high = the DTMF &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; to execute on a low to high transition
;
; a  &lt;span class=&quot;st_h&quot;&gt;&#039;-&#039;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;as&lt;/span&gt; a &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt; name is shorthand &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; no-operation
;
;door = daq-cham-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;9&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;2017&lt;/span&gt;,&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;,-
;pwrfail = daq-cham-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;2017&lt;/span&gt;,&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;911111&lt;/span&gt;,-
;
; Control states
; Allow several control operator functions to be changed at once using one &lt;span class=&quot;kw3&quot;&gt;command&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;good &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; scheduling&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
;
;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;controlstates&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
;statenum = copcmd,&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;copcmd&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;...
;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; = rptena,lnkena,apena,totena,ufena,noicd  ; Normal operation
;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; = rptena,lnkena,apdis,totdis,ufena,noice  ; Net and news operation
;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; = rptena,lnkdis,apdis,totena,ufdis,noice  ; Repeater only operation
&amp;nbsp;
; Scheduler - execute a macro at a given &lt;span class=&quot;kw1&quot;&gt;time&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;schedule&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
;dtmf_function =  m h dom mon dow  ; ala cron, star is implied
;&lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt; = &lt;span class=&quot;nu0&quot;&gt;55&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;   ; at midnight, execute macro &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;.
&amp;nbsp;
; See https:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;wiki.allstarlink.org&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;wiki&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Event_Management
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;events&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;#includeifexists custom/rpt.conf&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_ed4ecf13d41d641e55f7d559ac75cabb_5&quot;&gt;/etc/asterisk/modules.conf after bridging added &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_ed4ecf13d41d641e55f7d559ac75cabb_5&quot;&gt;&lt;pre class=&quot;code bash&quot;&gt;;
; Asterisk configuration &lt;span class=&quot;kw2&quot;&gt;file&lt;/span&gt;
;
; Module Loader configuration &lt;span class=&quot;kw2&quot;&gt;file&lt;/span&gt;
;
; By default DIAL does NOT load every module, only what is needed
&amp;nbsp;
; You can &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; or disable any of the asterisk modules
; All modules are compiled and installed.
&amp;nbsp;
; To &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; a module: load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; module_name.so
; To disable a module: noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; module_name.so
&amp;nbsp;
; You will want to &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; the channel driver modules you will be using.
; There are below &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; the Channle Driver section
; The most common Channel drivers &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; app_rpt are:
; chan_echolink.so   echolink channel driver
; chan_simpleusb.so  Simple USB Radio Interface Channel Drive
; chan_usbradio.so   USB Console Channel Driver
; chan_usrp.so       USRP Channel Module
; chan_voter.so      radio Voter channel driver
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;modules&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;autoload&lt;/span&gt;=no
&amp;nbsp;
; Applications
&amp;nbsp;
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_adsiprog.so ;			Asterisk ADSI Programming Application
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_alarmreceiver.so ;		Alarm Receiver &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; Asterisk
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_amd.so ;				Answering Machine Detection Application
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_authenticate.so ;            	Authentication Application
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_cdr.so ;				Tell Asterisk to not maintain a CDR &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt;
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_chanisavail.so ;			Check channel availability
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_channelredirect.so ;		Channel Redirect
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_chanspy.so ;			Listen to the audio of an active channel
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_controlplayback.so ;		Control Playback Application
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_dahdibarge.so ;			Barge &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; on channel application
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_dahdiras.so ;			DAHDI RAS Application
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_dahdiscan.so ;			Scan Zap channels application
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_db.so ;				Database Access Functions
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_dial.so ;				Dialing Application
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_dictate.so ;			Virtual Dictation Machine
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_directed_pickup.so ;		Directed Call Pickup Application
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_directory.so ;			Extension Directory
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_disa.so ;				DISA &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Direct Inward System Access&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; Appli
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_dumpchan.so ;			Dump Info About The Calling Channel
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_echo.so ;				Simple Echo Application
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_exec.so ;				Executes dialplan applications
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_externalivr.so ;			External IVR Interface Application
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_festival.so ;			Simple Festival Interface
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_flash.so ;			Flash channel application
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_followme.so ;			Find-Me&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Follow-Me Application
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_forkcdr.so ;			Fork The CDR into &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; separate entities
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_getcpeid.so ;			Get ADSI CPE ID
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_gps.so ;				GPS interface module
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_hasnewvoicemail.so ;		Indicator &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; whether a voice mailbox ha
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_ices.so ;				Encode and Stream via icecast and ices
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_image.so ;			Image Transmission Application
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_lookupblacklist.so ;		Look up Caller&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;ID name&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;number from black
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_lookupcidname.so ;		Look up CallerID Name from &lt;span class=&quot;kw3&quot;&gt;local&lt;/span&gt; databas
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_macro.so ;				Extension Macros
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_meetme.so ;			MeetMe conference bridge
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_milliwatt.so ;			Digital Milliwatt &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;mu-law&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; Test Applicat
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_mixmonitor.so ;			Mixed Audio Monitoring Application
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_morsecode.so ;			Morse code
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_mp3.so ;				Silly MP3 Application
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_nbscat.so ;			Silly NBS Stream Application
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_page.so ;				Page Multiple Phones
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_parkandannounce.so ;		Call Parking and Announce Application
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_playback.so ;			Sound File Playback Application
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_privacy.so ;			Require phone number to be entered, &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; n
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_queue.so ;			True Call Queueing
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_radbridge.so ;			Radio Bridging interface module
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_random.so ;			Random goto
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_readfile.so ;			Stores output of &lt;span class=&quot;kw2&quot;&gt;file&lt;/span&gt; into a variable
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_read.so ;				Read Variable Application
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_realtime.so ;			Realtime Data Lookup&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Rewrite
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_record.so ;			Trivial Record Application
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_rpt.so ;				Radio Repeater&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Remote Base Application
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_sayunixtime.so ;			Say &lt;span class=&quot;kw1&quot;&gt;time&lt;/span&gt;
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_senddtmf.so ;			Send DTMF digits Application
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_sendtext.so ;			Send Text Applications
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_setcallerid.so ;			Set CallerID Application
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_setcdruserfield.so ;		CDR user field apps
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_settransfercapability.so ;	Set ISDN Transfer Capability
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_sms.so ;				SMS&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;PSTN handler
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_softhangup.so ;			Hangs up the requested channel
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_speech_utils.so ;			Dialplan Speech Applications
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_stack.so ;			Stack Routines
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_system.so ;				Generic System&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; application
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_talkdetect.so ;			Playback with Talk Detection
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_test.so ;				Interface Test Application
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_transfer.so ;			Transfer
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_url.so ;				Send URL Applications
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_userevent.so ;			Custom User Event Application
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_verbose.so ;			Send verbose output
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_voicemail.so ;			Comedian Mail &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Voicemail System&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_waitforring.so ;			Waits &lt;span class=&quot;kw1&quot;&gt;until&lt;/span&gt; first ring after &lt;span class=&quot;kw1&quot;&gt;time&lt;/span&gt;
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_waitforsilence.so ;		Wait For Silence
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_while.so ;			While Loops and Conditional Execution
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; app_zapateller.so ;			Block Telemarketers with Special Informa
&amp;nbsp;
; CDR
&amp;nbsp;
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; cdr_csv.so ;				Comma Separated Values CDR Backend
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; cdr_custom.so ;			Customizable Comma Separated Values CDR
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; cdr_manager.so ;			Asterisk Manager Interface CDR Backend
&amp;nbsp;
; Channels
&amp;nbsp;
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; chan_agent.so ;			Agent Proxy Channel
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; chan_alsa.so ;			ALSA Console Channel Driver
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; chan_beagle.so ;			Beagleboard Radio Interface Channel Driver
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; chan_dahdi.so ;				DAHDI Telephony
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; chan_echolink.so ;			echolink Channel Driver
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; chan_features.so ;			Feature Proxy Channel
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; chan_gtalk.so ;			Gtalk Channel Driver
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; chan_iax2.so ;				Inter Asterisk eXchange &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Ver &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; chan_local.so ;				Local Proxy Channel &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Note: used internal
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; chan_oss.so ;				Channel driver &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; OSS sound cards
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; chan_phone.so ;			Generic Linux Telephony Interface driver
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; chan_pi.so ;				DMK Engineering &lt;span class=&quot;st0&quot;&gt;&amp;quot;PITA&amp;quot;&lt;/span&gt; Board on Rpi2&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; Channel Driver
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; chan_simpleusb.so ;			CM1xx USB Cards with Radio Interface Channel Driver &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;No DSP&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; chan_sip.so ;				Session Initiation Protocol &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;SIP&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; chan_tlb.so ;				TheLinkBox Channel Driver
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; chan_usbradio.so ;			CM1xx USB Cards with Radio Interface Channel Driver &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;DSP&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; chan_usrp.so ;			GNU Radio interface USRP Channel Driver
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; chan_voter.so ;			Radio Voter Channel Driver
&amp;nbsp;
; Codecs
&amp;nbsp;
; CODEC          AUDIO QUALITY   BANDWIDTH &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;including IP and Ethernet headers&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
; ULAW           best            &lt;span class=&quot;nu0&quot;&gt;87&lt;/span&gt; kilobits per second &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;kbps&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
; ADPCM          good            &lt;span class=&quot;nu0&quot;&gt;55&lt;/span&gt; kbps
; GSM            mediocre        &lt;span class=&quot;nu0&quot;&gt;36&lt;/span&gt; kbps
; g726aal2
; ilbc
&amp;nbsp;
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; codec_adpcm.so ;			Adaptive Differential PCM Coder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Decoder
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; codec_alaw.so ;				A-law Coder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Decoder
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; codec_a_mu.so ;				A-law and Mulaw direct Coder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Decoder
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; codec_dahdi.so ;			Generic DAHDI Transcoder Codec Translato
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; codec_g726.so ;				ITU G.726-32kbps G726 Transcoder
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; codec_gsm.so ;				GSM Coder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Decoder
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; codec_ulaw.so ;				mu-Law Coder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Decoder
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; codec_ilbc.so ;			http:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;en.wikipedia.org&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;wiki&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Internet_Low_Bitrate_Codec
&amp;nbsp;
; Formats
&amp;nbsp;
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; format_g723.so ;			G.723.1 Simple Timestamp File Format
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; format_g726.so ;			Raw G.726 &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;40kbps&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; data
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; format_g729.so ;			Raw G729 data
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; format_gsm.so ;				Raw GSM data
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; format_h263.so ;			Raw H.263 data
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; format_h264.so ;			Raw H.264 data
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; format_ilbc.so ;			Raw iLBC data
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; format_jpeg.so ;			JPEG &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Joint Picture Experts Group&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; Image
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; format_pcm.so ;				Raw&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Sun uLaw&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ALaw 8KHz &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;PCM,PCMA,AU&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;, G.
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; format_sln.so ;				Raw Signed Linear Audio support &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;SLN&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; format_vox.so ;				Dialogic VOX &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ADPCM&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; File Format
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; format_wav_gsm.so ;			Microsoft WAV format &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;Proprietary GSM&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; format_wav.so ;				Microsoft WAV format &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;8000Hz Signed Line
&amp;nbsp;
; Functions
&amp;nbsp;
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; func_base64.so ;			base64 encode&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;decode dialplan functions
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; func_callerid.so ;			Caller ID related dialplan &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt;
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; func_cdr.so ;				CDR dialplan &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt;
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; func_channel.so ;			Channel information dialplan &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt;
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; func_curl.so ;				Load external URL
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; func_cut.so ;				Cut out information from a string
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; func_db.so ;				Database &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;astdb&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; related dialplan functi
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; func_enum.so ;				ENUM related dialplan functions
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; func_env.so ;				Environment&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;filesystem dialplan &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt;
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; func_global.so ;			Global variable dialplan functions
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; func_groupcount.so ;			Channel group dialplan functions
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; func_language.so ;			Channel language dialplan &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt;
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; func_logic.so ;				Logical dialplan functions
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; func_math.so ;				Mathematical dialplan &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt;
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; func_md5.so ;				MD5 digest dialplan functions
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; func_moh.so ;				Music-on-hold dialplan &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt;
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; func_rand.so ;				Random number dialplan &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt;
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; func_realtime.so ;			Read&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Write values from a RealTime reposi
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; func_sha1.so ;			SHA-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; computation dialplan &lt;span class=&quot;kw1&quot;&gt;function&lt;/span&gt;
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; func_strings.so ;			String handling dialplan functions
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; func_timeout.so ;			Channel timeout dialplan functions
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; func_uri.so ;				URI encode&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;decode dialplan functions
&amp;nbsp;
; PBX
&amp;nbsp;
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; pbx_ael.so ;				Asterisk Extension Language Compiler
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; pbx_config.so ;				Text Extension Configuration
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; pbx_dundi.so ;			Distributed Universal Number Discovery &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; pbx_loopback.so ;			Loopback Switch
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; pbx_realtime.so ;			Realtime Switch
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; pbx_spool.so ;			Outgoing Spool Support
&amp;nbsp;
; Resources
&amp;nbsp;
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; res_adsi.so ;				ADSI Resource
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; res_agi.so ;				Asterisk Gateway Interface &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;AGI&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; res_clioriginate.so ;			Call origination from the CLI
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; res_convert.so ;			File format conversion CLI &lt;span class=&quot;kw3&quot;&gt;command&lt;/span&gt;
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; res_crypto.so ;				Cryptographic Digital Signatures
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; res_features.so ;			Call Features Resource
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; res_indications.so ;			Indications Resource
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; res_jabber.so ;			AJI - Asterisk Jabber Interface
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; res_monitor.so ;			Call Monitoring Resource
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; res_musiconhold.so ;			Music On Hold Resource
load =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; res_smdi.so ;				Simplified Message Desk Interface &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;SMDI&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; res_snmp.so ;				SNMP &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Sub&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;Agent &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; Asterisk
noload =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; res_speech.so ;			Generic Speech Recognition API
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;global&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_ed4ecf13d41d641e55f7d559ac75cabb_6&quot;&gt;/etc/asterisk/extensions.conf after bridging added &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_ed4ecf13d41d641e55f7d559ac75cabb_6&quot;&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;general&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
static = &lt;span class=&quot;kw2&quot;&gt;yes&lt;/span&gt;       ; These two lines prevent the command-line interface
writeprotect = &lt;span class=&quot;kw2&quot;&gt;yes&lt;/span&gt; ; from overwriting the config file. Leave them here.
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;globals&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
HOMENPA = &lt;span class=&quot;nu0&quot;&gt;999&lt;/span&gt; ; change this to your Area Code
NODE = &lt;span class=&quot;nu0&quot;&gt;48148&lt;/span&gt;   ; change this to your node number
NODE1 = &lt;span class=&quot;nu0&quot;&gt;1999&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;default&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
exten =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; i,&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;,Hangup
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;radio-secure&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
exten =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;${NODE}&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;,rpt,&lt;span class=&quot;co1&quot;&gt;${NODE}&lt;/span&gt;
exten =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;${NODE1}&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;,rpt,&lt;span class=&quot;co1&quot;&gt;${NODE1}&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;iaxrpt&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;                                ; entered from iaxrpt &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; iax.conf
exten =&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;${NODE}&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;,rpt&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;${NODE}&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;X&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;       ; NODE is the Name field &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; iaxrpt
                                        ; Info: The X option passed to the Rpt application
                                        ; disables the normal security checks.
                                        ; Because incoming connections are validated &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; iax.conf,
                                        ; and we don&lt;span class=&quot;st_h&quot;&gt;&#039;t know where the user will be coming from in advance,
                                        ; the X option is required.
&amp;nbsp;
[iax-client]				; for IAX VIOP clients.				
exten =&amp;gt; ${NODE},1,Ringing
exten =&amp;gt; ${NODE},n,Wait(3)
exten =&amp;gt; ${NODE},n,Answer
exten =&amp;gt; ${NODE},n,Set(NODENUM=${CALLERID(number)})
exten =&amp;gt; ${NODE},n,Playback(rpt/node|noanswer)
exten =&amp;gt; ${NODE},n,SayDigits(${EXTEN})
exten =&amp;gt; ${NODE},n,Set(CALLERID(num)=0)
exten =&amp;gt; ${NODE},n,Rpt,${NODE}|P|${CALLERID(name)}
exten =&amp;gt; ${NODE},n,Hangup
exten =&amp;gt; ${NODE},n(hangit),Answer
exten =&amp;gt; ${NODE},n(hangit),Wait(1)
exten =&amp;gt; ${NODE},n(hangit),Hangup
&amp;nbsp;
; Comment-out the following clause if you want Allstar Autopatch service
[pstn-out]
exten = _NXXNXXXXXX,1,playback(ss-noservice)
exten = _NXXNXXXXXX,2,Congestion
&amp;nbsp;
; Un-comment out the following clause if you want Allstar Autopatch service
;[pstn-out]
;exten = _NXXNXXXXXX,1,Dial(IAX2/allstar-autopatch/\${EXTEN})
;exten = _NXXNXXXXXX,2,Busy
&amp;nbsp;
[invalidnum]
exten = s,1,Wait,3
exten = s,n,Playback,ss-noservice
exten = s,n,Wait,1
exten =  s,n,Hangup
&amp;nbsp;
[radio]
exten = _X11,1,Goto(check_route|${EXTEN}|1);
exten = _NXXXXXX,1,Goto(check_route|1${HOMENPA}${EXTEN}|1)
exten = _1XXXXXXXXXX,1,Goto(check_route|${EXTEN}|1)
exten = _07XX,1,Goto(parkedcalls|${EXTEN:1}|1)
exten = 00,1,Goto(my-ip|s|1)
&amp;nbsp;
[check_route]
exten =_X.,1,Noop(${EXTEN})
; no 800
exten = _1800NXXXXXX,2,Goto(invalidnum|s|1)
exten = _1888NXXXXXX,2,Goto(invalidnum|s|1)
exten = _1877NXXXXXX,2,Goto(invalidnum|s|1)
exten = _1866NXXXXXX,2,Goto(invalidnum|s|1)
exten = _1855NXXXXXX,2,Goto(invalidnum|s|1)
; no X00 NPA
exten = _1X00XXXXXXX,2,Goto(invalidnum|s|1)
; no X11 NPA
exten = _1X11XXXXXXX,2,Goto(invalidnum|s|1)
; no X11 
exten = _X11,2,Goto(invalidnum|s|1)
; no 555 Prefix in any NPA
exten = _1NXX555XXXX,2,Goto(invalidnum|s|1)
; no 976 Prefix in any NPA
exten = _1NXX976XXXX,2,Goto(invalidnum|s|1)
; no NPA=809
exten = _1809XXXXXXX,2,Goto(invalidnum|s|1)
; no NPA=900
exten = _1900XXXXXXX,2,Goto(invalidnum|s|1)
&amp;nbsp;
; okay, route it
exten = _1NXXXXXXXXX,2,Goto(pstn-out|${EXTEN:1}|1)
exten = _X.,2,Goto(invalidnum|s|1)
&amp;nbsp;
[my-ip]
exten = s,1,Set(MYADDR=${CURL(http://myip.vg)})
exten = s,2,Wait,1
exten = s,3,SayAlpha(${MYADDR})
exten = s,4,Hangup
&amp;nbsp;
[allstar-sys]
exten =&amp;gt; _1.,1,Rpt(${EXTEN:1}|Rrpt/node:NODE:rpt/in-call:digits/0:PARKED|120)
exten =&amp;gt; _1.,n,Hangup
&amp;nbsp;
exten =&amp;gt; _2.,1,Ringing
exten =&amp;gt; _2.,n,Wait(3)
exten =&amp;gt; _2.,n,Answer
exten =&amp;gt; _2.,n,Playback(rpt/node)
exten =&amp;gt; _2.,n,Saydigits(${EXTEN:1})
exten =&amp;gt; _2.,n,Rpt(${EXTEN:1}|P|${CALLERID(name)}-P)
exten =&amp;gt; _2.,n,Hangup
&amp;nbsp;
exten =&amp;gt; _3.,1,Ringing
exten =&amp;gt; _3.,n,Wait(3)
exten =&amp;gt; _3.,n,Answer
exten =&amp;gt; _3.,n,Playback(rpt/node)
exten =&amp;gt; _3.,n,Saydigits(${EXTEN:1})
exten =&amp;gt; _3.,n,Rpt(${EXTEN:1}|Pv|${CALLERID(name)}-P)
exten =&amp;gt; _3.,n,Hangup
&amp;nbsp;
exten =&amp;gt; _4.,1,Ringing
exten =&amp;gt; _4.,n,Wait(3)
exten =&amp;gt; _4.,n,Answer
exten =&amp;gt; _4.,n,Playback(rpt/node)
exten =&amp;gt; _4.,n,Saydigits(${EXTEN:1})
exten =&amp;gt; _4.,n,Rpt(${EXTEN:1}|D|${CALLERID(name)}-P)
exten =&amp;gt; _4.,n,Hangup
&amp;nbsp;
exten =&amp;gt; _5.,1,Ringing
exten =&amp;gt; _5.,n,Wait(3)
exten =&amp;gt; _5.,n,Answer
exten =&amp;gt; _5.,n,Playback(rpt/node)
exten =&amp;gt; _5.,n,Saydigits(${EXTEN:1})
exten =&amp;gt; _5.,n,Rpt(${EXTEN:1}|Dv|${CALLERID(name)}-P)
exten =&amp;gt; _5.,n,Hangup
&amp;nbsp;
[allstar-public]
&amp;nbsp;
exten =&amp;gt; s,1,Ringing
exten =&amp;gt; s,n,Set(RESP=${CURL(https://register.allstarlink.org/cgi-bin/authwebphone.pl?${CALLERID(name)})})
exten =&amp;gt; s,n,Set(NODENUM=${CALLERID(number)})
exten =&amp;gt; s,n,GotoIf($[&amp;quot;${RESP:0:1}&amp;quot; = &amp;quot;?&amp;quot;]?hangit)
exten =&amp;gt; s,n,GotoIf($[&amp;quot;${RESP:0:1}&amp;quot; = &amp;quot;&amp;quot;]?hangit)
exten =&amp;gt; s,n,GotoIf($[&amp;quot;${RESP:0:5}&amp;quot; != &amp;quot;OHYES&amp;quot;]?hangit)
exten =&amp;gt; s,n,Set(CALLSIGN=${RESP:5})
exten =&amp;gt; s,n,Wait(3)
exten =&amp;gt; s,n,Playback(rpt/node|noanswer)
exten =&amp;gt; s,n,Saydigits(${NODENUM})
exten =&amp;gt; s,n,Set(CALLERID(name)=${CALLSIGN})
exten =&amp;gt; s,n,Set(CALLERID(num)=0)
exten =&amp;gt; s,n,Rpt(${NODENUM}|X)
exten =&amp;gt; s,n,Hangup
exten =&amp;gt; s,n(hangit),Answer
exten =&amp;gt; s,n(hangit),Wait(1)
exten =&amp;gt; s,n(hangit),Hangup
&amp;nbsp;
#includeifexists custom/extensions.conf&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
The next bit was more tricky on an old Debian &lt;code&gt;Buster&lt;/code&gt; ASL Beta image that hadn&amp;#039;t been updated/upgraded in a long time….
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;My configs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;my_configs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;851-74575&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;installing_dvswitch&quot;&gt;Installing DVswitch&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Installing DVSwitch was a bit convoluted, as my old version of the ASL Beta 2.0.0 wasn&amp;#039;t up to date… and needed some work to add necessary APT gpg keys, and adding the dvswitch repository.
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;apt-get update –allow-releaseinfo-change&lt;/code&gt; to accept the release name change
&lt;/p&gt;

&lt;p&gt;
Adding DVSwitch repository keys
&lt;/p&gt;

&lt;p&gt;
As root : 
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;apt-key adv&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--keyserver&lt;/span&gt; hkp:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;keyserver.ubuntu.com:&lt;span class=&quot;nu0&quot;&gt;80&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--recv-keys&lt;/span&gt; 0E98404D386FA1D9
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;apt-key adv&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--keyserver&lt;/span&gt; hkp:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;keyserver.ubuntu.com:&lt;span class=&quot;nu0&quot;&gt;80&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--recv-keys&lt;/span&gt; 6ED0E7B82643E131
&amp;nbsp;
curl &lt;span class=&quot;re5&quot;&gt;-s&lt;/span&gt; http:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;apt.allstarlink.org&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;repos&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;repo_signing.key &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;apt-key add&lt;/span&gt; - &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; apt update
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;wget&lt;/span&gt; http:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;dvswitch.org&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;buster
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; +x buster
&amp;nbsp;
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;buster
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;apt-get update&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;apt-get install&lt;/span&gt; dvswitch&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Installing DVswitch&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;installing_dvswitch&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;74576-75305&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;configuring_dvswitch&quot;&gt;Configuring DVSwitch&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
The changes were made to the existing asterisk configs, as per the pdf document, then  DVSwitch was installed, and then the pdf document was followed again to make the necessary configs to:
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;/opt/Analog_Bridge/Analog_Bridge.ini&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
and 
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;/opt/MMDVM_Bridge/MMDVM_Bridge.ini&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
everything seemed to work okay - although there I think one of the UDP ports was initially wrong for the USRP traffic in &lt;code&gt;Analog_Bridge.ini&lt;/code&gt; and I had to double check by looking in 
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;/etc/asterisk/rpt.conf&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1999&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
rxchannel &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; USRP&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;127&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;0&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;0&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;1&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;34001&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;31001&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
and setting &lt;code&gt;Analog_Bridge.ini&lt;/code&gt; to match:
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;USRP&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
address &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; 127&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;0&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;0&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;1              
txPort &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;31001&lt;/span&gt;                        
rxPort &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;34001&lt;/span&gt;  &lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Configuring DVSwitch&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;configuring_dvswitch&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;75306-76058&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;testing&quot;&gt;Testing&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
I initially set the &lt;code&gt;MMDVM_Bridge&lt;/code&gt; to connect to Brandmeister and &lt;code&gt;Analog_Bridge&lt;/code&gt; to send traffic to TG2354429 (an ad hoc TG with my DMR ID).
&lt;/p&gt;

&lt;p&gt;
in the &lt;code&gt;asterisk CLI&lt;/code&gt; issue the command to link the main node &lt;code&gt;48148&lt;/code&gt; with the internal private node &lt;code&gt;1999&lt;/code&gt; to complete the bridge:
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;rpt cmd 2100 ilink 3 1999&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
transmit on the VHF FM input to the Gateway and listen on a DMR radio via my DMR hotspot connected to Brandmeister TG2354429 and the DMR radio sprang into life with my DMR ID….
&lt;/p&gt;

&lt;p&gt;
transmit on the DMR radio, via the hotspot to Brandmeister and the VHF FM handheld carried the audio from the DMR radio.
&lt;/p&gt;

&lt;p&gt;
I also tried setting &lt;code&gt;MMDVM_Bridge&lt;/code&gt; to connect to DVS-Ph F and used the &lt;code&gt;Options=TS2_1=842&lt;/code&gt; to set TG842 as static. Setting &lt;code&gt;Analog_Bridge&lt;/code&gt; to use TG 842 and once more the traffic was bi-directional Allstar ↔ DMR
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Testing&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;testing&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;76059-76918&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;so_far_so_good&quot;&gt;So Far So Good&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
To boost the audio via the bridge &lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/images/smileys/fixme.svg&quot; class=&quot;icon smiley&quot; alt=&quot;FIXME&quot; /&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;Analog_Bridge.ini&lt;/code&gt; to change from &lt;code&gt;AUDIO_UNITY&lt;/code&gt; to &lt;code&gt;AUDIO_USE_GAIN&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;USRP&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
address &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; 127&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;0&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;0&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;1                     
txPort &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;31001&lt;/span&gt;                         
rxPort &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;34001&lt;/span&gt;                       
usrpAudio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; AUDIO_USE_GAIN            
usrpGain &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;                        
&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;usrpAGC &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;                 
tlvAudio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; AUDIO_USE_GAIN                
tlvGain &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu19&quot;&gt;0.35&lt;/span&gt;                     &lt;/pre&gt;

&lt;p&gt;
I set the various DVSwitch things to be enabled or disabled:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;systemctl &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; asterisk
systemctl &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; analog_bridge
systemctl disable md380-emu
systemctl &lt;span class=&quot;kw3&quot;&gt;enable&lt;/span&gt; mmdvm_bridge&lt;/pre&gt;

&lt;p&gt;
Later I found the other bridges available (P25, YSF, NXDN etc) were running, but not configured, so I used systemctl to disable them.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;So Far So Good&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;so_far_so_good&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;76919-77733&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit10&quot; id=&quot;allmon2_supermon&quot;&gt;Allmon2 / supermon&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
I added the new node &lt;code&gt;1999&lt;/code&gt; to allmon2 and supermon, so I can control/monitor the bridging via the web.
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;/var/www/html/allmon2/allmon.ini.php&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;48148&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
host&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;127&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;0&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;0&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;1&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5038&lt;/span&gt;
user&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;admin
passwd&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;xxxx
nomenu&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;no
hideNodeURL&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;no
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1999&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
host&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;127&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;0&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;0&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;1&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5038&lt;/span&gt;
user&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;admin
passwd&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;XXXX
nomenu&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;no
hideNodeURL&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;no
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Grouped Nodes&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
nodes&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;48148&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1999&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;lsNodes&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
url &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;/cgi-bin/lsnodes_web?node=48148&amp;quot;&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;url &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;/cgi-bin/lsnodes_web?node=481480&amp;quot;&lt;/span&gt;
menu &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; yes&lt;/pre&gt;

&lt;p&gt;
&lt;code&gt;/var/www/html/supermon/allmon.ini&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;48148&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
host &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; 127&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;0&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;0&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;1&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5038&lt;/span&gt;
user &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; admin
passwd &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; XXXX
menu &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; yes
hideNodeURL &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; no
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1999&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
host &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; 127&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;0&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;0&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;1&lt;span class=&quot;sy0&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5038&lt;/span&gt;
user &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; admin
passwd &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; XXXX
menu &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; yes
hideNodeURL &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; no
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;All Nodes&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
nodes &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;48148&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1999&lt;/span&gt;
menu &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; yes&lt;/pre&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 03/06/25 17:55 BST&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Allmon2 \/ supermon&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;allmon2_supermon&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;77734-78547&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit11&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:allstar&amp;amp;do=showtag&amp;amp;tag=allstar&quot; class=&quot;wikilink1&quot; title=&quot;tag:allstar&quot; rel=&quot;tag&quot;&gt;allstar&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:mmdvm&amp;amp;do=showtag&amp;amp;tag=mmdvm&quot; class=&quot;wikilink1&quot; title=&quot;tag:mmdvm&quot; rel=&quot;tag&quot;&gt;mmdvm&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:dvswitch&amp;amp;do=showtag&amp;amp;tag=dvswitch&quot; class=&quot;wikilink1&quot; title=&quot;tag:dvswitch&quot; rel=&quot;tag&quot;&gt;dvswitch&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:11,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;78548-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 18:47:10 +0000</pubDate>
        </item>
        <item>
            <title>APRS</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:aprs:aprs</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:aprs:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:aprs:start&quot; data-wiki-id=&quot;public:radio:topics:aprs:start&quot;&gt;APRS&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;aprs&quot;&gt;APRS&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; VHF and HF APRS &lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;APRS&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;aprs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-59&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;vhf&quot;&gt;VHF&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; FT8900 : 2m I-Gate &lt;strong&gt;GM4SLV-2&lt;/strong&gt; - Raspberry Pi, TNC-Pi and APRX I-Gate software&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;UPDATE 6/4/24 : 2m APRS suspended&lt;/strong&gt;. Coverage not adequate from low 2m antenna.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; TM-D710 in van : &lt;strong&gt;GM4SLV-9&lt;/strong&gt; - will digipeat “WIDEn-N”&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; TH-D72 : &lt;strong&gt;GM4SLV-8&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Anytone 878&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; analogue : &lt;strong&gt;GM4SLV-7&lt;/strong&gt;, &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; DMR&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; Brandmeister → PC 234999 (Self-Care set to &lt;strong&gt;GM4SLV-7&lt;/strong&gt;)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; DMR+/Phoenix → PC 5057 → &lt;strong&gt;GM4SLV-7&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;VHF&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;vhf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;60-507&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;hf&quot;&gt;HF&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Occasional use of 30m AFSK 10,147.6kHz USB as &lt;strong&gt;GM4SLV-10&lt;/strong&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; IC-706 and Signalink-USB soundcard&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;HF&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;508-630&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;software&quot;&gt;Software&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Direwolf&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; HF (300 baud FSK) or VHF soundcard modem/TNC&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; AGW Packet Engine TCP/IP interface to other software&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; standalone iGate and Digipeater&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Xastir&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Can use the Direwolf TCP/IP AGW TNC across network&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; WinRPR &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:2024:winrpr_075_2.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:radio:2024:winrpr_075_2.zip (1.8 MB)&quot;&gt;winrpr_075_2.zip&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Can act as TCP/IP KISS mode TNC providing 300 or 600 baud Robust Packet TX/RX and also simultaneous 300 baud FSK RX&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; APRSISCE32 &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:2024:aprsis32.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:radio:2024:aprsis32.zip (1.3 MB)&quot;&gt;aprsis32.zip&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Can use WinRPR&amp;#039;s KISS mode TNC&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; UIView32 &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:2024:32full203.exe&quot; class=&quot;media mediafile mf_exe&quot; title=&quot;public:radio:2024:32full203.exe (5 MB)&quot;&gt;32full203.exe&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Needs to be registered first at &lt;a href=&quot;https://www.apritch.co.uk/uiv32.htm&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.apritch.co.uk/uiv32.htm&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.apritch.co.uk/uiv32.htm&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;span class=&quot;encryptedpasswords crypted&quot; data-crypted=&quot;U2FsdGVkX18RT21avOp7l4/3U+Z7QxUHE46ZZg3KCJzU5unCrI08T40DgX32Cf+vb09G6DbXBzmXviRFQzEHA+JYusxmxHrb7rd/wXuFDQGmVfn3I9GrL/QCyTpwG6b8GWjBmozR9+Ec5nLbOeKQyVhZMcaRrZTi+FUBEfuxvsRjP/XkHEe58UqXx+ZYKSWOv88WTQajuXm/4LF8mg183g==&quot;&gt;&lt;span&gt;••••••••••&lt;/span&gt;&lt;svg viewBox=&quot;0 0 24 24&quot;&gt;&lt;path d=&quot;M12,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z&quot;/&gt;&lt;/svg&gt;&lt;svg viewBox=&quot;0 0 24 24&quot;&gt;&lt;path d=&quot;M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6C4.89,22 4,21.1 4,20V10A2,2 0 0,1 6,8H15V6A3,3 0 0,0 12,3A3,3 0 0,0 9,6H7A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,17A2,2 0 0,0 14,15A2,2 0 0,0 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17Z&quot;/&gt;&lt;/svg&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Can use Direwolf&amp;#039;s AGW TNC across network&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Software&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;software&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;631-1572&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;hf_frequencies&quot;&gt;HF Frequencies&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;HF Frequencies&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hf_frequencies&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1573-1600&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;m&quot;&gt;30m&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 300 Baud FSK RF centre &lt;strong&gt;10149.3kHz&lt;/strong&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 1700 Hz audio (1600/1800Hz tones)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Dial = 10147.6kHz USB&lt;/strong&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; alternative dial = 10151.0kHz LSB (signal can be inverted without issues)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 300 baud RPR RF centre &lt;strong&gt;10148.8kHz&lt;/strong&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 1500 Hz audio&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Dial = 10147.3kHz USB&lt;/strong&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;em&gt;Normal&lt;/em&gt; 300 baud AFSK resolves at 2000Hz - and is decoded by WinRPR at this offset&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Aradio%3Atopics%3Aaprs%3Aaprs&amp;amp;media=public:radio:2024:screenshot_at_2024-04-10_09-06-39.png&quot; class=&quot;media&quot; title=&quot;public:radio:2024:screenshot_at_2024-04-10_09-06-39.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=600&amp;amp;tok=997157&amp;amp;media=public:radio:2024:screenshot_at_2024-04-10_09-06-39.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;direwolf_update10_04_24&quot;&gt;Direwolf update : 10/04/24&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Direwolf v1.6 in Debian has a minor annoyance - it decodes its own transmitted frames occasionally due to cross talk in the sound card&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; This is reported to be &lt;em&gt;fixed in 1.7 release&lt;/em&gt; so I cloned the git repository and built the current 1.7 version&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; It has removed the annoyance of seeing (and reporting to APRS-IS) your own transmitted packets&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; There are other changes and improvements which I will investigate over time.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Steps to clone/build&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;apt-get install&lt;/span&gt; libavahi-client-dev
&lt;span class=&quot;kw2&quot;&gt;git clone&lt;/span&gt; https:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;www.github.com&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;wb2osz&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;direwolf
&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; direwolf
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; build &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; build
cmake ..
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-j4&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Running the new version 
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; src
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;direwolf &lt;span class=&quot;re5&quot;&gt;-c&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;direwolf.conf&lt;/pre&gt;

&lt;p&gt;
A few red warnings due to changes for v1.7 not being fully compatible with the previous config options, but it runs and doesn&amp;#039;t seem to decode its own transmissions any more.
&lt;/p&gt;

&lt;p&gt;
A few tweaks to the config:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;ADEVICE  plughw:&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&amp;nbsp;
CHANNEL &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&amp;nbsp;
MYCALL GM4SLV-&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;#MODEM 300 7@30&lt;/span&gt;
&amp;nbsp;
MODEM &lt;span class=&quot;nu0&quot;&gt;300&lt;/span&gt; B+
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;#FIX_BITS 1&lt;/span&gt;
&amp;nbsp;
TXDELAY &lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;
&amp;nbsp;
LOGDIR .
&amp;nbsp;
AGWPORT &lt;span class=&quot;nu0&quot;&gt;8000&lt;/span&gt;
KISSPORT &lt;span class=&quot;nu0&quot;&gt;8001&lt;/span&gt;
&amp;nbsp;
PBEACON &lt;span class=&quot;re2&quot;&gt;sendto&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;via&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;WIDE1-1&amp;quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;delay&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:00 &lt;span class=&quot;re2&quot;&gt;every&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;:00 &lt;span class=&quot;re2&quot;&gt;symbol&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;\-&amp;quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;lat&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;^17.31N &lt;span class=&quot;re2&quot;&gt;long&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;^25.51W &lt;span class=&quot;re2&quot;&gt;comment&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;30m HF Direwolf AFSK&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;#FILTER 0 0 ( ! d/* )&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#FILTER 0 0 (! b/GM4SLV-10 )&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;#IGSERVER euro.aprs2.net&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;#IGLOGIN GM4SLV-10 19626&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;#PBEACON sendto=IG delay=0:30 every=60:00 symbol=&amp;quot;\-&amp;quot; lat=60^17.31N long=1^25.51W comment=&amp;quot;30m AFSK RX Igate&amp;quot;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
DIGIPEAT &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; ^WIDE&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;-&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;$&lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt;^TEST$ ^WIDE&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;-&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;$ PREEMPT
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;#IGTXLIMIT 6 10&lt;/span&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; I will remove the Debian version 1.6 and &lt;code&gt;sudo make install&lt;/code&gt; the newly compiled v1.7 once I&amp;#039;m happy with it.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; This version also decodes FX25 packets - which I don&amp;#039;t fully understand yet&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;SP6PGH-10 audio level = 53   FX.25   75_______
[0.1] SP6PGH-10&amp;gt;APWW11,WIDE1-1:&amp;gt;100639zTest HF APRS station
Status Report, APRSISCE win32 version
Test HF APRS station
[0H] SP6PGH-10&amp;gt;APWW11,GM4SLV-10*:&amp;gt;100639zTest HF APRS station&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; a normal AX25 packet&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;IW4EGP-10 audio level = 46    _|||_____
[0.2] IW4EGP-10&amp;gt;APU25N,WIDE2-2:=4403.57N/01233.72E&amp;amp;APRS HF 30m -/D R-I  H24 {UIV32}&amp;lt;0x0d&amp;gt;
Position, HF Gateway  &amp;lt;= the original primary table definition, UIview 32 bit apps
N 44 03.5700, E 012 33.7200
APRS HF 30m -/D R-I  H24 {UIV32}
[0H] IW4EGP-10&amp;gt;APU25N,GM4SLV-10*,WIDE2-1:=4403.57N/01233.72E&amp;amp;APRS HF 30m -/D R-I  H24 {UIV32}&amp;lt;0x0d&amp;gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; both of these are also digipeated my me, shown on the last line is my outgoing digipeated packet:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;[0H] SP6PGH-10&amp;gt;APWW11,GM4SLV-10*:&amp;gt;100639zTest HF APRS station&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;[0H] IW4EGP-10&amp;gt;APU25N,GM4SLV-10*,WIDE2-1:=4403.57N/01233.72E&amp;amp;APRS HF 30m -/D R-I  H24 {UIV32}&amp;lt;0x0d&amp;gt;&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 21/03/24 16:14&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Last Update : 04/06/26 07:39 BST
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;30m&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;m&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;1601-4821&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;table sectionedit8&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; Direwolf v1.7 User Manual &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:2024:user-guide_1_.pdf&quot; class=&quot;media mediafile mf_pdf&quot; title=&quot;public:radio:2024:user-guide_1_.pdf (2.8 MB)&quot;&gt;user-guide_1_.pdf&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; aprs.fi &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;a href=&quot;https://aprs.fi/info/a/GM4SLV-10&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://aprs.fi/info/a/GM4SLV-10&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://aprs.fi/info/a/GM4SLV-10&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;4856-4982&amp;quot;} --&gt;&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:aprs&amp;amp;do=showtag&amp;amp;tag=aprs&quot; class=&quot;wikilink1&quot; title=&quot;tag:aprs&quot; rel=&quot;tag&quot;&gt;aprs&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;4822-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 06:39:56 +0000</pubDate>
        </item>
        <item>
            <title>YaDDNet : New VPS</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:yaddnet:yaddnet_new_vps</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:yaddnet:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:yaddnet:start&quot; data-wiki-id=&quot;public:radio:topics:yaddnet:start&quot;&gt;YaDDNet&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;yaddnetnew_vps&quot;&gt;YaDDNet : New VPS&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; Moving YaDDNet from USA to UK &lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;YaDDNet : New VPS&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;yaddnetnew_vps&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-86&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;background&quot;&gt;Background&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; YaDDNet started hosted on a machine in my shed&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; In 2019 I almost gave up maintaining &amp;amp; hosting it and was approached by Alan Spindel ex. of WLO/Mobile Radio with the offer of a free VPS in the States&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; I moved everything from my own PC to the new Cloud Server - as documented largely here &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:yaddnet:yaddnet_migration&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:yaddnet:yaddnet_migration&quot; data-wiki-id=&quot;public:radio:topics:yaddnet:yaddnet_migration&quot;&gt;Yaddnet Migration&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; It&amp;#039;s run quietly and without too may hiccups since 2019 until now, April 13th 2024&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Alan has now been asked to contribute financially for continued access to the VPS - up to $200 per month&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; This is way too much money!&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; I looked at my current VPS hosted by &lt;a href=&quot;https://www.fasthosts.co.uk/virtual-private-servers&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.fasthosts.co.uk/virtual-private-servers&quot; rel=&quot;ugc nofollow noopener&quot;&gt; Fasthosts&lt;/a&gt; and they do a VPS with similar specs to the existing USA-based server - for £12 per month&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; I let Alan know I&amp;#039;d take on the new server and migrate YaDDNet ASAP, and began the process of obtaining server, installing software required, copying YaDDNet Python code, transferring YaDDNet HTML/PHP web pages and then the big job of taking a MYSQL dump of the YaDDNet database and copying it over, and putting it into the new SQL server.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Let the fun begin&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Background&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;background&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;87-1226&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;new_vps&quot;&gt;New VPS&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; I bought a &lt;strong&gt;VPS L&lt;/strong&gt; from Fasthosts&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 120GB HDD, 4GB RAM, 2 CPU, Ubuntu 20.4&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; I copied the &lt;code&gt;yaddnet&lt;/code&gt; python code (in a tar-ball) that deals with the network feeds of &lt;code&gt;Yadd&lt;/code&gt; and &lt;code&gt;DSCDecoder&lt;/code&gt; and injects the resulting data &lt;em&gt;into&lt;/em&gt; the &lt;code&gt;MySQL&lt;/code&gt;database from the existing server.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; I installed the necessary software&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Python2.7&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; python-is-python2&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; python-dev-is-python2&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; MySQL Client&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; MySQL Server&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Apache2&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; PHP&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Tmux&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Vim&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; copied my .bashrc from the old server for colour prompt etc.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Using the previous Yaddnet Migration info &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:yaddnet:yaddnet_migration&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:yaddnet:yaddnet_migration&quot; data-wiki-id=&quot;public:radio:topics:yaddnet:yaddnet_migration&quot;&gt;Yaddnet Migration&lt;/a&gt; I had some guidance of any tweaks needed.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; I needed extra Python2 supporting libraries&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; For MySQLdb → pip install MySQL-python&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; but for &lt;code&gt;pip&lt;/code&gt;…. I need &lt;code&gt;pip2&lt;/code&gt;… how to get it - it&amp;#039;s no longer available from Ubuntu&amp;#039;s apt repositories.&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; I found a script &lt;code&gt;get-pip.py&lt;/code&gt; at &lt;code&gt;github&lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://github.com/pypa/get-pip&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://github.com/pypa/get-pip&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://github.com/pypa/get-pip&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; also need &lt;code&gt;python-dev&lt;/code&gt; from apt&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; also need &lt;code&gt;my_config.h&lt;/code&gt; from where..?&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level4&quot;&gt;&lt;div class=&quot;li&quot;&gt; finally can &lt;code&gt;pip install MySQL-python&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code bash&quot;&gt;curl https:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;bootstrap.pypa.io&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pip&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2.7&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;get-pip.py &lt;span class=&quot;re5&quot;&gt;--output&lt;/span&gt; get-pip.py
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; python2 get-pip.py
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;apt-get install&lt;/span&gt; python-dev
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;wget&lt;/span&gt; https:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;raw.githubusercontent.com&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;paulfitz&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mysql-connector-c&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;master&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;include&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;my_config.h &lt;span class=&quot;re5&quot;&gt;-O&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;include&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mysql&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;my_config.h
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; pip2 &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; MySQL-python&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; at this point I could run the python &lt;em&gt;server&lt;/em&gt; code, in a tmux session as usual, using the shell script in the python directory extracted from the tar-ball. All the supporting libraries were there.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;mysql_config&quot;&gt;MySQL config&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; My old notes had instructions of how to set MySQL for password-less root access, but I found by trial and error that these steps no longer work in Ubuntu 20.4, with &lt;code&gt;systemd&lt;/code&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; I found some help online &lt;a href=&quot;https://ostechnix.com/how-to-reset-root-password-in-mysql-8-on-ubuntu-linux/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://ostechnix.com/how-to-reset-root-password-in-mysql-8-on-ubuntu-linux/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://ostechnix.com/how-to-reset-root-password-in-mysql-8-on-ubuntu-linux/&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; the basic is that it&amp;#039;s now necessary to add options to MySQL via &lt;code&gt;systemd&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; for &lt;code&gt;skip-grant-tables&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code bash&quot;&gt;$ &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl stop mysql
$ &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl status mysql
$ &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl edit mysql&lt;/pre&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Service&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;ExecStart&lt;/span&gt;=
&lt;span class=&quot;re2&quot;&gt;ExecStart&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sbin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mysqld &lt;span class=&quot;re5&quot;&gt;--skip-grant-tables&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--skip-networking&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;code bash&quot;&gt;$ &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl daemon-reload
$ &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl start mysql
$ &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; mysql &lt;span class=&quot;re5&quot;&gt;-u&lt;/span&gt; root&lt;/pre&gt;
&lt;pre class=&quot;code mysql&quot;&gt;mysql&lt;span class=&quot;sy1&quot;&gt;&amp;gt;&lt;/span&gt; FLUSH &lt;a target=&quot;_BLANK&quot; href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=PRIVILEGES&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;PRIVILEGES&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy2&quot;&gt;;&lt;/span&gt;
mysql&lt;span class=&quot;sy1&quot;&gt;&amp;gt;&lt;/span&gt; &lt;a target=&quot;_BLANK&quot; href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=ALTER&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;ALTER&lt;/span&gt;&lt;/a&gt; &lt;a target=&quot;_BLANK&quot; href=&quot;http://dev.mysql.com/doc/refman/%35%2E%31/en/information-functions.html&quot;&gt;&lt;span class=&quot;kw23&quot;&gt;USER&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;st0&quot;&gt;&#039;root&#039;&lt;/span&gt;@&lt;span class=&quot;st0&quot;&gt;&#039;localhost&#039;&lt;/span&gt; IDENTIFIED &lt;a target=&quot;_BLANK&quot; href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=WITH&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;WITH&lt;/span&gt;&lt;/a&gt; mysql_native_password BY &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;;&lt;/span&gt;
mysql&lt;span class=&quot;sy1&quot;&gt;&amp;gt;&lt;/span&gt; exit&lt;/pre&gt;
&lt;pre class=&quot;code bash&quot;&gt;$ &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl revert mysql
$ &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl daemon-reload
$ &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; systemctl restart mysql&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;make_database_for_yadd&quot;&gt;Make database for yadd&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co4&quot;&gt;$&lt;/span&gt;mysql &lt;span class=&quot;re5&quot;&gt;-u&lt;/span&gt; root&lt;/pre&gt;
&lt;pre class=&quot;code mysql&quot;&gt;mysql&lt;span class=&quot;sy1&quot;&gt;&amp;gt;&lt;/span&gt; &lt;a target=&quot;_BLANK&quot; href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=CREATE&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;create&lt;/span&gt;&lt;/a&gt; &lt;a target=&quot;_BLANK&quot; href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=DATABASE&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;database&lt;/span&gt;&lt;/a&gt; yadd&lt;span class=&quot;sy2&quot;&gt;;&lt;/span&gt;
mysql&lt;span class=&quot;sy1&quot;&gt;&amp;gt;&lt;/span&gt; quit&lt;span class=&quot;sy2&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;get_the_data&quot;&gt;Get the data&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; on the old server&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co4&quot;&gt;$ &lt;/span&gt;mysqldump &lt;span class=&quot;re5&quot;&gt;-u&lt;/span&gt; root yadd &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; yadd_backup.sql&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; and wait…. and wait…..&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; eventually there&amp;#039;s a 6.2GB &lt;code&gt;sql&lt;/code&gt; file containing all the existing data&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; bzip2 the file to make it smaller (it&amp;#039;s about 400MB now) for &lt;code&gt;scp&lt;/code&gt; transfer to the new server&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; send it across:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;scp yaddnet_backup.sql.bz2 gm4slv@109.228.53.165:&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; on the new server&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;bunzip2 yaddnet_backup.sql.bz2&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; and wait….and wait&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; then inject it into the new yadd database&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code bash&quot;&gt;mysql &lt;span class=&quot;re5&quot;&gt;-u&lt;/span&gt; root yadd &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt; yaddnet_backup.sql&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; and wait…. and wait…. and wait&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; eventually the command returns and the database is restored on the new machine&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;web_pages&quot;&gt;Web pages&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; extract the backed-up webpages from the old server and copy them to &lt;code&gt;/var/www/html&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; To be able to retrieve SQL data via PHP I needed to install more&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;sudo apt-get install php-mysql&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Almost there….&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; New MYSQL user with a password for PHP data retrieval&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Alan Spindel informed me that there was an update some time ago and it was necessary to create a new MySQL user, with a password, and to modify the PHP files to use it in the PHP → MySQL transactions&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code mysql&quot;&gt;&lt;a target=&quot;_BLANK&quot; href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=CREATE&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;CREATE&lt;/span&gt;&lt;/a&gt; &lt;a target=&quot;_BLANK&quot; href=&quot;http://dev.mysql.com/doc/refman/%35%2E%31/en/information-functions.html&quot;&gt;&lt;span class=&quot;kw23&quot;&gt;USER&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;st0&quot;&gt;&#039;XXXXX&#039;&lt;/span&gt;@&lt;span class=&quot;st0&quot;&gt;&#039;localhost&#039;&lt;/span&gt; IDENTIFIED &lt;a target=&quot;_BLANK&quot; href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=WITH&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;WITH&lt;/span&gt;&lt;/a&gt; mysql_native_password BY &lt;span class=&quot;st0&quot;&gt;&#039;YYYYY&#039;&lt;/span&gt;&lt;span class=&quot;sy2&quot;&gt;;&lt;/span&gt;
&lt;a target=&quot;_BLANK&quot; href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=GRANT&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;GRANT&lt;/span&gt;&lt;/a&gt; &lt;a target=&quot;_BLANK&quot; href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=ALL&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;ALL&lt;/span&gt;&lt;/a&gt; &lt;a target=&quot;_BLANK&quot; href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=PRIVILEGES&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;PRIVILEGES&lt;/span&gt;&lt;/a&gt; &lt;a target=&quot;_BLANK&quot; href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=ON&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;ON&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;sy1&quot;&gt;*&lt;/span&gt;.&lt;span class=&quot;sy1&quot;&gt;*&lt;/span&gt; &lt;a target=&quot;_BLANK&quot; href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=TO&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;TO&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;st0&quot;&gt;&#039;XXXXX&#039;&lt;/span&gt;@&lt;span class=&quot;st0&quot;&gt;&#039;localhost&#039;&lt;/span&gt; &lt;a target=&quot;_BLANK&quot; href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=WITH&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;WITH&lt;/span&gt;&lt;/a&gt; &lt;a target=&quot;_BLANK&quot; href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=GRANT&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;GRANT&lt;/span&gt;&lt;/a&gt; &lt;a target=&quot;_BLANK&quot; href=&quot;https://www.oracle.com/search/results?cat=mysql&amp;amp;Ntk=SI-ALL5&amp;amp;Ntt=OPTION&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;OPTION&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;sy2&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; XXXXX is the username as set in all the PHP files and YYYYY is the password for the user&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; to perform some of the SQL queries (group-by) - need to alter &lt;code&gt;sql-mode&lt;/code&gt; but again the old method using &lt;code&gt;*.cnf&lt;/code&gt;  files no longer works&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;# MySQL systemd service file

[Unit]
Description=MySQL Community Server
After=network.target

[Install]
WantedBy=multi-user.target

[Service]
Type=notify
User=mysql
Group=mysql
PIDFile=/run/mysqld/mysqld.pid
PermissionsStartOnly=true
ExecStartPre=/usr/share/mysql/mysql-systemd-start pre
ExecStart=/usr/sbin/mysqld  --sql-mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
TimeoutSec=infinity
Restart=on-failure
RuntimeDirectory=mysqld
RuntimeDirectoryMode=755
LimitNOFILE=10000

# Set enviroment variable MYSQLD_PARENT_PID. This is required for restart.
Environment=MYSQLD_PARENT_PID=1
~
~
&lt;/pre&gt;

&lt;p&gt;
Then
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;systemctl daemon-reload
systemctl restart mysql&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; start the Python code to listen for new data&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;./new_tmux.sh&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; open firewall for UDP/50666 and UDP/4530&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; set up my own Yadd receiver pointing at 109.228.53.165 port 50666 and let it send new data….&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; it&amp;#039;s arriving!&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Alter DNS for the domain at Fasthosts to point &lt;code&gt;yaddnet.org&lt;/code&gt; and &lt;code&gt;www.yaddnet.org&lt;/code&gt; → &lt;code&gt;109.228.53.165&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Wait for new data from other YaDD receivers to start arriving as the DNS change propagates….&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; it&amp;#039;s arriving&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; make &lt;code&gt;/var/www/html/pages/php/test/tmp&lt;/code&gt; world read/writable to allow new text files to be written there (eg REU searches etc.)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;New VPS&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;new_vps&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1227-6940&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;clean_up&quot;&gt;Clean up&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; that&amp;#039;s everything working correctly&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; crontab entries to maintain everything&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;reboot &lt;span class=&quot;kw2&quot;&gt;sleep&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;; &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-u&lt;/span&gt; gm4slv &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;yaddnet&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tmux_yadd.sh &lt;span class=&quot;sy0&quot;&gt;&amp;gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;null &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;*/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;yaddnet&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;purge_err.sh &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;null
&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;yaddnet&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;purge_tmp.sh &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;null&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; get &lt;code&gt;SSL&lt;/code&gt; certificates from Fasthost and convert Apache2 to HTTPS, per previous posts&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:ssl_install_vps&quot; class=&quot;wikilink1&quot; title=&quot;public:computers:archive:ssl_install_vps&quot; data-wiki-id=&quot;public:computers:archive:ssl_install_vps&quot;&gt;SSL Install on VPS&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:vps_tips_tricks&quot; class=&quot;wikilink1&quot; title=&quot;public:computers:archive:vps_tips_tricks&quot; data-wiki-id=&quot;public:computers:archive:vps_tips_tricks&quot;&gt;VPS Notes&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; add a &lt;code&gt;PayPal Donate&lt;/code&gt; button&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Aradio%3Atopics%3Ayaddnet%3Ayaddnet_new_vps&amp;amp;media=public:radio:2024:screenshot_2024-04-14_20.13.22.png&quot; class=&quot;media&quot; title=&quot;public:radio:2024:screenshot_2024-04-14_20.13.22.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=600&amp;amp;tok=ffde76&amp;amp;media=public:radio:2024:screenshot_2024-04-14_20.13.22.png&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; install &lt;code&gt;mercurial&lt;/code&gt; on new server and make new code repositories&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;hg init
hg add
hg com -m &amp;quot;first commit, new server&amp;quot;&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;yaddnet_repo&lt;/code&gt; containing the &lt;code&gt;python&lt;/code&gt; and various bash scripts for handling incoming data and SQL injection&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;yaddnet_web_repo&lt;/code&gt; containing the &lt;code&gt;html&lt;/code&gt; and &lt;code&gt;php&lt;/code&gt; web pages&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;extra&quot;&gt;Extra&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; config directory needs access control via &lt;code&gt;.htaccess&lt;/code&gt; and &lt;code&gt;.htpasswd&lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; first apache2 needs config tweaking&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code apache&quot;&gt;&amp;lt;&lt;span class=&quot;kw3&quot;&gt;Directory&lt;/span&gt; /path/to/website/database_tweaks/config&amp;gt;
        &lt;span class=&quot;kw1&quot;&gt;Options&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;Indexes&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;FollowSymLinks&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;AllowOverride&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;All&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;Require&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;all&lt;/span&gt; granted
&amp;lt;/&lt;span class=&quot;kw3&quot;&gt;Directory&lt;/span&gt;&amp;gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;.htaccess&lt;/code&gt; file in config directory&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code apache&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;AuthType&lt;/span&gt; Basic
&lt;span class=&quot;kw1&quot;&gt;AuthName&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Password Protected Area&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;AuthUserFile&lt;/span&gt;  /path/to/website/database_tweaks/config/.htpasswd
&lt;span class=&quot;kw1&quot;&gt;Require&lt;/span&gt; valid-&lt;span class=&quot;kw1&quot;&gt;user&lt;/span&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; create a &lt;code&gt;.htpasswd&lt;/code&gt; file for the user who can have access to config&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; restart apache2&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; to prevent directory file-listing (where there&amp;#039;s no &lt;code&gt;index.html&lt;/code&gt; file) remove &lt;code&gt;Indexes&lt;/code&gt; from &lt;code&gt;apache2.conf&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code apache&quot;&gt;&amp;lt;&lt;span class=&quot;kw3&quot;&gt;Directory&lt;/span&gt; /var/www/&amp;gt;
        &lt;span class=&quot;kw1&quot;&gt;Options&lt;/span&gt;  &lt;span class=&quot;kw2&quot;&gt;FollowSymLinks&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;AllowOverride&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;None&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;Require&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;all&lt;/span&gt; granted
&amp;lt;/&lt;span class=&quot;kw3&quot;&gt;Directory&lt;/span&gt;&amp;gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; to allow the &lt;strong&gt;test&lt;/strong&gt; directory itself to be listed (I can&amp;#039;t be bothered to maintain an index for these scraps of php)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code apache&quot;&gt;&amp;lt;&lt;span class=&quot;kw3&quot;&gt;Directory&lt;/span&gt; /var/www/html/pages/php/test/&amp;gt;
        &lt;span class=&quot;kw1&quot;&gt;Options&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;Indexes&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;FollowSymLinks&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;AllowOverride&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;None&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;Require&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;all&lt;/span&gt; granted
&amp;lt;/&lt;span class=&quot;kw3&quot;&gt;Directory&lt;/span&gt;&amp;gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; restart apache2&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 14/04/24 18:11 BST&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Clean up&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;clean_up&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:12,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;6941-9252&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:yaddnet&amp;amp;do=showtag&amp;amp;tag=yaddnet&quot; class=&quot;wikilink1&quot; title=&quot;tag:yaddnet&quot; rel=&quot;tag&quot;&gt;yaddnet&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:18,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;9253-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 05 Jun 2026 07:43:18 +0000</pubDate>
        </item>
        <item>
            <title>Radio Update - QRP etc</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:blog:radio_update_-_qrp_etc</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;radio_update_-_qrp_etc&quot;&gt;Radio Update - QRP etc&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
After setting up a basic station in the small “office” - just one rig and my keys - I decided to make a “real” hamshack with more radios, some tools, test equipment etc.
&lt;/p&gt;

&lt;p&gt;
I added two shelves above the desk to hold radios, PSUs, &amp;#039;scope, tools etc. I&amp;#039;ve now got a “one-desk shack” that can be used for operating on air and building &amp;amp; repairing equipment (on a small scale)
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:blog:shack_now.jpg&quot; class=&quot;media&quot; title=&quot;public:blog:shack_now.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=600&amp;amp;tok=8493af&amp;amp;media=public:blog:shack_now.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
I found that the stock mic for my FT891 was faulty - the mic element is open-circuit - so I bought a Heil HMM fist mic and spent some time setting up the EQ for a reasonable “communications” quality audio. I&amp;#039;m not naturally a &amp;#039;phone operator, so I&amp;#039;ll not be having lots of “ragchew” QSOs, and “communications quality” is all I&amp;#039;m aiming for - to be audible - not quite as extreme as a Clansman but with enough HF emphasis, and enough compression to cut through the noise.
&lt;/p&gt;

&lt;p&gt;
I though briefly about limiting myself to SSB for a few months, to get used to talking on the radio, but that&amp;#039;s NEVER going to happen.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Radio Update - QRP etc&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;radio_update_-_qrp_etc&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-1073&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;the_qmx&quot;&gt;The QMX&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Then I found a box with an unbuilt &lt;a href=&quot;https://qrp-labs.com/qmx&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://qrp-labs.com/qmx&quot; rel=&quot;ugc nofollow noopener&quot;&gt; QRPLabs &amp;quot;QMX&amp;quot; kit&lt;/a&gt;! I&amp;#039;d bought it in August 2023, and hadn&amp;#039;t built it. I have a QCX-mini for 40m and it&amp;#039;s a great little radio, and I thought the QMX would be the next obvious step. Then I forgot about it.
&lt;/p&gt;

&lt;p&gt;
So, on Saturday I got the box, opened it. Printed out the Assembly Manual. Watched Hans&amp;#039;s You Tube video highlighting the pitfalls. And got started.
&lt;/p&gt;

&lt;p&gt;
The first thing was to check if my early (Rev 1) board has the “Power Board Short” issue - and it did - so I got out my hot-air station and moved the MOSFET a mm or two to remove the short.
&lt;/p&gt;

&lt;p&gt;
Then down to business…. building.
&lt;/p&gt;

&lt;p&gt;
I did it all in one day, with the occasional break for food, dog walk, etc….. The most challenging thing was winding the 2 binocular ferrite transformers - the PA output transformer and the SWR brigge transformer. The “normal” toroid cores were all straightforward. 
&lt;/p&gt;

&lt;p&gt;
I built it for 9V operation (this determines the form of the PA output transformer).
&lt;/p&gt;

&lt;p&gt;
I worked first time. Which is amazing given the small size and relatively dense component layout. 
&lt;/p&gt;

&lt;p&gt;
On a PSU set for 9V I get at least 5W on all bands. I made a string of 4 x 1N4001 diodes to drop ~2.4V and powered it from the normal shack supply. And used the handy config option “Limit PA Volts” to set a limit of 9.5V. This gives a comfortable 5W on all bands without any risk of overheating the finals etc.
&lt;/p&gt;

&lt;p&gt;
I&amp;#039;ve used it on WSPR - both via WSJT-X and using the internal standalone WSPR Beacon mode. 
&lt;/p&gt;

&lt;p&gt;
I upgraded to the current beta firmware 1_04_002 and the main change seems to be the removal of the Beacon mode and its replacement with “Virtual U3S” - a mimic of the functionality of the U3S multi-function beacon TX. Currently only WSPR is supported - but the other modes will follow. This works well - and allows a “schedule” to change frequency / Mode etc on sequential TX periods.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;The QMX&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;the_qmx&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;1074-2991&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;back_to_qrp_cw&quot;&gt;Back to QRP CW&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Then I had to try it on CW. 
&lt;/p&gt;

&lt;p&gt;
My first CW QSO was on 30m with Rob, OK7SX, on Wednesday 29th.
&lt;/p&gt;

&lt;p&gt;
Last night I had 3 x CW QSOs : F/FK8IK (Mic nr Vichy), IK3/UY7LA (Alex, nr Venice) on 30m and the icing on the cake was a chat with Will GM0HKS on 40m.
&lt;/p&gt;

&lt;p&gt;
Will was using a K2 at 5W, but did mention that he still has the “wee K1” - that&amp;#039;s &lt;strong&gt;my&lt;/strong&gt; old K1 that I built back in 2003. I sold it (and deeply regret doing so) and it ended up in Will&amp;#039;s care. We&amp;#039;ve had a few QSOs over the years and he never fails to mention the “wee K1”.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Back to QRP CW&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;back_to_qrp_cw&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;2992-3541&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;the_next_step&quot;&gt;The next step&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
I&amp;#039;ve been thinking about where I want to go with radio recently. 
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;What actually gives me pleasure?&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;What can I do to avoid the aspects of the hobby that spoil it for me?&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
Building and using the QMX reminded me of the fun I got with I first built the “wee K1” in 2003. 
&lt;/p&gt;

&lt;p&gt;
I hadn&amp;#039;t been active in the hobby for many years, my log book shows a couple of FM contacts in 2002 with locals on the repeater, and prior to that I was using Packet Radio in 1994, while still living in Huddersfield and working at Holme Moss. The last time I&amp;#039;d actually been on HF CW was while I was at UMIST, in 1985 using the club station.
&lt;/p&gt;

&lt;p&gt;
I built the K1 in 2003 and went CW crazy!
&lt;/p&gt;

&lt;p&gt;
The basic chronology :
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; pre-2003&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; 1983  - first licensed as G4SLV, still at school. Used 10mFM and 2m CW before going away to University in 1984&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; 1984 - 1988 - at UMIST, and active in the Radio Society. Used club station for HF CW, as well as 70cm ATV and “other” things&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; 1988 - 1995 - not much radio - some Packet on 2m&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; 1995 - moved to Wick. Some HF SWL using my old AR88D. No “ham” radio&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; 1999 - moved to Shetland. Some 2m activity on local repeater. Some HF SWL with AR88D and AR7030.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; August 2003 - K1 - 2 bands - 40m / 20m - lots of QSOs. A very active phase on the hobby on-the-air.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Some time in 2004 - K1 - added 4 band board &amp;amp; concentrated on 40/30/20&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Some time in 2004 - IC706MK2G - all bands - 100W - K1 use still frequent - but the lure of 100W was strong for a while - plus digimodes (PSK31 etc)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; November 2004 - 60m use began - mostly SSB - K1 still in use for QRP CW&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 2007 - K2 added to the shack&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; July 2007 - Start of 500kHz “experiment”. All HF working stopped and lots of time spent with MF - Sold K1 &amp;amp; K2 and IC706. Bought IC718&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Jan 2009 - Back to HF, mix of QRO and QRP. Mostly CW, Some SSB and digimodes&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Nov 2010 - Back to 500kHz, with some HF mixed in.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Jan 2011 - Back to HF&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
At some point during the MF phase I sold the K1 and K2. 
&lt;/p&gt;

&lt;p&gt;
From 2012 I spent most of my time on 60m using digimodes, mostly Olivia. I still dabbled on HF CW. Mostly QRO. Bought IC7200 to add to the Shack.
&lt;/p&gt;

&lt;p&gt;
The three main phases were 
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; QRP CW on 40m/20m with K1&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 500kHz CW (and some WSPR etc)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 60m Digimodes&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Looking at my logbooks I can tell that I really delved deeply into QRP CW with the K1. I worked many, many people in many, many places and had a &lt;strong&gt;lot&lt;/strong&gt; of fun with such a simple little radio.
&lt;/p&gt;

&lt;p&gt;
The K2 was fun to build, but it got little use - I remember preferring the “wee K1” to its big brother. The 500kHz experiment in 2007 intervened and pushed the QRP HF rigs to the side and they were sold to fund “more important” items.
&lt;/p&gt;

&lt;p&gt;
On 60m I had a lot of fun, learning a lot about the propagation on the band, and about the different behaviour of the various digimodes.
&lt;/p&gt;

&lt;p&gt;
I came back to HF CW a few times - but nothing sparked joy like those early times with the K1.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;The next step&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;the_next_step&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;3542-6481&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;the_future&quot;&gt;The future?&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Building the QMX has shown me that it&amp;#039;s possible to have fun building and then have more fun using simple QRP radios. And this might be the push I need to get back into QRP. 
&lt;/p&gt;

&lt;p&gt;
It&amp;#039;s more challenging these days - as most people in urban environments have raised noise levels and struggle to hear “normal weak signals” - but there are still people actively using QRP, and only QRP, to fully enjoy the hobby.
&lt;/p&gt;

&lt;p&gt;
If I can&amp;#039;t work someone due to my weak signal, then so be it… move on… there&amp;#039;ll always be someone else to work.
&lt;/p&gt;

&lt;p&gt;
One area I&amp;#039;ve never tried is QRP SSB. So I&amp;#039;ve turned the power on my FT891 (the “SSB rig”) down to 10 watts. I&amp;#039;ll give it a try some time. But once more my focus is back to CW. And now with an additional slant - QRP, and only QRP.
&lt;/p&gt;

&lt;p&gt;
I&amp;#039;ll write more as I explore.
&lt;/p&gt;

&lt;p&gt;
My G-QRP Club membership number is 2377, dating back to around 1984…. so I&amp;#039;ve been at it a long time, in fits and starts.
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:cw&amp;amp;do=showtag&amp;amp;tag=cw&quot; class=&quot;wikilink1&quot; title=&quot;tag:cw&quot; rel=&quot;tag&quot;&gt;cw&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:qrp&amp;amp;do=showtag&amp;amp;tag=qrp&quot; class=&quot;wikilink1&quot; title=&quot;tag:qrp&quot; rel=&quot;tag&quot;&gt;qrp&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:qmx&amp;amp;do=showtag&amp;amp;tag=qmx&quot; class=&quot;wikilink1&quot; title=&quot;tag:qmx&quot; rel=&quot;tag&quot;&gt;qmx&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;The future?&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;the_future&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;6482-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 07 Jul 2026 09:05:14 +0000</pubDate>
        </item>
        <item>
            <title>DM15L/41X/41L &quot;Multi-Variable&quot; Solve</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:guides:dm15l_miso_solve</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:guides:start&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:guides:start&quot; data-wiki-id=&quot;public:calculator:guides:start&quot;&gt;Hints &amp;amp; Tips&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;dm15l_41x_41l_multi-variable_solve&quot;&gt;DM15L/41X/41L &amp;quot;Multi-Variable&amp;quot; Solve&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; Using multi-variable equations in SOLVE &lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DM15L\/41X\/41L \&amp;quot;Multi-Variable\&amp;quot; Solve&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dm15l_41x_41l_multi-variable_solve&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-115&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;source&quot;&gt;Source&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/articles.cgi?read=556&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/articles.cgi?read=556&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/articles.cgi?read=556&lt;/a&gt;
&lt;/p&gt;
&lt;blockquote  class=&quot;wrap__dark blockquote-plugin&quot;&gt;
&lt;p&gt;
In order to conveniently employ SOLVE or INTEG on the HP-34C/15C/41C for multiple-input, single-output (MISO) user-defined functions, the user&amp;#039;s program should emulate the way SOLVE and INTEG manage input variables on the three Pioneer-series models and the HP-33s.
&lt;/p&gt;

&lt;p&gt;
Assume that a MISO function is to be programmed as an RPN routine on a HP-34C, HP-15C, or HP-41C/CV/CX. A user may wish to use SOLVE or INTEG successively for any selected “focus” variable with all others held constant, and without having to edit the RPN routine. Here is a simple procedure for this purpose:
&lt;/p&gt;

&lt;p&gt;
Choose a numbered storage register for each variable in the function.
On the 41C/CV/CX, choose another numbered register as the indirect storage register. (Do not use a stack register, as it will be overwritten by SOLVE or INTEG.)
In PROGRAM mode:
&lt;/p&gt;

&lt;p&gt;
Program the function as an RPN routine that not only meets the basic requirements, but also retrieves each variable from its chosen storage register when it is used. (On the 41C/CV/CX, the label beginning the routine must be an external label.)
The second instruction of the routine (immediately after LBL) should store the stack x-register value to the indirectly-referenced register. This instruction is “STO (i)” on the HP-34C and HP-15C; it is “STO IND nn” on the HP-41C/CV/CX.
In RUN mode:
&lt;/p&gt;

&lt;p&gt;
Store the desired constant values of the fixed-value variables to their storage registers.
Store the register number containing the floating variable to the indirect storage register.
Invoke SOLVE or INTEG in the usual manner.
This procedure utilizes indirect storage to make the RPN program more flexible. SOLVE and INTEG feed the each value of the floating variable as input to the user program, which immediately stores the value indirectly to its user-chosen register. Each variable in the function is then recalled for use in calculations, so the user program need not be structured to receive any particular variable from the stack.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;
EXAMPLE:

f(x, y, z) = 2*x - ln y + 1/z

x in R1; y in R2; z in R3
indirect in R00 (HP-41 only)


HP-15C/HP-34C program:      HP-41C/CV/CX program:


LBL A                       LBL &amp;quot;AA&amp;quot;
STO (i)                     STO IND 00
RCL 1                       RCL 01
2                           2
*                           *
RCL 2                       RCL 02
LN                          LN
-                           -
RCL 3                       RCL 03
1/x                         1/x
+                           +
RTN                         RTN


In RUN mode, solve for x such that f(x, y=15.1, z=5.3) = 0


HP-15C/HP-34C:              HP-41C/CV/CX:


15.1                        15.1
STO 2                       STO 02
5.3                         5.3
STO 3                       STO 03
1                           1
STO I                       STO 00
0.5                         0.5
ENTER                       ENTER
5                           5
SOLVE A                     &amp;quot;AA&amp;quot;  (enter AA in alpha mode)
                            XEQ &amp;quot;SOLVE&amp;quot;


(Answer is 1.263007749)


Next, solve for y such that f(x=0.7, y, z=3.3) = 0


HP-15C/HP-34C:              HP-41C/CV/CX:


0.7                         0.7
STO 1                       STO 01
3.3                         3.3
STO 3                       STO 03
2                           2
STO I                       STO 00
0.5                         0.5
ENTER                       ENTER
6                           6
SOLVE A                     &amp;quot;AA&amp;quot;  (enter AA in alpha mode)
                            XEQ &amp;quot;SOLVE&amp;quot;


(Answer is 5.490560270)


Finally, integrate f(x=1.7, y=4.1, z) over z = 1.0 to 6.0.
Specify 5 decimal-digit absolute function accuracy:


HP-15C/HP-34C:              HP-41C/CV/CX:


FIX 5                       FIX 5
1.7                         1.7
STO 1                       STO 01
4.1                         4.1
STO 2                       STO 02
3                           3
STO I                       STO 00
1                           1
ENTER                       ENTER
6                           6
INTEG A                     &amp;quot;AA&amp;quot;  (enter AA in alpha mode)
                            XEQ &amp;quot;INTEG&amp;quot;


(answer is 11.73682)
&lt;/pre&gt;

&lt;p&gt;
&lt;cite class=&quot;blockquote-plugin&quot;&gt;
&lt;a href=&quot;https://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/articles.cgi?read=556&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/articles.cgi?read=556&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/articles.cgi?read=556&lt;/a&gt;
&lt;/cite&gt;
&lt;/p&gt;

&lt;/blockquote&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Source&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;source&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;116-4508&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;exampleohms_law&quot;&gt;Example : OHMS LAW&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
from &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-1212.html&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-1212.html&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.hpmuseum.org/forum/thread-1212.html&lt;/a&gt;
&lt;/p&gt;
&lt;blockquote  class=&quot;wrap__dark blockquote-plugin&quot;&gt;
&lt;p&gt;
So, can I write an equation in programming, such as
&lt;/p&gt;

&lt;p&gt;
(I* R) - E = 0
&lt;/p&gt;

&lt;p&gt;
(or however one should program it in)
&lt;/p&gt;

&lt;p&gt;
and use SOLVE to find the unknown?
&lt;/p&gt;

&lt;p&gt;
Code:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;LBL A
STO (i) 
RCL 0
RCL* 1
RCL- 2
RTN&lt;/pre&gt;

&lt;p&gt;
Example:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;I&amp;gt; STO 0
&amp;lt;E&amp;gt; STO 2
1 STO I
SOLVE A&lt;/pre&gt;

&lt;p&gt;
&lt;cite class=&quot;blockquote-plugin&quot;&gt; from &lt;a href=&quot;https://www.hpmuseum.org/forum/thread-1212.html&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hpmuseum.org/forum/thread-1212.html&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.hpmuseum.org/forum/thread-1212.html&lt;/a&gt; &lt;/cite&gt;
&lt;/p&gt;

&lt;/blockquote&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Example : OHMS LAW&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;exampleohms_law&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;4509-4948&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;examplenano-vna_tdr_settings&quot;&gt;Example : Nano-VNA TDR settings&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;code&gt; F = (Points^2 x v.f x 0.284 ) / distance &lt;/code&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Points → R01&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Distance → R02&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; V.F → R03&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Frequency → R04&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;
LBL 71
Sto(i)
RCL 01
x^2
RCL* 03
0.284
*
RCL/ 02
RCL- 04
RTN
&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;example&quot;&gt;Example&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Find the Frequency sweep width needed for a distance of 35m with the following settings:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Distance = 35m&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Points = 101&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; V.F = 0.66&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;
101 STO01
35 STO02
.66 STO03
4 STO I
solve 71
&lt;/pre&gt;

&lt;p&gt;
Result = &lt;code&gt;54.63MHz&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 02/08/22 11:50&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Example : Nano-VNA TDR settings&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;examplenano-vna_tdr_settings&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;4949-5486&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:calculator&amp;amp;do=showtag&amp;amp;tag=calculator&quot; class=&quot;wikilink1&quot; title=&quot;tag:calculator&quot; rel=&quot;tag&quot;&gt;calculator&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:dm15l&amp;amp;do=showtag&amp;amp;tag=dm15l&quot; class=&quot;wikilink1&quot; title=&quot;tag:dm15l&quot; rel=&quot;tag&quot;&gt;dm15l&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;5487-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sat, 07 Feb 2026 08:53:34 +0000</pubDate>
        </item>
        <item>
            <title>DM15L Startup Keys &amp; Serial Console</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:guides:dm15l_start</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:guides:start&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:guides:start&quot; data-wiki-id=&quot;public:calculator:guides:start&quot;&gt;Hints &amp;amp; Tips&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;dm15l_startup_keys_serial_console&quot;&gt;DM15L Startup Keys &amp;amp; Serial Console&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DM15L Startup Keys &amp;amp; Serial Console&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dm15l_startup_keys_serial_console&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-67&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;start_keys&quot;&gt;Start Keys&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; The DM15L has a few options which are set by holding certain keys at &lt;strong&gt;power on&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; In the Update from V33 onwards these settings can also be modified directly via the “Setup Menu”&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; press &lt;kbd class=&quot;__keyboard&quot;&gt;f&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;ON&lt;/kbd&gt; then the key for the function as below….&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;table sectionedit3&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Key&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Function description&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;A &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Display time/date for 5 minutes&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;B &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Benchmark. Evaluate speed compared to original calculator&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;C &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Switch to serial console&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;D &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Start Bootloader &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;E &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;System info. Firmware version, battery voltage, CPU frequency, etc.&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;CHS&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Change LCD contrast.&lt;sup&gt;&lt;a href=&quot;#fn__1&quot; id=&quot;fnt__1&quot; class=&quot;fn_top&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;EEX&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Reset LCD contrast to default values.&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;STO&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Adjust RTC: decrement -1h&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;RCL&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Adjust RTC: increment +1h&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;7 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Cycle through available fonts&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row11&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;1 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; One Line Display &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row12&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;2 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Two Line Display &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row13&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;9 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Configure CPU speed. Toggle between 12MHz and 48MHz&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row14&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;÷ &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Keyboard self test&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row15&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;⨯ &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Self test&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row16&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; − &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Power reset&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row17&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; + &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Endless test&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row18&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; . &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Toggle decimal delimiter&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row19&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;SST&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Time/date adjustment.&lt;sup&gt;&lt;a href=&quot;#fn__2&quot; id=&quot;fnt__2&quot; class=&quot;fn_top&quot;&gt;2)&lt;/a&gt;&lt;/sup&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row20&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;GTO &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Toggle annunciator position&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;364-1219&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Start Keys&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;start_keys&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;68-1220&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;serial_console&quot;&gt;Serial Console&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Serial Console&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;serial_console&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1221-1248&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;settings&quot;&gt;Settings&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Speed : 38400&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Data bits : 8&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Stop bits : 1&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Parity : None&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Flow control : XON/XOFF (or none)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Settings&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;settings&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1249-1379&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;commands&quot;&gt;Commands&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt; 
VOYAGER &amp;gt;&amp;gt; ?
Firmware DM15_M80_V32

?          Help
p          Key press
s          Dump memory
l          Load memory
ct         Console timeout
bootloader Invoke Bootloader
t          Get time
ts         Set time
td         Update time
kb         Toggle keyboard output to console
d          Toggle display output to console
b          Read battery voltage

Type &amp;#039;&amp;lt;command&amp;gt; ?&amp;#039; for params
VOYAGER &amp;gt;&amp;gt;&lt;/pre&gt;

&lt;p&gt;
The calculator can be programmed using the dumps, via the Serial Console, by &lt;code&gt;copy &amp;amp; paste&lt;/code&gt; of the text of dump using the Serial Console command &lt;code&gt;l&lt;/code&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Commands&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;commands&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;1380-1971&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;an_example_session&quot;&gt;An example session&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Acalculator%3Aguides%3Adm15l_start&amp;amp;media=public:calculator:screenshot_2022-05-29_21.16.22.png&quot; class=&quot;media&quot; title=&quot;public:calculator:screenshot_2022-05-29_21.16.22.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=600&amp;amp;tok=0b36d2&amp;amp;media=public:calculator:screenshot_2022-05-29_21.16.22.png&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Memory dump captured by Copy &amp;amp; Paste from the console session above.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;DM15_M1B
00  03000007146000  03999994641000  03999994641000  00000000000000
04  49828382834000  00000000000008  0000000000000c  00002005999eae
08  00000000000000  39fa0ffffaea8f  dba083fce4bf80  00000000000000
10  00000000000000  00000000000000  00000000000000  05000000000000
14  f0000000000089  20323232323232  000000000001f2  00000000000000
18  00000000000000  0000000000007f  00000000a00000  05313010235001
1c  00000000000000  00000000000000  00000000000000  01844692622004
f0  00000000000000  00000000000000  000000000000b2  fdfbf132faf142
f4  ccfdf0f20cb2c3  fcf0f2bcfdfaf1  32fbf1420bb233  44fcc3f0f2bcfd
f8  faf133fbf143fd  a2cff182cff142  cafd0ab21282df  f1cafdf5c0f3fc
fc  31fd30fb31fc30  310241f5f4f3c0  f240f6c6f4f3f2  f1f0c0f142f00e
A: 49828382834000  B: 49828382834eae  C: 00002005999eae
S: 00000000001000
M: 01844692622004  N: 99828382834004  G: 06&lt;/pre&gt;

&lt;p&gt;
This dump pasted into the &lt;a href=&quot;https://technical.swissmicros.com/decoders/nut/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://technical.swissmicros.com/decoders/nut/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;Swiss Micro decoder&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Acalculator%3Aguides%3Adm15l_start&amp;amp;media=public:calculator:screenshot_2022-05-29_21.36.05.png&quot; class=&quot;media&quot; title=&quot;public:calculator:screenshot_2022-05-29_21.36.05.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=600&amp;amp;tok=f84454&amp;amp;media=public:calculator:screenshot_2022-05-29_21.36.05.png&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
The decoded dump, showing the actual program commands
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;001  LBL E        | 42,21,15
002  0            |        0
003  STO 2        |    44  2
004  1            |        1
005  .            |       48
006  0            |        0
007  1            |        1
008  2            |        2
009  3            |        3
010  4            |        4
011  EEX          |       26
012  6            |        6
013  STO 0        |    44  0
014  2            |        2
015  .            |       48
016  3            |        3
017  4            |        4
018  5            |        5
019  STO 1        |    44  1
020  LBL 2        | 42,21, 2
021  RCL 1        |    45  1
022  RCL 0        |    45  0
023  *            |       20
024  RCL 1        |    45  1
025  -            |       30
026  RCL 0        |    45  0
027  /            |       10
028  RCL 1        |    45  1
029  *            |       20
030  3            |        3
031  .            |       48
032  5            |        5
033  /            |       10
034  sqrt         |       11
035  1            |        1
036  STO+2        | 44,40, 2
037  GTO 2        |    22  2
038  RTN          |   43  32
039  LBL A        | 42,21,11
040  /            |       10
041  sqrt         |       11
042  STO 2        |    44  2
043  1            |        1
044  RCL+2        | 45,40, 2
045  1            |        1
046  RCL-2        | 45,30, 2
047  /            |       10
048  STO 3        |    44  3
049  1            |        1
050  -            |       30
051  RCL 3        |    45  3
052  1            |        1
053  +            |       40
054  /            |       10
055  LOG          |   43  13
056  2            |        2
057  0            |        0
058  CHS          |       16
059  *            |       20
060  STO 4        |    44  4
061  RCL 3        |    45  3
062  RTN          |   43  32
063  LBL B        | 42,21,12
064  STO 2        |    44  2
065  1            |        1
066  -            |       30
067  RCL 2        |    45  2
068  1            |        1
069  +            |       40
070  /            |       10
071  LOG          |   43  13
072  2            |        2
073  0            |        0
074  *            |       20
075  CHS          |       16
076  RTN          |   43  32
077  LBL C        | 42,21,13
078  2            |        2
079  0            |        0
080  /            |       10
081  10^x         |       13
082  STO 2        |    44  2
083  1            |        1
084  +            |       40
085  RCL 2        |    45  2
086  1            |        1
087  -            |       30
088  /            |       10
089  RTN          |   43  32&lt;/pre&gt;

&lt;p&gt;
Page created Thu May 26 17:41:19 2022 by John Pumford-Green
&lt;/p&gt;

&lt;p&gt;
Page last updated: 24/01/26 08:10 GMT
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:calculator&amp;amp;do=showtag&amp;amp;tag=calculator&quot; class=&quot;wikilink1&quot; title=&quot;tag:calculator&quot; rel=&quot;tag&quot;&gt;calculator&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:dm15l&amp;amp;do=showtag&amp;amp;tag=dm15l&quot; class=&quot;wikilink1&quot; title=&quot;tag:dm15l&quot; rel=&quot;tag&quot;&gt;dm15l&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;An example session&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;an_example_session&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;1972-&amp;quot;} --&gt;&lt;div class=&quot;footnotes&quot;&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__1&quot; id=&quot;fn__1&quot; class=&quot;fn_bot&quot;&gt;1)&lt;/a&gt;&lt;/sup&gt; 
&lt;div class=&quot;content&quot;&gt; LCD Setting : Param1: up +, down −, Param2: up Σ+, down 3&lt;/div&gt;&lt;/div&gt;
&lt;div class=&quot;fn&quot;&gt;&lt;sup&gt;&lt;a href=&quot;#fnt__2&quot; id=&quot;fn__2&quot; class=&quot;fn_bot&quot;&gt;2)&lt;/a&gt;&lt;/sup&gt; 
&lt;div class=&quot;content&quot;&gt;Date Adjustment Usage: Up +, Down −, Next ⨯, Prev ÷, ENTER to Set, ON to Cancel&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sat, 24 Jan 2026 08:10:32 +0000</pubDate>
        </item>
        <item>
            <title>DM32 Curve Fit</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:guides:dm32_curve_fit</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:guides:start&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:guides:start&quot; data-wiki-id=&quot;public:calculator:guides:start&quot;&gt;Hints &amp;amp; Tips&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;dm32_curve_fit&quot;&gt;DM32 Curve Fit&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; CFIT Program from the Owner&amp;#039;s Manual &lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DM32 Curve Fit&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dm32_curve_fit&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-90&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;state_file&quot;&gt;State File&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The listing from the Owner&amp;#039;s Manual has been entered into the calculator and saved as a State File
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:guides:cfit.d32&quot; class=&quot;media mediafile mf_d32&quot; title=&quot;public:calculator:guides:cfit.d32 (1.4 KB)&quot;&gt;cfit.d32&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;State File&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;state_file&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;91-258&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;use&quot;&gt;Use&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The program provides the usual set of Curve Fitting for Straight Line, Exponential, Logarithmic and Power curves, automating the same techniques as the manual method for DM15 described here &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:guides:dm15l_curve_fit&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:guides:dm15l_curve_fit&quot; data-wiki-id=&quot;public:calculator:guides:dm15l_curve_fit&quot;&gt;DM15L Non-linear Curve Fit&lt;/a&gt; .
&lt;/p&gt;

&lt;p&gt;
There is no “best fit” algorithm, which means you need to decide in advance which of the 4 curve types to fit, before entering the data. If you choose a different curve you have to enter the data again.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Use&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;use&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;259-693&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;choose_a_curve&quot;&gt;Choose a Curve&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Each curve type has a separate program label
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;S&lt;/kbd&gt; : Straight Line&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;E&lt;/kbd&gt; : Exponential&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;L&lt;/kbd&gt; : Logarithmic&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;P&lt;/kbd&gt; : Power&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Choose a Curve&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;choose_a_curve&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;694-954&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;enter_data&quot;&gt;Enter Data&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Data is entered the same way whichever of the 4 programs is chosen.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; X-value &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt; Y-value &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; X-value &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt; Y-value &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; X-value &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt; Y-value &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; X-value &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt; Y-value &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Enter Data&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;enter_data&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;955-1247&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;run_the_curve_fit&quot;&gt;Run the Curve Fit&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Once all the data is entered you run the fit using &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
This gives the various paramaters
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; R-value (correlation coefficient) &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; B-value &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; M-value &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Prompt for an x-value to use to calculate ŷ - enter a number &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; ŷ is shown for that x-value&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Prompt now for a y-value to use to calculate an estimate of x &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; x estimate is shown for that y-value&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Prompt for a new x-value to use to calculate ŷ &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; this goes on until you want to stop….&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; press &lt;kbd class=&quot;__keyboard&quot;&gt;C&lt;/kbd&gt; to quit&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Run the Curve Fit&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;run_the_curve_fit&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;1248-1889&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;curve_equations&quot;&gt;Curve equations&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Straight Line &lt;code&gt; y = B + Mx &lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Exponential &lt;code&gt; y = Be&lt;sup&gt;Mx&lt;/sup&gt; &lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Logarithmic &lt;code&gt; y = B + M Ln(x) &lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Power &lt;code&gt; y = Bx&lt;sup&gt;M&lt;/sup&gt; &lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Curve equations&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;curve_equations&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;1890-2069&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;examples&quot;&gt;Examples&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Examples&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;examples&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;2070-2091&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;logarithmic&quot;&gt;Logarithmic&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;table sectionedit10&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;x&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;0.3&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;1&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;2&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;3&lt;/td&gt;&lt;td class=&quot;col5&quot;&gt;4&lt;/td&gt;&lt;td class=&quot;col6&quot;&gt;5&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;y&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;-1&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;2&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;3.8&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;5&lt;/td&gt;&lt;td class=&quot;col5&quot;&gt;5.6&lt;/td&gt;&lt;td class=&quot;col6&quot;&gt;6&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;2115-2153&amp;quot;} --&gt;
&lt;/div&gt;

&lt;h4 id=&quot;enter_data1&quot;&gt;Enter Data&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;L&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 0.3 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt; 1 &lt;kbd class=&quot;__keyboard&quot;&gt;+/-&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 1 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt; 2 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 2 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt; 3.8 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 3 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt; 5 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 4 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt; 5.6 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 5 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt; 6 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;run_the_fit&quot;&gt;Run the fit&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;R=0.99932&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;B=2.05210&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;M=2.5359&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; enter an x-value to calculate an estimate of y&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 2.5 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;y? 4.37571&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; enter a y-value to calculate an estimate of x&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 0 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt; (what is x-value where the curve crosses the x-axis at y = 0? The solution to the equation)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;X ? 0.44520&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; finish &lt;kbd class=&quot;__keyboard&quot;&gt;C&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;results&quot;&gt;Results&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; The curve equation is &lt;code&gt; y = 2.05210 + 2.5359Ln(x) &lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; The values for R, B and M are stored in register-variables &lt;code&gt;R&lt;/code&gt;, &lt;code&gt;B&lt;/code&gt; and &lt;code&gt;M&lt;/code&gt; for future use&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; e.g. make an &lt;code&gt;EQN&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt; Y = B + M x Ln(X) &lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; the equation can be evaluated, solved or integrated using the stored values for &lt;code&gt;B&lt;/code&gt; and &lt;code&gt;M&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Until a new Curve fit program is run, or anything is done to change the Statistics Registers, you can re-run the fit with &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R&lt;/kbd&gt; to allow more y and x estimates to be made&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Logarithmic&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;logarithmic&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;2092-3461&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit11&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Page created  : 17/04/26 08:35 BST
&lt;/p&gt;

&lt;p&gt;
Page updated : 19/04/26 21:09 BST
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:calculator&amp;amp;do=showtag&amp;amp;tag=calculator&quot; class=&quot;wikilink1&quot; title=&quot;tag:calculator&quot; rel=&quot;tag&quot;&gt;calculator&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:dm32&amp;amp;do=showtag&amp;amp;tag=dm32&quot; class=&quot;wikilink1&quot; title=&quot;tag:dm32&quot; rel=&quot;tag&quot;&gt;dm32&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;3462-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sun, 19 Apr 2026 20:09:15 +0000</pubDate>
        </item>
        <item>
            <title>DM32 Polynomial Solver</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:guides:dm32_polynomial_solver</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:guides:start&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:guides:start&quot; data-wiki-id=&quot;public:calculator:guides:start&quot;&gt;Hints &amp;amp; Tips&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;dm32_polynomial_solver&quot;&gt;DM32 Polynomial Solver&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; From the Owner&amp;#039;s Manual &lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DM32 Polynomial Solver&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dm32_polynomial_solver&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-85&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;state_file&quot;&gt;State File&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Provided by Swiss Micros &lt;a href=&quot;https://technical.swissmicros.com/dm32/examples/STATE/POLYROOT.d32&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://technical.swissmicros.com/dm32/examples/STATE/POLYROOT.d32&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://technical.swissmicros.com/dm32/examples/STATE/POLYROOT.d32&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Local copy &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:guides:polyroot.d32&quot; class=&quot;media mediafile mf_d32&quot; title=&quot;public:calculator:guides:polyroot.d32 (1.5 KB)&quot;&gt;polyroot.d32&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;State File&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;state_file&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;86-266&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;use&quot;&gt;Use&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
This set of programs will provide real and complex roots of polynomials up to 5&lt;sup&gt;th&lt;/sup&gt; order. The coefficient of the highest term is assumed to be &lt;code&gt;1&lt;/code&gt; and all the coefficients must be normalized to make this so. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Use&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;use&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;267-506&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;quadratic&quot;&gt;Quadratic&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;code&gt; x&lt;sup&gt;2&lt;/sup&gt; - 3x + 2 = 0 &lt;/code&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Run &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;P&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Enter the order at the prompt for &lt;code&gt;F?  &lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 2 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Enter coefficient &lt;code&gt;B&lt;/code&gt; &lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 3 &lt;kbd class=&quot;__keyboard&quot;&gt;+/-&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Enter coefficient &lt;code&gt;A&lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 2 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 1&lt;sup&gt;st&lt;/sup&gt; root is shown&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;X=1.0000&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 2&lt;sup&gt;nd&lt;/sup&gt; root is shown&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;X=2.0000&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; quits&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
The two roots of &lt;code&gt; x&lt;sup&gt;2&lt;/sup&gt; - 3x + 2 = 0 &lt;/code&gt; are &lt;code&gt;1&lt;/code&gt; and &lt;code&gt;2&lt;/code&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Quadratic&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;quadratic&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;507-1005&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;th_order&quot;&gt;4-th order&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;code&gt;4x&lt;sup&gt;4&lt;/sup&gt; - 8x&lt;sup&gt;3&lt;/sup&gt; - 13x&lt;sup&gt;2&lt;/sup&gt; - 10x + 22 = 0&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
This has a non-unity value for the highest term, so all the coefficients need to be divided by 4 to make it so, this can be done as they are entered
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;P&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Enter order 4 at the prompt for &lt;code&gt;F? &lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 4 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Enter the coefficients starting at the second one (for x&lt;sup&gt;3&lt;/sup&gt;) and dividing by 4&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 8 &lt;kbd class=&quot;__keyboard&quot;&gt;+/-&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; 4 &lt;kbd class=&quot;__keyboard&quot;&gt;÷&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 13 &lt;kbd class=&quot;__keyboard&quot;&gt;+/-&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; 4 &lt;kbd class=&quot;__keyboard&quot;&gt;÷&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 10 &lt;kbd class=&quot;__keyboard&quot;&gt;+/-&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; 4 &lt;kbd class=&quot;__keyboard&quot;&gt;÷&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 22 &lt;kbd class=&quot;__keyboard&quot;&gt;ENTER&lt;/kbd&gt; 4 &lt;kbd class=&quot;__keyboard&quot;&gt;÷&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; The first root is shown&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;X = 0.88197&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; The second root is shown&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;X = 3.11803&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; The third root is shown (it&amp;#039;s complex)&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;X=-1.0000&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;i = 1.0000&lt;/code&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; The fourth root is shown (it&amp;#039;s also complex)&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;X=1.0000&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;i=-1.0000&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;C&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
The 4 roots are
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;X = 0.88197&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;X = 3.11803&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;X = -1 + j1&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;X = 1 - j1&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;cube_roots_of_-8&quot;&gt;Cube roots of -8&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
&lt;code&gt; X&lt;sup&gt;3&lt;/sup&gt; = -8&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt; X&lt;sup&gt;3&lt;/sup&gt; + 8 = 0 &lt;/code&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;P&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Enter 3 for the order&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 3 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Enter zero for &lt;code&gt;C&lt;/code&gt; (the coefficient of x&lt;sup&gt;2&lt;/sup&gt;)&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 0 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Enter zero for &lt;code&gt;B&lt;/code&gt; (the coefficient of x)&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 0 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Enter 8 for &lt;code&gt;A&lt;/code&gt; (the constant term)&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 8 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; The first root is &lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;X = -2.00000&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; The second root is complex&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt; X = 1.00000&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;i = 1.73205&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; The third root is complex&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;X = 1.0000&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;i = -1.73205&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;C&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
The three cube roots of &lt;code&gt;-8&lt;/code&gt; are
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;-2&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt; 1 + j1.73205 &lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt; 1 - j1.73205 &lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;4-th order&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;th_order&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1006-2967&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Page created  : 17/04/26 09:41 BST
&lt;/p&gt;

&lt;p&gt;
Page updated : 19/04/26 21:09 BST
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:calculator&amp;amp;do=showtag&amp;amp;tag=calculator&quot; class=&quot;wikilink1&quot; title=&quot;tag:calculator&quot; rel=&quot;tag&quot;&gt;calculator&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:dm32&amp;amp;do=showtag&amp;amp;tag=dm32&quot; class=&quot;wikilink1&quot; title=&quot;tag:dm32&quot; rel=&quot;tag&quot;&gt;dm32&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;2968-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sun, 19 Apr 2026 20:09:50 +0000</pubDate>
        </item>
        <item>
            <title>DM32 Simultaneous Equations</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:guides:dm32_simultaneos_equations</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:guides:start&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:guides:start&quot; data-wiki-id=&quot;public:calculator:guides:start&quot;&gt;Hints &amp;amp; Tips&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;dm32_simultaneous_equations&quot;&gt;DM32 Simultaneous Equations&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; From the Owners Manual &lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DM32 Simultaneous Equations&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dm32_simultaneous_equations&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-89&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;statefile&quot;&gt;Statefile&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Provided by Swiss Micros &lt;a href=&quot;https://technical.swissmicros.com/dm32/examples/STATE/SIMEQ.d32&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://technical.swissmicros.com/dm32/examples/STATE/SIMEQ.d32&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://technical.swissmicros.com/dm32/examples/STATE/SIMEQ.d32&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Local copy &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:guides:simeq.d32&quot; class=&quot;media mediafile mf_d32&quot; title=&quot;public:calculator:guides:simeq.d32 (1.3 KB)&quot;&gt;simeq.d32&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Statefile&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;statefile&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;90-262&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;overview&quot;&gt;Overview&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
This set of programs allows the solution of 3&amp;times;3 and 2&amp;times;2 systems of equations, as well as the inverse and determinate of the matrix representing the coefficients.
&lt;/p&gt;

&lt;p&gt;
The set of equations is represented by a 3 x 4 array of numbers, with the first 3 columns representing the coefficients of the equations and the 4th column the “value” of the equations.
&lt;/p&gt;

&lt;p&gt;
For example
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt; Ax + Dy + Gz = J &lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt; Bx + Ey + Hz = K &lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt; Cx + Fy + Iz = L &lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
These equations can be represented in matrix form
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;
| A D G | | x |   | J |
| B E H | | y | = | K |
| C F I | | z |   | L |

&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
This is effectively
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt; A x X = B &lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
and therefore 
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt; X = B / A &lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
or 
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;X = B x A&lt;sup&gt;-1&lt;/sup&gt; &lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
The unknown matrix is obtained by multiplying &lt;code&gt;B&lt;/code&gt; by the &lt;code&gt;inverse of A&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
They are entered sequentially in the order 
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;ABCDEFGHIJKL&lt;/code&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Overview&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;overview&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;263-1096&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;use&quot;&gt;Use&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Enter the values of the 3&amp;times;3 matrix and the 3&amp;times;1 column vector by using prog. A
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;A&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Enter each value at the prompt followed by &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Once all values &lt;code&gt;A&lt;/code&gt; → &lt;code&gt;L&lt;/code&gt; are entered you can &lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; find the determinant of the coefficient matrix with prog &lt;code&gt;D&lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; this is not required for a simple solution, but might be useful for other purposes?&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;I&lt;/strong&gt;nvert the coefficient matrix A with prog. &lt;code&gt;I&lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;I&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;M&lt;/strong&gt;ultiply the column vector by this inverse matrix using prog. &lt;code&gt;M&lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;M&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; This gives the resulting &lt;code&gt;X&lt;/code&gt;, &lt;code&gt;Y&lt;/code&gt; and &lt;code&gt;Z&lt;/code&gt; by pressing &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt; to step through them&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Use&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;use&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1097-1823&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;examples&quot;&gt;Examples&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Examples&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;examples&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1824-1845&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;x_3&quot;&gt;3 x 3&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
A system of equations with 3 unknowns &lt;code&gt;x&lt;/code&gt;, &lt;code&gt;y&lt;/code&gt; and &lt;code&gt;z&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;23x + 15y + 17z = 31&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt; 8x + 11y -  6z = 17&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt; 4x + 15y + 12z = 14&lt;/code&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note notewarning&quot;&gt;Beware!
&lt;p&gt;
You enter each value in sequence going &lt;strong&gt;down the columns&lt;/strong&gt; in sequence
&lt;/p&gt;

&lt;p&gt;
Which is the opposite sense to the way matrices are entered in DM15L and DM41X 
&lt;/p&gt;

&lt;/div&gt;&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;A&lt;/kbd&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 23 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 8 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 4 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 15 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 11 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 15 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 17 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 6 &lt;kbd class=&quot;__keyboard&quot;&gt;+/-&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 12 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 31 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 17 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 14 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Find the inverse &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;I&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Multiply &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;M&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Display shows solutions&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;X = 0.930622&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;Y = 0.794258&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;Z = -0.136364&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; You can inspect the inverted matrix by running &lt;code&gt;A&lt;/code&gt; again&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;A&lt;/kbd&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;A ? 0.048&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;B ? -0.026&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; etc….etc…&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; You can re-invert A back to the original state by running prog &lt;code&gt;I&lt;/code&gt; again&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; You can see the determinant of A by running prog &lt;code&gt;D&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;3 x 3&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;x_3&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;1846-3079&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;x2&quot;&gt;2x2&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
The programs expect a 3&amp;times;3 matrix. If the system is 2&amp;times;2 you have to use dummy values to pad out to 3&amp;times;3
&lt;/p&gt;

&lt;p&gt;
Set &lt;code&gt;C, F, H, G, L = 0&lt;/code&gt; and &lt;code&gt;I = 1&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
e.g.
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt; 2x + 3y = 6 &lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt; 8x - 4y = 9 &lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
This becomes
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt; 2x + 3y + 0z = 6 &lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt; 8x - 4y + 0z = 9 &lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt; 0x + 0y + 1z = 0 &lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
and is entered
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;A&lt;/kbd&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 2 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 8 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 0 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 3 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 4 &lt;kbd class=&quot;__keyboard&quot;&gt;+/-&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 0 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 0 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 0 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 1 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 6 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 9 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; 0 &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Find the inverse &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;I&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Multiply &lt;kbd class=&quot;__keyboard&quot;&gt;XEQ&lt;/kbd&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;M&lt;/kbd&gt; to find the unknowns&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;X = 1.59375&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;Y = 0.93750&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;R/S&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;Z = 0.00000&lt;/code&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;C&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;2x2&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;x2&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;3080-3941&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Page created  : 17/04/26 18:10 BST
&lt;/p&gt;

&lt;p&gt;
Page updated : 19/04/26 21:07 BST
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:calculator&amp;amp;do=showtag&amp;amp;tag=calculator&quot; class=&quot;wikilink1&quot; title=&quot;tag:calculator&quot; rel=&quot;tag&quot;&gt;calculator&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:dm32&amp;amp;do=showtag&amp;amp;tag=dm32&quot; class=&quot;wikilink1&quot; title=&quot;tag:dm32&quot; rel=&quot;tag&quot;&gt;dm32&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;3942-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sun, 19 Apr 2026 20:07:49 +0000</pubDate>
        </item>
        <item>
            <title>DM16L Info</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:info:dm16l_info</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:info:start&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:info:start&quot; data-wiki-id=&quot;public:calculator:info:start&quot;&gt;Calculator Hardware&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;dm16l_info&quot;&gt;DM16L Info&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_start&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;&lt;div class=&quot;wrap_col2 wrap__dark plugin_wrap&quot;&gt;&lt;/div&gt;&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;plugin_wrap_end&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;0-&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DM16L Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dm16l_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;10-60&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;purchase_information&quot;&gt;Purchase Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Date   : August 2022&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; From   : Swiss Micros (direct)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Price  : £&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Serial : 04710&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Purchase Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;purchase_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;61-191&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;firmware&quot;&gt;Firmware&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;table sectionedit6&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Date&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Serial No.&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Firmware&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Version&lt;/th&gt;&lt;th class=&quot;col4&quot;&gt;Firmware Files&lt;/th&gt;&lt;th class=&quot;col5&quot;&gt;Firmware Tool&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 01/09/2022 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 04710 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;DM16 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;32 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:dm16_32.hex&quot; class=&quot;media mediafile mf_hex&quot; title=&quot;public:calculator:info:dm16_32.hex (94.7 KB)&quot;&gt;dm16_32.hex&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col5 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 28/01/26 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 04710 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; DM16 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;34 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:dm16_34.hex&quot; class=&quot;media mediafile mf_hex&quot; title=&quot;public:calculator:info:dm16_34.hex (123.6 KB)&quot;&gt;dm16_34.hex&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt;Linux using lpc21isp &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;214-457&amp;quot;} --&gt;
&lt;p&gt;
&lt;code&gt;  sudo lpc21isp DM16_34.hex /dev/ttyUSB0 115200 1200  &lt;/code&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Firmware&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;firmware&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;192-517&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;rtc_error&quot;&gt;RTC Error&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;table sectionedit8&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Start&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Stop&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Accumulated Error (s)&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Rate Error (s/d)&lt;/th&gt;&lt;th class=&quot;col4&quot;&gt;Comments&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;18/09/22 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 15/04/23&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; +94.6 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; +0.5 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 94.6s in 209 days = 0.45 s/d &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;541-669&amp;quot;} --&gt;
&lt;p&gt;
Using my &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:watchcheck&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:watchcheck&quot; data-wiki-id=&quot;public:miscellany:watches:watchcheck&quot;&gt;python Watchcheck&lt;/a&gt;
&lt;/p&gt;
&lt;div class=&quot;table sectionedit9&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Date Start&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Date Check&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Delta&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Latest Error&lt;/th&gt;&lt;th class=&quot;col4&quot;&gt;Average Error&lt;/th&gt;&lt;th class=&quot;col5&quot;&gt;Comments&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;28/01/26 &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; +1.9 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; Time reset during firmware update. New Period &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table2&amp;quot;,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;740-879&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;RTC Error&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;rtc_error&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;518-881&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit10&quot; id=&quot;swiss_micros_info&quot;&gt;Swiss Micros Info&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Firmware      : &lt;a href=&quot;https://technical.swissmicros.com/voyager/firmware/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://technical.swissmicros.com/voyager/firmware/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://technical.swissmicros.com/voyager/firmware/&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Documentation : &lt;a href=&quot;https://technical.swissmicros.com/voyager/doc/voyager_user_manual.html&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://technical.swissmicros.com/voyager/doc/voyager_user_manual.html&quot; rel=&quot;ugc nofollow noopener&quot;&gt;Online HTML User Manual&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Documentation : &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:voyager_user_manual.pdf&quot; class=&quot;media mediafile mf_pdf&quot; title=&quot;public:calculator:info:voyager_user_manual.pdf (1.7 MB)&quot;&gt; PDF Manual&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Product Page  : &lt;a href=&quot;https://www.swissmicros.com/product/dm16l&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.swissmicros.com/product/dm16l&quot; rel=&quot;ugc nofollow noopener&quot;&gt;DM16L&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Swiss Micros Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;swiss_micros_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;882-1266&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit11&quot; id=&quot;hp-16c_owner_s_handbook&quot;&gt;HP-16C Owner&amp;#039;s Handbook&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Download from &lt;a href=&quot;https://literature.hpcalc.org/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://literature.hpcalc.org/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://literature.hpcalc.org/&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HP-16C Owner&amp;#039;s Handbook : &lt;a href=&quot;https://literature.hpcalc.org/community/hp16c-oh-en.pdf&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://literature.hpcalc.org/community/hp16c-oh-en.pdf&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://literature.hpcalc.org/community/hp16c-oh-en.pdf&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;HP-16C Owner&amp;#039;s Handbook&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hp-16c_owner_s_handbook&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;1267-1443&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit12&quot; id=&quot;dm15l_memory_dumps_and_program_listings&quot;&gt;DM15L Memory Dumps and Program Listings&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; See &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:progs:dm16l_progs&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:progs:dm16l_progs&quot; data-wiki-id=&quot;public:calculator:progs:dm16l_progs&quot;&gt;DM16L Progs&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:calculator&amp;amp;do=showtag&amp;amp;tag=calculator&quot; class=&quot;wikilink1&quot; title=&quot;tag:calculator&quot; rel=&quot;tag&quot;&gt;calculator&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:dm16l&amp;amp;do=showtag&amp;amp;tag=dm16l&quot; class=&quot;wikilink1&quot; title=&quot;tag:dm16l&quot; rel=&quot;tag&quot;&gt;dm16l&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DM15L Memory Dumps and Program Listings&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dm15l_memory_dumps_and_program_listings&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;1444-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sun, 01 Feb 2026 08:35:44 +0000</pubDate>
        </item>
        <item>
            <title>DM42 Info</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:info:dm42_info</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:info:start&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:info:start&quot; data-wiki-id=&quot;public:calculator:info:start&quot;&gt;Calculator Hardware&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;dm42_info&quot;&gt;DM42 Info&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Acalculator%3Ainfo%3Adm42_info&amp;amp;media=public:calculator:dm42_1.jpg&quot; class=&quot;media&quot; title=&quot;public:calculator:dm42_1.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=400&amp;amp;tok=70b925&amp;amp;media=public:calculator:dm42_1.jpg&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DM42 Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dm42_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;10-284&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;purchase_information&quot;&gt;Purchase Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Date   : December 2020&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; From   : Swiss Micros (via Amazon)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Price  : £179&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Serial : 06434&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Battery Swap : 21/09/24&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Purchase Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;purchase_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;285-452&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;firmware&quot;&gt;Firmware&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;table sectionedit4&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Date&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Serial No.&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;DM42 Version&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Free42 Version&lt;/th&gt;&lt;th class=&quot;col4&quot;&gt;DMCP Version&lt;/th&gt;&lt;th class=&quot;col5&quot;&gt;Firmware Files combined&lt;/th&gt;&lt;th class=&quot;col6&quot;&gt;DM42*.pgm&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;24/5/22 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;06434 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;3.21 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;3.0.9 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;3.22 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:dmcp_flash_3.23_dm42-3.21.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:dmcp_flash_3.23_dm42-3.21.zip (557.7 KB)&quot;&gt;dmcp_flash_3.23_dm42-3.21.zip&lt;/a&gt;&lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:dm42-3.21.pgm&quot; class=&quot;media mediafile mf_pgm&quot; title=&quot;public:calculator:info:dm42-3.21.pgm (673.7 KB)&quot;&gt;dm42-3.21.pgm&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;15/4/23 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;06434 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;3.22 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;3.0.15&lt;/td&gt;&lt;td class=&quot;col4&quot;&gt;3.24&lt;/td&gt;&lt;td class=&quot;col5&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:dmcp_flash_3.24_dm42-3.22.bin&quot; class=&quot;media mediafile mf_bin&quot; title=&quot;public:calculator:info:dmcp_flash_3.24_dm42-3.22.bin (1004 KB)&quot;&gt;dmcp_flash_3.24_dm42-3.22.bin&lt;/a&gt;&lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:dm42-3.22.pgm&quot; class=&quot;media mediafile mf_pgm&quot; title=&quot;public:calculator:info:dm42-3.22.pgm (683.2 KB)&quot;&gt;dm42-3.22.pgm&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 27/07/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 06434 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 3.23 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 3.1.8 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 3.25 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:dmcp_flash_3.25_dm42-3.23.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:dmcp_flash_3.25_dm42-3.23.zip (568.7 KB)&quot;&gt;dmcp_flash_3.25_dm42-3.23.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:dm42-3.23.pgm&quot; class=&quot;media mediafile mf_pgm&quot; title=&quot;public:calculator:info:dm42-3.23.pgm (692.7 KB)&quot;&gt;dm42-3.23.pgm&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 11/02/26 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 0644 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 3.26 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 3.3.10 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 3.29 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:dmcp_flash_3.29_dm42-3.26.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:dmcp_flash_3.29_dm42-3.26.zip (566.7 KB)&quot;&gt;dmcp_flash_3.29_dm42-3.26.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col6&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:dm42-3.26.pgm&quot; class=&quot;media mediafile mf_pgm&quot; title=&quot;public:calculator:info:dm42-3.26.pgm (680 KB)&quot;&gt;dm42-3.26.pgm&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;475-1153&amp;quot;} --&gt;
&lt;/div&gt;

&lt;h4 id=&quot;rd_party_firmware&quot;&gt;3rd party Firmware&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; DM42 restoration : &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:dm42_pgm_qspi.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:dm42_pgm_qspi.zip (1.6 MB)&quot;&gt;dm42_pgm_qspi.zip&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; DM42 pgm only (no QSPI) : &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:dm42-3.23.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:dm42-3.23.zip (401.4 KB)&quot;&gt;dm42-3.23.zip&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Generally I find C47 to be sluggish and laggy and although the features are great the User Experience is poor.&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; The Dev. Team seem to spend more time adding new features/functions and don&amp;#039;t really care that it&amp;#039;s very slow&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Reports indicate that the &lt;a href=&quot;https://www.swissmicros.com/product/model-dm42n&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.swissmicros.com/product/model-dm42n&quot; rel=&quot;ugc nofollow noopener&quot;&gt; DM42n&lt;/a&gt; runs C47 much faster&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;table sectionedit5&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Date&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Serial No.&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Firmware&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Version&lt;/th&gt;&lt;th class=&quot;col4&quot;&gt;DMCP Version&lt;/th&gt;&lt;th class=&quot;col5&quot;&gt;Firmware Files&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 21/09/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 06434 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; C47 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 0.109.02.05 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 3.25 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:c47_010824_release.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:c47_010824_release.zip (546 KB)&quot;&gt; C47 Release : 1 August 2024 &lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; 18/02/25 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 06434 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; C47 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 0.109.02.07b4 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 3.25 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:c47-dmcp-00.109.02.07b4.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:calculator:info:c47-dmcp-00.109.02.07b4.zip (1.1 MB)&quot;&gt; C47 Release : 2 Jan 2025 &lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1678-2010&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Firmware&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;firmware&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;453-2011&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;rtc_correction&quot;&gt;RTC Correction&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; approx. error +3.4s/d = +39.3pm&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Correction factor C from &lt;code&gt;C = 2^20 P /(10^6 + P)&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Approximations : &lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;C = 1.04858 P&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;P = 0.953674 C&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Calculated &lt;code&gt;C = -41.26&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Put a text file &lt;code&gt;/rtccalib.cfg&lt;/code&gt; in root directory of FAT drive with contents:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;-41.26&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;RTC Correction&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;rtc_correction&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;2012-2336&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;section2022&quot;&gt;2022&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;table sectionedit8&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Start&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Stop&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Accumulated Error (s)&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Rate Error (s/d)&lt;/th&gt;&lt;th class=&quot;col4&quot;&gt;Comments&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;28/3/22 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;7/11/22 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;-5.8&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;0.0 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; -5.8s over period 224 days = -0.03s/d &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table2&amp;quot;,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;2354-2484&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;2022&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;section2022&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;2337-2485&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;update_january_2026&quot;&gt;Update January 2026&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Using my &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:watchcheck&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:watchcheck&quot; data-wiki-id=&quot;public:miscellany:watches:watchcheck&quot;&gt;python Watchcheck&lt;/a&gt;
&lt;/p&gt;
&lt;div class=&quot;table sectionedit10&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Date Start&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Date Check&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Delta&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Latest Rate Error&lt;/th&gt;&lt;th class=&quot;col4&quot;&gt;Average Rate Error&lt;/th&gt;&lt;th class=&quot;col5&quot;&gt;Comments&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;26/01/26&lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; -43.0 &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; Start Period. Correction -39.1ppm &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;26/01/26&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;27/01/26&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; -43.2 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; -0.3 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; -0.3 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; After 24 hours &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;26/01/26&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;04/02/26&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; -42.8 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; +0.1 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; +0.0 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; After 9 days &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table3&amp;quot;,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;2585-2840&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Update January 2026&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;update_january_2026&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;2486-2843&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit11&quot; id=&quot;swiss_micros_info&quot;&gt;Swiss Micros Info&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Firmware      : &lt;a href=&quot;https://technical.swissmicros.com/dm42/firmware/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://technical.swissmicros.com/dm42/firmware/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://technical.swissmicros.com/dm42/firmware/&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Documentation : &lt;a href=&quot;https://technical.swissmicros.com/dm42/doc/dm42_user_manual.html&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://technical.swissmicros.com/dm42/doc/dm42_user_manual.html&quot; rel=&quot;ugc nofollow noopener&quot;&gt;Online HTML User Manual&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Documentation : &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:calculator:info:dm42_user_manual.pdf&quot; class=&quot;media mediafile mf_pdf&quot; title=&quot;public:calculator:info:dm42_user_manual.pdf (677.8 KB)&quot;&gt; PDF Manual&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Product Page  : &lt;a href=&quot;https://www.swissmicros.com/product/dm42&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.swissmicros.com/product/dm42&quot; rel=&quot;ugc nofollow noopener&quot;&gt;DM42&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Swiss Micros Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;swiss_micros_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;2844-3215&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit12&quot; id=&quot;hp-42s_owner_s_manuals&quot;&gt;HP-42S Owner&amp;#039;s Manuals&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Download from &lt;a href=&quot;https://literature.hpcalc.org&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://literature.hpcalc.org&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://literature.hpcalc.org&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HP-42S Owners&amp;#039;s Manual : &lt;a href=&quot;https://literature.hpcalc.org/community/hp42s-om-en.pdf&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://literature.hpcalc.org/community/hp42s-om-en.pdf&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://literature.hpcalc.org/community/hp42s-om-en.pdf&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HP-42S Programming Examples &amp;amp; Techniques : &lt;a href=&quot;https://literature.hpcalc.org/community/hp42s-prog-en.pdf&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://literature.hpcalc.org/community/hp42s-prog-en.pdf&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://literature.hpcalc.org/community/hp42s-prog-en.pdf&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;HP-42S Owner&amp;#039;s Manuals&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hp-42s_owner_s_manuals&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;3216-3499&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit13&quot; id=&quot;dm42_program_listings&quot;&gt;DM42 Program Listings&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; See &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:progs:dm42_progs&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:progs:dm42_progs&quot; data-wiki-id=&quot;public:calculator:progs:dm42_progs&quot;&gt;DM42 Progs&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:calculator&amp;amp;do=showtag&amp;amp;tag=calculator&quot; class=&quot;wikilink1&quot; title=&quot;tag:calculator&quot; rel=&quot;tag&quot;&gt;calculator&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:dm42&amp;amp;do=showtag&amp;amp;tag=dm42&quot; class=&quot;wikilink1&quot; title=&quot;tag:dm42&quot; rel=&quot;tag&quot;&gt;dm42&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DM42 Program Listings&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dm42_program_listings&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;3500-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 17 Feb 2026 16:00:57 +0000</pubDate>
        </item>
        <item>
            <title>Calculator Hardware</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:info:start</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:start&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:start&quot; data-wiki-id=&quot;public:calculator:start&quot;&gt;Calculators&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;calculator_hardware&quot;&gt;Calculator Hardware&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;script type=&quot;text/javascript&quot;&gt; catlist_baseurl = &quot;https://www.g4slv.info/dokuwiki/&quot;; catlist_basescript = &quot;doku.php&quot;; catlist_useslash = 0; catlist_userewrite = 0; catlist_sepchar = &quot;_&quot;; catlist_deaccent = 1; catlist_pagename_sanitize = 1; &lt;/script&gt;&lt;ul class=&quot;catlist-nslist&quot; &gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:info:dm15l_information&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:info:dm15l_information&quot; data-wiki-id=&quot;public:calculator:info:dm15l_information&quot;&gt;DM15L Info&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:info:dm16l_info&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:info:dm16l_info&quot; data-wiki-id=&quot;public:calculator:info:dm16l_info&quot;&gt;DM16L Info&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:info:dm32_info&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:info:dm32_info&quot; data-wiki-id=&quot;public:calculator:info:dm32_info&quot;&gt;DM32 Info&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:info:dm41l_info&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:info:dm41l_info&quot; data-wiki-id=&quot;public:calculator:info:dm41l_info&quot;&gt;DM41L Info&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:info:dm41x_info&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:info:dm41x_info&quot; data-wiki-id=&quot;public:calculator:info:dm41x_info&quot;&gt;DM41X Info&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:info:dm42_info&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:info:dm42_info&quot; data-wiki-id=&quot;public:calculator:info:dm42_info&quot;&gt;DM42 Info&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:info:hp11c_info&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:info:hp11c_info&quot; data-wiki-id=&quot;public:calculator:info:hp11c_info&quot;&gt;HP-11C Info&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:info:hp35s_info&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:info:hp35s_info&quot; data-wiki-id=&quot;public:calculator:info:hp35s_info&quot;&gt;HP-35s Info&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/p&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 24/04/23 16:19&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Calculator Hardware&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;calculator_hardware&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;13-126&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:calculator&amp;amp;do=showtag&amp;amp;tag=calculator&quot; class=&quot;wikilink1&quot; title=&quot;tag:calculator&quot; rel=&quot;tag&quot;&gt;calculator&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;127-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 17 Feb 2026 17:48:55 +0000</pubDate>
        </item>
        <item>
            <title>HP11C Progs</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:progs:hp11c_progs</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:progs:start&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:progs:start&quot; data-wiki-id=&quot;public:calculator:progs:start&quot;&gt;Programs&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;hp11c_progs&quot;&gt;HP11C Progs&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; Description &lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;HP11C Progs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hp11c_progs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-62&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;section_one&quot;&gt;Section One&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Section One&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;section_one&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;63-88&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;section_two&quot;&gt;Section Two&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 24/04/23 16:09&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Section Two&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;section_two&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;89-158&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:calculator&amp;amp;do=showtag&amp;amp;tag=calculator&quot; class=&quot;wikilink1&quot; title=&quot;tag:calculator&quot; rel=&quot;tag&quot;&gt;calculator&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:hp11c&amp;amp;do=showtag&amp;amp;tag=hp11c&quot; class=&quot;wikilink1&quot; title=&quot;tag:hp11c&quot; rel=&quot;tag&quot;&gt;hp11c&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;159-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sat, 24 Jan 2026 08:12:17 +0000</pubDate>
        </item>
        <item>
            <title>HP35s Progs</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:progs:hp35s_progs</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:progs:start&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:progs:start&quot; data-wiki-id=&quot;public:calculator:progs:start&quot;&gt;Programs&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;hp35s_progs&quot;&gt;HP35s Progs&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;============= 13/2/22 ===========================


#### HP35s Butterworth Filter designer
#
# Changed 12/2/22 to make it fit in a single prog label with no
# sub routines (ie using up additional labels). Frequency entry
# now in MHz.
# Results are copied from indirect-only registers 1-&amp;gt;9 into Registers R -&amp;gt; Z 
# to make them accessible from RCL R, RCL S etc. on keyboard 
#



M001 LBL M
M002 SF 0
M003 INPUT F
M004 1E6
M005 X
M006 STO F
M007 INPUT N
M008 X&amp;lt;0?
M009 CF 0
M010 18.026
M011 STO A
M012 RCL A
M013 IP
M014 +/-
M015 STO J
M016 0
M017 STO(J)
M018 ISG A
M019 GTO M012
M020 ENG 3
M021 RCL N
M022 ABS
M023 1000
M024 /
M025 1
M026 +
M027 STO I
M028 STO H
M029 RCL I
M030 IP
M031 2
M032 X
M033 1
M034 -
M035 180
M036 X
M037 RCL N
M038 ABS
M039 2
M040 X
M041 /
M042 SIN
M043 2
M044 X
M045 FS? 0
M046 1/x
M047 STO(I)
M048 ISG I
M049 GTO M029
M050 RCL H
M051 STO I
M052 RCL I
M053 IP
M054 2
M055 /
M056 FP
M057 FS? 0
M058 GTO M101
M059 GTO M105
M060 RTN
M061 RCL(I)
M062 RCL F
M063 2
M064 X
M065 PI
M066 X
M067 /
M068 50
M069 X
M070 STO(I)
M071 RCL I
M072 17
M073 +
M074 +/-
M075 STO J
M076 RCL(I)
M077 STO(J)
M078 ISG I
M079 GTO M052
M080 RTN
M081 RCL(I)
M082 RCL F
M083 2
M084 X
M085 PI
M086 X
M087 /
M088 50
M089 /
M090 STO(I)
M091 RCL I
M092 17
M093 +
M094 +/-
M095 STO J
M096 RCL(I)
M097 STO(J)
M098 ISG I
M099 GTO M052
M100 RTN
M101 x=0?
M102 GTO M081
M103 GTO M061
M104 RTN
M015 x=0?
M106 GTO M061
M107 GTO M081
M108 RTN
&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;HP35s Progs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hp35s_progs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-1494&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;page_info&quot;&gt;Page Info&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Page created Thu May 26 17:37:39 2022 by John Pumford-Green
&lt;/p&gt;

&lt;p&gt;
Page last updated: 24/01/26 08:11 GMT
&lt;/p&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 24/04/23 16:10&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Page Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;page_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;1495-1664&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:calculator&amp;amp;do=showtag&amp;amp;tag=calculator&quot; class=&quot;wikilink1&quot; title=&quot;tag:calculator&quot; rel=&quot;tag&quot;&gt;calculator&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:hp35s&amp;amp;do=showtag&amp;amp;tag=hp35s&quot; class=&quot;wikilink1&quot; title=&quot;tag:hp35s&quot; rel=&quot;tag&quot;&gt;hp35s&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1665-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sat, 24 Jan 2026 08:11:53 +0000</pubDate>
        </item>
        <item>
            <title>Programs</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:progs:start</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:start&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:start&quot; data-wiki-id=&quot;public:calculator:start&quot;&gt;Calculators&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;programs&quot;&gt;Programs&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;script type=&quot;text/javascript&quot;&gt; catlist_baseurl = &quot;https://www.g4slv.info/dokuwiki/&quot;; catlist_basescript = &quot;doku.php&quot;; catlist_useslash = 0; catlist_userewrite = 0; catlist_sepchar = &quot;_&quot;; catlist_deaccent = 1; catlist_pagename_sanitize = 1; &lt;/script&gt;&lt;ul class=&quot;catlist-nslist&quot; &gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:progs:dm15l_progs&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:progs:dm15l_progs&quot; data-wiki-id=&quot;public:calculator:progs:dm15l_progs&quot;&gt;DM15L Progs&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:progs:dm16l_progs&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:progs:dm16l_progs&quot; data-wiki-id=&quot;public:calculator:progs:dm16l_progs&quot;&gt;DM16L Progs&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:progs:dm32_progs&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:progs:dm32_progs&quot; data-wiki-id=&quot;public:calculator:progs:dm32_progs&quot;&gt;DM32 Progs&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:progs:dm41l_progs&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:progs:dm41l_progs&quot; data-wiki-id=&quot;public:calculator:progs:dm41l_progs&quot;&gt;DM41L Progs&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:progs:dm41x_progs&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:progs:dm41x_progs&quot; data-wiki-id=&quot;public:calculator:progs:dm41x_progs&quot;&gt;DM41X Progs&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:progs:dm42_progs&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:progs:dm42_progs&quot; data-wiki-id=&quot;public:calculator:progs:dm42_progs&quot;&gt;DM42 Progs&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:progs:hp11c_progs&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:progs:hp11c_progs&quot; data-wiki-id=&quot;public:calculator:progs:hp11c_progs&quot;&gt;HP11C Progs&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:calculator:progs:hp35s_progs&quot; class=&quot;wikilink1&quot; title=&quot;public:calculator:progs:hp35s_progs&quot; data-wiki-id=&quot;public:calculator:progs:hp35s_progs&quot;&gt;HP35s Progs&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/p&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 24/04/23 16:02&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Programs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;programs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;13-114&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;115-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 04 Mar 2025 07:27:28 +0000</pubDate>
        </item>
        <item>
            <title>Dokuwiki Mirror</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:dokuwiki_mirror</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:start&quot; class=&quot;wikilink1&quot; title=&quot;public:computers:archive:start&quot; data-wiki-id=&quot;public:computers:archive:start&quot;&gt;Archive&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;dokuwiki_mirror&quot;&gt;Dokuwiki Mirror&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
I&amp;#039;m running a &lt;strong&gt;SANDBOX&lt;/strong&gt; installation of dokuwiki on the small headless server in have in the shack.
&lt;/p&gt;

&lt;p&gt;
This is to allow me to mess around with templates and layouts and things without impacting the &lt;em&gt;real&lt;/em&gt; wiki.
&lt;/p&gt;

&lt;p&gt;
To give it some data - a full mirror of the existing &lt;em&gt;real&lt;/em&gt; wiki - I&amp;#039;ve used &lt;code&gt;rsync&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;www&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; rsync &lt;span class=&quot;re5&quot;&gt;-av&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--delete&lt;/span&gt; gm4slv&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;gm4slv.org.uk:&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;www&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dokuwiki&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; .&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dokuwiki&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
This copies the &lt;em&gt;production&lt;/em&gt; wiki into the web server root on the little &lt;em&gt;sandbox&lt;/em&gt; machine.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteclassic&quot;&gt;&lt;strong&gt;UPDATE — &lt;em&gt;John Pumford-Green 27/04/23 05:53&lt;/em&gt;&lt;/strong&gt;
&lt;p&gt;
Added &lt;code&gt;–delete&lt;/code&gt; to the command, to remove pages in the Mirror copy that have been deleted from the VPS (production) server, to keep them properly in step.
&lt;/p&gt;

&lt;/div&gt;
&lt;p&gt;
I can then play around to my heart&amp;#039;s content.
&lt;/p&gt;

&lt;p&gt;
The same mechanism would work to retrieve/install the whole wiki from a  &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:dokuwiki_backup&quot; class=&quot;wikilink1&quot; title=&quot;public:computers:archive:dokuwiki_backup&quot; data-wiki-id=&quot;public:computers:archive:dokuwiki_backup&quot;&gt;backup&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
I&amp;#039;ve put it in a shell script:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;WEBDIR&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;www&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dokuwiki&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;SERVERDIR&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;www&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dokuwiki&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;SERVER&lt;/span&gt;=gm4slv.org.uk
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt;  rsync &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;ssh -l gm4slv -i /home/gm4slv/.ssh/id_rsa&amp;quot;&lt;/span&gt;  &lt;span class=&quot;re5&quot;&gt;-av&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$SERVER&lt;/span&gt;:&lt;span class=&quot;re1&quot;&gt;$SERVERDIR&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$WEBDIR&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
This means I can automate the mirroring with &lt;code&gt;crontab&lt;/code&gt; of I wanted to, but it would mean the &lt;em&gt;sandbox&lt;/em&gt; will lose any local modifications I&amp;#039;ve done. Perhaps it&amp;#039;s best to keep the option to &lt;em&gt;revert to production version&lt;/em&gt; as something I do from time to time, rather then automatically.
&lt;/p&gt;

&lt;p&gt;
(UPDATE — &lt;em&gt;John Pumford-Green 30/05/22 19:37&lt;/em&gt; )
&lt;/p&gt;

&lt;p&gt;
Encrypted Password Plugin…. see &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:sandbox_server&quot; class=&quot;wikilink1&quot; title=&quot;public:computers:archive:sandbox_server&quot; data-wiki-id=&quot;public:computers:archive:sandbox_server&quot;&gt;Sandbox Server&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Dokuwiki Mirror&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dokuwiki_mirror&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-1693&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;page_info&quot;&gt;Page Info&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 30/05/22 13:37&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Page last updated: 04/06/26 08:17 BST
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:dokuwiki&amp;amp;do=showtag&amp;amp;tag=dokuwiki&quot; class=&quot;wikilink1&quot; title=&quot;tag:dokuwiki&quot; rel=&quot;tag&quot;&gt;dokuwiki&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:linux&amp;amp;do=showtag&amp;amp;tag=linux&quot; class=&quot;wikilink1&quot; title=&quot;tag:linux&quot; rel=&quot;tag&quot;&gt;linux&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Page Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;page_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;1694-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 07:17:18 +0000</pubDate>
        </item>
        <item>
            <title>Code &amp; Command Snippets</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:gists</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:start&quot; class=&quot;wikilink1&quot; title=&quot;public:computers:archive:start&quot; data-wiki-id=&quot;public:computers:archive:start&quot;&gt;Archive&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;code_command_snippets&quot;&gt;Code &amp;amp; Command Snippets&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Code &amp;amp; Command Snippets&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;code_command_snippets&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-55&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;windows_wifi_disconnect&quot;&gt;Windows WiFi Disconnect&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Windows will disconnect a WIFI connection when it discovers there&amp;#039;s no WAN internet - presumably Windows thinks ALL networks are connected to the Internet and this prevents using WIFI for an isolated LAN, and also throws you off the WLAN whenever the ADSL connection fails, even when you&amp;#039;re busy using only internal LAN sessions. 
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;THIS IS WRONG BEHAVIOUR.&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
I found a solution, and typically it&amp;#039;s a REGEDIT task:
&lt;/p&gt;

&lt;p&gt;
From : &lt;a href=&quot;https://superuser.com/questions/1650052/how-to-keep-windows-10-connected-to-wifi-without-internet&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://superuser.com/questions/1650052/how-to-keep-windows-10-connected-to-wifi-without-internet&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://superuser.com/questions/1650052/how-to-keep-windows-10-connected-to-wifi-without-internet&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Add a Registry DWORD “NoActiveProbe” value “1” at &lt;code&gt;Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\NetworkConnectivityStatusIndicator&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Job Done. You stay on your LAN even when the interwebs is down. 
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Acomputers%3Aarchive%3Agists&amp;amp;media=public:computers:screenshot_2024-03-26_20.19.56.png&quot; class=&quot;media&quot; title=&quot;public:computers:screenshot_2024-03-26_20.19.56.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=600&amp;amp;tok=409612&amp;amp;media=public:computers:screenshot_2024-03-26_20.19.56.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Windows WiFi Disconnect&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;windows_wifi_disconnect&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;56-902&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;chrome_redirects&quot;&gt;Chrome redirects&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
To remove a “permanent redirect” - e.g. from an &lt;code&gt;http&lt;/code&gt; to an &lt;code&gt;https&lt;/code&gt; URL - I found the answer here:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.neilwithdata.com/chrome-redirect-forget&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.neilwithdata.com/chrome-redirect-forget&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.neilwithdata.com/chrome-redirect-forget&lt;/a&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Open the Chrome Developer Tools (F12)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Go to the Network tab and make sure Disable cache is ticked&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Reload (or navigate to) the page you no longer want to be redirected while keeping the dev tools open.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 27/04/23 06:12&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Chrome redirects&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;chrome_redirects&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;903-1351&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;vim_pasting&quot;&gt;Vim Pasting&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
I recently had problems pasting text into Vim by the traditional &lt;kbd class=&quot;__keyboard&quot;&gt;RIGHT&lt;/kbd&gt; click method. Vim would enter &lt;code&gt;Insert(VISUAL)&lt;/code&gt; mode instead.
&lt;/p&gt;

&lt;p&gt;
One solution when using &lt;code&gt;Putty&lt;/code&gt; is to use its own mechanism :
&lt;/p&gt;

&lt;p&gt;
&lt;kbd class=&quot;__keyboard&quot;&gt;SHIFT&lt;/kbd&gt;+&lt;kbd class=&quot;__keyboard&quot;&gt;INS&lt;/kbd&gt;
&lt;/p&gt;

&lt;p&gt;
I prefer to use &lt;kbd class=&quot;__keyboard&quot;&gt;RIGHT&lt;/kbd&gt; click, as it&amp;#039;s more natural so I found the solution is to add
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; mouse-=a&lt;/pre&gt;

&lt;p&gt;
to &lt;code&gt;~/.vimrc&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
This solves the problem, and I don&amp;#039;t need to use &lt;code&gt;nano&lt;/code&gt; when editing text files on my remote server via &lt;code&gt;SSH&lt;/code&gt; using Putty.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Vim Pasting&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;vim_pasting&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1352-1885&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;raspberry_pi_stuff&quot;&gt;Raspberry Pi Stuff&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; find Raspberry Pi Model : &lt;code&gt;cat /sys/firmware/devicetree/base/model&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; mount a raspberry pi image&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code bash&quot;&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;laptop:~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;piimg $ &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; losetup &lt;span class=&quot;re5&quot;&gt;-Pf&lt;/span&gt; igate.img
gm4slv&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;laptop:~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;piimg $ lsblk
NAME      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
loop0       &lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;:&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;    &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;   4.3G  &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; loop
├─loop0p1 &lt;span class=&quot;nu0&quot;&gt;259&lt;/span&gt;:&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;    &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;   256M  &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; part
└─loop0p2 &lt;span class=&quot;nu0&quot;&gt;259&lt;/span&gt;:&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;    &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;     4G  &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; part
sda         &lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;:&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;    &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 298.1G  &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; disk
├─sda1      &lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;:&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;    &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 235.1G  &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; part &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
├─sda2      &lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;:&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;    &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;     1K  &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; part
├─sda3      &lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;:&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;    &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;  50.9G  &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; part
└─sda5      &lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;:&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;    &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;  12.1G  &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; part &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;SWAP&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
sr0        &lt;span class=&quot;nu0&quot;&gt;11&lt;/span&gt;:&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;    &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;  1024M  &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; rom
gm4slv&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;laptop:~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;piimg $ &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;loop0p2 &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; remove mounted image&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code bash&quot;&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;laptop:~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;piimg $ &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;umount&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt
gm4slv&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;laptop:~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;piimg $ &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; losetup &lt;span class=&quot;re5&quot;&gt;-D&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Raspberry Pi Stuff&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;raspberry_pi_stuff&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1886-2710&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;git&quot;&gt;Git&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
 Basic Workflow
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; do all changes to code&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;git add .&lt;/code&gt; to add changed files to staging&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;git commit -m “commit message” &lt;/code&gt; to do the commit&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;git push&lt;/code&gt; to push new commits to &lt;code&gt;github&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Git&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;git&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;2711-2930&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;windows_host_file&quot;&gt;Windows Host File&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Start  → Windows Accessories → Notepad → &amp;lt;right click&amp;gt; … more…Run as Administrator&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; edit &lt;code&gt;C:\Windows\System32\drivers\etc\hosts&lt;/code&gt; (set &lt;code&gt;All files&lt;/code&gt; rather than &lt;code&gt;txt&lt;/code&gt; to be able to see the &lt;code&gt;hosts&lt;/code&gt; file in the file chooser)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Save&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Windows Host File&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;windows_host_file&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;2931-3213&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;auto_ssh_tunnels&quot;&gt;Auto SSH Tunnels&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Used on remote installations to create persistent SSH &lt;code&gt;reverse&lt;/code&gt; tunnels. 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Auto SSH Tunnels&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;auto_ssh_tunnels&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;3214-3320&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;an_example&quot;&gt;An example&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:svx&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:svx&quot; data-wiki-id=&quot;public:radio:topics:svxlink:svx&quot;&gt;svxlink hotspot&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;An example&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;an_example&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;3321-3380&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit10&quot; id=&quot;page_info&quot;&gt;Page Info&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Page created Thu May 26 14:00:21 2022 by John Pumford-Green
&lt;/p&gt;

&lt;p&gt;
Page last updated: 04/06/26 21:03 BST
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:linux&amp;amp;do=showtag&amp;amp;tag=linux&quot; class=&quot;wikilink1&quot; title=&quot;tag:linux&quot; rel=&quot;tag&quot;&gt;linux&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:pi&amp;amp;do=showtag&amp;amp;tag=pi&quot; class=&quot;wikilink1&quot; title=&quot;tag:pi&quot; rel=&quot;tag&quot;&gt;pi&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Page Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;page_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;3381-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 20:03:26 +0000</pubDate>
        </item>
        <item>
            <title>Java JRE and Echolink Proxy</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:jave_jre</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:start&quot; class=&quot;wikilink1&quot; title=&quot;public:computers:archive:start&quot; data-wiki-id=&quot;public:computers:archive:start&quot;&gt;Archive&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;java_jre_and_echolink_proxy&quot;&gt;Java JRE and Echolink Proxy&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Java JRE and Echolink Proxy&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;java_jre_and_echolink_proxy&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-59&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;setting_up_echolink_proxy_on_vps&quot;&gt;Setting up Echolink Proxy on VPS&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;apt-get install&lt;/span&gt; default-jre-headless
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;wget&lt;/span&gt; http:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;echolink.org&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;downloads&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EchoLinkProxy_1_2_3.zip
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;apt-get install&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;unzip&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;unzip&lt;/span&gt; EchoLinkProxy_1_2_3.zip
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;755&lt;/span&gt; EcholinkProxy.jar
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;vi&lt;/span&gt; ELProxy.conf&lt;/pre&gt;

&lt;p&gt;
and set new password
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;vps_firewall&quot;&gt;VPS Firewall&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
on fasthost control panel open 
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;TCP/8100&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;UDP/5198&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;UDP/5199&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:computers:fhfw.png&quot; class=&quot;media&quot; title=&quot;public:computers:fhfw.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=600&amp;amp;tok=065fdb&amp;amp;media=public:computers:fhfw.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Setting up Echolink Proxy on VPS&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;setting_up_echolink_proxy_on_vps&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;60-498&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;start_proxy&quot;&gt;Start Proxy&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;code&gt;java -jar EcholinkProxy.jar&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co4&quot;&gt;gm4slv@gm4slv:~$ &lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;java&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-jar&lt;/span&gt; EchoLinkProxy.jar
EchoLink Proxy version 1.2.3
Listening &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; connections on port &lt;span class=&quot;nu0&quot;&gt;8100&lt;/span&gt;
Ready &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; new client connection.
Client connected: 80.229.223.86
Client authenticated &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re2&quot;&gt;call&lt;/span&gt;=GM4SLV&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;/pre&gt;

&lt;p&gt;
This runs and works okay.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Start Proxy&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;start_proxy&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;499-817&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;start_in_tmux&quot;&gt;Start in tmux&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;dl class=&quot;file&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?do=export_code&amp;amp;id=public:computers:archive:jave_jre&amp;amp;codeblock=2&quot; title=&quot;Download Snippet&quot; class=&quot;mediafile mf_sh&quot;&gt;start_proxy.sh&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code file bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;session&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;proxy&amp;quot;&lt;/span&gt;
&amp;nbsp;
tmux start-server
&amp;nbsp;
tmux new-session &lt;span class=&quot;re5&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-s&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$session&lt;/span&gt;
&amp;nbsp;
tmux rename-window &lt;span class=&quot;st0&quot;&gt;&amp;quot;echolink&amp;quot;&lt;/span&gt;
&amp;nbsp;
tmux selectp &lt;span class=&quot;re5&quot;&gt;-t&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
tmux send-keys &lt;span class=&quot;st0&quot;&gt;&amp;quot;java -jar /home/gm4slv/EchoLinkProxy.jar&amp;quot;&lt;/span&gt; C-m&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
add &lt;code&gt;crontab&lt;/code&gt; to start &lt;code&gt;@reboot&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;@reboot sleep 30 &amp;amp;&amp;amp; sudo -u gm4slv /home/gm4slv/start_proxy.sh &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;/code&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Start in tmux&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;start_in_tmux&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;818-1196&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;page_info&quot;&gt;Page Info&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 04/06/22 07:26&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Page last updated: 30/12/25 09:55 GMT
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:svxlink&amp;amp;do=showtag&amp;amp;tag=svxlink&quot; class=&quot;wikilink1&quot; title=&quot;tag:svxlink&quot; rel=&quot;tag&quot;&gt;svxlink&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:echolink&amp;amp;do=showtag&amp;amp;tag=echolink&quot; class=&quot;wikilink1&quot; title=&quot;tag:echolink&quot; rel=&quot;tag&quot;&gt;echolink&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:linux&amp;amp;do=showtag&amp;amp;tag=linux&quot; class=&quot;wikilink1&quot; title=&quot;tag:linux&quot; rel=&quot;tag&quot;&gt;linux&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Page Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;page_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1197-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 30 Dec 2025 09:55:07 +0000</pubDate>
        </item>
        <item>
            <title>MediaWiki VPS Install</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:mediawiki</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:start&quot; class=&quot;wikilink1&quot; title=&quot;public:computers:archive:start&quot; data-wiki-id=&quot;public:computers:archive:start&quot;&gt;Archive&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;mediawiki_vps_install&quot;&gt;MediaWiki VPS Install&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;div class=&quot;plugin_note noteclassic&quot;&gt;— &lt;em&gt;John Pumford-Green 27/04/23 06:21&lt;/em&gt;
&lt;p&gt;
I have recenlty rebuilt the VPS install during a hardware upgrade, and the &lt;code&gt;Mediawiki&lt;/code&gt; install is no longer in place.
&lt;/p&gt;

&lt;p&gt;
The following guide would allow it to be re-installed should I decide to.
&lt;/p&gt;

&lt;/div&gt;
&lt;p&gt;
To compare &lt;code&gt;mediawiki&lt;/code&gt; with &lt;code&gt;dokuwiki&lt;/code&gt; I installed &lt;code&gt;mediawiki&lt;/code&gt; on my little shack server. 
&lt;/p&gt;

&lt;p&gt;
I followed the instructions here
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_Debian_or_Ubuntu&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_Debian_or_Ubuntu&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.mediawiki.org/wiki/Manual:Running_MediaWiki_on_Debian_or_Ubuntu&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
and did a few tweaks etc. to get things running.
&lt;/p&gt;

&lt;p&gt;
I forgot to document the tweaks!
&lt;/p&gt;

&lt;p&gt;
So I thought there would be no harm in installing it on my VPS to run alongside the main &lt;code&gt;dokuwiki&lt;/code&gt; site, with a view to deciding whether to switch to &lt;code&gt;mediawiki&lt;/code&gt; later.
&lt;/p&gt;

&lt;p&gt;
Here are my steps to install mediawiki on the VPS machine, which already has a fully configured and working webserver &amp;amp; PHP. The main addition will be setting up a SQL server (probably MariaDB).
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;MediaWiki VPS Install&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;mediawiki_vps_install&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;16-975&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;installing_pre-requisites&quot;&gt;Installing pre-requisites&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;apt-get install&lt;/span&gt; apache2 mariadb-server php php-mysql libapache2-mod-php php-xml php-mbstring&lt;/pre&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;wget&lt;/span&gt; https:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;releases.wikimedia.org&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mediawiki&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1.38&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mediawiki-1.38.1.tar.gz&lt;/pre&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;tar&lt;/span&gt; zxvf mediawiki-1.38.1.tar.gz&lt;/pre&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;www&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mediawiki&lt;/pre&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mv&lt;/span&gt; mediawiki-1.38.1&lt;span class=&quot;sy0&quot;&gt;/*&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;www&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;html&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mediawiki&lt;/pre&gt;

&lt;p&gt;
That has installed a SQL server and the &lt;code&gt;mediawiki&lt;/code&gt; files into the webserver root. Next is to configure the SQL database to hold the wiki.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Installing pre-requisites&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;installing_pre-requisites&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;976-1541&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;sql_configuration&quot;&gt;SQL Configuration&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code sql&quot;&gt;gm4slv@gm4slv:~$ sudo service mysql &lt;span class=&quot;kw1&quot;&gt;START&lt;/span&gt;
gm4slv@gm4slv:~$ sudo mysql &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;u root &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p
Enter password:
Welcome &lt;span class=&quot;kw1&quot;&gt;TO&lt;/span&gt; the MariaDB monitor&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;  Commands &lt;span class=&quot;kw1&quot;&gt;END&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;WITH&lt;/span&gt; ; &lt;span class=&quot;kw1&quot;&gt;OR&lt;/span&gt; \g&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;
Your MariaDB connection id &lt;span class=&quot;kw1&quot;&gt;IS&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;36&lt;/span&gt;
Server version: 10&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;3&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;34&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;MariaDB&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt;deb10u1 Debian &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&amp;nbsp;
Copyright &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;c&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2000&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2018&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; Oracle&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; MariaDB Corporation Ab &lt;span class=&quot;kw1&quot;&gt;AND&lt;/span&gt; others&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;TYPE&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;help;&#039;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;OR&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\h&lt;/span&gt;&#039;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;FOR&lt;/span&gt; help&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;TYPE&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\c&lt;/span&gt;&#039;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;TO&lt;/span&gt; clear the &lt;span class=&quot;kw1&quot;&gt;CURRENT&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;INPUT&lt;/span&gt; statement&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;
&amp;nbsp;
MariaDB &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;NONE&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;CREATE&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;USER&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;new_mysql_user&#039;&lt;/span&gt;@&lt;span class=&quot;st0&quot;&gt;&#039;localhost&#039;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;IDENTIFIED&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;BY&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;mwPass&#039;&lt;/span&gt;;
Query OK&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;ROWS&lt;/span&gt; affected &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0.018&lt;/span&gt; sec&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
MariaDB &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;NONE&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; quit;
Bye&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;create_the_database_and_grant_the_user_access&quot;&gt;Create the database and grant the user access&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code sql&quot;&gt;gm4slv@gm4slv:~$ sudo mysql &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;u root &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;p
Enter password:
Welcome &lt;span class=&quot;kw1&quot;&gt;TO&lt;/span&gt; the MariaDB monitor&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;  Commands &lt;span class=&quot;kw1&quot;&gt;END&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;WITH&lt;/span&gt; ; &lt;span class=&quot;kw1&quot;&gt;OR&lt;/span&gt; \g&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;
Your MariaDB connection id &lt;span class=&quot;kw1&quot;&gt;IS&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;37&lt;/span&gt;
Server version: 10&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;3&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;34&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;MariaDB&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;+&lt;/span&gt;deb10u1 Debian &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&amp;nbsp;
Copyright &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;c&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2000&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2018&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; Oracle&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; MariaDB Corporation Ab &lt;span class=&quot;kw1&quot;&gt;AND&lt;/span&gt; others&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;TYPE&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;help;&#039;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;OR&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\h&lt;/span&gt;&#039;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;FOR&lt;/span&gt; help&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;TYPE&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\c&lt;/span&gt;&#039;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;TO&lt;/span&gt; clear the &lt;span class=&quot;kw1&quot;&gt;CURRENT&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;INPUT&lt;/span&gt; statement&lt;span class=&quot;sy0&quot;&gt;.&lt;/span&gt;
&amp;nbsp;
MariaDB &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;NONE&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;CREATE&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;DATABASE&lt;/span&gt; my_wiki;
Query OK&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;ROW&lt;/span&gt; affected &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0.003&lt;/span&gt; sec&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
MariaDB &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;NONE&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;USE&lt;/span&gt; my_wiki;
&lt;span class=&quot;kw1&quot;&gt;DATABASE&lt;/span&gt; changed
MariaDB &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;my_wiki&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;GRANT&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;ALL&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;ON&lt;/span&gt; my_wiki&lt;span class=&quot;sy0&quot;&gt;.*&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;TO&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;new_mysql_user&#039;&lt;/span&gt;@&lt;span class=&quot;st0&quot;&gt;&#039;localhost&#039;&lt;/span&gt;;
Query OK&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;ROWS&lt;/span&gt; affected &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0.001&lt;/span&gt; sec&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
MariaDB &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;my_wiki&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; quit;
Bye&lt;/pre&gt;

&lt;p&gt;
Browse to &lt;a href=&quot;https://gm4slv.org.uk/mediawiki&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://gm4slv.org.uk/mediawiki&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://gm4slv.org.uk/mediawiki&lt;/a&gt; and got an error message that there was a PHP component missing &lt;code&gt;intl&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;apt-get install&lt;/span&gt; php-intl&lt;/pre&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; service apache2 restart&lt;/pre&gt;

&lt;p&gt;
Browse to &lt;code&gt;mediawiki&lt;/code&gt; again and all seems well. The message now is that LocalSettings.php is missing, which is created at the next step, following the on screen link.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:computers:screenshot_2022-06-29_15.43.11.png&quot; class=&quot;media&quot; title=&quot;public:computers:screenshot_2022-06-29_15.43.11.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=400&amp;amp;tok=5d5cd8&amp;amp;media=public:computers:screenshot_2022-06-29_15.43.11.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Configure the SQL access: 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Database Username : new_mysql_user
Database Password : mwPass&lt;/pre&gt;

&lt;p&gt;
Complete the questions, select the required extensions etc. and download the &lt;code&gt;LocalSettings.php&lt;/code&gt; file. Then upload the file to the VPS and put it in &lt;code&gt;/var/www/html/mediawiki&lt;/code&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;SQL Configuration&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;sql_configuration&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1542-3580&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;tweaks&quot;&gt;Tweaks&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;file_uploads&quot;&gt;File uploads&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Make sure &lt;code&gt;images&lt;/code&gt; directory has &lt;code&gt;ugo+rwx&lt;/code&gt; permissions
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;logo&quot;&gt;Logo&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Somehow upload a &lt;code&gt;logo.png&lt;/code&gt; into &lt;code&gt;images&lt;/code&gt; and edit &lt;code&gt;LocalSetting.php&lt;/code&gt; to point at the log:
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;re0&quot;&gt;$wgLogos&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;
        &lt;span class=&quot;st_h&quot;&gt;&#039;1x&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$wgResourceBasePath&lt;/span&gt;/images/logo.png&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;st_h&quot;&gt;&#039;icon&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$wgResourceBasePath&lt;/span&gt;/images/logo.png&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;image_thumbnails_pdf&quot;&gt;Image thumbnails &amp;amp; pdf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
&lt;code&gt;to be continued&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; apt &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; ghostscript imagemagick xpdf-utils &lt;/pre&gt;

&lt;p&gt;
add to LocalSettings.php:
&lt;/p&gt;
&lt;pre class=&quot;code php&quot;&gt;&lt;span class=&quot;re0&quot;&gt;$wgPdfProcessor&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/usr/bin/gs&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$wgPdfPostProcessor&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$wgImageMagickConvertCommand&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;// if defined via ImageMagick&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;// $wgPdfPostProcessor = &#039;/usr/bin/convert&#039;;  // if not defined via ImageMagick&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$wgPdfInfo&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/usr/bin/pdfinfo&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$wgPdftoText&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/usr/bin/pdftotext&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;re0&quot;&gt;$wgFileExtensions&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;pdf&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Now upload a &lt;code&gt;pdf&lt;/code&gt; file and  it should appear in the file brower.
&lt;/p&gt;

&lt;p&gt;
Try putting it in a page with the &amp;lt;gallery&amp;gt; funtion
&lt;/p&gt;
&lt;pre class=&quot;code html4strict&quot;&gt;&lt;span class=&quot;sc2&quot;&gt;&amp;lt;gallery&amp;gt;&lt;/span&gt;
File:Blog.pdf|page=1
&lt;span class=&quot;sc2&quot;&gt;&amp;lt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gallery&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Tweaks&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;tweaks&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:10,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;3581-4603&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;page_info&quot;&gt;Page Info&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 29/06/22 15:15&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Page last updated: 30/12/25 09:55 GMT
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:mediawiki&amp;amp;do=showtag&amp;amp;tag=mediawiki&quot; class=&quot;wikilink1&quot; title=&quot;tag:mediawiki&quot; rel=&quot;tag&quot;&gt;mediawiki&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Page Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;page_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:14,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;4604-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 30 Dec 2025 09:55:07 +0000</pubDate>
        </item>
        <item>
            <title>Mercurial</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:mercurial</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:start&quot; class=&quot;wikilink1&quot; title=&quot;public:computers:archive:start&quot; data-wiki-id=&quot;public:computers:archive:start&quot;&gt;Archive&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;mercurial&quot;&gt;Mercurial&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; Snippets to help remember how to use Mercurial Version Control &lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Mercurial&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;mercurial&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-111&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;create_a_repository&quot;&gt;Create a Repository&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Work on files until ready to start version control&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Create a repository in the directory&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;hg init&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; add the files&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;hg add&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; commit the changes&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;hg commit&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; edit the comments and save them&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; or use &lt;code&gt;hg commit -m “adding initial version of hello.txt”&lt;/code&gt; to add comments directly to the commit log&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; This has made the first version of the repository.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Create a Repository&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;create_a_repository&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;112-541&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;simple_workflow&quot;&gt;Simple workflow&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Work on files in the repository directory (or copy in files edited and tested elsewhere)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Add any new files&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;hg add&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Commit any changes&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;hg commit -m “comments…..”&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; This keeps the local (master?) repository up to date with all the changes, in case a reversion to a previous version is necessary. All changes are tracked.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Simple workflow&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;simple_workflow&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;542-925&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;remote_copies&quot;&gt;Remote copies&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; on another machine you can &lt;code&gt;clone&lt;/code&gt; a repository - to work on it or as a backup&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; by &lt;code&gt;ssh&lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;hg clone ssh://gm4slv@xgate//path/to/repo&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; this will pull the repo files across and make an exact copy&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; in future you can pull any new changes made on the other (master?) repo by &lt;code&gt;hg pull&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; any changes will be brought over, but the working directory won&amp;#039;t be brought up to date until you update it:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;hg update&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; to make this automatic add to the clone repo&amp;#039;s .hg/hgrc:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;[hooks]
changegroup = hg update&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; any changes made in the &lt;code&gt;clone&lt;/code&gt; repo can he sent back to the &lt;code&gt;master&lt;/code&gt; by &lt;code&gt;hg push&lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; remember to log into the &lt;code&gt;master&lt;/code&gt; machine&amp;#039;s repo and use &lt;code&gt;hg update&lt;/code&gt; - or add the same lines to its .hg/hgrc&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;[hooks]
changegroup = hg update&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; any changes made in the &lt;code&gt;master&lt;/code&gt; repo can be pushed to the clone(s) using &lt;code&gt;hg push&lt;/code&gt; too.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; the &lt;code&gt;hgrc&lt;/code&gt; file holds the paths for push and pull destinations - should be self explanatory.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; The log of commits &lt;code&gt;hg log&lt;/code&gt; looks like:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;changeset:   12:f69a03ef230f
tag:         tip
user:        John Pumford-Green &amp;lt;john@wire2waves.co.uk&amp;gt;
date:        Sun Mar 24 22:15:09 2024 +0000
summary:     removed previous test comment

changeset:   11:caeb761265b2
user:        John Pumford-Green &amp;lt;john@wire2waves.co.uk&amp;gt;
date:        Sun Mar 24 21:30:03 2024 +0000
summary:     added a comment to check push back to xgate

changeset:   10:146123c9688c
user:        John Pumford-Green &amp;lt;gm4slv@gmail.com&amp;gt;
date:        Sun Mar 24 21:12:45 2024 +0000
summary:     catch up commit. various tweaks. moved to single xgate script that can

changeset:   9:482ed4c74b93
user:        John Pumford-Green &amp;lt;gm4slv@gmail.com&amp;gt;
date:        Sun Feb 20 18:05:13 2022 +0000
summary:     heartbeat watchdog script added to repository

changeset:   8:8a7f5ff9839c
user:        John Pumford-Green &amp;lt;gm4slv@gmail.com&amp;gt;
date:        Sun Feb 20 18:02:49 2022 +0000
summary:     added watchdog heartbeat

changeset:   7:0b870c3f0bc4
user:        John Pumford-Green &amp;lt;gm4slv@gmail.com&amp;gt;
date:        Mon Dec 14 06:45:06 2020 +0000
summary:     simplex version with monitor command disabled

changeset:   6:a8d3082edc19
user:        John Pumford-Green &amp;lt;gm4slv@gmail.com&amp;gt;
date:        Mon Dec 14 06:44:38 2020 +0000
summary:     update

changeset:   5:0b654aa5948a
user:        John Pumford-Green &amp;lt;gm4slv@gmail.com&amp;gt;
date:        Sun Nov 15 22:04:11 2020 +0000
summary:     removed old commented functions etc.

changeset:   4:00b921d165c6
user:        John Pumford-Green &amp;lt;gm4slv@gmail.com&amp;gt;
date:        Sun Nov 15 21:48:59 2020 +0000
summary:     changes to use dual-band V/UHF access

changeset:   3:bb599b01bd56
user:        John Pumford-Green &amp;lt;gm4slv@gmail.com&amp;gt;
date:        Thu Nov 12 16:21:40 2020 +0000
summary:     ATU Tune returns &amp;quot;... complete&amp;quot;

changeset:   2:c9a9e04c7ad2
user:        John Pumford-Green &amp;lt;gm4slv@gmail.com&amp;gt;
date:        Thu Nov 12 16:08:35 2020 +0000
summary:     ignore pyc files

changeset:   1:d668512ccedd
user:        John Pumford-Green &amp;lt;gm4slv@gmail.com&amp;gt;
date:        Thu Nov 12 16:03:47 2020 +0000
summary:     remove unneeded file

changeset:   0:45cc8998c62b
user:        John Pumford-Green &amp;lt;gm4slv@gmail.com&amp;gt;
date:        Thu Nov 12 15:55:29 2020 +0000
summary:     first commit - current running code for xGate using IC-M710 HF transceiver.

 
&lt;/pre&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 24/03/24 22:23&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Remote copies&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;remote_copies&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;926-4366&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;4367-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 30 Dec 2025 09:55:07 +0000</pubDate>
        </item>
        <item>
            <title>SSL Install on VPS</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:ssl_install_vps</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:start&quot; class=&quot;wikilink1&quot; title=&quot;public:computers:archive:start&quot; data-wiki-id=&quot;public:computers:archive:start&quot;&gt;Archive&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;ssl_install_on_vps&quot;&gt;SSL Install on VPS&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
I decided to bite the bullet and obtain an SSL certificate and install it on this VPS, and configure Apache2 to use HTTPS instead of plain HTTP.
&lt;/p&gt;

&lt;p&gt;
I used Fasthost again to obtain the SSL certificate, and some of their instructions were a little dodgy regarding the steps to install it and get Apache to work with SSL. I managed in the end though.
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;gm4slv.org.uk&lt;/code&gt; now has a SSL certificate and connections to port 80 HTTP will be automatically redirected to port 443 HTTPS.
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
The steps with Apache (ignoring the process of obtaining the certificates):
&lt;/p&gt;

&lt;p&gt;
There are 3 certificate files:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;*.key&lt;/code&gt; is generated on the VPS itself with &lt;pre class=&quot;code bash&quot;&gt;openssl req &lt;span class=&quot;re5&quot;&gt;-new&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-newkey&lt;/span&gt; rsa:&lt;span class=&quot;nu0&quot;&gt;2048&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-nodes&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-keyout&lt;/span&gt; gm4slv.org.uk.key &lt;span class=&quot;re5&quot;&gt;-out&lt;/span&gt; gm4slv.org.uk.csr &lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; the signed &lt;code&gt;*.crt file&lt;/code&gt; obtained from the signing authority via FastHost (it&amp;#039;s the gm4slv.org.uk.csr key signed by the authority&amp;#039;s key)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; the “intermediate” file obtained from the signing authority via FastHost (this is the “chain of authority” file?)&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
Once the keys are to hand:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; copy the 3 certificate files to a directory on the VPS. I used &lt;code&gt;/usr/local/ssl/&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; tell Apache where to find the keys:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; add to &lt;code&gt;default-ssl.conf&lt;/code&gt; virtual host site file&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;SSLCertificateFile /usr/local/ssl/signed.crt&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;SSLCertificateKeyFile /usr/local/ssl/gm4slv.org.uk.key&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;SSLCertificateChainFile /usr/local/ssl/ca.pem&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; add ssl mod to Apache: &lt;pre class=&quot;code&quot;&gt; a2enmod ssl &lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; make symbolic link in &lt;code&gt;sites-enabled&lt;/code&gt; pointing to &lt;code&gt;sites-available/default-ssl.conf&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; restart apache&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; open VPS firewall port 443 in FastHost control panel&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; browse to &lt;a href=&quot;https://gm4slv.org.uk&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://gm4slv.org.uk&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://gm4slv.org.uk&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; set up redirect of plain HTTP to SSL HTTPS by adding to &lt;code&gt;000-default.conf&lt;/code&gt; &lt;pre class=&quot;code apache&quot;&gt;    &lt;span class=&quot;kw1&quot;&gt;ServerName&lt;/span&gt; gm4slv.org.uk
    &lt;span class=&quot;kw1&quot;&gt;ServerAlias&lt;/span&gt; www.gm4slv.org.uk
    &lt;span class=&quot;kw1&quot;&gt;Redirect&lt;/span&gt; permanent / https://gm4slv.org.uk/&lt;/pre&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; restart apache&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
Job Done
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=server:screenshot_2022-05-04_22.00.14.png&quot; class=&quot;media wikilink2&quot; title=&quot;server:screenshot_2022-05-04_22.00.14.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=400&amp;amp;tok=668a8c&amp;amp;media=server:screenshot_2022-05-04_22.00.14.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:ssl&amp;amp;do=showtag&amp;amp;tag=ssl&quot; class=&quot;wikilink1&quot; title=&quot;tag:ssl&quot; rel=&quot;tag&quot;&gt;ssl&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:apache&amp;amp;do=showtag&amp;amp;tag=apache&quot; class=&quot;wikilink1&quot; title=&quot;tag:apache&quot; rel=&quot;tag&quot;&gt;apache&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:vps&amp;amp;do=showtag&amp;amp;tag=vps&quot; class=&quot;wikilink1&quot; title=&quot;tag:vps&quot; rel=&quot;tag&quot;&gt;vps&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;SSL Install on VPS&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;ssl_install_on_vps&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 30 Dec 2025 09:55:07 +0000</pubDate>
        </item>
        <item>
            <title>John&#039;s Bike Notes</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:bikes:john_bike</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:bikes:start&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:bikes:start&quot; data-wiki-id=&quot;public:miscellany:bikes:start&quot;&gt;Bikes&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;john_s_bike_notes&quot;&gt;John&amp;#039;s Bike Notes&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;John&amp;#039;s Bike Notes&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;john_s_bike_notes&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-49&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;additions_extras&quot;&gt;Additions / Extras&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Brooks B17 Saddle (Brown) 16/6/22&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;del&gt;Carradice Zipped Roll Saddlebag (Red) 17/6/22&lt;/del&gt; → moved to Kate&amp;#039;s bike 21/5/25&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Pedals : Nukeproof Evo Flat Pedals (Yellow) 23/6/22&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Bottle Cage : Zefal (Red) 23/6/22&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Carradice Barley Saddlebag (Green) 21/5/25&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Additions \/ Extras&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;additions_extras&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;50-354&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;distance_record&quot;&gt;Distance Record&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;table sectionedit4&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Date&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Mileage&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Kilometers&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Comments&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  16/06/22  &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  0  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;New &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  24/04/25  &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  36  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  58  &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;Start of getting fit for 2025  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  10/05/25  &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  63  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  101  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  16/05/25  &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;  &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  120  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;382-570&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Distance Record&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;distance_record&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;355-571&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;maintenance_repairs&quot;&gt;Maintenance / Repairs&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;table sectionedit6&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Date&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;What&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Actions&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  13/05/25  &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Rear Derailleur &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; Stops and cable tension adjusted to correct overshifting &amp;amp; inability to get into small (9th) cog &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  13/05/25  &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Rear Brakes &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; Caliper re-centred to equalize piston/pad travel &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;604-835&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Maintenance \/ Repairs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;maintenance_repairs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;572-839&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;page_info&quot;&gt;Page Info&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 14/06/22 18:27&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Page last updated: 30/12/25 09:55 GMT
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:trek&amp;amp;do=showtag&amp;amp;tag=trek&quot; class=&quot;wikilink1&quot; title=&quot;tag:trek&quot; rel=&quot;tag&quot;&gt;trek&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:bike&amp;amp;do=showtag&amp;amp;tag=bike&quot; class=&quot;wikilink1&quot; title=&quot;tag:bike&quot; rel=&quot;tag&quot;&gt;bike&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Page Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;page_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;840-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 30 Dec 2025 09:55:07 +0000</pubDate>
        </item>
        <item>
            <title>MediaWiki</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:random_thoughts:mediawiki</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;mediawiki&quot;&gt;MediaWiki&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 02/07/22 09:00&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
I have been thinking about moving to &lt;code&gt;MediaWiki&lt;/code&gt; instead of &lt;code&gt;Dokuwiki&lt;/code&gt; and decided to try it first to see if I preferred &lt;code&gt;MediaWiki&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
I installed MediaWiki on my sandbox server  using the basic process that I later documented :
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:mediawiki&quot; class=&quot;wikilink1&quot; title=&quot;public:computers:archive:mediawiki&quot; data-wiki-id=&quot;public:computers:archive:mediawiki&quot;&gt;MediaWiki VPS Install&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
I do like the look/feel of &lt;code&gt;MediaWiki&lt;/code&gt; as a &lt;em&gt;reader&lt;/em&gt; but the operation and maintenance as a &lt;em&gt;user&lt;/em&gt; is very different to &lt;code&gt;Dokuwiki&lt;/code&gt;.
&lt;/p&gt;

&lt;p&gt;
It looked like there would be a steep learning curve, and a lot of functionality I&amp;#039;d added to Dokuwiki via plugins would not immediately be available. I also installed it on my main VPS server, and imported a few pages, and then did &lt;em&gt;a lot&lt;/em&gt; of editing to get them to look right. It was going to take &lt;strong&gt;A LOT&lt;/strong&gt; of work if I was to fully import &lt;em&gt;this&lt;/em&gt; wiki over to MediaWiki.
&lt;/p&gt;

&lt;p&gt;
There are some conversion scripts around to (partially) convert Dokuwiki formatted text into MediaWiki format, but they are &lt;strong&gt;far&lt;/strong&gt; from perfect and the converted pages &lt;em&gt;still&lt;/em&gt; need a lot of work.
&lt;/p&gt;

&lt;p&gt;
After spending|wasting several hours I decided to abandon the idea of switching to MediaWiki and to stay using Dokuwiki. It &lt;em&gt;does&lt;/em&gt; make a lot of sense - I&amp;#039;m comfortable with the syntax, it&amp;#039;s &lt;strong&gt;much&lt;/strong&gt; easier to backup, as all the pages are simply flat text files, adding functionality via plugins is &lt;em&gt;much&lt;/em&gt; easier to do. It &lt;strong&gt;just works&lt;/strong&gt;.
&lt;/p&gt;

&lt;p&gt;
So, I&amp;#039;ve deleted/removed the MediaWiki install &amp;amp; MariaDB SQL server from the VPS machine. I might keep the Sandbox Server MediaWiki install, just to play with from time to time, but unless something serious happens I can&amp;#039;t see any point in spending|wasting hours and hours trying to get my existing Wiki converted to MediaWiki, and then learning how best to organize a MediaWiki setup.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteclassic&quot;&gt;— &lt;em&gt;John Pumford-Green 27/04/23 07:40&lt;/em&gt;
&lt;p&gt;
I deleted the Mediawiki install &amp;amp; MariaDB server from the Sandbox machine today too, as I don&amp;#039;t think I will be migrating to MediaWiki.
&lt;/p&gt;

&lt;/div&gt;&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:dokuwiki&amp;amp;do=showtag&amp;amp;tag=dokuwiki&quot; class=&quot;wikilink1&quot; title=&quot;tag:dokuwiki&quot; rel=&quot;tag&quot;&gt;dokuwiki&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:mediawiki&amp;amp;do=showtag&amp;amp;tag=mediawiki&quot; class=&quot;wikilink1&quot; title=&quot;tag:mediawiki&quot; rel=&quot;tag&quot;&gt;mediawiki&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 29 Jan 2026 17:18:19 +0000</pubDate>
        </item>
        <item>
            <title>Random Thoughts</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:random_thoughts:start</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:start&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:start&quot; data-wiki-id=&quot;public:miscellany:start&quot;&gt;Miscellany&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;random_thoughts&quot;&gt;Random Thoughts&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;script type=&quot;text/javascript&quot;&gt; catlist_baseurl = &quot;https://www.g4slv.info/dokuwiki/&quot;; catlist_basescript = &quot;doku.php&quot;; catlist_useslash = 0; catlist_userewrite = 0; catlist_sepchar = &quot;_&quot;; catlist_deaccent = 1; catlist_pagename_sanitize = 1; &lt;/script&gt;&lt;ul class=&quot;catlist-nslist&quot; &gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:random_thoughts:mastodon&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:random_thoughts:mastodon&quot; data-wiki-id=&quot;public:miscellany:random_thoughts:mastodon&quot;&gt;Mastodon &amp;amp; Twitter&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:random_thoughts:mediawiki&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:random_thoughts:mediawiki&quot; data-wiki-id=&quot;public:miscellany:random_thoughts:mediawiki&quot;&gt;MediaWiki&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:random_thoughts:prepping&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:random_thoughts:prepping&quot; data-wiki-id=&quot;public:miscellany:random_thoughts:prepping&quot;&gt;Prepping&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/p&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 08/04/24 18:35 BST&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Random Thoughts&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;random_thoughts&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;13-122&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;123-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 30 Dec 2025 09:55:07 +0000</pubDate>
        </item>
        <item>
            <title>AOR AR7030</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:radio_database:ar_7030</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:radio_database:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:radio_database:start&quot; data-wiki-id=&quot;public:radio:radio_database:start&quot;&gt;Rig and Key List&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;aor_ar7030&quot;&gt;AOR AR7030&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;AOR AR7030&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;aor_ar7030&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-42&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;faults_repairs_mods&quot;&gt;1. Faults/repairs/mods&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; July 2022 - Volume encoder u/s&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Bourns ECW1J-B24-AC0024L available at Farnell at £3.80&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Ordered 4 off 16/7/22&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Replaced vol encoder : July 2022&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; July 2022 - VFO Tuning encoder u/s&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Only changed freq. over a small portion of a revolution&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Using remote control via LAN to operate until a new encoder is sourced&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;1. Faults\/repairs\/mods&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;faults_repairs_mods&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;43-420&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;filters&quot;&gt;2. Filters&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;2. Filters&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;filters&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;421-443&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;currently_fitted&quot;&gt;Currently fitted:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Before change (below)
&lt;/p&gt;
&lt;div class=&quot;table sectionedit5&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;PCB ref&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Description&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Model&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Bandwidth&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; X3 &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; AM Narrow    &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; CKK455J    &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 3.9 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; X4 &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; AM Normal #  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; CFW455IT   &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 5.6 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; X5 &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; SSB #        &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; CFJ455K14  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 2.1 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; X6 &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; FM #         &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; CFU455G2   &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 9.5 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; X7 &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; AM Wide #    &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; CFW455HT   &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 6.4 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; X8 &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; CW Collins   &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; MF300      &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 0.5 &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;494-777&amp;quot;} --&gt;
&lt;p&gt;
# = factory supplied
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Currently fitted:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;currently_fitted&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;444-800&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;standard_fitting&quot;&gt;Standard Fitting&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;table sectionedit7&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;PCB ref&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Description&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Model&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Bandwidth&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; X3 &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; AM Wide     &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; CFW455HT   &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 6.4 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; X4 &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; AM Normal   &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; CFW455IT   &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 5.6 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; X5 &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; SSB         &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; CFJ455K14  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 2.1 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; X6 &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; FM          &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; CFU455G2   &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 9.5 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; X7 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Option 1 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; X8 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Option 2 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;827-1068&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Standard Fitting&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;standard_fitting&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;801-1070&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;available_to_fit&quot;&gt;Available to fit:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;CW / Data / SSB narrow : CFJ455K8 : 1.4&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;july_2022&quot;&gt;July 2022&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Removed un-needed AM-Wide 6.4kHz from X7 and installed 1.4kHz “CW/Data/SSB Narrow”?
&lt;/p&gt;

&lt;p&gt;
This gives :
&lt;/p&gt;
&lt;div class=&quot;table sectionedit9&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;PCB ref&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Description&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Model&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Bandwidth&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; X3 &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; AM Narrow    &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; CKK455J    &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 3.9 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; X4 &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; AM Normal #  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; CFW455IT   &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 5.6 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; X5 &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; SSB #        &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; CFJ455K14  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 2.1 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; X6 &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; FM #         &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; CFU455G2   &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 9.5 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; X7 &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; Data         &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  CFJ455K8  &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 1.4 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; X8 &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt; CW Collins   &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt; MF300      &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 0.5 &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table2&amp;quot;,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;1263-1546&amp;quot;} --&gt;
&lt;p&gt;
# = factory supplied
&lt;/p&gt;

&lt;p&gt;
In order of Bandwidth
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;1 : 0.5 CW
2 : 1.4 CW/Data
3 : 2.1 SSB
4 : 3.9 AM-Narrow
5 : 5.5 AM-Normal
6 : 9.5 FM&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Available to fit:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;available_to_fit&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;1071-1691&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit10&quot; id=&quot;remote_control&quot;&gt;3. Remote Control&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
The Python module used in  &lt;a href=&quot;https://github.com/gm4slv/netradio&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://github.com/gm4slv/netradio&quot; rel=&quot;ugc nofollow noopener&quot;&gt;netradio&lt;/a&gt; for accessing AR7030. 
&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_23435a1905691f3ea794e5079af58e0d_21&quot;&gt;Generic aor.py &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_23435a1905691f3ea794e5079af58e0d_21&quot;&gt;&lt;dl class=&quot;file&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?do=export_code&amp;amp;id=public:radio:radio_database:ar_7030&amp;amp;codeblock=0&quot; title=&quot;Download Snippet&quot; class=&quot;mediafile mf_py&quot;&gt;aor.py&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code file python&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; serial
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;#sport = &amp;quot;/dev/ttyS0&amp;quot;&lt;/span&gt;
sport &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;/dev/ttyUSB1&amp;quot;&lt;/span&gt;
sbaud &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1200&lt;/span&gt;
&amp;nbsp;
lock &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Lock&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
fract &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; ** &lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; / &lt;span class=&quot;nu0&quot;&gt;44545&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;class&lt;/span&gt; Ar7030&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;object&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;__init__&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; model&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ser&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; serial.&lt;span class=&quot;me1&quot;&gt;Serial&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sport&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sbaud&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; timeout&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;model&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; model
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; check_bit&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; byte&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bit&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        mask &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; bit
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &amp;amp; mask&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; set_bit&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; byte&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bit&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        mask &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; bit
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; | mask
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; result
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; clear_bit&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; byte&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bit&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        mask &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;~&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; bit&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &amp;amp; mask&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; result
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_ident&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;5f&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;40&#039;&lt;/span&gt;
        ident &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; ident
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_pre&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;32&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;48&#039;&lt;/span&gt;
        byte &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        p &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;check_bit&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; p:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; pre_on&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;co1&quot;&gt;#get current 8-bit rxcon byte :&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# bit0 = filter FS3&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# bit1 = filter FS2&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# bit2 = filter FS1&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# bit3 = filter FS4&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# bit4 = preamp enabled&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# bit5 = atten 0 = 20dB / 1 = 40dB&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# bit6 = input filter 0 = HF / 1 = LF&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# bit7 = attenuator enabled&lt;/span&gt;
&amp;nbsp;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;32&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;48&#039;&lt;/span&gt;
&amp;nbsp;
        byte &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# set bit 4 ON = preamp ON and get the new 8-bit rxcon byte&lt;/span&gt;
        pon &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_bit&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# split new rxcon byte into two 4-bit nibbles, add 48/96 (\x30 and \x60)&lt;/span&gt;
        high &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;48&lt;/span&gt; + &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pon &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        low &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;96&lt;/span&gt; + &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pon &amp;amp; &lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;81&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;32&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;48&#039;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;high&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;low&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;29&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;80&#039;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Command sent&amp;quot;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; pre_off&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;co1&quot;&gt;#get current 8-bit rxcon byte&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;32&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;48&#039;&lt;/span&gt;
        byte &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# set bit 4 OFF = preamp OFF and get the new 8-bit rxcon byte&lt;/span&gt;
        pon &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;clear_bit&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# split new rxcon byte into two 4-bit nibbles, add 48/96 (\x30 and \x60)&lt;/span&gt;
        high &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;48&lt;/span&gt; + &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pon &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        low &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;96&lt;/span&gt; + &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pon &amp;amp; &lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;81&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;32&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;48&#039;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;high&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;low&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;29&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;80&#039;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Command sent&amp;quot;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_att&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;32&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;48&#039;&lt;/span&gt;
&amp;nbsp;
        byte &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        a &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;check_bit&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; a:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; att_on&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;co1&quot;&gt;#get current 8-bit rxcon byte&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;32&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;48&#039;&lt;/span&gt;
        byte &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# set bit 7 ON = ATT ON and get the new 8-bit rxcon byte&lt;/span&gt;
        pon &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_bit&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# split new rxcon byte into two 4-bit nibbles, add 48/96 (\x30 and \x60)&lt;/span&gt;
        high &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;48&lt;/span&gt; + &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pon &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        low &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;96&lt;/span&gt; + &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pon &amp;amp; &lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;81&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;32&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;48&#039;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;high&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;low&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;29&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;80&#039;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Command sent&amp;quot;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; att_off&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;co1&quot;&gt;#get current 8-bit rxcon byte&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;32&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;48&#039;&lt;/span&gt;
        byte &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# set bit 7 OFF = att OFF and get the new 8-bit rxcon byte&lt;/span&gt;
        pon &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;clear_bit&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# split new rxcon byte into two 4-bit nibbles, add 48/96 (\x30 and \x60)&lt;/span&gt;
        high &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;48&lt;/span&gt; + &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pon &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        low &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;96&lt;/span&gt; + &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pon &amp;amp; &lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;81&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;32&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;48&#039;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;high&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;low&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;29&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;80&#039;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Command sent&amp;quot;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; set_freq&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; freq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        fval &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; freq * fract
        &lt;span class=&quot;co1&quot;&gt;#print fval&lt;/span&gt;
        b1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;48&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fval / &lt;span class=&quot;nu0&quot;&gt;1048576&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        fval &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; fval % &lt;span class=&quot;nu0&quot;&gt;1048576&lt;/span&gt;
        b2 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;96&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fval / &lt;span class=&quot;nu0&quot;&gt;65536&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        fval &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; fval % &lt;span class=&quot;nu0&quot;&gt;65536&lt;/span&gt;
        b3 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;48&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fval / &lt;span class=&quot;nu0&quot;&gt;4096&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        fval &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; fval % &lt;span class=&quot;nu0&quot;&gt;4096&lt;/span&gt;
        b4 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;96&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fval / &lt;span class=&quot;nu0&quot;&gt;256&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        fval &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; fval % &lt;span class=&quot;nu0&quot;&gt;256&lt;/span&gt;
        b5 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;48&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fval / &lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        b6 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;96&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fval % &lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        f_tuple &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; b1&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; b2&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; b3&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; b4&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; b5&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; b6 &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        freqStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; byte &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; f_tuple:
            freqStr +&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;81&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;31&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;4a&#039;&lt;/span&gt; + freqStr + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;24&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;80&#039;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Freq Set&amp;quot;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_freq&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;31&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;4a&#039;&lt;/span&gt;
&amp;nbsp;
        freqStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        f_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; k &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; freqStr:
            f_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; f_val * &lt;span class=&quot;nu0&quot;&gt;256&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;k&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%.3f&amp;quot;&lt;/span&gt; % &lt;span class=&quot;kw2&quot;&gt;round&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;f_val / fract&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; set_mode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; mode&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;lsb&amp;quot;&lt;/span&gt;:
            set_mode_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;66&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;usb&amp;quot;&lt;/span&gt;:
            set_mode_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;67&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;am&amp;quot;&lt;/span&gt;:
            set_mode_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;61&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;cw&amp;quot;&lt;/span&gt;:
            set_mode_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;65&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;data&amp;quot;&lt;/span&gt;:
            set_mode_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;64&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;fm&amp;quot;&lt;/span&gt;:
            set_mode_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;63&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;s-am&amp;quot;&lt;/span&gt;:
            set_mode_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;62&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Mode not recognized&amp;quot;&lt;/span&gt;
&amp;nbsp;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;81&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;31&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;4d&#039;&lt;/span&gt; + set_mode_val + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;22&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;80&#039;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Mode sent&amp;quot;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_mode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;31&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;4d&amp;quot;&lt;/span&gt;
        m &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; m &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;01&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;am&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; m &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;02&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;s-am&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; m &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;03&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;fm&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; m &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;04&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;data&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; m &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;05&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;cw&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; m &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;06&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;lsb&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; m &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;07&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;usb&amp;quot;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; mode.&lt;span class=&quot;me1&quot;&gt;upper&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_s&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;2e&#039;&lt;/span&gt;
        sraw &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sraw&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_cal&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;52&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;3f&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;44&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;11&#039;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#print &amp;quot;sending getcal&amp;quot;&lt;/span&gt;
        cbytes &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        cal &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; c &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; cbytes:
            cal.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;c&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; cal
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_smeter&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        s &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_s&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        cal &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_cal&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        s1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s - cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        s2 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s1 - cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        s3 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s2 - cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        s4 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s3 - cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        s5 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s4 - cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        s6 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s5 - cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        s7 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s6 - cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; s1 &lt;span class=&quot;sy0&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; s2 &lt;span class=&quot;sy0&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;113&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s1 / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; s3 &lt;span class=&quot;sy0&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;103&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s2 / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; s4 &lt;span class=&quot;sy0&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;93&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s3 / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; s5 &lt;span class=&quot;sy0&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;83&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s4 / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; s6 &lt;span class=&quot;sy0&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;73&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s5 / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; s7 &lt;span class=&quot;sy0&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;63&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s6 / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;43&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s7 / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; tx_rx&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; reply&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; n&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;co1&quot;&gt;# apply thread lock&lt;/span&gt;
        lock.&lt;span class=&quot;me1&quot;&gt;acquire&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ser&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; reply:  &lt;span class=&quot;co1&quot;&gt;# for reading S-meter&lt;/span&gt;
            result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;not&lt;/span&gt; result:
                result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ser&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;read&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            lock.&lt;span class=&quot;me1&quot;&gt;release&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; result
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
&amp;nbsp;
            result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
            byte &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; n &lt;span class=&quot;sy0&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ser&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;71&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;co1&quot;&gt;#byte = &amp;quot;&amp;quot;&lt;/span&gt;
&amp;nbsp;
                &lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;not&lt;/span&gt; byte:
                    byte &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ser&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;read&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
                result +&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; byte
&amp;nbsp;
                byte &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
                n -&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
            lock.&lt;span class=&quot;me1&quot;&gt;release&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; result&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;update_july_2022&quot;&gt;Update July 2022&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
I&amp;#039;ve modified the server/client code to create a single-radio AR7030 control program that gives access to IF filter, and reads s-meter etc.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:radio_database:screenshot_2022-08-05_07.24.46.png&quot; class=&quot;media&quot; title=&quot;public:radio:radio_database:screenshot_2022-08-05_07.24.46.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=400&amp;amp;tok=ed4b47&amp;amp;media=public:radio:radio_database:screenshot_2022-08-05_07.24.46.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_23435a1905691f3ea794e5079af58e0d_22&quot;&gt;New (July 2022) version of Tkinter GUI with S-Meter graph and IF filter Selection &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_23435a1905691f3ea794e5079af58e0d_22&quot;&gt;&lt;dl class=&quot;file&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?do=export_code&amp;amp;id=public:radio:radio_database:ar_7030&amp;amp;codeblock=1&quot; title=&quot;Download Snippet&quot; class=&quot;mediafile mf_py&quot;&gt;gui_smeter.py&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code file python&quot;&gt;&lt;span class=&quot;co1&quot;&gt;# # new class-based gui&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;Tkinter&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; *
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;socket&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;class&lt;/span&gt; Network&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;object&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;__init__&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sock&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;make_con&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; make_con&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sock&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;socket&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;socket&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;socket&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;AF_INET&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;socket&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;SOCK_STREAM&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sock&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;192.168.21.107&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;9999&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sock&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
            lock.&lt;span class=&quot;me1&quot;&gt;acquire&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sock&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sendall&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;received&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sock&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;recv&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2048&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;finally&lt;/span&gt;:
            lock.&lt;span class=&quot;me1&quot;&gt;release&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;received&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;class&lt;/span&gt; Dash&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;object&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;__init__&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; master&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;master&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; master
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;s&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;n1.&lt;span class=&quot;me1&quot;&gt;sock&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;getsockname&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;p&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;n1.&lt;span class=&quot;me1&quot;&gt;sock&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;getpeername&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
        dash_frame &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Toplevel&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;master&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; borderwidth &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; relief &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; GROOVE&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;black&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        dash_frame.&lt;span class=&quot;me1&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Server&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        dash_frame.&lt;span class=&quot;me1&quot;&gt;protocol&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;WM_DELETE_WINDOW&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;handler&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        dash_frame.&lt;span class=&quot;me1&quot;&gt;resizable&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        dash_frame.&lt;span class=&quot;me1&quot;&gt;geometry&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;300x150+10-10&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        dash_frame.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;utc_time&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; StringVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;dash_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; textvariable &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;utc_time&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;green&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;black&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;dash_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;s&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;black&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;white&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;dash_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;lt; --- &amp;gt; &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;black&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;white&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;dash_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;black&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;white&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; E&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;server_msg_l&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; StringVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;dash_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; textvariable &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;server_msg_l&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;yellow&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;black&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; columnspan &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        q_button &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Button&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;dash_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Quit&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: close&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        q_button.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; E&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; handler&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; up_dash&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;server_msg&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;ident&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;server_msg_l&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;server_msg&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;utc_time&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strftime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;%d/%m/%Y %H:%M&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;gmtime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;class&lt;/span&gt; nRadio&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;object&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;__init__&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; master&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;master&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; master
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radio&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; radio
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;r&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radio&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        radio_frame &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Frame&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;master&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; borderwidth&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; relief&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;GROOVE&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        radio_frame.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_list&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        filter_frame &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Frame&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        filter_frame.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; columnspan&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        mode_frame &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Frame&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        mode_frame.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; columnspan&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; rowspan&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        control_frame &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Frame&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        control_frame.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; columnspan&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        q_button &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Checkbutton&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;control_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Quit&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: close&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        q_button.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Name&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Freq/kHz&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Mode&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Signal/dBm&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Max/dBm&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;red&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Ave/dBm&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;green&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Min/dBm&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;blue&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;name_l&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; StringVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; textvariable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;name_l&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_name&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;freq_l&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; StringVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_freq&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;red&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; textvariable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;freq_l&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_freq&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;E&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mode_l&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; StringVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_mode&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; textvariable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mode_l&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_mode&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;E&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;filt_l&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; IntVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;r_filt_1&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Radiobutton&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;filter_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; variable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;filt_l&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; value&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;0.5&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_filt&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;r_filt_1&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;r_filt_2&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Radiobutton&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;filter_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; variable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;filt_l&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; value&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;1.4&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_filt&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;r_filt_2&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;r_filt_3&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Radiobutton&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;filter_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; variable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;filt_l&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; value&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;2.1&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_filt&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;r_filt_3&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;r_filt_4&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Radiobutton&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;filter_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; variable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;filt_l&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; value&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;3.9&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_filt&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;r_filt_4&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;r_filt_5&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Radiobutton&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;filter_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; variable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;filt_l&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; value&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5.5&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_filt&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;r_filt_5&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;r_filt_6&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Radiobutton&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;filter_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; variable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;filt_l&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; value&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;9.5&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_filt&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;r_filt_6&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#Label(filter_frame, text=&amp;quot;Filter&amp;quot;, width=10).grid(row=4, column=2, columnspan=3, sticky=NSEW)&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;#self.l_filt = Label(radio_frame, textvariable=self.filt_l, width=10)&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.l_filt.grid(row=5, column=0, sticky=E)&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;#self.e_filt = Entry(radio_frame, width=10, bg = &#039;white&#039;, fg = &#039;black&#039;, insertbackground = &#039;blue&#039;)&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.e_filt.grid(row=6, column=0)&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.e_filt.bind(&#039;&amp;lt;Return&amp;gt;&#039;, (lambda event: self.set_filt(self.num)))&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;#self.e_mode = StringVar()&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_usb&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Radiobutton&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;mode_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;variable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mode_l&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; value&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;usb&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_usb&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_lsb&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Radiobutton&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;mode_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;LSB&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;variable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mode_l&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; value&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;LSB&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;lsb&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_lsb&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_cw&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Radiobutton&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;mode_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;CW&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;variable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mode_l&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; value&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;CW&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;cw&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_cw&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_am&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Radiobutton&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;mode_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;AM&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;variable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mode_l&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;value &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;AM&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;am&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_am&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_am&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Radiobutton&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;mode_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;S-AM&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;variable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mode_l&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;value &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;S-AM&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;s-am&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_am&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_data&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Radiobutton&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;mode_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Data&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;variable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mode_l&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; value&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;DATA&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;data&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_data&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_fm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Radiobutton&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;mode_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;FM&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;variable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mode_l&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; value&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;FM&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;fm&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_fm&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_qsy_up&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Button&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;+1kHz&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;qsy_up&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_qsy_up&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_qsy_down&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Button&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;-1kHz&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;qsy_down&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_qsy_down&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_update&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Button&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Get&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;:&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.b_update.grid(row = 0, column = 3)&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_l&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; StringVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_smeter&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; textvariable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_l&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_smeter&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;E&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;max_var&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; StringVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_max&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; textvariable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;max_var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_max&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ave_var&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; StringVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_average&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; textvariable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ave_var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_average&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;min_var&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; StringVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_min&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; textvariable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;min_var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_min&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;e_freq&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Entry&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;white&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;black&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; insertbackground &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;blue&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;e_freq&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;e_freq&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;focus&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;e_freq&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;bind&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;&amp;lt;Return&amp;gt;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt; event: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_freq&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;pre&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; IntVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cb_pre&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Checkbutton&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;control_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;text&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Preamp&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; variable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;pre&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;preamp_onoff&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cb_pre&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_pre&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;control_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Preamp&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.l_pre.grid(row=0, column=0, sticky=E)&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;att&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; IntVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cb_att&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Checkbutton&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;control_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;text&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Att&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; variable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;att&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;att_onoff&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cb_att&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_att&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;control_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Att&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.l_att.grid(row=1, column=0, sticky=E)&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_log&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; IntVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cb_log&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Checkbutton&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;control_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Log to file...&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; variable &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_log&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cb_log&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_log&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;control_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Log to file...&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.l_log.grid(row = 2, column = 0, sticky = E)&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;c1&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Canvas&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;260&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; height&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bg&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;black&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;c1&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; columnspan&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; rowspan&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        name &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_all&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_freq&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_smeter&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_preamp&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_atten&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;graph_points&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;       
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;avg&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;max&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;min&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_filt&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_log&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; % &lt;span class=&quot;nu0&quot;&gt;10.0&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write_file&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_filt&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;filt&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getfil&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;filt_l&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;filt&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; set_filt&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;filt&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;filt_l&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;newfilt&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;setfil&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;filt&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.e_filt.delete(0,END)&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_freq&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;freq&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getfreq&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;freq_l&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;freq&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; set_freq&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;freq&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;e_freq&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;newfreq&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;setfreq&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;freq&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;e_freq&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;delete&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; END&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; qsy_up&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
        oldf &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getfreq&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        newf &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;oldf&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        freq &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;setfreq&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + newf + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; qsy_down&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        oldf &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getfreq&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        newf &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;oldf&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; - &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        freq &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;setfreq&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + newf + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_mode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mode&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getmode&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mode_l&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; set_mode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; mode&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;co1&quot;&gt;#self.mode = str(self.e_mode.get())&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;newmode&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;setmode&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + mode + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.e_mode.delete(0, END)&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_smeter&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getsmeter&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_l&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_list&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_list&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;129&lt;/span&gt;:
            &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_list&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;pop&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; avg&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        s &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_list&lt;/span&gt;
        total &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; i &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; s:
            total +&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; i
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;av&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;round&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;total / &lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;s&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ave_var&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;av&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;c1&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;create_line&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt; - &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;av&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;310&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt; - &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;av&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fill&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;green&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;av&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;min&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        s &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_list&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mn&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; i &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; s:
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; i &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mn&lt;/span&gt;:
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mn&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; i
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;min_var&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mn&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;c1&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;create_line&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt; - &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mn&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;310&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt; - &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mn&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fill&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;blue&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mn&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;max&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        s &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_list&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mx&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; i &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; s:
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; i &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mx&lt;/span&gt;:
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mx&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; i
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;max_var&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;c1&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;create_line&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt; - &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mx&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;310&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt; - &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mx&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fill&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;red&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mx&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_preamp&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;preamp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getpreamp&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;preamp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt;:
            &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cb_pre&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;select&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;preamp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt;:
            &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cb_pre&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;deselect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; preamp_onoff&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;prestate&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;pre&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;prestate&lt;/span&gt;:
            n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;preampon&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;preampoff&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; att_onoff&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;attstate&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;att&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;attstate&lt;/span&gt;:
            n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;atton&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;attoff&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_atten&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;atten&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getatt&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;atten&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt;:
            &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cb_att&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;select&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;atten&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt;:
            &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cb_att&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;deselect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_name&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; radio
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;all_names&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;listradios&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radios&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;all_names&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radios&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radios&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; - &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;name_l&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; graph_points&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        seq &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_list&lt;/span&gt;
        y_stretch &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
        y_gap &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;
        x_stretch &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
        x_width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
        x_gap &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
        height &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;c1&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;delete&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ALL&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;c1&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;create_line&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt; - &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;73&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;310&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt; - &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;73&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fill&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;white&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; x&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; y &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;enumerate&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;seq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
            yd &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; y + &lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt;
            x0 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; x * x_stretch + x * x_width + x_gap
            y0 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; height - &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;yd * y_stretch + y_gap&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            x1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; x * x_stretch + x * x_width + x_width + x_gap
            y1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; height - y_gap
            &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;c1&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;create_rectangle&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;x0&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; y0&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; x1&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; y1&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fill&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;yellow&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; write_file&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;filename&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt;+&lt;span class=&quot;st0&quot;&gt;&amp;quot;.txt&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;f&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;filename&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;a+&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        timenow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strftime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;%d/%m/%Y %H:%M:%S&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;gmtime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        log &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;timenow&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mode&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;freq&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;preamp&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;atten&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;f&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;log&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;f&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;close&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; update&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;co1&quot;&gt;#loops = 0&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
        nRadio1.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
        nRadio2.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
        nRadio3.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
        nRadio4.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#d1.up_dash()&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; main&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;co1&quot;&gt;#loops = 0&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;True&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
            nRadio1.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
            nRadio2.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
            nRadio3.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
            nRadio4.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#d1.up_dash()&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#loops += 1&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#print threading.currentThread().name, loops&lt;/span&gt;
        &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sleep&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; close&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;quit&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    root.&lt;span class=&quot;me1&quot;&gt;destroy&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; __name__ &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;__main__&amp;quot;&lt;/span&gt;:
    version &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;v0.1&amp;quot;&lt;/span&gt;
    lock &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Lock&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    root &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Tk&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#w, h = root.winfo_screenwidth(), root.winfo_screenheight()&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#root.geometry(&amp;quot;%dx%d+0+0&amp;quot; % (w, h))&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#root.geometry(&amp;quot;300x520+0+0&amp;quot;)&lt;/span&gt;
&amp;nbsp;
    root.&lt;span class=&quot;me1&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;AR7030 &amp;quot;&lt;/span&gt; + version&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;#root.withdraw()&lt;/span&gt;
    n1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Network&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#radio_count = (n1.connect(&amp;quot;count&amp;quot;))&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#radio_count = 3&lt;/span&gt;
&amp;nbsp;
    radio_count &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;count&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#if radio_count &amp;gt; 0:&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#    nRadio1 = nRadio(root, &amp;quot;1&amp;quot;)&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#if radio_count &amp;gt; 1:&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#    nRadio2 = nRadio(root, &amp;quot;2&amp;quot;)&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#if radio_count &amp;gt; 2:&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#    nRadio3 = nRadio(root, &amp;quot;3&amp;quot;)&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#if radio_count &amp;gt; 3:&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#    nRadio4 = nRadio(root, &amp;quot;4&amp;quot;)&lt;/span&gt;
&amp;nbsp;
    nRadio1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; nRadio&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;root&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;    
    &lt;span class=&quot;co1&quot;&gt;#d1 = Dash(root)&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;#print threading.currentThread().name&lt;/span&gt;
    m1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Thread&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;target &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; main&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    m1.&lt;span class=&quot;me1&quot;&gt;setDaemon&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    m1.&lt;span class=&quot;me1&quot;&gt;start&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    update&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    root.&lt;span class=&quot;me1&quot;&gt;mainloop&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_23435a1905691f3ea794e5079af58e0d_23&quot;&gt;New (July 2022) version of aor module, with access to IF filter selection &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_23435a1905691f3ea794e5079af58e0d_23&quot;&gt;&lt;dl class=&quot;file&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?do=export_code&amp;amp;id=public:radio:radio_database:ar_7030&amp;amp;codeblock=2&quot; title=&quot;Download Snippet&quot; class=&quot;mediafile mf_py&quot;&gt;aor_filter.py&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code file python&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; serial
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;#sport = &amp;quot;/dev/ttyS0&amp;quot;&lt;/span&gt;
sport &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;/dev/ttyS0&amp;quot;&lt;/span&gt;
sbaud &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1200&lt;/span&gt;
&amp;nbsp;
lock &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Lock&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
fract &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; ** &lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; / &lt;span class=&quot;nu0&quot;&gt;44545&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;class&lt;/span&gt; Ar7030&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;object&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;__init__&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; model&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ser&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; serial.&lt;span class=&quot;me1&quot;&gt;Serial&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sport&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sbaud&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; timeout&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;model&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; model
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;filter&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_filter&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; check_bit&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; byte&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bit&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        mask &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; bit
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &amp;amp; mask&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; set_bit&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; byte&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bit&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        mask &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; bit
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; | mask
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; result
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; clear_bit&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; byte&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bit&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        mask &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;~&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; bit&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &amp;amp; mask&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; result
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_ident&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;5f&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;40&#039;&lt;/span&gt;
        ident &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; ident
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_pre&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;32&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;48&#039;&lt;/span&gt;
        byte &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        p &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;check_bit&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; p:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_filter&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        sendStr&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;33&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;44&#039;&lt;/span&gt;
        byte &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#print ord(byte)&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; set_filter&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;filt_no&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;co1&quot;&gt;#print &amp;quot;In set_filter with &amp;quot;, filt_no&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
            filt_no &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;filt_no&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ValueError&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Not a number&amp;quot;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; filt_no &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Out of range&amp;quot;&lt;/span&gt;
&amp;nbsp;
        high &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;48&lt;/span&gt; + &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;filt_no &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        low &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;96&lt;/span&gt; + &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;filt_no &amp;amp; &lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        sendStr&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;81&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;33&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;44&#039;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;high&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;low&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;23&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;80&#039;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;#self.get_filter()&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Command Sent&amp;quot;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; pre_on&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;co1&quot;&gt;#get current 8-bit rxcon byte :&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# bit0 = filter FS3&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# bit1 = filter FS2&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# bit2 = filter FS1&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# bit3 = filter FS4&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# bit4 = preamp enabled&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# bit5 = atten 0 = 20dB / 1 = 40dB&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# bit6 = input filter 0 = HF / 1 = LF&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# bit7 = attenuator enabled&lt;/span&gt;
&amp;nbsp;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;32&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;48&#039;&lt;/span&gt;
&amp;nbsp;
        byte &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# set bit 4 ON = preamp ON and get the new 8-bit rxcon byte&lt;/span&gt;
        pon &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_bit&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# split new rxcon byte into two 4-bit nibbles, add 48/96 (\x30 and \x60)&lt;/span&gt;
        high &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;48&lt;/span&gt; + &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pon &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        low &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;96&lt;/span&gt; + &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pon &amp;amp; &lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;81&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;32&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;48&#039;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;high&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;low&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;29&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;80&#039;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Command sent&amp;quot;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; pre_off&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;co1&quot;&gt;#get current 8-bit rxcon byte&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;32&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;48&#039;&lt;/span&gt;
        byte &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# set bit 4 OFF = preamp OFF and get the new 8-bit rxcon byte&lt;/span&gt;
        pon &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;clear_bit&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# split new rxcon byte into two 4-bit nibbles, add 48/96 (\x30 and \x60)&lt;/span&gt;
        high &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;48&lt;/span&gt; + &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pon &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        low &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;96&lt;/span&gt; + &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pon &amp;amp; &lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;81&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;32&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;48&#039;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;high&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;low&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;29&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;80&#039;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Command sent&amp;quot;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_att&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;32&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;48&#039;&lt;/span&gt;
&amp;nbsp;
        byte &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        a &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;check_bit&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; a:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; att_on&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;co1&quot;&gt;#get current 8-bit rxcon byte&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;32&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;48&#039;&lt;/span&gt;
        byte &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# set bit 7 ON = ATT ON and get the new 8-bit rxcon byte&lt;/span&gt;
        pon &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_bit&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# split new rxcon byte into two 4-bit nibbles, add 48/96 (\x30 and \x60)&lt;/span&gt;
        high &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;48&lt;/span&gt; + &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pon &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        low &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;96&lt;/span&gt; + &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pon &amp;amp; &lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;81&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;32&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;48&#039;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;high&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;low&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;29&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;80&#039;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Command sent&amp;quot;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; att_off&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;co1&quot;&gt;#get current 8-bit rxcon byte&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;32&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;48&#039;&lt;/span&gt;
        byte &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# set bit 7 OFF = att OFF and get the new 8-bit rxcon byte&lt;/span&gt;
        pon &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;clear_bit&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# split new rxcon byte into two 4-bit nibbles, add 48/96 (\x30 and \x60)&lt;/span&gt;
        high &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;48&lt;/span&gt; + &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pon &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        low &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;96&lt;/span&gt; + &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pon &amp;amp; &lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;81&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;32&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;48&#039;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;high&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;low&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;29&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;80&#039;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Command sent&amp;quot;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; set_freq&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; freq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        fval &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; freq * fract
        &lt;span class=&quot;co1&quot;&gt;#print fval&lt;/span&gt;
        b1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;48&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fval / &lt;span class=&quot;nu0&quot;&gt;1048576&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        fval &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; fval % &lt;span class=&quot;nu0&quot;&gt;1048576&lt;/span&gt;
        b2 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;96&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fval / &lt;span class=&quot;nu0&quot;&gt;65536&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        fval &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; fval % &lt;span class=&quot;nu0&quot;&gt;65536&lt;/span&gt;
        b3 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;48&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fval / &lt;span class=&quot;nu0&quot;&gt;4096&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        fval &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; fval % &lt;span class=&quot;nu0&quot;&gt;4096&lt;/span&gt;
        b4 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;96&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fval / &lt;span class=&quot;nu0&quot;&gt;256&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        fval &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; fval % &lt;span class=&quot;nu0&quot;&gt;256&lt;/span&gt;
        b5 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;48&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fval / &lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        b6 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;96&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fval % &lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        f_tuple &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; b1&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; b2&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; b3&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; b4&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; b5&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; b6 &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        freqStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; byte &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; f_tuple:
            freqStr +&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;81&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;31&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;4a&#039;&lt;/span&gt; + freqStr + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;24&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;80&#039;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Freq Set&amp;quot;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_freq&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;31&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;4a&#039;&lt;/span&gt;
&amp;nbsp;
        freqStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        f_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; k &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; freqStr:
            f_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; f_val * &lt;span class=&quot;nu0&quot;&gt;256&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;k&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%.3f&amp;quot;&lt;/span&gt; % &lt;span class=&quot;kw2&quot;&gt;round&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;f_val / fract&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; set_mode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; mode&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;lsb&amp;quot;&lt;/span&gt;:
            set_mode_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;66&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;usb&amp;quot;&lt;/span&gt;:
            set_mode_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;67&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;am&amp;quot;&lt;/span&gt;:
            set_mode_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;61&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;cw&amp;quot;&lt;/span&gt;:
            set_mode_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;65&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;data&amp;quot;&lt;/span&gt;:
            set_mode_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;64&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;fm&amp;quot;&lt;/span&gt;:
            set_mode_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;63&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;s-am&amp;quot;&lt;/span&gt;:
            set_mode_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;62&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Mode not recognized&amp;quot;&lt;/span&gt;
&amp;nbsp;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;81&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;31&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;4d&#039;&lt;/span&gt; + set_mode_val + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;22&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;80&#039;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;filter&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_filter&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Mode sent&amp;quot;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_mode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;31&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;4d&amp;quot;&lt;/span&gt;
        m &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; m &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;01&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;am&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; m &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;02&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;s-am&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; m &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;03&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;fm&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; m &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;04&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;data&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; m &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;05&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;cw&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; m &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;06&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;lsb&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; m &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;07&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;usb&amp;quot;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; mode.&lt;span class=&quot;me1&quot;&gt;upper&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_s&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;2e&#039;&lt;/span&gt;
        sraw &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sraw&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_cal&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;52&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;3f&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;44&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;11&#039;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#print &amp;quot;sending getcal&amp;quot;&lt;/span&gt;
        cbytes &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        cal &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; c &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; cbytes:
            cal.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;c&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#print cal&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; cal
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_smeter&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        s &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_s&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        cal &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_cal&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        s1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s - cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        s2 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s1 - cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        s3 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s2 - cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        s4 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s3 - cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        s5 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s4 - cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        s6 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s5 - cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        s7 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s6 - cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; s1 &lt;span class=&quot;sy0&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; s2 &lt;span class=&quot;sy0&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;113&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s1 / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; s3 &lt;span class=&quot;sy0&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;103&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s2 / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; s4 &lt;span class=&quot;sy0&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;93&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s3 / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; s5 &lt;span class=&quot;sy0&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;83&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s4 / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; s6 &lt;span class=&quot;sy0&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;73&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s5 / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; s7 &lt;span class=&quot;sy0&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;63&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s6 / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;43&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s7 / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; tx_rx&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; reply&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; n&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;co1&quot;&gt;# apply thread lock&lt;/span&gt;
        lock.&lt;span class=&quot;me1&quot;&gt;acquire&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ser&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; reply:  &lt;span class=&quot;co1&quot;&gt;# for reading S-meter&lt;/span&gt;
            result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;not&lt;/span&gt; result:
                result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ser&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;read&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            lock.&lt;span class=&quot;me1&quot;&gt;release&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; result
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
&amp;nbsp;
            result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
            byte &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; n &lt;span class=&quot;sy0&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ser&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;71&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;co1&quot;&gt;#byte = &amp;quot;&amp;quot;&lt;/span&gt;
&amp;nbsp;
                &lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;not&lt;/span&gt; byte:
                    byte &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ser&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;read&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
                result +&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; byte
&amp;nbsp;
                byte &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
                n -&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
            lock.&lt;span class=&quot;me1&quot;&gt;release&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; result&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_23435a1905691f3ea794e5079af58e0d_24&quot;&gt;New (July 2022) server with AR7030 filter selection &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_23435a1905691f3ea794e5079af58e0d_24&quot;&gt;&lt;dl class=&quot;file&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?do=export_code&amp;amp;id=public:radio:radio_database:ar_7030&amp;amp;codeblock=3&quot; title=&quot;Download Snippet&quot; class=&quot;mediafile mf_py&quot;&gt;ar_server_filter.py&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code file python&quot;&gt;&lt;span class=&quot;co1&quot;&gt;#from aor import *&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;from&lt;/span&gt; aor_filter &lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; *
&lt;span class=&quot;co1&quot;&gt;#from icom import *&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;from&lt;/span&gt; conf &lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; *
&lt;span class=&quot;co1&quot;&gt;#from m710 import *&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;SocketServer&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;readline&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
&amp;nbsp;
lock &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Lock&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
radios &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;#r1 = Icom(n1, a1, cal1)&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#radios.append(n1)&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;#r2 = m710(n4)&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#radios.append(n4)&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;#r2 = Icom(n2, a2, cal2)&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#radios.append(n2)&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;#r3 = Ar7030(n3)&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#radios.append(n3)&lt;/span&gt;
&amp;nbsp;
r1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Ar7030&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;n3&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
radios.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;n3&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; radios
&lt;span class=&quot;co1&quot;&gt;#print r1.digi_off()&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;#print r2.remote_on()&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; count_radios&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    count &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radios&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; count
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; list_radios&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    radiolist &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; n &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radios&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        r &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; radios&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;n&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        radiolist +&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;r + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; radiolist
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; write_file&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;text&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    filename &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;commandlog.txt&#039;&lt;/span&gt;
    f &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;filename&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;a+&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;  &lt;span class=&quot;co1&quot;&gt;# a+ is &amp;quot;append to file, create it if it doesn&#039;t exist&amp;quot;&lt;/span&gt;
    timenow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strftime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;%d/%m/%Y %H:%M:%S&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;gmtime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    log &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;timenow&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;  &lt;span class=&quot;co1&quot;&gt;# make an entry for the log by joining the timestamp with the text passed in&lt;/span&gt;
    f.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;log&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    f.&lt;span class=&quot;me1&quot;&gt;close&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; write_con&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;text&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    filename &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;conlog.txt&#039;&lt;/span&gt;
    f &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;filename&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;a+&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;  &lt;span class=&quot;co1&quot;&gt;# a+ is &amp;quot;append to file, create it if it doesn&#039;t exist&amp;quot;&lt;/span&gt;
    timenow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strftime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;%d/%m/%Y %H:%M:%S&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;gmtime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    log &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;timenow&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;  &lt;span class=&quot;co1&quot;&gt;# make an entry for the log by joining the timestamp with the text passed in&lt;/span&gt;
    f.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;log&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    f.&lt;span class=&quot;me1&quot;&gt;close&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# The Server&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;class&lt;/span&gt; ThreadedRequestHandler&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;SocketServer&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;StreamRequestHandler&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; handle&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;co1&quot;&gt;# we find the current thread for the client connection just set up, to&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# use in the log file&lt;/span&gt;
        cur_thread &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;currentThread&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# log the new connection details&lt;/span&gt;
        write_con&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Connect from %s using %s &lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;client_address&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; cur_thread.&lt;span class=&quot;me1&quot;&gt;getName&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# print to the server&#039;s console the new connection IP address/port&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;client_address&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# loop to handle client requests....&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;True&lt;/span&gt;:
            &lt;span class=&quot;co1&quot;&gt;# using StreamRequestHandler means our input from the client&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# is  &amp;quot;file-like&amp;quot; and can be read with &amp;quot;file-like&amp;quot; commands&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# we read a line at a time, using readline()&lt;/span&gt;
            &lt;span class=&quot;kw3&quot;&gt;cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;rfile&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;readline&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;lower&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# to keep things clean, we remove any characters that aren&#039;t&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# &amp;quot;printable&amp;quot; simple ASCII&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# these are between 32 and 127 in the ASCII table&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# we look at each character, and then make a new word by&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# .join()ing each accepted character with no space in between&lt;/span&gt;
            asccmd &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;x &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; x &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;cmd&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;x&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;128&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;and&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;x&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;31&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# we make a list called &amp;quot;words&amp;quot; holding the received words which&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# will be inspected by various functions&lt;/span&gt;
            words &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; asccmd.&lt;span class=&quot;me1&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# If a client uses sock.close() itself, to disconnect, it appears that&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# we read a continuous stream of &amp;quot;&amp;quot; on the dead&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# socket, which puts CPU to 100%.&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# The &amp;quot;While&amp;quot; loop is probably responsible, but I can&#039;t see another&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# way to keep the connection up for multiple commands.&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# Further connection are accepted due to the Threaded nature of the server.&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# The CPU load is unacceptable though&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# HACK ?&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# Looking for &amp;quot;&amp;quot; and then breaking&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# the connection from the server end (even though the client has&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# gone) cures this.&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;:
                &lt;span class=&quot;kw1&quot;&gt;break&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
                &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# if the words list is empty, go back and get more input&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;not&lt;/span&gt; words:
                &lt;span class=&quot;kw1&quot;&gt;continue&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# we have input....&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# filter based on the first word - these are the&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# pre-set commands the server will accept&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# the client wants to know the currently available&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# radio names - held in the variable &amp;quot;rnames&amp;quot;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;getnames&amp;quot;&lt;/span&gt;:
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;rnames&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# words[-1] (the last word in the list) will always be the&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# radio name. We give the variable &amp;quot;my_radio&amp;quot; this value, for&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# identifying which radio object to apply the method to&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;count&amp;quot;&lt;/span&gt;:
                count &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; count_radios&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;count&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;ident&amp;quot;&lt;/span&gt;:
                ident_text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;GM4SLV Radio Server&amp;quot;&lt;/span&gt;
                radio_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; list_radios&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ident_text + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\r&lt;/span&gt;Available : &lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt; + radio_list + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;setfil&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                filt_no &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
                newfilt &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;set_filter&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;filt_no&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;newfilt&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;getfil&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                filt &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;get_filter&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;filt&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;getmode&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;get_mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;mode&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;getfreq&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                freq &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
                freq &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;get_freq&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;freq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;setmode&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
                newmode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;set_mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;mode&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;newmode&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;setfreq&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
                    freq &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                    newfreq &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;set_freq&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;freq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                    &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;newfreq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ValueError&lt;/span&gt;:
                    &lt;span class=&quot;co1&quot;&gt;#freq = float(my_radio.get_freq())&lt;/span&gt;
                    &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Error in freq. %s No change&lt;span class=&quot;es0&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt; % words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;getsmeter&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                smeter &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;round&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;my_radio.&lt;span class=&quot;me1&quot;&gt;get_smeter&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;smeter&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;gets&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                s &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;get_s&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;s&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;listradios&amp;quot;&lt;/span&gt;:
                radios &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; list_radios&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radios&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;getpreamp&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                preamp &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;get_pre&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;preamp&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;preampon&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                preamp &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;pre_on&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;preamp&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;preamp2on&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                preamp &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;pre_2_on&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;preamp&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;preampoff&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                preamp &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;pre_off&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;preamp&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;getatt&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                att &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;get_att&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;att&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;atton&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                att &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;att_on&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;att&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;attoff&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                att &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;att_off&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;att&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;tune&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                tune &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;tune&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;tune&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;getpwr&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                pwr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;get_pwr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pwr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;setpwr&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                spwr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
                pwr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;set_pwr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;spwr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pwr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;quit&amp;quot;&lt;/span&gt;:
                write_con&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Got quit from {}&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;format&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;client_address&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;  &lt;span class=&quot;co1&quot;&gt;# log it&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Goodbye! &lt;span class=&quot;es0&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;  &lt;span class=&quot;co1&quot;&gt;# say Goodbye&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;break&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:  &lt;span class=&quot;co1&quot;&gt;# nothing in words[0] matches a pre-set command....&lt;/span&gt;
                write_file&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Received %s&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt; % words&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;  &lt;span class=&quot;co1&quot;&gt;# log it, it&#039;s unusual&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Command not recognized&lt;span class=&quot;es0&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;  &lt;span class=&quot;co1&quot;&gt;# inform the client&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;class&lt;/span&gt; ThreadedIcomServer&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;SocketServer&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ThreadingMixIn&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;SocketServer&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;TCPServer&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; __name__ &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;__main__&#039;&lt;/span&gt;:
    &lt;span class=&quot;co1&quot;&gt;# define the lock to be used on the serial port access&lt;/span&gt;
    lock &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Lock&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;# address (&#039;&#039; = all available interfaces) to listen on, and port number&lt;/span&gt;
    address &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;9999&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    server &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; ThreadedIcomServer&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;address&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; ThreadedRequestHandler&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    server.&lt;span class=&quot;me1&quot;&gt;allow_reuse_address&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;True&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;# define that the server will be threaded, and will serve &amp;quot;forever&amp;quot; ie. not quit after the client disconnects&lt;/span&gt;
    t &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Thread&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;server.&lt;span class=&quot;me1&quot;&gt;serve_forever&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;# start the server thread&lt;/span&gt;
    t.&lt;span class=&quot;me1&quot;&gt;start&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    write_con&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;Server loop running in thread: %s&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt; % &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;t.&lt;span class=&quot;me1&quot;&gt;getName&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;3. Remote Control&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;remote_control&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;1692-45918&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit11&quot; id=&quot;documentation&quot;&gt;Documentation&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:radio_database:7030_-_corruption_agc_table_-_preset_test.pdf&quot; class=&quot;media mediafile mf_pdf&quot; title=&quot;public:radio:radio_database:7030_-_corruption_agc_table_-_preset_test.pdf (15.1 KB)&quot;&gt;7030_-_corruption_agc_table_-_preset_test.pdf&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:radio_database:7030serv.pdf&quot; class=&quot;media mediafile mf_pdf&quot; title=&quot;public:radio:radio_database:7030serv.pdf (191.9 KB)&quot;&gt;7030serv.pdf&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Documentation&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;documentation&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;45919-46086&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit12&quot; id=&quot;page_info&quot;&gt;Page Info&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Page created Wed May 25 00:04:50 2022 by John Pumford-Green
&lt;/p&gt;

&lt;p&gt;
Page last updated: 04/06/26 07:39 BST
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Page Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;page_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;46087-46200&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit13&quot; id=&quot;tags&quot;&gt;tags&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:ar7030&amp;amp;do=showtag&amp;amp;tag=ar7030&quot; class=&quot;wikilink1&quot; title=&quot;tag:ar7030&quot; rel=&quot;tag&quot;&gt;ar7030&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;tags&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;tags&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;46201-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 06:39:56 +0000</pubDate>
        </item>
        <item>
            <title>Yaesu FRG-7700</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:radio_database:frg-7700</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:radio_database:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:radio_database:start&quot; data-wiki-id=&quot;public:radio:radio_database:start&quot;&gt;Rig and Key List&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;yaesu_frg-7700&quot;&gt;Yaesu FRG-7700&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Yaesu FRG-7700&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;yaesu_frg-7700&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-48&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;page_info&quot;&gt;Page Info&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Page created Wed May 25 00:04:23 2022 by John Pumford-Green
&lt;/p&gt;

&lt;p&gt;
Page last updated: 04/06/26 07:39 BST
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Page Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;page_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;49-162&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;tags&quot;&gt;tags&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;tags&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;tags&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;163-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 06:39:56 +0000</pubDate>
        </item>
        <item>
            <title>Yaesu FT-2980</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:radio_database:ft-2980e</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:radio_database:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:radio_database:start&quot; data-wiki-id=&quot;public:radio:radio_database:start&quot;&gt;Rig and Key List&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;yaesu_ft-2980&quot;&gt;Yaesu FT-2980&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; High Power 2m Mobile &lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Yaesu FT-2980&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;yaesu_ft-2980&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-74&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;purchase_details&quot;&gt;Purchase Details&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Purchase Date : April 2024&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Bought From : Martin Lynch&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Purchase Price : £149&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Serial Number : 3FB10670&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Aradio%3Aradio_database%3Aft-2980e&amp;amp;media=public:radio:radio_database:ft-2980r.jpg&quot; class=&quot;media&quot; title=&quot;public:radio:radio_database:ft-2980r.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=400&amp;amp;tok=a387ec&amp;amp;media=public:radio:radio_database:ft-2980r.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Purchase Details&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;purchase_details&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;75-276&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;power_levels&quot;&gt;Power Levels&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;table sectionedit4&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Low L1&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;code&gt;5W&lt;/code&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Low L2&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;code&gt;10W&lt;/code&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Low L3&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;code&gt;30W&lt;/code&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;High&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;code&gt;80W&lt;/code&gt;&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;303-367&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Power Levels&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;power_levels&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;277-369&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;documentation&quot;&gt;Documentation&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;table sectionedit6&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; User Manual &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:radio_database:ft-2980r_om_eng_eh039n111.pdf&quot; class=&quot;media mediafile mf_pdf&quot; title=&quot;public:radio:radio_database:ft-2980r_om_eng_eh039n111.pdf (6.8 MB)&quot;&gt;ft-2980r_om_eng_eh039n111.pdf&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;397-479&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Documentation&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;documentation&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;370-479&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;mods_etc&quot;&gt;Mods etc&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;change_power_levels&quot;&gt;Change power levels&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://youtu.be/P2lYjuFxAX4?si=c-7QWSaT9zeYqBG8&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://youtu.be/P2lYjuFxAX4?si=c-7QWSaT9zeYqBG8&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://youtu.be/P2lYjuFxAX4?si=c-7QWSaT9zeYqBG8&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; via hidden calibration menu &lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; VFO Mode&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Turn OFF&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Hold &lt;kbd class=&quot;__keyboard&quot;&gt;DW&lt;/kbd&gt; and &lt;kbd class=&quot;__keyboard&quot;&gt;MW&lt;/kbd&gt; and power ON&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Rotate TUNE knob anticlockwise to select L1&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Press &lt;kbd class=&quot;__keyboard&quot;&gt;MW&lt;/kbd&gt; to tune L1.. Transmit and turn knob to set wanted power&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Press &lt;kbd class=&quot;__keyboard&quot;&gt;MW&lt;/kbd&gt; to fix new value&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Rotate TUNE knob to select L2…. etc…&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; When finished press &lt;kbd class=&quot;__keyboard&quot;&gt;DW&lt;/kbd&gt; to store new values and exit Calibration menu&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;80W&lt;/code&gt; &lt;strong&gt;High&lt;/strong&gt; is a bit too much and would rarely be used&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Check of factory settings:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;L1&lt;/code&gt; = &lt;code&gt;4A&lt;/code&gt; → 4W&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;L2&lt;/code&gt; = &lt;code&gt;5F&lt;/code&gt; → 9W&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;L3&lt;/code&gt; = &lt;code&gt;98&lt;/code&gt; → 27W&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;HP&lt;/code&gt; = &lt;code&gt;EE&lt;/code&gt; → ?? (Power not measured)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Changed to:&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;L1&lt;/code&gt; = &lt;code&gt;40&lt;/code&gt; → 2.5W&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;L2&lt;/code&gt; = &lt;code&gt;62&lt;/code&gt; → 10W&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;L3&lt;/code&gt; = &lt;code&gt;93&lt;/code&gt; → 25W&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;HP&lt;/code&gt; = &lt;code&gt;C5&lt;/code&gt; → 50W&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; 08/04/25 : New Values&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;L1&lt;/code&gt; = &lt;code&gt;35&lt;/code&gt; → 1W&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;L2&lt;/code&gt; = &lt;code&gt;50&lt;/code&gt; → 5W&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;L3&lt;/code&gt; = &lt;code&gt;86&lt;/code&gt; → 20W&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;HP&lt;/code&gt; = &lt;code&gt;C4&lt;/code&gt; → 50W&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 02/05/24 07:08 BST&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Mods etc&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;mods_etc&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;480-1576&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:ft2980&amp;amp;do=showtag&amp;amp;tag=ft2980&quot; class=&quot;wikilink1&quot; title=&quot;tag:ft2980&quot; rel=&quot;tag&quot;&gt;ft2980&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;1577-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 06:39:56 +0000</pubDate>
        </item>
        <item>
            <title>Yaesu FT-3D</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:radio_database:ft3d</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:radio_database:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:radio_database:start&quot; data-wiki-id=&quot;public:radio:radio_database:start&quot;&gt;Rig and Key List&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;yaesu_ft-3d&quot;&gt;Yaesu FT-3D&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; Fusion / FM Dual band handheld &lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Yaesu FT-3D&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;yaesu_ft-3d&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-81&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;section_one&quot;&gt;Section One&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Section One&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;section_one&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;82-107&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;documentation&quot;&gt;Documentation&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:radio_database:ft3dr_de_am_eng_1907-a.pdf&quot; class=&quot;media mediafile mf_pdf&quot; title=&quot;public:radio:radio_database:ft3dr_de_am_eng_1907-a.pdf (5.4 MB)&quot;&gt;ft3dr_de_am_eng_1907-a.pdf&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:radio_database:ft3dr_de_aprs_eng_1907-a.pdf&quot; class=&quot;media mediafile mf_pdf&quot; title=&quot;public:radio:radio_database:ft3dr_de_aprs_eng_1907-a.pdf (6.1 MB)&quot;&gt;ft3dr_de_aprs_eng_1907-a.pdf&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:radio_database:ft3dr_de_wires-x_eng_1908-b.pdf&quot; class=&quot;media mediafile mf_pdf&quot; title=&quot;public:radio:radio_database:ft3dr_de_wires-x_eng_1908-b.pdf (4.3 MB)&quot;&gt;ft3dr_de_wires-x_eng_1908-b.pdf&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 22/04/23 11:07&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Documentation&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;documentation&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;108-388&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:ft3d&amp;amp;do=showtag&amp;amp;tag=ft3d&quot; class=&quot;wikilink1&quot; title=&quot;tag:ft3d&quot; rel=&quot;tag&quot;&gt;ft3d&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:ysf&amp;amp;do=showtag&amp;amp;tag=ysf&quot; class=&quot;wikilink1&quot; title=&quot;tag:ysf&quot; rel=&quot;tag&quot;&gt;ysf&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:dv&amp;amp;do=showtag&amp;amp;tag=dv&quot; class=&quot;wikilink1&quot; title=&quot;tag:dv&quot; rel=&quot;tag&quot;&gt;dv&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;389-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 06:39:56 +0000</pubDate>
        </item>
        <item>
            <title>Yaesu FT-891</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:radio_database:ft_891</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:radio_database:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:radio_database:start&quot; data-wiki-id=&quot;public:radio:radio_database:start&quot;&gt;Rig and Key List&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;yaesu_ft-891&quot;&gt;Yaesu FT-891&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; HF/50MHz all mode &lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Yaesu FT-891&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;yaesu_ft-891&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-69&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;information&quot;&gt;Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Date : March 2025&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Purchased from : Martin Lynch &lt;a href=&quot;https://www.hamradio.co.uk/amateur-radio/mobile-radio/yaesu-mobile-radio/yaesu-ft-891-hf-50mhz-100w-all-mode-transceiver-pd-6839&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.hamradio.co.uk/amateur-radio/mobile-radio/yaesu-mobile-radio/yaesu-ft-891-hf-50mhz-100w-all-mode-transceiver-pd-6839&quot; rel=&quot;ugc nofollow noopener&quot;&gt; FT-891 &lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Price : £639&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; plus Wideband TX Mod : £25&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Firmware Versions&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Main : &lt;code&gt;V01-10&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; DSP : &lt;code&gt;V02-05&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; LCD : &lt;code&gt;V01-01&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; These appear to be the current, most up to date versions&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;70-500&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;ssb_tx_eq&quot;&gt;SSB TX EQ&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
I&amp;#039;m not naturally a &amp;#039;phone operator and avoid playing with audio settings as much as possible. I prefer simple “communications quality” audio when I use SSB. As the FT-891 is intended to be my “phone mode radio” and I&amp;#039;ve done some initial adjustments to try and achieve a clean, basic communications-quality setup.
&lt;/p&gt;

&lt;p&gt;
From what I can work out, the “bandwidth” settings of the EQ refer to Q - the smaller the number the lower the Q and the wider the affected bandwidth. I&amp;#039;m aiming for gentle shaping of the voice band to cut the low-end boomy bass and lift the high end “articulation” so I&amp;#039;ve set a low-Q on each pole of the EQ filter. I&amp;#039;ve set both the non-Compression and the Compression EQ settings to the same values - I want the audio to sound the same with and without the processor. The Mic&amp;#039;s rear “tone” switch can be used to give a slight increase in low frequencies by switching → 1 if I ever feel the need.
&lt;/p&gt;

&lt;p&gt;
Here are the settings I&amp;#039;ve got on the FT-891
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; MH31 Fist Mic rear switch → 2&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;deep_menu_settings&quot;&gt;Deep Menu Settings&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;div class=&quot;table sectionedit4&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;11-09 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;SSB TX Bandwidth&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 300-2700 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;16-07 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;SSB Mic Gain&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 15 &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1549-1612&amp;quot;} --&gt;
&lt;/div&gt;

&lt;h5 id=&quot;eq_values_for_processor_off&quot;&gt;EQ values for &amp;quot;Processor OFF&amp;quot;&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;div class=&quot;table sectionedit5&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;15-01 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;EQ 1 Freq &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 300 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;15-02 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;EQ 1 Level&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; -10 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;15-03 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;EQ 1 Bandwidth &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 1 &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1651-1732&amp;quot;} --&gt;&lt;div class=&quot;table sectionedit6&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;15-04 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;EQ 2 Freq &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 1200 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;15-05 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;EQ 2 Level &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 3 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;15-06 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;EQ 2 Bandwidth &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 1 &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table2&amp;quot;,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;1734-1814&amp;quot;} --&gt;&lt;div class=&quot;table sectionedit7&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;15-07 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;EQ 3 Freq &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 2500 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;15-08 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;EQ 3 Level &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 10 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;15-09 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;EQ 3 Bandwidth &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 1 &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table3&amp;quot;,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;1816-1897&amp;quot;} --&gt;
&lt;/div&gt;

&lt;h5 id=&quot;eq_values_for_processor_on&quot;&gt;EQ values for &amp;quot;Processor ON&amp;quot;&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;
&lt;div class=&quot;table sectionedit8&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;15-10 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;P-EQ 1 Freq &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 300 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;15-11 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;P-EQ 1 Level&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; -10 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;15-12 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;P-EQ 1 Bandwidth &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 1 &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table4&amp;quot;,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;1935-2022&amp;quot;} --&gt;&lt;div class=&quot;table sectionedit9&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;15-13 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;P-EQ 2 Freq &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 1200 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;15-14 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;P-EQ 2 Level &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 3 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;15-15 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;P-EQ 2 Bandwidth &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 1 &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table5&amp;quot;,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;2024-2110&amp;quot;} --&gt;&lt;div class=&quot;table sectionedit10&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;15-16 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;P-EQ 3 Freq &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 2500 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;15-17 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;P-EQ 3 Level &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 10 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;15-18 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;P-EQ 3 Bandwidth &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 1 &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table6&amp;quot;,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;2112-2199&amp;quot;} --&gt;
&lt;/div&gt;

&lt;h4 id=&quot;function_menu_settings&quot;&gt;Function Menu settings&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;div class=&quot;table sectionedit11&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;MEQ &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; ON &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;PRC &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; ON &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 30 &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table7&amp;quot;,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;2235-2265&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;SSB TX EQ&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;ssb_tx_eq&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;501-2265&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit12&quot; id=&quot;user_manuals&quot;&gt;User Manuals&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Basic Manual &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:radio_database:ft-891_om_eng_eh065h201_1611a-bo-2.pdf&quot; class=&quot;media mediafile mf_pdf&quot; title=&quot;public:radio:radio_database:ft-891_om_eng_eh065h201_1611a-bo-2.pdf (19.7 MB)&quot;&gt;ft-891_om_eng_eh065h201_1611a-bo-2.pdf&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Advanced Manual &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:radio_database:ft-891_advance_manual_eng_1806-f.pdf&quot; class=&quot;media mediafile mf_pdf&quot; title=&quot;public:radio:radio_database:ft-891_advance_manual_eng_1806-f.pdf (13.6 MB)&quot;&gt;ft-891_advance_manual_eng_1806-f.pdf&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 27/03/25 13:21 GMT&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;User Manuals&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;user_manuals&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;2266-2526&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit13&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:ft891&amp;amp;do=showtag&amp;amp;tag=ft891&quot; class=&quot;wikilink1&quot; title=&quot;tag:ft891&quot; rel=&quot;tag&quot;&gt;ft891&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;2527-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 06:39:56 +0000</pubDate>
        </item>
        <item>
            <title>Icom IC-7200</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:radio_database:ic-7200</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:radio_database:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:radio_database:start&quot; data-wiki-id=&quot;public:radio:radio_database:start&quot;&gt;Rig and Key List&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;icom_ic-7200&quot;&gt;Icom IC-7200&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; Rugged HF/50MHz &lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Icom IC-7200&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;icom_ic-7200&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-67&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;background&quot;&gt;Background&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; This is my 2nd &lt;strong&gt;IC-7200&lt;/strong&gt;. I foolishly sold my original one and very quickly regretted it.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; From the Silent Key equipment of Peter GM0CXQ&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Obtained 01/06/23&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Background&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;background&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;68-259&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;repairs_modifications&quot;&gt;Repairs &amp;amp; Modifications&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Repairs &amp;amp; Modifications&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;repairs_modifications&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;260-296&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;hm36_microphone_mod&quot;&gt;HM36 Microphone Mod&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; The current HM-36 microphone supplied with IC-7200 is poorly designed and problems are well documented on the internet.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; I carried out the “K1RF/PY3SS Modification” documented here : &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:radio_database:k1rf_modified_py3ss_hm-36_mic_mod_reva.pdf&quot; class=&quot;media mediafile mf_pdf&quot; title=&quot;public:radio:radio_database:k1rf_modified_py3ss_hm-36_mic_mod_reva.pdf (588 KB)&quot;&gt;k1rf_modified_py3ss_hm-36_mic_mod_reva.pdf&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; The newly modified HM-36 now functions “correctly” with adequate drive for the radio, and a better frequency response.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; It is now possible to set Mic Gain &amp;lt; 20 and Compression = 4 and obtain adequate ALC and full power out and a reasonable degree of compression without the need to “Close Talk” the microphone.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; It is also now possible to obtain full power out, and some ALC deflection, &lt;strong&gt;without use of Compression&lt;/strong&gt;, by adjusting the Mic Gain accordingly. This was difficult/impossible with the stock HM-36 &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;HM36 Microphone Mod&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hm36_microphone_mod&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;297-1117&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;fan_mod&quot;&gt;Fan Mod&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; I found that on a long (&amp;gt; 1 hour) Olivia QSO at 50W that the rear panel/heatsink reaches 60°C, and even the side-handles reach 43°C&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; The fans initially turn on with the PTT and run for a few seconds after dropping back to RX&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; As the temperature increases the fans switch to medium, and then fast speeds while running during TX and also remain running for longer at the switch back to RX&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; One mod suggests adding a small resistor across the fan switching transistor to keep the fans running slowly at all times, so that duing RX they might remove even more heat before the next period of TX&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; The mod is here &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:radio_database:ic_7200_fan_mod.pdf&quot; class=&quot;media mediafile mf_pdf&quot; title=&quot;public:radio:radio_database:ic_7200_fan_mod.pdf (469 KB)&quot;&gt;ic_7200_fan_mod.pdf&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; I carried out the mod, with a 120 ohm resistor and then had a similar long Olivia QSO to compare the temperatures of the rear heatsink and side handles.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Despite the continuous running fan I found that the rear panel still reached 60°C and the handles reached at least 40°C during the TX phase. &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; They probably cooled down a little more on RX, but not significantly, and not enough that the temperature on TX was noticeably lowered.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; There seems no major benefit in the mod, as the thermal design of the radio seems able to cope without it.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; There may be a downside though, the fans will now run continuously whenever the radio is turned on, which will cause them to prematurely wear out, or become noisy.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; After one night&amp;#039;s use I removed the modification and restored the fan control to normal.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Fan Mod&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;fan_mod&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1118-2635&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;documentation&quot;&gt;Documentation&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:radio_database:ic-7200_2.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:radio:radio_database:ic-7200_2.zip (11.2 MB)&quot;&gt; User Manual&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:radio_database:ic-7200_sm.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:radio:radio_database:ic-7200_sm.zip (18.7 MB)&quot;&gt; Service Manual&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:radio_database:pjh-ic7200.xml&quot; class=&quot;media mediafile mf_xml&quot; title=&quot;public:radio:radio_database:pjh-ic7200.xml (5.8 KB)&quot;&gt;pjh-ic7200.xml&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:radio_database:macros.mdf&quot; class=&quot;media mediafile mf_mdf&quot; title=&quot;public:radio:radio_database:macros.mdf (3.2 KB)&quot;&gt;macros.mdf&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 02/06/23 08:04&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Documentation&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;documentation&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;2636-2950&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:ic7200&amp;amp;do=showtag&amp;amp;tag=ic7200&quot; class=&quot;wikilink1&quot; title=&quot;tag:ic7200&quot; rel=&quot;tag&quot;&gt;ic7200&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;2951-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 06:39:56 +0000</pubDate>
        </item>
        <item>
            <title>Cadet Radio Info</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:swl:cadets</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:swl:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:swl:start&quot; data-wiki-id=&quot;public:radio:swl:start&quot;&gt;SWL Pages&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;cadet_radio_info&quot;&gt;Cadet Radio Info&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Cadet Radio Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;cadet_radio_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-47&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;cadet_radio_in_general&quot;&gt;Cadet Radio in general&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
ACP44 has channels listed, but the public version has the frequencies blank.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:2024:acp44.pdf&quot; class=&quot;media mediafile mf_pdf&quot; title=&quot;public:radio:2024:acp44.pdf (306.2 KB)&quot;&gt;acp44.pdf&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Internet source &lt;a href=&quot;https://www.wirelesswaffle.com/index.php?m=09&amp;amp;y=09&amp;amp;entry=entry090924-071250&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.wirelesswaffle.com/index.php?m=09&amp;amp;y=09&amp;amp;entry=entry090924-071250&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.wirelesswaffle.com/index.php?m=09&amp;amp;y=09&amp;amp;entry=entry090924-071250&lt;/a&gt; has these frequencies listed
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;air_cadet_frequencies&quot;&gt;Air Cadet Frequencies&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;div class=&quot;table sectionedit3&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Channel&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Frequency&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Power&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Comment&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; Lima 1 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 2368 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 100W &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; Lima 2 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 2490 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 100W &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; Lima 3 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 2848.5 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 100W &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; Lima 4 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 3236 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 350W &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; Lima 5 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 3306 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 100W &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; Lima 6 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 3343 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 100W &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; Lima 7 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 3678 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 350W &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; Lima 8 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 3715 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 350W &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; Lima 9 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 3752 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 350W &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;355-634&amp;quot;} --&gt;
&lt;p&gt;
2368, 2490, 2848.5, 3236*, 3306, 3343, 3678, 3715 and 3752 kHz
(Channel designations Lima 1 through Lima 9 respectively)
&lt;/p&gt;
&lt;div class=&quot;table sectionedit4&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Channel&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Frequency&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Power&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Comment&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;strong&gt;November 1&lt;/strong&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 5245 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 350W &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; National Network Channel &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;November 2&lt;/strong&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 4925 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 350W &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; National Network Channel &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;November 3&lt;/strong&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 5088 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 350W &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; National Network Channel &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;759-971&amp;quot;} --&gt;
&lt;p&gt;
5245, 4925 and 5088 kHz
(Channel designations November 1 through November 3)
&lt;/p&gt;
&lt;div class=&quot;table sectionedit5&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Channel&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Frequency&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Power&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Comment&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;Hotel 1&lt;/strong&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 5770 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 350W &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; Hotel 2 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 5795 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 350W &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; Hotel 3 &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;      &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 100W &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; Hotel 4 &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;      &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 100W &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; Hotel 5 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 7740 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 350W &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; Hotel 6 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 6775 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 100W &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; Hotel 7 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 7721 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 100W &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table2&amp;quot;,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1051-1284&amp;quot;} --&gt;
&lt;p&gt;
5770*, 5795, 7740, 6775 and 7721 kHz
(Channel designations Hotel 1 and 2, and 5 through 7)
&lt;/p&gt;
&lt;div class=&quot;table sectionedit6&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Channel&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Frequency&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Power&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Comment&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; Oscar 1 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 8120 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 350W &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; Oscar 2 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 13545 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 100W &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; Oscar 3 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 10843.5 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 100W &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; Oscar 4 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 14500 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 100W &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; Oscar 5 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 134445 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 100W &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; Oscar 6 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 13965 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 100W &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table3&amp;quot;,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;1378-1587&amp;quot;} --&gt;
&lt;p&gt;
8120, 13545, 10843.5, 14500, 13445 and 13965 kHz
(Channel designations Oscar 1 through 6)
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;sea_cadet_frequencies&quot;&gt;Sea Cadet Frequencies&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
2122.5, 2695, 3660, 6805, 6875, 6992.5* and 8187.5 kHz
(Channel designations SCO01, 02 and 11 to 15)
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;army_cadet_frequencies&quot;&gt;Army Cadet Frequencies&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
2275*, 2415*, 2770*, 3850*, 3865*, 4920, 4922.5*, 4955, 5330, 5345, 6915, 7710 and 7753 kHz
&lt;/p&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 01/04/24 17:22&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Cadet Radio in general&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;cadet_radio_in_general&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;48-1984&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; You Tube Channel with lots of NRN clips (mostly audio only) going back several years &lt;a href=&quot;https://www.youtube.com/@mashu97/playlists&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.youtube.com/@mashu97/playlists&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.youtube.com/@mashu97/playlists&lt;/a&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; There used to be a blog too &lt;a href=&quot;http://mashoo.org.uk/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;http://mashoo.org.uk/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;http://mashoo.org.uk/&lt;/a&gt;, but it seems to have disappeared, sadly. I used to follow/read it from time to time a few years ago. don&amp;#039;t know when it vanished from the interwebs. G(W)0VBC&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.radio-workshop.co.uk/g4nsj-ccf-pirate-radio-memories-ws-19-set/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.radio-workshop.co.uk/g4nsj-ccf-pirate-radio-memories-ws-19-set/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.radio-workshop.co.uk/g4nsj-ccf-pirate-radio-memories-ws-19-set/&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.radio-workshop.co.uk/g4nsj-pirate-and-ccf-radio-recollections/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.radio-workshop.co.uk/g4nsj-pirate-and-ccf-radio-recollections/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.radio-workshop.co.uk/g4nsj-pirate-and-ccf-radio-recollections/&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.oocities.org/capecanaveral/hall/8701/ham/ccf11.htm&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.oocities.org/capecanaveral/hall/8701/ham/ccf11.htm&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://www.oocities.org/capecanaveral/hall/8701/ham/ccf11.htm&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:cadet&amp;amp;do=showtag&amp;amp;tag=cadet&quot; class=&quot;wikilink1&quot; title=&quot;tag:cadet&quot; rel=&quot;tag&quot;&gt;cadet&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:nrn&amp;amp;do=showtag&amp;amp;tag=nrn&quot; class=&quot;wikilink1&quot; title=&quot;tag:nrn&quot; rel=&quot;tag&quot;&gt;nrn&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;1985-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 06:39:56 +0000</pubDate>
        </item>
        <item>
            <title>SWL Pages</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:swl:start</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:start&quot; data-wiki-id=&quot;public:radio:start&quot;&gt;Radio&lt;/a&gt;
&lt;/p&gt;

&lt;h2 class=&quot;sectionedit1&quot; id=&quot;swl_pages&quot;&gt;SWL Pages&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;script type=&quot;text/javascript&quot;&gt; catlist_baseurl = &quot;https://www.g4slv.info/dokuwiki/&quot;; catlist_basescript = &quot;doku.php&quot;; catlist_useslash = 0; catlist_userewrite = 0; catlist_sepchar = &quot;_&quot;; catlist_deaccent = 1; catlist_pagename_sanitize = 1; &lt;/script&gt;&lt;ul style=&quot;-webkit-column-count: 3; -moz-column-count: 3; column-count: 3;&quot; class=&quot;catlist_columns catlist-nslist&quot; &gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:swl:cadets&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:swl:cadets&quot; data-wiki-id=&quot;public:radio:swl:cadets&quot;&gt;Cadet Radio Info&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:swl:hf_frequencies&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:swl:hf_frequencies&quot; data-wiki-id=&quot;public:radio:swl:hf_frequencies&quot;&gt;HF Utilities&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:swl:hf_fax&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:swl:hf_fax&quot; data-wiki-id=&quot;public:radio:swl:hf_fax&quot;&gt;HF Weather FAX&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:swl:reu_export&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:swl:reu_export&quot; data-wiki-id=&quot;public:radio:swl:reu_export&quot;&gt;REU Export&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/p&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 26/04/23 13:31&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;SWL Pages&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;swl_pages&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;12-136&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://www.yaddnet.org/index.php&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;http://www.yaddnet.org/index.php&quot; rel=&quot;ugc nofollow noopener&quot;&gt;http://www.yaddnet.org/index.php&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://rxx.classaxe.com/en/reu/signals&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://rxx.classaxe.com/en/reu/signals&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://rxx.classaxe.com/en/reu/signals&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:dsc&amp;amp;do=showtag&amp;amp;tag=dsc&quot; class=&quot;wikilink1&quot; title=&quot;tag:dsc&quot; rel=&quot;tag&quot;&gt;dsc&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:ndb&amp;amp;do=showtag&amp;amp;tag=ndb&quot; class=&quot;wikilink1&quot; title=&quot;tag:ndb&quot; rel=&quot;tag&quot;&gt;ndb&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:swl&amp;amp;do=showtag&amp;amp;tag=swl&quot; class=&quot;wikilink1&quot; title=&quot;tag:swl&quot; rel=&quot;tag&quot;&gt;swl&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;137-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 06:39:56 +0000</pubDate>
        </item>
        <item>
            <title>Netradio Control</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:netradio_control</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:start&quot; data-wiki-id=&quot;public:radio:topics:start&quot;&gt;Radio Topics&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;netradio_control&quot;&gt;Netradio Control&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; Python code for TCP/IP control of multiple radios &lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Netradio Control&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;netradio_control&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-105&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;server&quot;&gt;Server&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
This provides TCP/IP access to one or more radios, allowing control of Frequency, Mode, Pre-amp and Attenuator. It also gives remote access to S-meter readings.
&lt;/p&gt;

&lt;p&gt;
There are separate rig-dependant command modules that then provide a standard interface for commands sent by a client, regardless of the particular radio connected.
&lt;/p&gt;

&lt;p&gt;
There are modules for
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Icom C-IV radios such as IC-R75, IC-718, IC-7200 etc.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; AOR AR7030&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Icom IC-M710 marine &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Server&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;server&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;106-575&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;server1&quot;&gt;Server&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_5f491c71348427373a57bc76d46bbc18_9&quot;&gt;server.py &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_5f491c71348427373a57bc76d46bbc18_9&quot;&gt;&lt;dl class=&quot;file&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?do=export_code&amp;amp;id=public:radio:topics:netradio_control&amp;amp;codeblock=0&quot; title=&quot;Download Snippet&quot; class=&quot;mediafile mf_py&quot;&gt;server.py&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code file python&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;from&lt;/span&gt; aor &lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; *
&lt;span class=&quot;kw1&quot;&gt;from&lt;/span&gt; icom &lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; *
&lt;span class=&quot;kw1&quot;&gt;from&lt;/span&gt; conf &lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; *
&lt;span class=&quot;kw1&quot;&gt;from&lt;/span&gt; m710 &lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; *
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;SocketServer&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;readline&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
&amp;nbsp;
lock &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Lock&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
radios &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
r1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Icom&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;n1&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; a1&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; cal1&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
radios.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;n1&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
r2 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; m710&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;n4&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
radios.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;n4&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;#r2 = Icom(n2, a2, cal2)&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#radios.append(n2)&lt;/span&gt;
&amp;nbsp;
r3 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Ar7030&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;n3&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
radios.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;n3&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; radios
&lt;span class=&quot;co1&quot;&gt;#print r1.digi_off()&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;#print r2.remote_on()&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; count_radios&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    count &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radios&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; count
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; list_radios&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    radiolist &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; n &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radios&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        r &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; radios&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;n&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        radiolist +&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;r + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; radiolist
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; write_file&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;text&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    filename &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;commandlog.txt&#039;&lt;/span&gt;
    f &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;filename&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;a+&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;  &lt;span class=&quot;co1&quot;&gt;# a+ is &amp;quot;append to file, create it if it doesn&#039;t exist&amp;quot;&lt;/span&gt;
    timenow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strftime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;%d/%m/%Y %H:%M:%S&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;gmtime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    log &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;timenow&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;  &lt;span class=&quot;co1&quot;&gt;# make an entry for the log by joining the timestamp with the text passed in&lt;/span&gt;
    f.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;log&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    f.&lt;span class=&quot;me1&quot;&gt;close&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; write_con&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;text&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    filename &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;conlog.txt&#039;&lt;/span&gt;
    f &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;filename&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;a+&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;  &lt;span class=&quot;co1&quot;&gt;# a+ is &amp;quot;append to file, create it if it doesn&#039;t exist&amp;quot;&lt;/span&gt;
    timenow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strftime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;%d/%m/%Y %H:%M:%S&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;gmtime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    log &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;timenow&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;  &lt;span class=&quot;co1&quot;&gt;# make an entry for the log by joining the timestamp with the text passed in&lt;/span&gt;
    f.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;log&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    f.&lt;span class=&quot;me1&quot;&gt;close&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# The Server&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;class&lt;/span&gt; ThreadedRequestHandler&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;SocketServer&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;StreamRequestHandler&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; handle&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;co1&quot;&gt;# we find the current thread for the client connection just set up, to&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# use in the log file&lt;/span&gt;
        cur_thread &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;currentThread&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# log the new connection details&lt;/span&gt;
        write_con&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Connect from %s using %s &lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;client_address&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; cur_thread.&lt;span class=&quot;me1&quot;&gt;getName&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# print to the server&#039;s console the new connection IP address/port&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;client_address&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# loop to handle client requests....&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;True&lt;/span&gt;:
            &lt;span class=&quot;co1&quot;&gt;# using StreamRequestHandler means our input from the client&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# is  &amp;quot;file-like&amp;quot; and can be read with &amp;quot;file-like&amp;quot; commands&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# we read a line at a time, using readline()&lt;/span&gt;
            &lt;span class=&quot;kw3&quot;&gt;cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;rfile&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;readline&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;lower&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# to keep things clean, we remove any characters that aren&#039;t&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# &amp;quot;printable&amp;quot; simple ASCII&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# these are between 32 and 127 in the ASCII table&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# we look at each character, and then make a new word by&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# .join()ing each accepted character with no space in between&lt;/span&gt;
            asccmd &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;x &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; x &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;cmd&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;x&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;128&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;and&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;x&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;31&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# we make a list called &amp;quot;words&amp;quot; holding the received words which&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# will be inspected by various functions&lt;/span&gt;
            words &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; asccmd.&lt;span class=&quot;me1&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# If a client uses sock.close() itself, to disconnect, it appears that&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# we read a continuous stream of &amp;quot;&amp;quot; on the dead&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# socket, which puts CPU to 100%.&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# The &amp;quot;While&amp;quot; loop is probably responsible, but I can&#039;t see another&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# way to keep the connection up for multiple commands.&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# Further connection are accepted due to the Threaded nature of the server.&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# The CPU load is unacceptable though&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# HACK ?&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# Looking for &amp;quot;&amp;quot; and then breaking&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# the connection from the server end (even though the client has&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# gone) cures this.&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;cmd&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;:
                &lt;span class=&quot;kw1&quot;&gt;break&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
                &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# if the words list is empty, go back and get more input&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;not&lt;/span&gt; words:
                &lt;span class=&quot;kw1&quot;&gt;continue&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# we have input....&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# filter based on the first word - these are the&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# pre-set commands the server will accept&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# the client wants to know the currently available&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# radio names - held in the variable &amp;quot;rnames&amp;quot;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;getnames&amp;quot;&lt;/span&gt;:
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;rnames&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# words[-1] (the last word in the list) will always be the&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# radio name. We give the variable &amp;quot;my_radio&amp;quot; this value, for&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;# identifying which radio object to apply the method to&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;count&amp;quot;&lt;/span&gt;:
                count &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; count_radios&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;count&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;ident&amp;quot;&lt;/span&gt;:
                ident_text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;GM4SLV Radio Server&amp;quot;&lt;/span&gt;
                radio_list &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; list_radios&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ident_text + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\r&lt;/span&gt;Available : &lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt; + radio_list + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;getmode&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;get_mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;mode&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;getfreq&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                freq &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
                freq &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;get_freq&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;freq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;setmode&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
                newmode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;set_mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;mode&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;newmode&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;setfreq&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
                    freq &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                    newfreq &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;set_freq&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;freq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                    &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;newfreq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ValueError&lt;/span&gt;:
                    &lt;span class=&quot;co1&quot;&gt;#freq = float(my_radio.get_freq())&lt;/span&gt;
                    &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Error in freq. %s No change&lt;span class=&quot;es0&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt; % words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;getsmeter&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                smeter &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;round&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;my_radio.&lt;span class=&quot;me1&quot;&gt;get_smeter&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;smeter&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;gets&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                s &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;get_s&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;s&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;listradios&amp;quot;&lt;/span&gt;:
                radios &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; list_radios&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radios&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;getpreamp&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                preamp &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;get_pre&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;preamp&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;preampon&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                preamp &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;pre_on&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;preamp&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;preamp2on&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                preamp &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;pre_2_on&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;preamp&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;preampoff&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                preamp &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;pre_off&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;preamp&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;getatt&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                att &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;get_att&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;att&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;atton&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                att &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;att_on&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;att&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;attoff&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                att &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;att_off&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;att&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;tune&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                tune &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;tune&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;tune&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;getpwr&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                pwr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;get_pwr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pwr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;setpwr&amp;quot;&lt;/span&gt;:
                my_radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;eval&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                spwr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
                pwr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; my_radio.&lt;span class=&quot;me1&quot;&gt;set_pwr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;spwr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pwr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; words&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;quit&amp;quot;&lt;/span&gt;:
                write_con&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Got quit from {}&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;format&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;client_address&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;  &lt;span class=&quot;co1&quot;&gt;# log it&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Goodbye! &lt;span class=&quot;es0&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;  &lt;span class=&quot;co1&quot;&gt;# say Goodbye&lt;/span&gt;
                &lt;span class=&quot;kw1&quot;&gt;break&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:  &lt;span class=&quot;co1&quot;&gt;# nothing in words[0] matches a pre-set command....&lt;/span&gt;
                write_file&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Received %s&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt; % words&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;  &lt;span class=&quot;co1&quot;&gt;# log it, it&#039;s unusual&lt;/span&gt;
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;wfile&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Command not recognized&lt;span class=&quot;es0&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;  &lt;span class=&quot;co1&quot;&gt;# inform the client&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;class&lt;/span&gt; ThreadedIcomServer&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;SocketServer&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ThreadingMixIn&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;SocketServer&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;TCPServer&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; __name__ &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;__main__&#039;&lt;/span&gt;:
    &lt;span class=&quot;co1&quot;&gt;# define the lock to be used on the serial port access&lt;/span&gt;
    lock &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Lock&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;# address (&#039;&#039; = all available interfaces) to listen on, and port number&lt;/span&gt;
    address &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;9999&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    server &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; ThreadedIcomServer&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;address&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; ThreadedRequestHandler&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    server.&lt;span class=&quot;me1&quot;&gt;allow_reuse_address&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;True&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;# define that the server will be threaded, and will serve &amp;quot;forever&amp;quot; ie. not quit after the client disconnects&lt;/span&gt;
    t &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Thread&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;server.&lt;span class=&quot;me1&quot;&gt;serve_forever&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;# start the server thread&lt;/span&gt;
    t.&lt;span class=&quot;me1&quot;&gt;start&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    write_con&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;Server loop running in thread: %s&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt; % &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;t.&lt;span class=&quot;me1&quot;&gt;getName&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Server&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;server1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;576-9468&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;configurtion_module&quot;&gt;Configurtion Module&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_5f491c71348427373a57bc76d46bbc18_10&quot;&gt;conf.py &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_5f491c71348427373a57bc76d46bbc18_10&quot;&gt;&lt;dl class=&quot;file&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?do=export_code&amp;amp;id=public:radio:topics:netradio_control&amp;amp;codeblock=1&quot; title=&quot;Download Snippet&quot; class=&quot;mediafile mf_py&quot;&gt;cpnf.py&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code file python&quot;&gt;&lt;span class=&quot;co1&quot;&gt;# header&lt;/span&gt;
preamble &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;fe&amp;quot;&lt;/span&gt;
controller &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;e0&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# commands/requests&lt;/span&gt;
set_freq_cmd &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;05&amp;quot;&lt;/span&gt;
set_mode_cmd &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;06&amp;quot;&lt;/span&gt;
get_freq_cmd &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;03&amp;quot;&lt;/span&gt;
get_mode_cmd &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;04&amp;quot;&lt;/span&gt;
get_smeter_cmd &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;15&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;02&amp;quot;&lt;/span&gt;
get_swr_cmd &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;15&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;12&amp;quot;&lt;/span&gt;
digi_off_cmd &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;1a&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;04&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;00&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;00&amp;quot;&lt;/span&gt;
&amp;nbsp;
set_pre_cmd &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;16&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;02&amp;quot;&lt;/span&gt;
&amp;nbsp;
set_pre_off &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;00&amp;quot;&lt;/span&gt;
set_pre_on &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;01&amp;quot;&lt;/span&gt;
set_pre_2_on &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;02&amp;quot;&lt;/span&gt;
&amp;nbsp;
set_att_cmd &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;11&amp;quot;&lt;/span&gt;
set_att_on &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;20&amp;quot;&lt;/span&gt;
set_att_off &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;00&amp;quot;&lt;/span&gt;
&amp;nbsp;
ptt_on_cmd &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;1c&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;00&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;01&amp;quot;&lt;/span&gt;
ptt_off_cmd &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;1c&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;00&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;00&amp;quot;&lt;/span&gt;
&amp;nbsp;
pwr_cmd &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;14&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;0a&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# end of message&lt;/span&gt;
eom &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;fd&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# controller responses&lt;/span&gt;
ack &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;fb&amp;quot;&lt;/span&gt;
nak &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;fa&amp;quot;&lt;/span&gt;
&amp;nbsp;
a1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;5A&amp;quot;&lt;/span&gt;
n1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;IC-R75&amp;quot;&lt;/span&gt;
cal1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;36&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;47&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;31&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;34&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;35&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
a2 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;5e&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# a2 = &amp;quot;\x01&amp;quot;&lt;/span&gt;
n2 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;IC-718&amp;quot;&lt;/span&gt;
cal2 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;27&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;28&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;58&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;35&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;42&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
n3 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;AR7030&amp;quot;&lt;/span&gt;
&amp;nbsp;
n4 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;IC-M710&amp;quot;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Configurtion Module&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;configurtion_module&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;9469-10348&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;icom_c-iv_module&quot;&gt;Icom C-IV module&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_5f491c71348427373a57bc76d46bbc18_11&quot;&gt;icom.py &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_5f491c71348427373a57bc76d46bbc18_11&quot;&gt;&lt;dl class=&quot;file&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?do=export_code&amp;amp;id=public:radio:topics:netradio_control&amp;amp;codeblock=2&quot; title=&quot;Download Snippet&quot; class=&quot;mediafile mf_py&quot;&gt;icom.py&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code file python&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; serial
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;from&lt;/span&gt; conf &lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; *
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#sport = &amp;quot;COM1&amp;quot;&lt;/span&gt;
sport &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;/dev/ttyS0&amp;quot;&lt;/span&gt;
sbaud &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;9600&lt;/span&gt;
&amp;nbsp;
lock &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Lock&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;class&lt;/span&gt; Icom&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;object&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;__init__&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; model&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio_address&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; cal&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ser&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; serial.&lt;span class=&quot;me1&quot;&gt;Serial&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sport&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sbaud&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; timeout&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0.1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;model&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; model
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radio_address&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; radio_address
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cal&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; cal
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; digi_off&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble + preamble + &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radio_address&lt;/span&gt; + controller + digi_off_cmd + eom
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; ack:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Success&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; nak:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;NAK received&amp;quot;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_pre&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble + preamble + &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radio_address&lt;/span&gt; + controller + set_pre_cmd + eom
&amp;nbsp;
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;not&lt;/span&gt; result:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;00&amp;quot;&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;01&amp;quot;&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;02&amp;quot;&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_pwr&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble + preamble + &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radio_address&lt;/span&gt; + controller + pwr_cmd + eom
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;not&lt;/span&gt; result:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt;
        p1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; / &lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt;
        p2 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; % &lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt;
        p3 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; / &lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt;
        p4 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; % &lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt;
        pwr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt; * &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; * p3 + p4&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; * p1 + p2&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pwr*&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;/&lt;span class=&quot;nu0&quot;&gt;255&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; set_pwr&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; pwr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;co1&quot;&gt;#if pwr == &amp;quot;25&amp;quot;:&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#    spwr = &amp;quot;\x00&amp;quot; + &amp;quot;\x63&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#elif pwr == &amp;quot;50&amp;quot;:&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#    spwr = &amp;quot;\x01&amp;quot; + &amp;quot;\x27&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#elif pwr == &amp;quot;75&amp;quot;:&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#    spwr = &amp;quot;\x01&amp;quot; + &amp;quot;\x91&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#elif pwr == &amp;quot;100&amp;quot;:&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#    spwr = &amp;quot;\x02&amp;quot; + &amp;quot;\x55&amp;quot;&lt;/span&gt;
        rigpwr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pwr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;255&lt;/span&gt; / &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;rigpwr &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; rigpwr
        pwr1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; rigpwr / &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;
        pwr2 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; rigpwr % &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;
        spwr1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pwr1 / &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        spwr2 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pwr1 % &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        spwr3 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;  &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pwr2 / &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        spwr4 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;  &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pwr2 % &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        spwr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;spwr1+spwr2&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;spwr3+spwr4&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#print &amp;quot;spwr &amp;quot;, spwr&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble + preamble + &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radio_address&lt;/span&gt; + controller + pwr_cmd + spwr + eom
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; ack:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_pwr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; nak:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;NAK received&amp;quot;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; pre_on&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble + preamble + &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radio_address&lt;/span&gt; + controller + set_pre_cmd + set_pre_on + eom
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; ack:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Success&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; nak:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;NAK received&amp;quot;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; pre_2_on&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble + preamble + &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radio_address&lt;/span&gt; + controller + set_pre_cmd + set_pre_2_on + eom
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; ack:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Success&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; nak:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;NAK received&amp;quot;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; pre_off&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble + preamble + &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radio_address&lt;/span&gt; + controller + set_pre_cmd + set_pre_off + eom
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; ack:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Success&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; nak:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;NAK received&amp;quot;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; ptt_on&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble + preamble + &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radio_address&lt;/span&gt; + controller + ptt_on_cmd + eom
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#print result[5]&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;not&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; ack:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;ptt on&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; nak:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Error&amp;quot;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; ptt_off&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble + preamble + &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radio_address&lt;/span&gt; + controller + ptt_off_cmd + eom
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#print result[5]&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;not&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; ack:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;ptt off&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; nak:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Error&amp;quot;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_att&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble + preamble + &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radio_address&lt;/span&gt; + controller + set_att_cmd + eom
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;not&lt;/span&gt; result:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;00&amp;quot;&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;20&amp;quot;&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; att_on&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble + preamble + &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radio_address&lt;/span&gt; + controller + set_att_cmd + set_att_on + eom
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; ack:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Success&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; nak:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;NAK received&amp;quot;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; att_off&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble + preamble + &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radio_address&lt;/span&gt; + controller + set_att_cmd + set_att_off + eom
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; ack:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Success&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; nak:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;NAK received&amp;quot;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; set_freq&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; freq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        fdig &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%010d&amp;quot;&lt;/span&gt; % &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;freq * &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        bcd &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; i &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
            bcd +&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;freq_bcd&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fdig&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fdig&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;i + &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        set_freq_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; byte &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; bcd:
            set_freq_val +&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble + preamble + &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radio_address&lt;/span&gt; + controller + set_freq_cmd + set_freq_val + eom
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; ack:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Set Freq success&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; nak:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;NAK received / Freq not supported&amp;quot;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_freq&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble + preamble + &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radio_address&lt;/span&gt; + controller + get_freq_cmd + eom
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;not&lt;/span&gt; result:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;result&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
            f &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; k &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;:
            f &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; * f + &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;nib&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;result&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; k&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;freq&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;f&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; / &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%.3f&amp;quot;&lt;/span&gt; % &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;freq&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; set_mode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; mode&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;in set_mode() with &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; mode
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;data&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;rtty&amp;quot;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;lsb&amp;quot;&lt;/span&gt;:
            set_mode_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;00&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;usb&amp;quot;&lt;/span&gt;:
            set_mode_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;01&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;am&amp;quot;&lt;/span&gt;:
            set_mode_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;02&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;cw&amp;quot;&lt;/span&gt;:
            set_mode_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;03&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;rtty&amp;quot;&lt;/span&gt;:
            set_mode_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;04&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;fm&amp;quot;&lt;/span&gt;:
            set_mode_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;05&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;cw-r&amp;quot;&lt;/span&gt;:
            set_mode_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;07&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;rtty-r&amp;quot;&lt;/span&gt;:
            set_mode_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;08&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;s-am&amp;quot;&lt;/span&gt;:
            set_mode_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;11&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Mode not recognized&amp;quot;&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble + preamble + &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radio_address&lt;/span&gt; + controller + set_mode_cmd + set_mode_val + eom
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; ack:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Set Mode Success&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; nak:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;NAK received / Mode not supported&amp;quot;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_mode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble + preamble + &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radio_address&lt;/span&gt; + controller + get_mode_cmd + eom
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;not&lt;/span&gt; result:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt;
        mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;00&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;lsb&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;01&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;usb&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;02&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;am&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;03&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;cw&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;04&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;rtty&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;05&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;fm&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;08&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;rtty-r&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;07&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;cw-r&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;11&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;s-am&amp;quot;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;rtty&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;data&amp;quot;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mode&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; mode
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mode&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;upper&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_s&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble + preamble + &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radio_address&lt;/span&gt; + controller + get_smeter_cmd + eom
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;not&lt;/span&gt; result:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt;
        sm1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; / &lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt;
        sm2 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; % &lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt;
        sm3 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; / &lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt;
        sm4 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; % &lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt;
        s &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt; * &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; * sm3 + sm4&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; * sm1 + sm2&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; s
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_swr&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble + preamble + &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radio_address&lt;/span&gt; + controller + get_swr_cmd + eom
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;not&lt;/span&gt; result:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt;
        sm1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; / &lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt;
        sm2 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; % &lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt;
        sm3 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; / &lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt;
        sm4 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;result&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; % &lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt;
        swr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt; * &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; * sm3 + sm4&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; * sm1 + sm2&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; swr
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_smeter&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        s &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_s&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        cal &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cal&lt;/span&gt;
        s1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s - cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        s2 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s1 - cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        s3 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s2 - cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        s4 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s3 - cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        s5 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s4 - cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        s6 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s5 - cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        s7 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s6 - cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; s1 &lt;span class=&quot;sy0&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; s2 &lt;span class=&quot;sy0&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;113&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s1 / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; s3 &lt;span class=&quot;sy0&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;103&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s2 / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; s4 &lt;span class=&quot;sy0&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;93&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s3 / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; s5 &lt;span class=&quot;sy0&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;83&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s4 / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; s6 &lt;span class=&quot;sy0&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;73&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s5 / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; s7 &lt;span class=&quot;sy0&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;63&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s6 / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;43&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s7 / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_name&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;model&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; tune&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;tuning&amp;quot;&lt;/span&gt;
        curmode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;lower&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#print &amp;quot;Current Mode &amp;quot;,curmode&lt;/span&gt;
&amp;nbsp;
        curpwr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_pwr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; curpwr &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;98&lt;/span&gt;:
            curpwr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; curpwr + &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;#print &amp;quot;Current Power &amp;quot;, curpwr&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;#print &amp;quot;Current percent power &amp;quot;, curpwr&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;rtty&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_pwr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#print &amp;quot;Tuning power &amp;quot;, self.get_pwr()&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#print &amp;quot;PTT On&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ptt_on&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sleep&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        swr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;  &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_swr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#print &amp;quot;SWR :&amp;quot;, swr&lt;/span&gt;
        &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sleep&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ptt_off&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#print &amp;quot;PTT Off&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;curmode&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#print &amp;quot;Mode reset &amp;quot;,self.get_mode()&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_pwr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;curpwr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Tuned : (ref pwr : %s)&amp;quot;&lt;/span&gt; % swr
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Tuned : (ref pwr : %s)&amp;quot;&lt;/span&gt; % swr
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; tx_rx&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        lock.&lt;span class=&quot;me1&quot;&gt;acquire&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ser&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        echo &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ser&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;read&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;echo&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt;
        byte &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt;
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
        count &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; byte &lt;span class=&quot;sy0&quot;&gt;!=&lt;/span&gt; eom:
            byte &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ser&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;read&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;co1&quot;&gt;#print &amp;quot;%#02x&amp;quot; % ord(byte)&lt;/span&gt;
            result +&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; byte
            count +&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; count &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;:
                &lt;span class=&quot;kw1&quot;&gt;break&lt;/span&gt;
        lock.&lt;span class=&quot;me1&quot;&gt;release&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#print &amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; result
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; nib&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; s&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; i&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        k &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;s&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;i / &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; i % &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
            k &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; k &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; k &amp;amp; &lt;span class=&quot;nu0&quot;&gt;0xf&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; freq_bcd&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; d1&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; d2&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt; * d1 + d2&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Icom C-IV module&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;icom_c-iv_module&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;10349-21537&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;aor_ar7030_module&quot;&gt;AOR AR7030 module&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_5f491c71348427373a57bc76d46bbc18_12&quot;&gt;aor.py &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_5f491c71348427373a57bc76d46bbc18_12&quot;&gt;&lt;dl class=&quot;file&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?do=export_code&amp;amp;id=public:radio:topics:netradio_control&amp;amp;codeblock=3&quot; title=&quot;Download Snippet&quot; class=&quot;mediafile mf_py&quot;&gt;aor.py&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code file python&quot;&gt;&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; serial
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;#sport = &amp;quot;/dev/ttyS0&amp;quot;&lt;/span&gt;
sport &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;/dev/ttyUSB1&amp;quot;&lt;/span&gt;
sbaud &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1200&lt;/span&gt;
&amp;nbsp;
lock &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Lock&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
fract &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; ** &lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; / &lt;span class=&quot;nu0&quot;&gt;44545&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;class&lt;/span&gt; Ar7030&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;object&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;__init__&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; model&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ser&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; serial.&lt;span class=&quot;me1&quot;&gt;Serial&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sport&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sbaud&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; timeout&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;model&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; model
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; check_bit&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; byte&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bit&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        mask &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; bit
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &amp;amp; mask&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; set_bit&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; byte&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bit&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        mask &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; bit
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; | mask
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; result
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; clear_bit&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; byte&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bit&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        mask &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;~&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; bit&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &amp;amp; mask&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; result
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_ident&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;5f&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;40&#039;&lt;/span&gt;
        ident &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; ident
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_pre&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;32&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;48&#039;&lt;/span&gt;
        byte &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        p &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;check_bit&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; p:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; pre_on&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;co1&quot;&gt;#get current 8-bit rxcon byte :&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# bit0 = filter FS3&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# bit1 = filter FS2&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# bit2 = filter FS1&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# bit3 = filter FS4&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# bit4 = preamp enabled&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# bit5 = atten 0 = 20dB / 1 = 40dB&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# bit6 = input filter 0 = HF / 1 = LF&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;# bit7 = attenuator enabled&lt;/span&gt;
&amp;nbsp;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;32&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;48&#039;&lt;/span&gt;
&amp;nbsp;
        byte &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# set bit 4 ON = preamp ON and get the new 8-bit rxcon byte&lt;/span&gt;
        pon &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_bit&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# split new rxcon byte into two 4-bit nibbles, add 48/96 (\x30 and \x60)&lt;/span&gt;
        high &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;48&lt;/span&gt; + &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pon &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        low &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;96&lt;/span&gt; + &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pon &amp;amp; &lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;81&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;32&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;48&#039;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;high&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;low&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;29&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;80&#039;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Command sent&amp;quot;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; pre_off&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;co1&quot;&gt;#get current 8-bit rxcon byte&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;32&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;48&#039;&lt;/span&gt;
        byte &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# set bit 4 OFF = preamp OFF and get the new 8-bit rxcon byte&lt;/span&gt;
        pon &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;clear_bit&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# split new rxcon byte into two 4-bit nibbles, add 48/96 (\x30 and \x60)&lt;/span&gt;
        high &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;48&lt;/span&gt; + &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pon &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        low &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;96&lt;/span&gt; + &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pon &amp;amp; &lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;81&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;32&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;48&#039;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;high&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;low&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;29&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;80&#039;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Command sent&amp;quot;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_att&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;32&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;48&#039;&lt;/span&gt;
&amp;nbsp;
        byte &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        a &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;check_bit&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; a:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; att_on&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;co1&quot;&gt;#get current 8-bit rxcon byte&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;32&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;48&#039;&lt;/span&gt;
        byte &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# set bit 7 ON = ATT ON and get the new 8-bit rxcon byte&lt;/span&gt;
        pon &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_bit&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# split new rxcon byte into two 4-bit nibbles, add 48/96 (\x30 and \x60)&lt;/span&gt;
        high &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;48&lt;/span&gt; + &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pon &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        low &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;96&lt;/span&gt; + &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pon &amp;amp; &lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;81&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;32&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;48&#039;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;high&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;low&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;29&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;80&#039;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Command sent&amp;quot;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; att_off&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;co1&quot;&gt;#get current 8-bit rxcon byte&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;32&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;48&#039;&lt;/span&gt;
        byte &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# set bit 7 OFF = att OFF and get the new 8-bit rxcon byte&lt;/span&gt;
        pon &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;clear_bit&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;# split new rxcon byte into two 4-bit nibbles, add 48/96 (\x30 and \x60)&lt;/span&gt;
        high &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;48&lt;/span&gt; + &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pon &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        low &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;96&lt;/span&gt; + &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;pon &amp;amp; &lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;81&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;32&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;48&#039;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;high&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;low&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;29&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;80&#039;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Command sent&amp;quot;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; set_freq&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; freq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        fval &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; freq * fract
        &lt;span class=&quot;co1&quot;&gt;#print fval&lt;/span&gt;
        b1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;48&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fval / &lt;span class=&quot;nu0&quot;&gt;1048576&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        fval &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; fval % &lt;span class=&quot;nu0&quot;&gt;1048576&lt;/span&gt;
        b2 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;96&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fval / &lt;span class=&quot;nu0&quot;&gt;65536&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        fval &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; fval % &lt;span class=&quot;nu0&quot;&gt;65536&lt;/span&gt;
        b3 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;48&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fval / &lt;span class=&quot;nu0&quot;&gt;4096&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        fval &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; fval % &lt;span class=&quot;nu0&quot;&gt;4096&lt;/span&gt;
        b4 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;96&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fval / &lt;span class=&quot;nu0&quot;&gt;256&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        fval &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; fval % &lt;span class=&quot;nu0&quot;&gt;256&lt;/span&gt;
        b5 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;48&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fval / &lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        b6 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;96&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fval % &lt;span class=&quot;nu0&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        f_tuple &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; b1&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; b2&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; b3&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; b4&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; b5&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; b6 &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        freqStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; byte &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; f_tuple:
            freqStr +&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chr&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;byte&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;81&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;31&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;4a&#039;&lt;/span&gt; + freqStr + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;24&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;80&#039;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Freq Set&amp;quot;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_freq&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;31&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;4a&#039;&lt;/span&gt;
&amp;nbsp;
        freqStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        f_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; k &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; freqStr:
            f_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; f_val * &lt;span class=&quot;nu0&quot;&gt;256&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;k&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%.3f&amp;quot;&lt;/span&gt; % &lt;span class=&quot;kw2&quot;&gt;round&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;f_val / fract&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; set_mode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; mode&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;lsb&amp;quot;&lt;/span&gt;:
            set_mode_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;66&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;usb&amp;quot;&lt;/span&gt;:
            set_mode_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;67&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;am&amp;quot;&lt;/span&gt;:
            set_mode_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;61&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;cw&amp;quot;&lt;/span&gt;:
            set_mode_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;65&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;data&amp;quot;&lt;/span&gt;:
            set_mode_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;64&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;fm&amp;quot;&lt;/span&gt;:
            set_mode_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;63&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;s-am&amp;quot;&lt;/span&gt;:
            set_mode_val &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;62&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Mode not recognized&amp;quot;&lt;/span&gt;
&amp;nbsp;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;81&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;31&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;4d&#039;&lt;/span&gt; + set_mode_val + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;22&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;80&#039;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Mode sent&amp;quot;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_mode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;50&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;31&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;4d&amp;quot;&lt;/span&gt;
        m &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; m &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;01&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;am&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; m &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;02&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;s-am&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; m &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;03&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;fm&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; m &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;04&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;data&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; m &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;05&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;cw&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; m &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;06&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;lsb&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; m &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;07&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;usb&amp;quot;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; mode.&lt;span class=&quot;me1&quot;&gt;upper&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_s&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;2e&#039;&lt;/span&gt;
        sraw &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sraw&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_cal&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;52&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;3f&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;44&#039;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;11&#039;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#print &amp;quot;sending getcal&amp;quot;&lt;/span&gt;
        cbytes &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        cal &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; c &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; cbytes:
            cal.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;c&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; cal
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_smeter&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        s &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_s&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        cal &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_cal&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        s1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s - cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        s2 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s1 - cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        s3 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s2 - cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        s4 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s3 - cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        s5 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s4 - cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        s6 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s5 - cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        s7 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s6 - cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; s1 &lt;span class=&quot;sy0&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; s2 &lt;span class=&quot;sy0&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;113&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s1 / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; s3 &lt;span class=&quot;sy0&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;103&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s2 / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; s4 &lt;span class=&quot;sy0&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;93&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s3 / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; s5 &lt;span class=&quot;sy0&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;83&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s4 / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; s6 &lt;span class=&quot;sy0&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;73&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s5 / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; s7 &lt;span class=&quot;sy0&quot;&gt;&amp;lt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;63&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s6 / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; -&lt;span class=&quot;nu0&quot;&gt;43&lt;/span&gt;
            adj &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s7 / cal&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;dbm&lt;/span&gt; + adj&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; tx_rx&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sendStr&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; reply&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; n&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;co1&quot;&gt;# apply thread lock&lt;/span&gt;
        lock.&lt;span class=&quot;me1&quot;&gt;acquire&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ser&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; reply:  &lt;span class=&quot;co1&quot;&gt;# for reading S-meter&lt;/span&gt;
            result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;not&lt;/span&gt; result:
                result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ser&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;read&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            lock.&lt;span class=&quot;me1&quot;&gt;release&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; result
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
&amp;nbsp;
            result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
            byte &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; n &lt;span class=&quot;sy0&quot;&gt;!=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ser&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;71&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                &lt;span class=&quot;co1&quot;&gt;#byte = &amp;quot;&amp;quot;&lt;/span&gt;
&amp;nbsp;
                &lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;not&lt;/span&gt; byte:
                    byte &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ser&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;read&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
                result +&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; byte
&amp;nbsp;
                byte &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
                n -&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
            lock.&lt;span class=&quot;me1&quot;&gt;release&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; result&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;AOR AR7030 module&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;aor_ar7030_module&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;21538-29776&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;icom_ic-m710_module&quot;&gt;Icom IC-M710 module&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_5f491c71348427373a57bc76d46bbc18_13&quot;&gt;m710.py &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_5f491c71348427373a57bc76d46bbc18_13&quot;&gt;&lt;dl class=&quot;file&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?do=export_code&amp;amp;id=public:radio:topics:netradio_control&amp;amp;codeblock=4&quot; title=&quot;Download Snippet&quot; class=&quot;mediafile mf_0y&quot;&gt;m710.0y&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code file python&quot;&gt;&lt;span class=&quot;st0&quot;&gt;&#039;&#039;&#039;
Python NMEA Radio Functions module for Icom IC-M710 Marine HF SSB Transceiver
&amp;nbsp;
    Copyright (C) 2015  John Pumford-Green
&amp;nbsp;
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
&amp;nbsp;
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
&amp;nbsp;
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see &amp;lt;http://www.gnu.org/licenses/&amp;gt;.
&#039;&#039;&#039;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# serial port for Icom IC-M710 Rig Control&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; serial
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;
version &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;v0.1&amp;quot;&lt;/span&gt;
&amp;nbsp;
sport &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;/dev/ttyUSB0&#039;&lt;/span&gt;
sbaud &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4800&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;#ser = serial.Serial(sport, 4800, timeout=1)&lt;/span&gt;
lock &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Lock&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# NMEA Codes&lt;/span&gt;
preamble &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;$PICOA,&amp;quot;&lt;/span&gt;
controller &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;90&amp;quot;&lt;/span&gt;
radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;01&amp;quot;&lt;/span&gt; 
cr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;0d&amp;quot;&lt;/span&gt;
lf &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\x&lt;/span&gt;0a&amp;quot;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# Commands are sent as NMEA private sentences:&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# $PICOA,controller_id,radio_id,command,&amp;lt;parameter&amp;gt;,*HH&amp;lt;CR&amp;gt;&amp;lt;LF&amp;gt;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# where HH is the 2 digit ECC value below:&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# The protocol document states that for messages FROM the controller TO the radio&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# the ECC bytes are optional, and may be omitted. This appears to be false information, and&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# the ECC bytes seem to be necessary.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# The ECC checksum, is a two-digit hex value found by XORing the hex values of the characters &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# between &amp;quot;$&amp;quot; and &amp;quot;*&amp;quot; (but not including the $ or *)&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# The first part of the message is always:&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# &amp;quot;PICOA,90,01,&amp;quot; and this has an XOR value of (decimal) 112&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# we then XOR this with each character&#039;s decimal ASCII value, in the required command&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# and convert the result to a 2-digit hex value&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;class&lt;/span&gt; m710&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;object&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;__init__&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; model&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ser&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; serial.&lt;span class=&quot;me1&quot;&gt;Serial&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sport&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sbaud&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; timeout&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0.1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;model&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; model
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_ecc&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;command&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        ecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;112&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; c &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; command:
            ecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;c&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; ^ ecc
        hecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;{0:02x}&#039;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;format&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ecc&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; hecc
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# we must force the radio into &amp;quot;Remote&amp;quot; mode before sending any other commands.    &lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; remote_on&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;REMOTE,ON&amp;quot;&lt;/span&gt;
        ecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_ecc&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;command&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble+controller+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+radio+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+command+&lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;+ecc+cr+lf
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;remote_on&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# we can leave the radio in &amp;quot;Remote&amp;quot; mode for as long as we want to control it remotely&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# but we must close the &amp;quot;Remote&amp;quot; mode when finished. The previous radio settings (channel/power etc) are&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# restored after Remote mode is closed.&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; remote_off&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;REMOTE,OFF&amp;quot;&lt;/span&gt;
        ecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_ecc&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;command&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble+controller+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+radio+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+command+&lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;+ecc+cr+lf
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; 
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result:
            &lt;span class=&quot;co1&quot;&gt;#ser.close()&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;remote_off&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; ptt_on&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;TRX,TX&amp;quot;&lt;/span&gt;
        ecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_ecc&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;command&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble+controller+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+radio+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+command+&lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;+ecc+cr+lf
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tx_rx&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; ptt_on&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; ptt_off&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;TRX,RX&amp;quot;&lt;/span&gt;
        ecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_ecc&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;command&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble+controller+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+radio+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+command+&lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;+ecc+cr+lf
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tx_rx&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; ptt_off&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_freq&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        fkhz &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_rxfreq&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#fkhz = &amp;quot;%.3f&amp;quot; % (float(f) * 1000)&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; fkhz
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; set_freq&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;freq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_rxfreq&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;freq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_txfreq&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;freq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Set freq success&amp;quot;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_rxfreq&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;RXF&amp;quot;&lt;/span&gt;
        ecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_ecc&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;command&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble+controller+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+radio+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+command+&lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;+ecc+cr+lf
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result:
            &lt;span class=&quot;kw2&quot;&gt;list&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; result.&lt;span class=&quot;me1&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            f &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;list&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
            fkhz &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%.3f&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;f&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; fkhz
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_rxfreq&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_txfreq&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;TXF&amp;quot;&lt;/span&gt;
        ecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_ecc&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;command&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble+controller+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+radio+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+command+&lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;+ecc+cr+lf
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result:
            &lt;span class=&quot;kw2&quot;&gt;list&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; result.&lt;span class=&quot;me1&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            f &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;list&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
            fkhz &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%.3f&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;f&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; fkhz
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_txfreq&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_mode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;MODE&amp;quot;&lt;/span&gt;
        ecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_ecc&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;command&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble+controller+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+radio+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+command+&lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;+ecc+cr+lf
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result:
            &lt;span class=&quot;kw2&quot;&gt;list&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; result.&lt;span class=&quot;me1&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;list&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;J2B&amp;quot;&lt;/span&gt;:
                mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;DATA&amp;quot;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; mode
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; set_mode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;mode&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; mode.&lt;span class=&quot;me1&quot;&gt;upper&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; mode &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;DATA&amp;quot;&lt;/span&gt;:
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;J2B&amp;quot;&lt;/span&gt;
&amp;nbsp;
        command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;MODE,&amp;quot;&lt;/span&gt;+mode
        ecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_ecc&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;command&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble +controller+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+radio+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt; + command + &lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;+ecc+cr+lf
        &lt;span class=&quot;co1&quot;&gt;#print &amp;quot;in set_mode with &amp;quot;, sendStr&lt;/span&gt;
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; result
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;mode&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; set_rxfreq&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;freq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
        fmhz &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;freq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; / &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;
        f &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fmhz&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;RXF,&amp;quot;&lt;/span&gt;+f
        ecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_ecc&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;command&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble +controller+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+radio+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt; + command + &lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;+ecc+cr+lf
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; result
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_rxfreq&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;freq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; set_txfreq&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;freq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
        fmhz &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;freq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; / &lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;
        f &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fmhz&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;TXF,&amp;quot;&lt;/span&gt;+f
        ecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_ecc&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;command&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble +controller+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+radio+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt; + command + &lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;+ecc+cr+lf
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; result
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_txfreq&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;freq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_txpower&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;TXP&amp;quot;&lt;/span&gt;
        ecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_ecc&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;command&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble +controller+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+radio+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt; + command + &lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;+ecc+cr+lf
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tx_rx&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result:
            &lt;span class=&quot;kw2&quot;&gt;list&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; result.&lt;span class=&quot;me1&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            power &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;list&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; power
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; get_txpower&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; set_txpower&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;p&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;TXP,&amp;quot;&lt;/span&gt;+p
        ecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_ecc&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;command&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble +controller+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+radio+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt; + command + &lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;+ecc+cr+lf
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tx_rx&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; result
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; set_txpower&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;p&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_smeter&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;SIGM&amp;quot;&lt;/span&gt;
        ecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_ecc&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;command&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble+controller+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+radio+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+command+&lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;+ecc+cr+lf
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;tx_rx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result:
            &lt;span class=&quot;kw2&quot;&gt;list&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; result.&lt;span class=&quot;me1&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            smeter &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;list&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; - &lt;span class=&quot;nu0&quot;&gt;120&lt;/span&gt; 
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; smeter
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_smeter&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; speaker_on&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;SP,ON&amp;quot;&lt;/span&gt;
        ecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_ecc&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;command&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble +controller+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+radio+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt; + command + &lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;+ecc+cr+lf
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tx_rx&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; result
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; speaker_on&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; speaker_off&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;SP,OFF&amp;quot;&lt;/span&gt;
        ecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_ecc&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;command&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble +controller+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+radio+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt; + command + &lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;+ecc+cr+lf
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tx_rx&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; result
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; speaker_off&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; sql_on&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;SQLC,ON&amp;quot;&lt;/span&gt;
        ecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_ecc&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;command&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble +controller+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+radio+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt; + command + &lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;+ecc+cr+lf
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tx_rx&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; result
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; sql_on&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; sql_off&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;SQLC,OFF&amp;quot;&lt;/span&gt;
        ecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_ecc&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;command&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble +controller+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+radio+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt; + command + &lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;+ecc+cr+lf
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tx_rx&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; result
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; sql_off&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; nb_on&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;NB,ON&amp;quot;&lt;/span&gt;
        ecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_ecc&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;command&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble +controller+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+radio+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt; + command + &lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;+ecc+cr+lf
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tx_rx&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; result
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; nb_on&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; nb_off&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;NB,OFF&amp;quot;&lt;/span&gt;
        ecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_ecc&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;command&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble +controller+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+radio+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt; + command + &lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;+ecc+cr+lf
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tx_rx&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; result
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; nb_off&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; dim_on&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;DIM,ON&amp;quot;&lt;/span&gt;
        ecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_ecc&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;command&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble +controller+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+radio+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt; + command + &lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;+ecc+cr+lf
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tx_rx&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; result
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; dim_on&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; dim_off&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;DIM,OFF&amp;quot;&lt;/span&gt;
        ecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_ecc&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;command&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble +controller+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+radio+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt; + command + &lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;+ecc+cr+lf
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tx_rx&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; result
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; dim_off&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; agc_on&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;AGC,ON&amp;quot;&lt;/span&gt;
        ecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_ecc&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;command&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble +controller+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+radio+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt; + command + &lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;+ecc+cr+lf
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tx_rx&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; result
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; agc_on&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; agc_off&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;AGC,OFF&amp;quot;&lt;/span&gt;
        ecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_ecc&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;command&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble +controller+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+radio+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt; + command + &lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;+ecc+cr+lf
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tx_rx&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; result
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; agc_off&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_vol&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;AFG&amp;quot;&lt;/span&gt;
        ecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_ecc&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;command&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble+controller+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+radio+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+command+&lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;+ecc+cr+lf
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tx_rx&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result:
            &lt;span class=&quot;kw2&quot;&gt;list&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; result.&lt;span class=&quot;me1&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            vol &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;list&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; vol
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; get_vol&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; set_vol&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;v&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;AFG,&amp;quot;&lt;/span&gt;+v
        ecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_ecc&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;command&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble +controller+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+radio+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt; + command + &lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;+ecc+cr+lf
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tx_rx&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; result
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; set_vol&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;v&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_rfg&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;RFG&amp;quot;&lt;/span&gt;
        ecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_ecc&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;command&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble+controller+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+radio+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+command+&lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;+ecc+cr+lf
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tx_rx&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result:
            &lt;span class=&quot;kw2&quot;&gt;list&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; result.&lt;span class=&quot;me1&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            rf &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;list&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; rf
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; get_rfg&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_att&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; att_on&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; att_off&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; pre_on&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; pre_off&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_pre&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; set_rfg&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;v&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;RFG,&amp;quot;&lt;/span&gt;+v
        ecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_ecc&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;command&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        sendStr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; preamble +controller+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt;+radio+&lt;span class=&quot;st0&quot;&gt;&amp;quot;,&amp;quot;&lt;/span&gt; + command + &lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;+ecc+cr+lf
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; tx_rx&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; result:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; result
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; set_rfg&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;v&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;# The message FROM the radio may be corrupted so we do a check on the received ECC versus our calculated cECC&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;# from the received characters - which are everything AFTER the &amp;quot;$&amp;quot; and BEFORE the &amp;quot;*&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;# starting the ECC calculation at message[1] ignores the &amp;quot;$&amp;quot; and we iterate through the message XORing each &lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;# character&#039;s ASCII (decimal) value until we have the final cECC which is converted by formatting it&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;# into a two-digit hex value. This is then compared to the received (rECC) value from the radio&#039;s message. &lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;# If they match the message is acceptable and check_ecc() returns True to tx_rx(), &lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;# otherwise check_ecc() function returns &amp;quot;False&amp;quot; to tx_rx()&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;# the True/False value is tested in tx_rx(). &lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;# If True then tx_rx() returns the incoming string to the calling function&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;# otherwise it returns &amp;quot;False&amp;quot;. &lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;# The calling function then checkS the boolean state of the returned value. &lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;# If True (ie it has the radio&#039;s message and the ECC was good) the message &lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;# is sent back to the client. &lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;# If False the function calls itself again, and attempts to get an error-free reply from the radio, via tx_rx()&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; check_ecc&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;message&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; recc&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        i &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
        cecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; i &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;message&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
            cecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ord&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;message&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; ^ cecc
            i +&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;  
&amp;nbsp;
        cecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;{0:02x}&#039;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;format&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;cecc&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;  
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; cecc &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; recc:   
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;True&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;: 
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; tx_rx&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;co1&quot;&gt;#print &amp;quot;in tx_rx, sendStr =  &amp;quot; , sendStr&lt;/span&gt;
        lock.&lt;span class=&quot;me1&quot;&gt;acquire&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ser&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sendStr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sleep&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0.1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ser&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;readline&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;#print result&lt;/span&gt;
        reply &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; result.&lt;span class=&quot;me1&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;*&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        ecc &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; reply&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;lower&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        message &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; reply&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        lock.&lt;span class=&quot;me1&quot;&gt;release&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;check_ecc&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;message&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; ecc&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; result
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Icom IC-M710 module&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;icom_ic-m710_module&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;29777-43713&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;text-mode_client&quot;&gt;Text-mode client&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_5f491c71348427373a57bc76d46bbc18_14&quot;&gt;client.py &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_5f491c71348427373a57bc76d46bbc18_14&quot;&gt;&lt;dl class=&quot;file&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?do=export_code&amp;amp;id=public:radio:topics:netradio_control&amp;amp;codeblock=5&quot; title=&quot;Download Snippet&quot; class=&quot;mediafile mf_py&quot;&gt;client.py&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code file python&quot;&gt;__author__ &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;gm4slv&#039;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# client to work with server_oo.py&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# &lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# # v0.1&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;socket&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;readline&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ImportError&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
HOST&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; PORT &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;localhost&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;9999&lt;/span&gt;
&amp;nbsp;
smlog &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;pymon.txt&amp;quot;&lt;/span&gt;
log_active &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; make_con&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;global&lt;/span&gt; sock
    sock &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;socket&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;socket&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;socket&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;AF_INET&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;socket&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;SOCK_STREAM&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    sock.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;HOST&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; PORT&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_rnum&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;global&lt;/span&gt; num
    &lt;span class=&quot;kw1&quot;&gt;global&lt;/span&gt; radios
&amp;nbsp;
    names &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;listradios&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    radios &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; names.&lt;span class=&quot;me1&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    num &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radios&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; num
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_rname&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;i&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    r &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; radios&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;i&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; r
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; list_radios&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    num &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_rnum&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;global&lt;/span&gt; radio
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;There are currently %d radios connected.&amp;quot;&lt;/span&gt; % num
    &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; i &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; num&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        r &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_rname&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;i&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Radio %d is %s&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;i + &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; r&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_lradio&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    num &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_rnum&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    lradio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;raw_input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Select radio to log: &amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strip&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;not&lt;/span&gt; lradio:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Please select a radio&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;lradio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; num:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Selected radio not recognized&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; lradio
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; set_radio&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    num &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_rnum&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;# global radio&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;global&lt;/span&gt; radio_num
    &lt;span class=&quot;kw1&quot;&gt;global&lt;/span&gt; rname
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;There are currently %d radios connected.&amp;quot;&lt;/span&gt; % num
    &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; i &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; num&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        r &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_rname&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;i&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Radio %d is %s&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;i + &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; r&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    radio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;raw_input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Choose a radio number from the list : &amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strip&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;not&lt;/span&gt; radio:
            &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Please select a radio&amp;quot;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; num:
            &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Selected radio not recognized&amp;quot;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ValueError&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Please enter a number&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
        radio_num &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;r&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        rname &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_rname&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; - &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; radio_num&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; rname
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; prompt&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;The available commands are:&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;lr   : List Radios&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sr   : Select the Radio to control&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;gr   : Get currently selected Radio name&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;gm   : Get Mode&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sm   : Set Mode&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;gf   : Get Freq&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sf   : Set Freq&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;gs   : Get S-meter&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;gp   : Get Pre-amp&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;pon  : Set Pre-amp On&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;p2on : Set Pre-amp 2 On&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;poff : Set Pre-amp Off&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;gatt : Get Attn&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;aton : Set Attn On&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;atoff: Set Attn Off&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;ga   : Get All (status of all radios)&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sync : Sync freq/mode on two radios&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;log  : Setup background logging to file&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;h    : Help (show this command list)&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;q    : quit&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; start&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;global&lt;/span&gt; radio_num
    &lt;span class=&quot;kw1&quot;&gt;global&lt;/span&gt; rname
    &lt;span class=&quot;kw1&quot;&gt;global&lt;/span&gt; sock
    pfreq &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getfreq&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio_num&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    pmode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getmode&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio_num&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    data &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;raw_input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;rname + &lt;span class=&quot;st0&quot;&gt;&amp;quot; (&amp;quot;&lt;/span&gt; + pfreq + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + pmode + &lt;span class=&quot;st0&quot;&gt;&amp;quot;) &amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;gt; &amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;lower&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strip&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data.&lt;span class=&quot;me1&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data.&lt;span class=&quot;me1&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sf&amp;quot;&lt;/span&gt;:
            sfreq &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data.&lt;span class=&quot;me1&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
            freq &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;setfreq&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + sfreq + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio_num&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%s replied: %s&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;rname&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; freq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            start&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data.&lt;span class=&quot;me1&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sm&amp;quot;&lt;/span&gt;:
            smode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data.&lt;span class=&quot;me1&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;setmode&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + smode + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio_num&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%s replied: %s&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;rname&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; mode&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            start&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
&amp;nbsp;
            &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;only one command at a time please&amp;quot;&lt;/span&gt;
            start&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; data &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;u&amp;quot;&lt;/span&gt;:
        oldf &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getfreq&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio_num&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        newf &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;oldf&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        freq &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;setfreq&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + newf + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio_num&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%s replied: %s&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;rname&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; freq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        start&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; data &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;d&amp;quot;&lt;/span&gt;:
        oldf &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getfreq&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio_num&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        newf &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;oldf&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; - &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        freq &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;setfreq&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + newf + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio_num&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%s replied: %s&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;rname&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; freq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        start&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; data &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;lr&amp;quot;&lt;/span&gt;:
        list_radios&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        start&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; data &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sr&amp;quot;&lt;/span&gt;:
&amp;nbsp;
        radio_num&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; rname &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; set_radio&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;not&lt;/span&gt; radio_num:
            radio_num&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; rname &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; set_radio&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        start&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; data &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;gr&amp;quot;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Radio selected is %s&amp;quot;&lt;/span&gt; % rname
        start&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; data &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;gm&amp;quot;&lt;/span&gt;:
        mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getmode&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio_num&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%s replied: %s&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;rname&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; mode&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        start&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; data &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sm&amp;quot;&lt;/span&gt;:
        smode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;raw_input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Enter mode: &amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;setmode&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + smode + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio_num&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%s replied: %s&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;rname&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; mode&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        start&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; data &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;gf&amp;quot;&lt;/span&gt;:
        freq &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getfreq&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio_num&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%s replied: %s kHz&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;rname&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; freq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        start&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; data &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sf&amp;quot;&lt;/span&gt;:
        sfreq &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;raw_input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Enter freq (kHz): &amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        freq &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;setfreq&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + sfreq + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio_num&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%s replied: %s&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;rname&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; freq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        start&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; data &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;gs&amp;quot;&lt;/span&gt;:
        smeter &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getsmeter&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio_num&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%s replied: %sdBm&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;rname&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; smeter&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        start&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; data &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;gp&amp;quot;&lt;/span&gt;:
        preamp &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getpreamp&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio_num&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%s replied: %s&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;rname&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; preamp&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        start&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; data &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;pon&amp;quot;&lt;/span&gt;:
        preamp &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;preampon&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio_num&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%s replied: %s&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;rname&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; preamp&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        start&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; data &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;p2on&amp;quot;&lt;/span&gt;:
        preamp &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;preamp2on&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio_num&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%s replied: %s&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;rname&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; preamp&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        start&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; data &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;poff&amp;quot;&lt;/span&gt;:
        preamp &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;preampoff&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio_num&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%s replied: %s&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;rname&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; preamp&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        start&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; data &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;gatt&amp;quot;&lt;/span&gt;:
        preamp &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getatt&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio_num&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%s replied: %s&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;rname&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; preamp&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        start&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; data &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;aton&amp;quot;&lt;/span&gt;:
        att &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;atton&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio_num&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%s replied: %s&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;rname&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; att&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        start&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; data &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;atoff&amp;quot;&lt;/span&gt;:
        att &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;attoff&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio_num&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%s replied: %s&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;rname&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; att&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        start&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; data &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;ga&amp;quot;&lt;/span&gt;:
        get_all&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        start&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; data &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;log&amp;quot;&lt;/span&gt;:
        fname &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;raw_input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Enter a filename (or &lt;span class=&quot;es0&quot;&gt;\&amp;quot;&lt;/span&gt;Return&lt;span class=&quot;es0&quot;&gt;\&amp;quot;&lt;/span&gt; for default) :&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; fname &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;:
            fname &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; smlog
        &lt;span class=&quot;co1&quot;&gt;# check file is valid&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
            f &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fname&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;a+&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            f.&lt;span class=&quot;me1&quot;&gt;close&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;IOError&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;File/path not valid&amp;quot;&lt;/span&gt;
            start&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        list_radios&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        lradio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_lradio&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;not&lt;/span&gt; lradio:
            lradio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_lradio&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        rname &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_rname&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;lradio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; - &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; lradio &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; log_active:
            &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Logging already active on &amp;quot;&lt;/span&gt; + rname
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            tlog &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;raw_input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Enter a polling interval (seconds) :&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            p &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Thread&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;target&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;log&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; args&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;lradio&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; tlog&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fname&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            p.&lt;span class=&quot;me1&quot;&gt;setDaemon&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            p.&lt;span class=&quot;me1&quot;&gt;start&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            log_active.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;lradio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        start&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; data &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sync&amp;quot;&lt;/span&gt;:
        sync_result &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; sync&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; sync_result
        start&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; data &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;h&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;or&lt;/span&gt; data &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;help&amp;quot;&lt;/span&gt;:
        prompt&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        start&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; data &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;q&amp;quot;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;or&lt;/span&gt; data &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;quit&amp;quot;&lt;/span&gt;:
        rx &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;quit&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Server says: %s &amp;quot;&lt;/span&gt; % rx
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
        &lt;span class=&quot;co1&quot;&gt;#prompt()&lt;/span&gt;
        start&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_all&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    num &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_rnum&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;global&lt;/span&gt; radio
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;There are currently %d radios connected.&amp;quot;&lt;/span&gt; % num
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=&amp;quot;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;33&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; i &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; num&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        r &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_rname&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;i&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        n &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;r&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;i + &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        freq &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getfreq&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + n&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getmode&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;n&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        smeter &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getsmeter&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;n&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        preamp &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getpreamp&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;n&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        att &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getatt&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;n&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Status of Radio %d (%s) &lt;span class=&quot;es0&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;i + &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; r&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Frequency : %s kHz&amp;quot;&lt;/span&gt; % freq
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Mode: %s&amp;quot;&lt;/span&gt; % mode
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;S-Meter: %sdBm&amp;quot;&lt;/span&gt; % smeter
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Preamp = %s&amp;quot;&lt;/span&gt; % preamp
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Attenuator = %s &amp;quot;&lt;/span&gt; % att
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;=&amp;quot;&lt;/span&gt; * &lt;span class=&quot;nu0&quot;&gt;33&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; log&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;p&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; t&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; f&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;
    tlog &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; t
    sradio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_rname&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;p&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; - &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    sr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;r&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;p&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;True&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
            frequency &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getfreq&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + sr + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            smeter &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getsmeter&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + sr + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getmode&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + sr + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            write_file&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;f&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sradio&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; mode&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; frequency&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; smeter&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sleep&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;tlog&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;finally&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_mradio&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    num &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_rnum&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    mradio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;raw_input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Choose Master radio number from the list: &amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strip&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;not&lt;/span&gt; mradio:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Please select a radio&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;mradio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; num:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Selected radio not recognized&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; mradio
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_sradio&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    num &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_rnum&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    sradio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;raw_input&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Choose Slave radio number from the list: &amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strip&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;not&lt;/span&gt; sradio:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Please select a radio&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sradio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; num:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Selected radio not recognized&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;False&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; sradio
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; sync&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    num &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_rnum&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Set SLAVE to the same Frequency and Mode as MASTER.&lt;span class=&quot;es0&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Currently connected radios are:&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; i &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;range&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; num&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        r &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_rname&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;i&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;%d is %s&amp;quot;&lt;/span&gt; % &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;i + &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; r&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    mradio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_mradio&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;not&lt;/span&gt; mradio:
        mradio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_mradio&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    sradio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_sradio&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;not&lt;/span&gt; sradio:
        sradio &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; get_sradio&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    sr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;r&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sradio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    mr &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;r&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; mradio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    mfreq &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getfreq&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + mr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    mmode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getmode&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + mr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    sfreq &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;setfreq&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + mfreq + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + sr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    smode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;setmode&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + mmode + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + sr&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;sfreq + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt; + smode + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# Try to send and receive in one-go, to prevent the logging thread and the main prog&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# getting the wrong receive data&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
        lock.&lt;span class=&quot;me1&quot;&gt;acquire&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;global&lt;/span&gt; sock
        sock.&lt;span class=&quot;me1&quot;&gt;sendall&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        received &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; sock.&lt;span class=&quot;me1&quot;&gt;recv&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2048&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;finally&lt;/span&gt;:
        lock.&lt;span class=&quot;me1&quot;&gt;release&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; received
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; write_file&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;fname&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; rname&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; mode&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; freq&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; smeter&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    filename &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; fname
    f &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;filename&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;a+&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    timenow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strftime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;%d/%m/%Y %H:%M:%S&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;gmtime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    log &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;timenow&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; rname&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; mode&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; freq&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; smeter&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    f.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;log&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    f.&lt;span class=&quot;me1&quot;&gt;close&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
make_con&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
lock &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Lock&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
get_all&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Please choose a radio&lt;span class=&quot;es0&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;
radio_num&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; rname &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; set_radio&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;not&lt;/span&gt; radio_num:
    radio_num&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; rname &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; set_radio&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
prompt&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
start&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;example_session&quot;&gt;Example session&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;pre class=&quot;code bash&quot;&gt;There are currently &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; radios connected.
=================================
Status of Radio &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;IC-R75&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; 
&amp;nbsp;
Frequency : &lt;span class=&quot;nu0&quot;&gt;2187.500&lt;/span&gt; kHz
Mode: DATA
S-Meter: -114.2dBm
Preamp = &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
Attenuator = &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 
=================================
Status of Radio &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;IC-M710&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; 
&amp;nbsp;
Frequency : &lt;span class=&quot;nu0&quot;&gt;16804.500&lt;/span&gt; kHz
Mode: DATA
S-Meter: -120.0dBm
Preamp = None
Attenuator = None 
=================================
Status of Radio &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;AR7030&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; 
&amp;nbsp;
Frequency : &lt;span class=&quot;nu0&quot;&gt;2182.000&lt;/span&gt; kHz
Mode: USB
S-Meter: -110.3dBm
Preamp = &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
Attenuator = &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 
=================================
&amp;nbsp;
Please choose a radio
&amp;nbsp;
There are currently &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; radios connected.
Radio &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; is IC-R75
Radio &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; is IC-M710
Radio &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; is AR7030
Choose a radio number from the list : &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;
&amp;nbsp;
The available commands are:
lr   : List Radios
sr   : Select the Radio to control
gr   : Get currently selected Radio name
gm   : Get Mode
sm   : Set Mode
gf   : Get Freq
sf   : Set Freq
&lt;span class=&quot;kw2&quot;&gt;gs&lt;/span&gt;   : Get S-meter
gp   : Get Pre-amp
pon  : Set Pre-amp On
p2on : Set Pre-amp &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt; On
poff : Set Pre-amp Off
gatt : Get Attn
aton : Set Attn On
atoff: Set Attn Off
ga   : Get All &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;status of all radios&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;sync&lt;/span&gt; : Sync freq&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mode on two radios
log  : Setup background logging to &lt;span class=&quot;kw2&quot;&gt;file&lt;/span&gt;
h    : Help &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;show this &lt;span class=&quot;kw3&quot;&gt;command&lt;/span&gt; list&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
q    : quit
&amp;nbsp;
AR7030 &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2182.000&lt;/span&gt; USB&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;  &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; sf &lt;span class=&quot;nu0&quot;&gt;5680&lt;/span&gt;
AR7030 replied: Freq Set
AR7030 &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5680.000&lt;/span&gt; USB&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;  &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Text-mode client&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;text-mode_client&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;43714-55814&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit9&quot; id=&quot;gui_client&quot;&gt;GUI Client&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:screenshot_2022-07-24_15.04.52.png&quot; class=&quot;media&quot; title=&quot;public:radio:screenshot_2022-07-24_15.04.52.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=300&amp;amp;tok=5e592b&amp;amp;media=public:radio:screenshot_2022-07-24_15.04.52.png&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;300&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;GUI Client&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;gui_client&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;55815-55904&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit10&quot; id=&quot;no_s-meter_version&quot;&gt;No S-meter version&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_5f491c71348427373a57bc76d46bbc18_15&quot;&gt;gui_nosmeter.py &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_5f491c71348427373a57bc76d46bbc18_15&quot;&gt;&lt;dl class=&quot;file&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?do=export_code&amp;amp;id=public:radio:topics:netradio_control&amp;amp;codeblock=7&quot; title=&quot;Download Snippet&quot; class=&quot;mediafile mf_py&quot;&gt;gui_nosmeter.py&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code file python&quot;&gt;&lt;span class=&quot;co1&quot;&gt;# # new class-based gui&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;Tkinter&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; *
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;socket&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;class&lt;/span&gt; Network&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;object&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;__init__&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sock&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;make_con&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; make_con&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sock&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;socket&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;socket&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;socket&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;AF_INET&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;socket&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;SOCK_STREAM&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sock&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;192.168.21.107&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;9999&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sock&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
            lock.&lt;span class=&quot;me1&quot;&gt;acquire&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sock&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sendall&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;received&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sock&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;recv&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2048&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;finally&lt;/span&gt;:
            lock.&lt;span class=&quot;me1&quot;&gt;release&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;received&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;class&lt;/span&gt; Dash&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;object&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;__init__&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; master&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;master&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; master
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;s&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;n1.&lt;span class=&quot;me1&quot;&gt;sock&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;getsockname&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;p&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;n1.&lt;span class=&quot;me1&quot;&gt;sock&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;getpeername&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
        dash_frame &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Toplevel&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;master&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; borderwidth &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; relief &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; GROOVE&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;black&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        dash_frame.&lt;span class=&quot;me1&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Server&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        dash_frame.&lt;span class=&quot;me1&quot;&gt;protocol&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;WM_DELETE_WINDOW&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;handler&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        dash_frame.&lt;span class=&quot;me1&quot;&gt;resizable&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        dash_frame.&lt;span class=&quot;me1&quot;&gt;geometry&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;300x150+10-10&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        dash_frame.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;co1&quot;&gt;#self.utc_time = StringVar()&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#Label(dash_frame, textvariable = self.utc_time, fg = &#039;green&#039;, bg = &#039;black&#039;).grid(row = 0, column = 0, sticky = W)&lt;/span&gt;
&amp;nbsp;
        Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;dash_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;s&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;black&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;white&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;dash_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;lt; --- &amp;gt; &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;black&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;white&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;dash_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;black&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;white&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; E&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;server_msg_l&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; StringVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;dash_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; textvariable &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;server_msg_l&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;yellow&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;black&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; columnspan &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        q_button &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Button&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;dash_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Quit&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: close&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        q_button.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; handler&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; up_dash&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;server_msg&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;ident&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;server_msg_l&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;server_msg&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.utc_time.set(time.strftime(&amp;quot;%d/%m/%Y %H:%M&amp;quot;, time.gmtime(time.time())))&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;class&lt;/span&gt; nRadio&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;object&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;__init__&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; master&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;master&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; master
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radio&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; radio
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;r&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radio&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        radio_frame &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Frame&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;master&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; borderwidth&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; relief&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;GROOVE&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        radio_frame.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_list&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Name&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Freq/kHz&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Mode&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#Label(radio_frame, text=&amp;quot;Signal/dBm&amp;quot;, width=10).grid(row=0, column=3)&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#Label(radio_frame, text=&amp;quot;Max/dBm&amp;quot;, width=10, fg=&#039;red&#039;).grid(row=0, column=4)&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#Label(radio_frame, text=&amp;quot;Ave/dBm&amp;quot;, width=10, fg=&#039;green&#039;).grid(row=0, column=5)&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#Label(radio_frame, text=&amp;quot;Min/dBm&amp;quot;, width=10, fg=&#039;blue&#039;).grid(row=0, column=6)&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;name_l&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; StringVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; textvariable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;name_l&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_name&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;freq_l&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; StringVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_freq&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;red&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; textvariable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;freq_l&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_freq&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;E&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mode_l&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; StringVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_mode&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; textvariable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mode_l&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_mode&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;E&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&#039;
        self.e_mode = Entry(radio_frame, width=10, bg = &#039;white&#039;, fg = &#039;black&#039;, insertbackground = &#039;blue&#039;)
        self.e_mode.grid(row=2, column=2)
        self.e_mode.bind(&#039;&amp;lt;Return&amp;gt;&#039;, (lambda event: self.set_mode(self.num)))
        &#039;&#039;&#039;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.e_mode = StringVar()&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_usb&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Button&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;usb&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_usb&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_lsb&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Button&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;LSB&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;lsb&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_lsb&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_cw&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Button&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;CW&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;cw&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_cw&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_am&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Button&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;AM&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;am&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_am&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_data&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Button&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Data&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;data&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_data&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_qsy_up&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Button&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;+1kHz&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;qsy_up&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_qsy_up&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_qsy_down&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Button&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;-1kHz&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;qsy_down&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_qsy_down&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_update&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Button&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Get&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;:&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_update&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_l&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; StringVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_smeter&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; textvariable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_l&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.l_smeter.grid(row=1, column=3, sticky=E)&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;max_var&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; StringVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_max&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; textvariable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;max_var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.l_max.grid(row=1, column=4)&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ave_var&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; StringVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_average&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; textvariable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ave_var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.l_average.grid(row=1, column=5)&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;min_var&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; StringVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_min&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; textvariable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;min_var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.l_min.grid(row=1, column=6)&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;e_freq&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Entry&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;white&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;black&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; insertbackground &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;blue&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;e_freq&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;e_freq&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;focus&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;e_freq&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;bind&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;&amp;lt;Return&amp;gt;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt; event: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_freq&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;pre&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; IntVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cb_pre&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Checkbutton&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; variable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;pre&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;preamp_onoff&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cb_pre&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;E&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_pre&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Preamp&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_pre&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;att&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; IntVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cb_att&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Checkbutton&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; variable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;att&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;att_onoff&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cb_att&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;E&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_att&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Att&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_att&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_log&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; IntVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cb_log&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Checkbutton&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; variable &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_log&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.cb_log.grid(row = 6, column = 1, sticky = W)&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_log&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Log to file...&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.l_log.grid(row = 6, column = 0, sticky = E)&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;c1&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Canvas&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;260&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; height&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bg&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;black&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.c1.grid(row=2, column=3, columnspan=4, rowspan=3)&lt;/span&gt;
&amp;nbsp;
        name &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_all&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_freq&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.get_smeter(self.num)&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_preamp&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_atten&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.graph_points()       &lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.avg()&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.max()&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.min()&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_log&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; % &lt;span class=&quot;nu0&quot;&gt;10.0&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write_file&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_freq&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;freq&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getfreq&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;freq_l&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;freq&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; set_freq&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;freq&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;e_freq&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;newfreq&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;setfreq&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;freq&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;e_freq&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;delete&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; END&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; qsy_up&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
        oldf &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getfreq&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        newf &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;oldf&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        freq &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;setfreq&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + newf + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; qsy_down&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        oldf &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getfreq&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        newf &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;oldf&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; - &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        freq &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;setfreq&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + newf + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_mode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mode&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getmode&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mode_l&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; set_mode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; mode&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;co1&quot;&gt;#self.mode = str(self.e_mode.get())&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;newmode&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;setmode&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + mode + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.e_mode.delete(0, END)&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_smeter&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getsmeter&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_l&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_list&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_list&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;120&lt;/span&gt;:
            &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_list&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;pop&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; avg&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        s &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_list&lt;/span&gt;
        total &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; i &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; s:
            total +&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; i
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;av&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;round&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;total / &lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;s&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ave_var&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;av&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;c1&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;create_line&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt; - &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;av&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;310&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt; - &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;av&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fill&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;green&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;av&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;min&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        s &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_list&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mn&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; i &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; s:
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; i &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mn&lt;/span&gt;:
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mn&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; i
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;min_var&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mn&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;c1&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;create_line&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt; - &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mn&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;310&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt; - &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mn&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fill&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;blue&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mn&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;max&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        s &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_list&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mx&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; i &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; s:
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; i &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mx&lt;/span&gt;:
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mx&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; i
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;max_var&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;c1&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;create_line&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt; - &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mx&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;310&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt; - &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mx&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fill&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;red&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mx&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_preamp&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;preamp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getpreamp&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;preamp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt;:
            &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cb_pre&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;select&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;preamp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt;:
            &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cb_pre&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;deselect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; preamp_onoff&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;prestate&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;pre&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;prestate&lt;/span&gt;:
            n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;preampon&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;preampoff&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; att_onoff&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;attstate&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;att&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;attstate&lt;/span&gt;:
            n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;atton&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;attoff&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_atten&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;atten&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getatt&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;atten&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt;:
            &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cb_att&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;select&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;atten&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt;:
            &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cb_att&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;deselect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_name&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; radio
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;all_names&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;listradios&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radios&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;all_names&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radios&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radios&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; - &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;name_l&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; graph_points&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        seq &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_list&lt;/span&gt;
        y_stretch &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
        y_gap &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;
        x_stretch &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
        x_width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
        x_gap &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
        height &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;c1&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;delete&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ALL&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;c1&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;create_line&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt; - &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;73&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;310&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt; - &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;73&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fill&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;white&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; x&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; y &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;enumerate&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;seq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
            yd &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; y + &lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt;
            x0 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; x * x_stretch + x * x_width + x_gap
            y0 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; height - &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;yd * y_stretch + y_gap&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            x1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; x * x_stretch + x * x_width + x_width + x_gap
            y1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; height - y_gap
            &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;c1&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;create_rectangle&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;x0&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; y0&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; x1&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; y1&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fill&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;yellow&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; write_file&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;filename&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt;+&lt;span class=&quot;st0&quot;&gt;&amp;quot;.txt&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;f&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;filename&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;a+&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        timenow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strftime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;%d/%m/%Y %H:%M:%S&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;gmtime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        log &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;timenow&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mode&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;freq&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;preamp&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;atten&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;f&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;log&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;f&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;close&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; update&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;co1&quot;&gt;#loops = 0&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
        nRadio1.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
        nRadio2.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
        nRadio3.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
        nRadio4.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
    d1.&lt;span class=&quot;me1&quot;&gt;up_dash&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; main&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;co1&quot;&gt;#loops = 0&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;True&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
            nRadio1.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
            nRadio2.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
            nRadio3.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
            nRadio4.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
        d1.&lt;span class=&quot;me1&quot;&gt;up_dash&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#loops += 1&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#print threading.currentThread().name, loops&lt;/span&gt;
        &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sleep&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; close&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;quit&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    root.&lt;span class=&quot;me1&quot;&gt;destroy&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; __name__ &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;__main__&amp;quot;&lt;/span&gt;:
    version &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;v0.4&amp;quot;&lt;/span&gt;
    lock &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Lock&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    root &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Tk&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#w, h = root.winfo_screenwidth(), root.winfo_screenheight()&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#root.geometry(&amp;quot;%dx%d+0+0&amp;quot; % (w, h))&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#root.geometry(&amp;quot;300x520+0+0&amp;quot;)&lt;/span&gt;
    root.&lt;span class=&quot;me1&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Netradio &amp;quot;&lt;/span&gt; + version&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#root.withdraw()&lt;/span&gt;
    n1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Network&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#radio_count = (n1.connect(&amp;quot;count&amp;quot;))&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#radio_count = 3&lt;/span&gt;
&amp;nbsp;
    radio_count &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;count&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; radio_count &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
        nRadio1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; nRadio&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;root&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; radio_count &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;:
        nRadio2 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; nRadio&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;root&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;2&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; radio_count &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;:
        nRadio3 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; nRadio&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;root&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;3&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; radio_count &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;:
        nRadio4 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; nRadio&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;root&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;4&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    d1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Dash&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;root&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;#print threading.currentThread().name&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#m1 = threading.Thread(target = main)&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#m1.setDaemon(True)&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#m1.start()&lt;/span&gt;
&amp;nbsp;
    update&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    root.&lt;span class=&quot;me1&quot;&gt;mainloop&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:screenshot_2022-07-24_16.14.06.png&quot; class=&quot;media&quot; title=&quot;public:radio:screenshot_2022-07-24_16.14.06.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=200&amp;amp;tok=fd8008&amp;amp;media=public:radio:screenshot_2022-07-24_16.14.06.png&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;No S-meter version&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;no_s-meter_version&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;55905-70186&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit11&quot; id=&quot;s-meter_display_version&quot;&gt;S-meter display version&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_5f491c71348427373a57bc76d46bbc18_16&quot;&gt;gui.py &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_5f491c71348427373a57bc76d46bbc18_16&quot;&gt;&lt;dl class=&quot;file&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?do=export_code&amp;amp;id=public:radio:topics:netradio_control&amp;amp;codeblock=8&quot; title=&quot;Download Snippet&quot; class=&quot;mediafile mf_py&quot;&gt;gui.py&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code file python&quot;&gt;&lt;span class=&quot;co1&quot;&gt;# # new class-based gui&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;Tkinter&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; *
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;socket&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;class&lt;/span&gt; Network&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;object&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;__init__&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sock&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;make_con&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; make_con&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sock&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;socket&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;socket&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;socket&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;AF_INET&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;socket&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;SOCK_STREAM&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sock&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;192.168.21.107&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;9999&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sock&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; connect&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; data&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
            lock.&lt;span class=&quot;me1&quot;&gt;acquire&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sock&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sendall&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;data + &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;received&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sock&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;recv&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2048&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;finally&lt;/span&gt;:
            lock.&lt;span class=&quot;me1&quot;&gt;release&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;received&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;class&lt;/span&gt; Dash&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;object&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;__init__&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; master&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;master&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; master
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;s&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;n1.&lt;span class=&quot;me1&quot;&gt;sock&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;getsockname&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;p&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;n1.&lt;span class=&quot;me1&quot;&gt;sock&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;getpeername&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
        dash_frame &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Toplevel&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;master&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; borderwidth &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; relief &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; GROOVE&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;black&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        dash_frame.&lt;span class=&quot;me1&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Server&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        dash_frame.&lt;span class=&quot;me1&quot;&gt;protocol&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;WM_DELETE_WINDOW&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;handler&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        dash_frame.&lt;span class=&quot;me1&quot;&gt;resizable&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        dash_frame.&lt;span class=&quot;me1&quot;&gt;geometry&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;300x150-10+10&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        dash_frame.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;utc_time&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; StringVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;dash_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; textvariable &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;utc_time&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;green&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;black&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;dash_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;s&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;black&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;white&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;dash_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;lt; --- &amp;gt; &amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;black&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;white&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;dash_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;black&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;white&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; E&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;server_msg_l&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; StringVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;dash_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; textvariable &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;server_msg_l&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;yellow&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;black&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; columnspan &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        q_button &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Button&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;dash_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Quit&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: close&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        q_button.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; handler&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; up_dash&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;server_msg&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;ident&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;server_msg_l&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;server_msg&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;utc_time&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strftime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;%d/%m/%Y %H:%M&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;gmtime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;class&lt;/span&gt; nRadio&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;object&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;kw4&quot;&gt;__init__&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; master&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;master&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; master
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radio&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; radio
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;r&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radio&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
        radio_frame &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Frame&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;master&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; borderwidth&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; relief&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;GROOVE&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        radio_frame.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_list&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
        Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Name&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Freq/kHz&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Mode&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Signal/dBm&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Max/dBm&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;red&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Ave/dBm&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;green&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Min/dBm&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;blue&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;name_l&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; StringVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; textvariable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;name_l&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_name&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;freq_l&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; StringVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_freq&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;red&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; textvariable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;freq_l&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_freq&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;E&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mode_l&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; StringVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_mode&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; textvariable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mode_l&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_mode&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;E&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&#039;&#039;&#039;
        self.e_mode = Entry(radio_frame, width=10, bg = &#039;white&#039;, fg = &#039;black&#039;, insertbackground = &#039;blue&#039;)
        self.e_mode.grid(row=2, column=2)
        self.e_mode.bind(&#039;&amp;lt;Return&amp;gt;&#039;, (lambda event: self.set_mode(self.num)))
        &#039;&#039;&#039;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.e_mode = StringVar()&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_usb&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Button&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;usb&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_usb&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_lsb&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Button&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;LSB&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;lsb&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_lsb&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_cw&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Button&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;CW&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;cw&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_cw&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_am&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Button&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;AM&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;am&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_am&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_data&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Button&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Data&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;data&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;b_mode_data&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_l&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; StringVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_smeter&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; textvariable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_l&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_smeter&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;E&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;max_var&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; StringVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_max&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; textvariable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;max_var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_max&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ave_var&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; StringVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_average&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; textvariable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ave_var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_average&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;min_var&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; StringVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_min&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; textvariable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;min_var&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_min&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;e_freq&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Entry&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;white&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fg &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;black&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; insertbackground &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;blue&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;e_freq&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;e_freq&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;focus&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;e_freq&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;bind&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;&amp;lt;Return&amp;gt;&#039;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt; event: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_freq&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;pre&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; IntVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cb_pre&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Checkbutton&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; variable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;pre&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;preamp_onoff&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cb_pre&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;E&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_pre&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Preamp&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_pre&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;att&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; IntVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cb_att&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Checkbutton&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; variable&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;att&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; command&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;lambda&lt;/span&gt;: &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;att_onoff&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cb_att&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;E&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_att&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Att&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_att&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_log&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; IntVar&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cb_log&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Checkbutton&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; variable &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_log&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cb_log&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; W&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_log&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Label&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; text &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Log to file...&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;l_log&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; sticky &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; E&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;c1&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Canvas&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio_frame&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; width&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;260&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; height&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; bg&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;black&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;c1&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;grid&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;row&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; column&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; columnspan&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; rowspan&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        name &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_all&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_freq&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_smeter&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_preamp&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get_atten&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;num&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;graph_points&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;       
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;avg&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;max&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;min&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;set_log&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; % &lt;span class=&quot;nu0&quot;&gt;10.0&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write_file&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_freq&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
&amp;nbsp;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;freq&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getfreq&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;freq_l&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;freq&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; set_freq&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;freq&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;e_freq&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;newfreq&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;setfreq&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;freq&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;e_freq&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;delete&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; END&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_mode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mode&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getmode&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mode_l&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mode&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; set_mode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; mode&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;co1&quot;&gt;#self.mode = str(self.e_mode.get())&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;newmode&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;setmode&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + mode + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#self.e_mode.delete(0, END)&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_smeter&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getsmeter&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_l&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_list&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;append&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_list&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;120&lt;/span&gt;:
            &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_list&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;pop&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; avg&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        s &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_list&lt;/span&gt;
        total &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; i &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; s:
            total +&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; i
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;av&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;round&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;total / &lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;s&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;ave_var&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;av&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;c1&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;create_line&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt; - &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;av&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;310&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt; - &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;av&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fill&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;green&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;av&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;min&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        s &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_list&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mn&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; i &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; s:
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; i &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mn&lt;/span&gt;:
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mn&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; i
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;min_var&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mn&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;c1&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;create_line&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt; - &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mn&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;310&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt; - &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mn&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fill&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;blue&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mn&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;max&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        s &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_list&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mx&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; s&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; i &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; s:
            &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; i &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mx&lt;/span&gt;:
                &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mx&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; i
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;max_var&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mx&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;c1&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;create_line&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt; - &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mx&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;310&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt; - &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mx&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fill&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;red&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mx&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_preamp&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;preamp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getpreamp&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;preamp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt;:
            &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cb_pre&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;select&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;preamp&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt;:
            &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cb_pre&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;deselect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; preamp_onoff&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;prestate&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;pre&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;prestate&lt;/span&gt;:
            n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;preampon&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;preampoff&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; att_onoff&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;attstate&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;att&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;attstate&lt;/span&gt;:
            n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;atton&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
            n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;attoff&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_atten&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;atten&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;getatt&amp;quot;&lt;/span&gt; + &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt; + radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;atten&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt;:
            &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cb_att&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;select&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;atten&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;0&amp;quot;&lt;/span&gt;:
            &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;cb_att&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;deselect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; get_name&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; radio
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;all_names&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;listradios&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radios&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;all_names&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;print&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radios&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;radios&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;radio&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; - &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;name_l&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; graph_points&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        seq &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter_list&lt;/span&gt;
        y_stretch &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
        y_gap &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;
        x_stretch &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
        x_width &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
        x_gap &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
        height &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;c1&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;delete&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ALL&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;c1&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;create_line&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt; - &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;73&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;310&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt; - &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;73&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt; + &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fill&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&#039;white&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; x&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; y &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;enumerate&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;seq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
            yd &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; y + &lt;span class=&quot;nu0&quot;&gt;123&lt;/span&gt;
            x0 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; x * x_stretch + x * x_width + x_gap
            y0 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; height - &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;yd * y_stretch + y_gap&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
            x1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; x * x_stretch + x * x_width + x_width + x_gap
            y1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; height - y_gap
            &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;c1&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;create_rectangle&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;x0&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; y0&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; x1&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; y1&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; fill&lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;yellow&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; write_file&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;filename&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt;+&lt;span class=&quot;st0&quot;&gt;&amp;quot;.txt&amp;quot;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;f&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;filename&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&#039;a+&#039;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        timenow &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;strftime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;%d/%m/%Y %H:%M:%S&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;gmtime&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        log &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot; &amp;quot;&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;timenow&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;mode&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;freq&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;smeter&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;preamp&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;atten&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es0&quot;&gt;\r&lt;/span&gt;&lt;span class=&quot;es0&quot;&gt;\n&lt;/span&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;f&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;log&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw2&quot;&gt;self&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;f&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;close&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; main&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    &lt;span class=&quot;co1&quot;&gt;#loops = 0&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;True&lt;/span&gt;:
        &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
            nRadio1.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
            nRadio2.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
            nRadio3.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;try&lt;/span&gt;:
            nRadio4.&lt;span class=&quot;me1&quot;&gt;get_all&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;kw1&quot;&gt;except&lt;/span&gt;:
            &lt;span class=&quot;kw1&quot;&gt;pass&lt;/span&gt;
        d1.&lt;span class=&quot;me1&quot;&gt;up_dash&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#loops += 1&lt;/span&gt;
        &lt;span class=&quot;co1&quot;&gt;#print threading.currentThread().name, loops&lt;/span&gt;
        &lt;span class=&quot;kw3&quot;&gt;time&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;sleep&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;def&lt;/span&gt; close&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
    n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;quit&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    root.&lt;span class=&quot;me1&quot;&gt;destroy&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; __name__ &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;__main__&amp;quot;&lt;/span&gt;:
    version &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;v0.3&amp;quot;&lt;/span&gt;
    lock &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Lock&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    root &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Tk&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#w, h = root.winfo_screenwidth(), root.winfo_screenheight()&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#root.geometry(&amp;quot;%dx%d+0+0&amp;quot; % (w, h))&lt;/span&gt;
    root.&lt;span class=&quot;me1&quot;&gt;geometry&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;550x600+0+0&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    root.&lt;span class=&quot;me1&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;GM4SLV Radio Controller &amp;quot;&lt;/span&gt; + version&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#root.withdraw()&lt;/span&gt;
    n1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Network&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#radio_count = (n1.connect(&amp;quot;count&amp;quot;))&lt;/span&gt;
    &lt;span class=&quot;co1&quot;&gt;#radio_count = 3&lt;/span&gt;
&amp;nbsp;
    radio_count &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;int&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;n1.&lt;span class=&quot;me1&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;count&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; radio_count &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;:
        nRadio1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; nRadio&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;root&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;1&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; radio_count &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;:
        nRadio2 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; nRadio&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;root&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;2&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; radio_count &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;:
        nRadio3 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; nRadio&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;root&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;3&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; radio_count &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;:
        nRadio4 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; nRadio&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;root&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;4&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    d1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Dash&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;root&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
    &lt;span class=&quot;co1&quot;&gt;#print threading.currentThread().name&lt;/span&gt;
    m1 &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;threading&lt;/span&gt;.&lt;span class=&quot;me1&quot;&gt;Thread&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;target &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; main&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    m1.&lt;span class=&quot;me1&quot;&gt;setDaemon&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;True&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    m1.&lt;span class=&quot;me1&quot;&gt;start&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
    root.&lt;span class=&quot;me1&quot;&gt;mainloop&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:screenshot_2022-07-24_15.01.43.png&quot; class=&quot;media&quot; title=&quot;public:radio:screenshot_2022-07-24_15.01.43.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=200&amp;amp;tok=55b028&amp;amp;media=public:radio:screenshot_2022-07-24_15.01.43.png&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;S-meter display version&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;s-meter_display_version&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;70187-83124&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit12&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;83125-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 06:39:56 +0000</pubDate>
        </item>
        <item>
            <title>Getting back into radio</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:renewed_interest</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:start&quot; data-wiki-id=&quot;public:radio:topics:start&quot;&gt;Radio Topics&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;getting_back_into_radio&quot;&gt;Getting back into radio&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; I&amp;#039;ve got the radio bug again &lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Getting back into radio&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;getting_back_into_radio&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-91&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;hf&quot;&gt;HF&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; New HF antenna - simple vertical on a 10m Sota-Pole after the old Racal mast holding up the Inverted-L collapsed this winter&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; improved ground/radials (6/4/25)…. more work to be done&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Going back to “the old days” where I used &amp;#039;phone more often&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Putting aside the CW keys/bugs for a while&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; and also digimodes put to one side&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; New HF Rig : &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:radio_database:ft_891&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:radio_database:ft_891&quot; data-wiki-id=&quot;public:radio:radio_database:ft_891&quot;&gt;FT-891&lt;/a&gt; for SSB and 10m FM &amp;#039;phone operation&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Portable “go box” with &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:radio_database:xeigu_g90&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:radio_database:xeigu_g90&quot; data-wiki-id=&quot;public:radio:radio_database:xeigu_g90&quot;&gt; G90&lt;/a&gt; being re-assembled&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; New 7m Sota-Pole for portable operation&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;HF&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;92-671&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;other_bands_modes&quot;&gt;Other bands/modes&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; DMR back online at home&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Full Duplex 2-timeslot hotspot&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:radio_database:at-d878uv&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:radio_database:at-d878uv&quot; data-wiki-id=&quot;public:radio:radio_database:at-d878uv&quot;&gt; Anytone 878&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 2m APRS I-Gate running again &lt;a href=&quot;https://aprs.fi/info/a/GM4SLV-2&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://aprs.fi/info/a/GM4SLV-2&quot; rel=&quot;ugc nofollow noopener&quot;&gt; GM4SLV-2 &lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; VHF and APRS mobile &lt;a href=&quot;https://aprs.fi/info/a/GM4SLV-9&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://aprs.fi/info/a/GM4SLV-9&quot; rel=&quot;ugc nofollow noopener&quot;&gt; GM4SLV-9 &lt;/a&gt; with &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:radio_database:tm-d710&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:radio_database:tm-d710&quot; data-wiki-id=&quot;public:radio:radio_database:tm-d710&quot;&gt; TM-D710&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 06/04/25 08:31 BST&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Other bands\/modes&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;other_bands_modes&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;672-1064&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1065-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 06:39:56 +0000</pubDate>
        </item>
        <item>
            <title>Radio Topics</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:start</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:start&quot; data-wiki-id=&quot;public:radio:start&quot;&gt;Radio&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;radio_topics&quot;&gt;Radio Topics&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Radio Topics&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;radio_topics&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;29-56&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;various_projects&quot;&gt;Various Projects&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
A collection of pages about things I&amp;#039;ve tinkered with over the last few years.
&lt;/p&gt;

&lt;p&gt;
The pages here are for information and to help should I want to re-visit any of the subjects/projects.
&lt;/p&gt;

&lt;p&gt;
&lt;script type=&quot;text/javascript&quot;&gt; catlist_baseurl = &quot;https://www.g4slv.info/dokuwiki/&quot;; catlist_basescript = &quot;doku.php&quot;; catlist_useslash = 0; catlist_userewrite = 0; catlist_sepchar = &quot;_&quot;; catlist_deaccent = 1; catlist_pagename_sanitize = 1; &lt;/script&gt;&lt;ul style=&quot;-webkit-column-count: 3; -moz-column-count: 3; column-count: 3;&quot; class=&quot;catlist_columns catlist-nslist&quot; &gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:4m_fm&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:4m_fm&quot; data-wiki-id=&quot;public:radio:topics:4m_fm&quot;&gt;4m FM&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:11m&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:11m&quot; data-wiki-id=&quot;public:radio:topics:11m&quot;&gt;10m/12m&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:60m&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:60m&quot; data-wiki-id=&quot;public:radio:topics:60m&quot;&gt;60m&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-ns&quot;&gt;&lt;strong class=&quot;li catlist-nshead&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:allstar:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:allstar:start&quot; data-wiki-id=&quot;public:radio:topics:allstar:start&quot;&gt;AllStar Linking&lt;/a&gt;&lt;/strong&gt;&lt;ul class=&quot;catlist-nslist&quot;&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li class=&quot;catlist-ns&quot;&gt;&lt;strong class=&quot;li catlist-nshead&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:aprs:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:aprs:start&quot; data-wiki-id=&quot;public:radio:topics:aprs:start&quot;&gt;APRS&lt;/a&gt;&lt;/strong&gt;&lt;ul class=&quot;catlist-nslist&quot;&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li class=&quot;catlist-ns&quot;&gt;&lt;strong class=&quot;li catlist-nshead&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:arduino:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:arduino:start&quot; data-wiki-id=&quot;public:radio:topics:arduino:start&quot;&gt;Arduino Projects&lt;/a&gt;&lt;/strong&gt;&lt;ul class=&quot;catlist-nslist&quot;&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:ccir493_selcall&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:ccir493_selcall&quot; data-wiki-id=&quot;public:radio:topics:ccir493_selcall&quot;&gt;CCIR493 Selcall&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:ccir493_-_2026&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:ccir493_-_2026&quot; data-wiki-id=&quot;public:radio:topics:ccir493_-_2026&quot;&gt;CCIR493 Selcall - 2026&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:cw_2023&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:cw_2023&quot; data-wiki-id=&quot;public:radio:topics:cw_2023&quot;&gt;CW - 2023&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:dmr&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:dmr&quot; data-wiki-id=&quot;public:radio:topics:dmr&quot;&gt;DMR and DV Modes&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:dmr_hotspot&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:dmr_hotspot&quot; data-wiki-id=&quot;public:radio:topics:dmr_hotspot&quot;&gt;DMR HotSpots&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:fldigi&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:fldigi&quot; data-wiki-id=&quot;public:radio:topics:fldigi&quot;&gt;Fldigi Parrot&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:renewed_interest&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:renewed_interest&quot; data-wiki-id=&quot;public:radio:topics:renewed_interest&quot;&gt;Getting back into radio&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-ns&quot;&gt;&lt;strong class=&quot;li catlist-nshead&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:xgate:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:xgate:start&quot; data-wiki-id=&quot;public:radio:topics:xgate:start&quot;&gt;HF / VHF Xgate&lt;/a&gt;&lt;/strong&gt;&lt;ul class=&quot;catlist-nslist&quot;&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:k2_2023&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:k2_2023&quot; data-wiki-id=&quot;public:radio:topics:k2_2023&quot;&gt;K2 - 2023&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:netradio_control&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:netradio_control&quot; data-wiki-id=&quot;public:radio:topics:netradio_control&quot;&gt;Netradio Control&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:ofcom&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:ofcom&quot; data-wiki-id=&quot;public:radio:topics:ofcom&quot;&gt;OFCOM&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:sdr&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:sdr&quot; data-wiki-id=&quot;public:radio:topics:sdr&quot;&gt;Openweb SDR&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:qrss&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:qrss&quot; data-wiki-id=&quot;public:radio:topics:qrss&quot;&gt;QRSS&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:qso_logging&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:qso_logging&quot; data-wiki-id=&quot;public:radio:topics:qso_logging&quot;&gt;QSO Logging&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:rpi_farm&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:rpi_farm&quot; data-wiki-id=&quot;public:radio:topics:rpi_farm&quot;&gt;Raspberry Pi Farm&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:shack_2023&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:shack_2023&quot; data-wiki-id=&quot;public:radio:topics:shack_2023&quot;&gt;Shack 2023&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-ns&quot;&gt;&lt;strong class=&quot;li catlist-nshead&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:start&quot; data-wiki-id=&quot;public:radio:topics:svxlink:start&quot;&gt;SVXLink&lt;/a&gt;&lt;/strong&gt;&lt;ul class=&quot;catlist-nslist&quot;&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li class=&quot;catlist-ns&quot;&gt;&lt;strong class=&quot;li catlist-nshead&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:yaddnet:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:yaddnet:start&quot; data-wiki-id=&quot;public:radio:topics:yaddnet:start&quot;&gt;YaDDNet&lt;/a&gt;&lt;/strong&gt;&lt;ul class=&quot;catlist-nslist&quot;&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/p&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 26/04/23 13:41&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Various Projects&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;various_projects&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;57-369&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;370-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 20:43:07 +0000</pubDate>
        </item>
        <item>
            <title>CA65 Setup</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:6502:ca65_setup</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:6502:start&quot; class=&quot;wikilink1&quot; title=&quot;public:computers:archive:6502:start&quot; data-wiki-id=&quot;public:computers:archive:6502:start&quot;&gt;6502 Project&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;ca65_setup&quot;&gt;CA65 Setup&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; Using CA65 in place of VASM &lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;CA65 Setup&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;ca65_setup&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-77&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;support_files&quot;&gt;Support Files&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; firmware.cfg&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;MEMORY
{
# Zero page
  ZP: start = $00, size = $100, type = rw, define = yes;
  RAM: start = $200, size = $3dff define=yes;
  ROM:       start=$8000, size=$8000, type=ro, define=yes, fill=yes,   fillval=$00, file=%O;
}

SEGMENTS
{
  ZEROPAGE: load = ZP,             type = zp;
  BSS:        load=RAM,       type=bss, define=yes;
  
  CODE:      load=ROM,       type=ro,  define=yes;
  VECTORS:   load=ROM,       type=ro,  define=yes,   offset=$7ffa, optional=yes;
}&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; cc65.rules.mk&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code makefile&quot;&gt;include /home/gm4slv/6502/ca65src/tools.mk
&amp;nbsp;
BUILD_FOLDER=../build
TEMP_FOLDER=$(BUILD_FOLDER)/$(ROM_NAME)
ROM_FILE=$(BUILD_FOLDER)/$(ROM_NAME).bin
MAP_FILE=$(TEMP_FOLDER)/$(ROM_NAME).map
&amp;nbsp;
ASM_OBJECTS=$(ASM_SOURCES:%.s=$(TEMP_FOLDER)/%.o)
&amp;nbsp;
# Compile assembler sources
$(TEMP_FOLDER)/%.o: %.s
	@$(MKDIR_BINARY) $(MKDIR_FLAGS) $(TEMP_FOLDER)
	$(CA65_BINARY) $(CA65_FLAGS) -o $@ -l $(@:.o=.lst) $&amp;lt;
&amp;nbsp;
# Link ROM image
$(ROM_FILE): $(ASM_OBJECTS) $(FIRMWARE_CFG)
	@$(MKDIR_BINARY) $(MKDIR_FLAGS) $(BUILD_FOLDER)
	$(LD65_BINARY) $(LD65_FLAGS) -C $(FIRMWARE_CFG) -o $@ -m $(MAP_FILE) $(ASM_OBJECTS)
&amp;nbsp;
# Default target
all: $(ROM_FILE)
&amp;nbsp;
# Build and dump output
test: $(ROM_FILE)
	$(HEXDUMP_BINARY) $(HEXDUMP_FLAGS) $&amp;lt;
	$(MD5_BINARY) $&amp;lt;
&amp;nbsp;
# Clean build artifacts
clean:
	$(RM_BINARY) -f $(ROM_FILE) \
	$(MAP_FILE) \
	$(ASM_OBJECTS) \
	$(ASM_OBJECTS:%.o=%.lst)&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; tools.mk&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;# cc65 utilities used in this example
CA65_BINARY=ca65
CC65_BINARY=cc65
LD65_BINARY=ld65
AR65_BINARY=ar65

VASM_BINARY=vasm6502_oldstyle

CPU_FLAG=--cpu 65C02
ARCH_FLAG=-t none

CC65_FLAGS=$(CPU_FLAG) $(ARCH_FLAG) $(EXTRA_FLAGS) -O
CA65_FLAGS=$(CPU_FLAG) $(EXTRA_FLAGS)
LD65_FLAGS=
AR65_FLAGS=r

VASM_FLAGS=-Fbin -dotdir

# Hexdump is used for &amp;quot;testing&amp;quot; the ROM
HEXDUMP_BINARY=hexdump
HEXDUMP_FLAGS=-C

# Checksum generator
MD5_BINARY=md5sum

# Standard utilities (rm/mkdir)
RM_BINARY=rm
RM_FLAGS=-f
MKDIR_BINARY=mkdir
MKDIR_FLAGS=-p
CP_BINARY=cp
CP_FLAGS=-f
&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; project &lt;code&gt;makefile&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;CONF_DIR=/home/gm4slv/6502/ca65src

ROM_NAME=monitor_dev

ASM_SOURCES=monitor_dev.s

FIRMWARE_CFG=$(CONF_DIR)/firmware.cfg

include $(CONF_DIR)/cc65.rules.mk
&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Support Files&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;support_files&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;78-2289&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;a_typical_project&quot;&gt;A typical project&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;A typical project&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;a_typical_project&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;2290-2320&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;monitor_devs_setup&quot;&gt;monitor_dev.s setup&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Put the asm source for the project in a folder (&lt;code&gt;/home/gm4slv/6502/ca65src/src/monitor/monitor_dev.s&lt;/code&gt;)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Put the &lt;code&gt;makefile&lt;/code&gt; in the same folder&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; put any source files to be included in the assembly process in the &lt;code&gt;includes&lt;/code&gt; folder&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;/home/gm4slv/6502/ca65src/src/includes/rtc.inc&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;/home/gm4slv/6502/ca65src/src/includes/ioports.inc&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; make a &lt;code&gt;build&lt;/code&gt; main folder &lt;code&gt;/home/gm4slv/6502/ca65src/build/&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
The general tree:
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;/home/gm4slv/6502/ca65src/&lt;/code&gt; = base folder for ca65 projects aka &lt;code&gt;$CA65SRC&lt;/code&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; config files : firmware.cfg, cc65.rules.mk, tools.mk are in &lt;code&gt;$(CA65SRC)&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; sources directory : &lt;code&gt;src&lt;/code&gt; is in &lt;code&gt;$(CA65SRC)&lt;/code&gt; → &lt;code&gt;$(CA65SRC)/src&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; inside sources directory are &lt;code&gt;build&lt;/code&gt;, &lt;code&gt;includes&lt;/code&gt; and the individual project source directories. &lt;code&gt;$(CA65SRC)/src/build/&lt;/code&gt;, &lt;code&gt;$(CA65SRC)/src/includes/&lt;/code&gt; and (eg) &lt;code&gt;$(CA65SRC)/src/monitor/&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; inside each &lt;code&gt;project&lt;/code&gt; source directory are the asm source file eg &lt;code&gt;monitor_dev.s&lt;/code&gt; and a specific &lt;code&gt;makefile&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
To include sources from the &lt;code&gt;includes&lt;/code&gt; directory first define the variables, then the includes
:
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;variables&quot;&gt;Variables&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
define &lt;code&gt;zeropage&lt;/code&gt; variables:
&lt;/p&gt;
&lt;pre class=&quot;code asm&quot;&gt;&lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;zeropage
&amp;nbsp;
DUMP_POINTER&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;     &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
FLAGS&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;            &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
TOGGLE_TIME&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;      &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
CLOCK_LAST&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;       &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
MESSAGE_POINTER&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;  &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
TICKS&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;            &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;
CENTISEC&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;         &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
HUNDRED_HRS&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;      &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
TEN_HRS&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;          &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
HRS&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;              &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
TEN_MINUTES&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;      &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
MINUTES&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;          &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
TEN_SECONDS&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;      &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
SECONDS&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;          &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
MEM_POINTER&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;      &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
and define the other &lt;code&gt;.bss&lt;/code&gt; variables:
&lt;/p&gt;
&lt;pre class=&quot;code asm&quot;&gt;&lt;span class=&quot;kw5&quot;&gt;.bss&lt;/span&gt;
&amp;nbsp;
INKEY&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;            &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
ASCII&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;            &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;
&lt;span class=&quot;kw6&quot;&gt;BYTE&lt;/span&gt;&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;             &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
TENS&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;             &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
HUNDREDS&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;         &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
HEX&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;              &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
HEXB&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;             &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
TEMP&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;             &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
TEMP2&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;            &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Then the &lt;code&gt;includes&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code asm&quot;&gt;  &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;include &lt;span class=&quot;st0&quot;&gt;&amp;quot;../includes/ioports.inc&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;include &lt;span class=&quot;st0&quot;&gt;&amp;quot;../includes/lcd.inc&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;include &lt;span class=&quot;st0&quot;&gt;&amp;quot;../includes/getkey.inc&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;include &lt;span class=&quot;st0&quot;&gt;&amp;quot;../includes/functions.inc&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;include &lt;span class=&quot;st0&quot;&gt;&amp;quot;../includes/rtc.inc&amp;quot;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
make sure the &lt;code&gt;include&lt;/code&gt; files have appropriate &lt;code&gt;.code&lt;/code&gt; directive to put it in the right place when its all assembled together:
&lt;/p&gt;

&lt;p&gt;
e.g. in &lt;code&gt;functions.inc&lt;/code&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code asm&quot;&gt; &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;code&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;          convert a binary number from Accumulator, in range 00000000 -&amp;gt; 11111111 ($00 to $FF)&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;          to its HEX number encode as ASCII -  using a simple lookup table and print it on LCD&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
bintohex&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  pha
  lsr
  lsr
  lsr
  lsr
  tax
  lda hexascii&lt;span class=&quot;sy1&quot;&gt;,&lt;/span&gt;x
  jsr print_char
  pla
  &lt;span class=&quot;kw1&quot;&gt;and&lt;/span&gt; #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0f&lt;/span&gt;
  tax
  lda hexascii&lt;span class=&quot;sy1&quot;&gt;,&lt;/span&gt;x
  jsr print_char
  rts
&amp;nbsp;
hexascii&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kw6&quot;&gt;byte&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;0123456789ABCDEF&amp;quot;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;monitor_dev.s setup&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;monitor_devs_setup&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;2321-5090&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;monitor_devs_source_code&quot;&gt;monitor_dev.s source code&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_965e507a710981562292fc5a230a5c5c_36&quot;&gt;monitor_dev.s &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_965e507a710981562292fc5a230a5c5c_36&quot;&gt;&lt;pre class=&quot;code asm&quot;&gt;&amp;nbsp;
&lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;localchar &lt;span class=&quot;st0&quot;&gt;&#039;@&#039;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;.SEGMENT &amp;quot;ZEROPAGE&amp;quot;&lt;/span&gt;
&lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;zeropage
&amp;nbsp;
DUMP_POINTER&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;     &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
FLAGS&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;            &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
TOGGLE_TIME&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;      &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
CLOCK_LAST&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;       &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
MESSAGE_POINTER&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;  &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
TICKS&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;            &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;
CENTISEC&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;         &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
HUNDRED_HRS&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;      &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
TEN_HRS&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;          &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
HRS&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;              &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
TEN_MINUTES&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;      &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
MINUTES&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;          &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
TEN_SECONDS&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;      &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
SECONDS&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;          &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
MEM_POINTER&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;      &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;.SEGMENT &amp;quot;BSS&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw5&quot;&gt;.bss&lt;/span&gt;
&amp;nbsp;
INKEY&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;            &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
ASCII&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;            &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;
&lt;span class=&quot;kw6&quot;&gt;BYTE&lt;/span&gt;&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;             &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
TENS&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;             &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
HUNDREDS&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;         &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
HEX&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;              &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
HEXB&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;             &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
TEMP&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;             &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
TEMP2&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;            &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;res &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;include &lt;span class=&quot;st0&quot;&gt;&amp;quot;../includes/ioports.inc&amp;quot;&lt;/span&gt;
&lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;include &lt;span class=&quot;st0&quot;&gt;&amp;quot;../includes/lcd.inc&amp;quot;&lt;/span&gt;
&lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;include &lt;span class=&quot;st0&quot;&gt;&amp;quot;../includes/getkey.inc&amp;quot;&lt;/span&gt;
&lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;include &lt;span class=&quot;st0&quot;&gt;&amp;quot;../includes/functions.inc&amp;quot;&lt;/span&gt;
&lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;include &lt;span class=&quot;st0&quot;&gt;&amp;quot;../includes/rtc.inc&amp;quot;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;code&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
reset&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  ldx #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;ff
  txs
&amp;nbsp;
  &lt;span class=&quot;kw1&quot;&gt;cli&lt;/span&gt;      &lt;span class=&quot;co1&quot;&gt;; interrupts ON&lt;/span&gt;
&amp;nbsp;
  jsr via_1_init &lt;span class=&quot;co1&quot;&gt;; set-up VIA_1 for LCD/Keypad &lt;/span&gt;
  jsr lcd_init &lt;span class=&quot;co1&quot;&gt;; set-up 4-bit mode &lt;/span&gt;
  jsr lcd_start &lt;span class=&quot;co1&quot;&gt;; set-up various features of lcd &lt;/span&gt;
&amp;nbsp;
init_variables&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  stz TICKS
  stz TICKS &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  stz TICKS &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
  stz TICKS &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;
  stz DUMP_POINTER
  stz DUMP_POINTER &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  stz MESSAGE_POINTER
  stz MESSAGE_POINTER &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  stz TOGGLE_TIME
  stz CLOCK_LAST
  stz CENTISEC
  stz FLAGS
  stz SECONDS
  stz TEN_SECONDS
  stz MINUTES
  stz HRS
  stz TEN_HRS
  stz TEN_MINUTES
  stz HUNDRED_HRS
  stz TEMP
  stz TEMP2
  stz TENS  
  stz MEM_POINTER
  stz MEM_POINTER &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;; test then clear RAM between &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;; $0200 - $3FFF - avoids the ZP and STACK areas&lt;/span&gt;
&amp;nbsp;
ram_clear&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  lda #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;02&lt;/span&gt;            &lt;span class=&quot;co1&quot;&gt;; start at $0200&lt;/span&gt;
  sta MEM_POINTER &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  ldy #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;00&lt;/span&gt;
loop_ram&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  lda #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;AA
  sta &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MEM_POINTER&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy1&quot;&gt;,&lt;/span&gt;y
  lda #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;FF
  lda &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MEM_POINTER&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy1&quot;&gt;,&lt;/span&gt;y
  &lt;span class=&quot;kw1&quot;&gt;cmp&lt;/span&gt; #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;AA
  bne mem_fail_1
  lda #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;55&lt;/span&gt;
  sta &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MEM_POINTER&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy1&quot;&gt;,&lt;/span&gt;y
  lda #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;FF
  lda &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MEM_POINTER&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy1&quot;&gt;,&lt;/span&gt;y
  &lt;span class=&quot;kw1&quot;&gt;cmp&lt;/span&gt; #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;55&lt;/span&gt;
  bne mem_fail_2
  lda #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;00&lt;/span&gt;
  sta &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MEM_POINTER&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy1&quot;&gt;,&lt;/span&gt;y
  iny
  beq next_page
  &lt;span class=&quot;kw1&quot;&gt;jmp&lt;/span&gt; loop_ram
next_page&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  lda MEM_POINTER &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;inc&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;cmp&lt;/span&gt; #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;40&lt;/span&gt;
  beq done_ram
  sta MEM_POINTER &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;jmp&lt;/span&gt; loop_ram
&amp;nbsp;
&amp;nbsp;
done_ram&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
&amp;nbsp;
  lda #&amp;lt;mem_pass_msg
  sta MESSAGE_POINTER
  lda #&amp;gt;mem_pass_msg
  sta MESSAGE_POINTER &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  jsr print 
  smb5 FLAGS
  &lt;span class=&quot;kw1&quot;&gt;jmp&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;loop&lt;/span&gt;
&amp;nbsp;
mem_fail_1&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  lda #&amp;lt;mem_fail_msg_1
  sta MESSAGE_POINTER
  lda #&amp;gt;mem_fail_msg_1
  sta MESSAGE_POINTER &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  jsr print
  &lt;span class=&quot;kw1&quot;&gt;jmp&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;loop&lt;/span&gt;
&amp;nbsp;
mem_fail_2&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  lda #&amp;lt;mem_fail_msg_2
  sta MESSAGE_POINTER
  lda #&amp;gt;mem_fail_msg_2
  sta MESSAGE_POINTER &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  jsr print
  &lt;span class=&quot;kw1&quot;&gt;jmp&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;loop&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;; go straight to MONITOR at startup&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;  lda #&amp;lt;splash&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;  sta MESSAGE_POINTER&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;  lda #&amp;gt;splash&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;  sta MESSAGE_POINTER + 1&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;  jsr new_address&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;; main loop&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;loop&lt;/span&gt;&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  wai
  jsr check_flags
  &lt;span class=&quot;kw1&quot;&gt;jmp&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;loop&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;;;;;;;;;;;;; FUNCTIONS ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&amp;nbsp;
check_flags&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  bbs0 FLAGS&lt;span class=&quot;sy1&quot;&gt;,&lt;/span&gt; update_block_address
  bbs5 FLAGS&lt;span class=&quot;sy1&quot;&gt;,&lt;/span&gt; clock_time
  &lt;span class=&quot;co1&quot;&gt;; check other flags... other actions....&lt;/span&gt;
  rts
&amp;nbsp;
update_block_address&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  sec
  lda TICKS
  sbc TOGGLE_TIME
  &lt;span class=&quot;kw1&quot;&gt;cmp&lt;/span&gt; #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;32&lt;/span&gt;
  bcc exit_update_block
  jsr block_address
  lda TICKS
  sta TOGGLE_TIME
&amp;nbsp;
exit_update_block&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  rts
&amp;nbsp;
&amp;nbsp;
clock_time&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
&amp;nbsp;
  sec
  lda TICKS
  sbc CLOCK_LAST
  &lt;span class=&quot;kw1&quot;&gt;cmp&lt;/span&gt; #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;32&lt;/span&gt;
  bcc exit_clock
&amp;nbsp;
  jsr lcd_cursor_off
&amp;nbsp;
  jsr lcd_home
&amp;nbsp;
  lda HUNDRED_HRS
  jsr bintoascii
  lda TEN_HRS
  jsr bintoascii
  lda HRS
  jsr bintoascii
  lda #&lt;span class=&quot;st0&quot;&gt;&#039;:&#039;&lt;/span&gt;
  jsr print_char
  lda TEN_MINUTES
  jsr bintoascii
  lda MINUTES
  jsr bintoascii
  lda #&lt;span class=&quot;st0&quot;&gt;&#039;:&#039;&lt;/span&gt;
  jsr print_char
  lda TEN_SECONDS
  jsr bintoascii
  lda SECONDS
  jsr bintoascii
  lda #&lt;span class=&quot;st0&quot;&gt;&#039; &#039;&lt;/span&gt;
  jsr print_char
  lda TICKS
  sta CLOCK_LAST
exit_clock&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  rts
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;      update screen when new memory location is selected&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
new_address&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
&amp;nbsp;
  jsr lcd_clear
&amp;nbsp;
  jsr lcd_cursor_on
&amp;nbsp;
&amp;nbsp;
print_address&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  lda #&lt;span class=&quot;st0&quot;&gt;&#039;$&#039;&lt;/span&gt;
  jsr print_char
  lda DUMP_POINTER &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  jsr bintohex
  lda DUMP_POINTER
  jsr bintohex
&amp;nbsp;
  lda #&lt;span class=&quot;st0&quot;&gt;&#039; &#039;&lt;/span&gt;
  jsr print_char
&amp;nbsp;
print_data&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
&amp;nbsp;
  ldy #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;00&lt;/span&gt;
&amp;nbsp;
  lda &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;DUMP_POINTER&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy1&quot;&gt;,&lt;/span&gt;y
  jsr bintohex
  lda #&lt;span class=&quot;st0&quot;&gt;&#039; &#039;&lt;/span&gt;
  jsr print_char
  lda &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;DUMP_POINTER&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy1&quot;&gt;,&lt;/span&gt;y
  jsr print_char
&amp;nbsp;
message_end&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  jsr print   &lt;span class=&quot;co1&quot;&gt;; add second line (cursor) after re-writing the top line&lt;/span&gt;
  rts
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;; display 8 bytes of data for a &amp;quot;block&amp;quot; of memory&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
block_address&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
&amp;nbsp;
  jsr lcd_clear
&amp;nbsp;
  ldy #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;00&lt;/span&gt;
&amp;nbsp;
print_block_address&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  lda #&lt;span class=&quot;st0&quot;&gt;&#039;$&#039;&lt;/span&gt;
  jsr print_char
  lda DUMP_POINTER &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  jsr bintohex
  lda DUMP_POINTER
  jsr bintohex
&amp;nbsp;
  jsr lcd_line_2
&amp;nbsp;
print_block&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
&amp;nbsp;
  lda &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;DUMP_POINTER&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy1&quot;&gt;,&lt;/span&gt;y
  jsr bintohex
  lda &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;DUMP_POINTER&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy1&quot;&gt;,&lt;/span&gt;y
  iny
  cpy #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;08&lt;/span&gt;
  bne print_block
&amp;nbsp;
&amp;nbsp;
block_message_end&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  rts
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;; re-draw line 2 cursor&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
print&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
&amp;nbsp;
  jsr lcd_line_2
&amp;nbsp;
  ldy #&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
line1&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  lda &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;MESSAGE_POINTER&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy1&quot;&gt;,&lt;/span&gt;y
  beq end_print
  jsr print_char
  iny
  &lt;span class=&quot;kw1&quot;&gt;jmp&lt;/span&gt; line1
&amp;nbsp;
end_print&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
&amp;nbsp;
  rts
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;      Monitor function - decrement the selected address &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
decrement_address&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
&amp;nbsp;
  sec
  lda DUMP_POINTER
  sbc #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;01&lt;/span&gt;
  sta DUMP_POINTER
  sta &lt;span class=&quot;kw6&quot;&gt;BYTE&lt;/span&gt;
  lda DUMP_POINTER &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  sbc #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;00&lt;/span&gt;
  sta DUMP_POINTER &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  sta &lt;span class=&quot;kw6&quot;&gt;BYTE&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
dec_ok&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  rts
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;      Monitor function - increment the selected address &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&amp;nbsp;
increment_address&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;kw1&quot;&gt;clc&lt;/span&gt;
  lda DUMP_POINTER
  &lt;span class=&quot;kw1&quot;&gt;adc&lt;/span&gt; #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;01&lt;/span&gt;
  sta DUMP_POINTER
  sta &lt;span class=&quot;kw6&quot;&gt;BYTE&lt;/span&gt;
  bcc inc_ok
  &lt;span class=&quot;kw1&quot;&gt;inc&lt;/span&gt; DUMP_POINTER &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  lda DUMP_POINTER &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  sta &lt;span class=&quot;kw6&quot;&gt;BYTE&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
inc_ok&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  rts
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;      Monitor function - increment the selected block of  addresses by 8 &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&amp;nbsp;
increment_block&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;clc&lt;/span&gt;
  lda DUMP_POINTER
  &lt;span class=&quot;kw1&quot;&gt;adc&lt;/span&gt; #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;08&lt;/span&gt;
  sta DUMP_POINTER
  sta &lt;span class=&quot;kw6&quot;&gt;BYTE&lt;/span&gt;
  lda DUMP_POINTER &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;adc&lt;/span&gt; #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;00&lt;/span&gt;
  sta DUMP_POINTER &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  sta &lt;span class=&quot;kw6&quot;&gt;BYTE&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  rts
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;      Monitor function - decrement the selected block of  addresses by 8 &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&amp;nbsp;
decrement_block&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
&amp;nbsp;
  sec
  lda DUMP_POINTER
  sbc #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;08&lt;/span&gt;
  sta DUMP_POINTER
  sta &lt;span class=&quot;kw6&quot;&gt;BYTE&lt;/span&gt;
  lda DUMP_POINTER &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  sbc #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;00&lt;/span&gt;
  sta DUMP_POINTER &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  sta &lt;span class=&quot;kw6&quot;&gt;BYTE&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  rts
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;          use last 4 entered ASCII characters from the keypad and convert &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;          them to TWO 8-bit binary bytes in RAM&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
ascii_byte&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
&amp;nbsp;
  lda ASCII &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&amp;nbsp;
  jsr ascii_bin
  &lt;span class=&quot;kw1&quot;&gt;clc&lt;/span&gt;
  asl
  asl
  asl
  asl
  sta &lt;span class=&quot;kw6&quot;&gt;BYTE&lt;/span&gt;
&amp;nbsp;
  lda ASCII
&amp;nbsp;
  jsr ascii_bin
  ora &lt;span class=&quot;kw6&quot;&gt;BYTE&lt;/span&gt;
  sta &lt;span class=&quot;kw6&quot;&gt;BYTE&lt;/span&gt;
&amp;nbsp;
  lda ASCII &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;
  jsr ascii_bin
  &lt;span class=&quot;kw1&quot;&gt;clc&lt;/span&gt;
  asl
  asl
  asl
  asl
  sta &lt;span class=&quot;kw6&quot;&gt;BYTE&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&amp;nbsp;
  lda ASCII &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
&amp;nbsp;
  jsr ascii_bin
  ora &lt;span class=&quot;kw6&quot;&gt;BYTE&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  sta &lt;span class=&quot;kw6&quot;&gt;BYTE&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  rts
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;    toggle the display/update of Clock on each appropriate keypress&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
show_clock&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
&amp;nbsp;
  bbs5 FLAGS&lt;span class=&quot;sy1&quot;&gt;,&lt;/span&gt; reset_bit5
  smb5 FLAGS
  &lt;span class=&quot;kw1&quot;&gt;jmp&lt;/span&gt; exit_show_clock
&amp;nbsp;
reset_bit5&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
&amp;nbsp;
  rmb5 FLAGS
&amp;nbsp;
exit_show_clock&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
&amp;nbsp;
  rts
  &lt;span class=&quot;co1&quot;&gt;;jmp debounce&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;    toggle the automatic update view of the &amp;quot;8-byte memory block&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
show_block&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
&amp;nbsp;
  bbs0 FLAGS&lt;span class=&quot;sy1&quot;&gt;,&lt;/span&gt; reset_bit0
  smb0 FLAGS
  &lt;span class=&quot;kw1&quot;&gt;jmp&lt;/span&gt; exit_show_block
&amp;nbsp;
reset_bit0&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
&amp;nbsp;
  rmb0 FLAGS
&amp;nbsp;
exit_show_block&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
&amp;nbsp;
  rts
  &lt;span class=&quot;co1&quot;&gt;;jmp debounce&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;debounce:&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;  ldx #$ff&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;  ldy #$ff&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;delay:&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;  nop&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;  dex&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;  bne delay&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;  dey&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;  bne delay&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;  rts  &lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;;;;;;;;;;;;;;;;;; INTERRUPT HANDLERS ;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;      CB1 : reset &amp;amp; restart timer&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&amp;nbsp;
cb1_handler&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  stz HUNDRED_HRS
  stz TEN_HRS
  stz TEN_MINUTES
  stz TEN_SECONDS
  stz HRS
  stz MINUTES
  stz SECONDS
&amp;nbsp;
  smb5 FLAGS
&amp;nbsp;
  rts
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;     CB2 : lap-time pause timer&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&amp;nbsp;
cb2_handler&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  jsr show_clock
  rts
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;                    MONITOR / KEYPAD &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&amp;nbsp;
keypad_handler&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
&amp;nbsp;
  jsr get_key     &lt;span class=&quot;co1&quot;&gt;; READs from PORTA which also re-sets VIA&#039;s Interrupt flag&lt;/span&gt;
  sta INKEY       &lt;span class=&quot;co1&quot;&gt;; put the ASCII value of input into RAM ( $00 ) &lt;/span&gt;
&amp;nbsp;
  lda PORTB_1       &lt;span class=&quot;co1&quot;&gt;; check for SHIFT/INSTRUCTION button&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;and&lt;/span&gt; #&lt;span class=&quot;nu0&quot;&gt;%10000000&lt;/span&gt;
  beq check_keypress &lt;span class=&quot;co1&quot;&gt;; done this way to get around the limit in size of branch jumps....&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;jmp&lt;/span&gt; handle_new_char
&amp;nbsp;
check_keypress&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  lda INKEY       
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;; choose action of &amp;quot;SHIFTed&amp;quot; key-press&lt;/span&gt;
check_a&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;cmp&lt;/span&gt; #&lt;span class=&quot;st0&quot;&gt;&#039;A&#039;&lt;/span&gt;
  &lt;span class=&quot;co1&quot;&gt;; move up one memory address and display contents&lt;/span&gt;
  bne check_b     
  jsr increment_address
  jsr new_address
  &lt;span class=&quot;kw1&quot;&gt;jmp&lt;/span&gt; exit_key_irq
&amp;nbsp;
check_b&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;cmp&lt;/span&gt; #&lt;span class=&quot;st0&quot;&gt;&#039;B&#039;&lt;/span&gt;
  &lt;span class=&quot;co1&quot;&gt;; move down one memory address and display contents&lt;/span&gt;
  bne check_c
  jsr decrement_address
  jsr new_address
  &lt;span class=&quot;kw1&quot;&gt;jmp&lt;/span&gt; exit_key_irq
&amp;nbsp;
check_c&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;cmp&lt;/span&gt; #&lt;span class=&quot;st0&quot;&gt;&#039;C&#039;&lt;/span&gt;
  &lt;span class=&quot;co1&quot;&gt;; return to MONITOR&lt;/span&gt;
  bne check_d
  rmb5 FLAGS
  jsr lcd_clear
  lda #&amp;lt;splash
  sta MESSAGE_POINTER
  lda #&amp;gt;splash
  sta MESSAGE_POINTER &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&amp;nbsp;
  jsr new_address
  &lt;span class=&quot;kw1&quot;&gt;jmp&lt;/span&gt; exit_key_irq
&amp;nbsp;
check_d&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;cmp&lt;/span&gt; #&lt;span class=&quot;st0&quot;&gt;&#039;D&#039;&lt;/span&gt;
  &lt;span class=&quot;co1&quot;&gt;; move monitor to entered 4-digit memory address&lt;/span&gt;
  bne check_e
  lda &lt;span class=&quot;kw6&quot;&gt;BYTE&lt;/span&gt;
  sta DUMP_POINTER
  lda &lt;span class=&quot;kw6&quot;&gt;BYTE&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  sta DUMP_POINTER &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  jsr new_address
  jsr print
  &lt;span class=&quot;kw1&quot;&gt;jmp&lt;/span&gt; exit_key_irq
&amp;nbsp;
check_e&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;cmp&lt;/span&gt; #&lt;span class=&quot;st0&quot;&gt;&#039;E&#039;&lt;/span&gt;
  &lt;span class=&quot;co1&quot;&gt;; insert (POKE) byte of data in to current memory address, then increment to next address&lt;/span&gt;
  bne check_f
  lda &lt;span class=&quot;kw6&quot;&gt;BYTE&lt;/span&gt;
  ldy #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;00&lt;/span&gt;
  sta &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;DUMP_POINTER&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy1&quot;&gt;,&lt;/span&gt;y
  jsr increment_address
  jsr new_address
  jsr print
  &lt;span class=&quot;kw1&quot;&gt;jmp&lt;/span&gt; exit_key_irq
&amp;nbsp;
check_f&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;cmp&lt;/span&gt; #&lt;span class=&quot;st0&quot;&gt;&#039;F&#039;&lt;/span&gt;
  &lt;span class=&quot;co1&quot;&gt;; show 8-byte wide block of memory&lt;/span&gt;
  bne check_1
  ldy #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;00&lt;/span&gt;
  lda &lt;span class=&quot;kw6&quot;&gt;BYTE&lt;/span&gt;
  sta DUMP_POINTER
  lda &lt;span class=&quot;kw6&quot;&gt;BYTE&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  sta DUMP_POINTER &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  jsr block_address
  &lt;span class=&quot;kw1&quot;&gt;jmp&lt;/span&gt; exit_key_irq
&amp;nbsp;
check_1&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;cmp&lt;/span&gt; #&lt;span class=&quot;st0&quot;&gt;&#039;1&#039;&lt;/span&gt;
  &lt;span class=&quot;co1&quot;&gt;; show/auto-update clock&lt;/span&gt;
  bne check_3
  jsr lcd_clear
  lda #&amp;lt;emt
  sta MESSAGE_POINTER
  lda #&amp;gt;emt
  sta MESSAGE_POINTER &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  jsr print
  smb5 FLAGS
&amp;nbsp;
  &lt;span class=&quot;co1&quot;&gt;;jsr show_clock&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;jmp&lt;/span&gt; exit_key_irq
&amp;nbsp;
check_3&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;cmp&lt;/span&gt; #&lt;span class=&quot;st0&quot;&gt;&#039;3&#039;&lt;/span&gt;
  bne check_6
  ldy #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;00&lt;/span&gt;
  jsr increment_block
  jsr block_address
  &lt;span class=&quot;kw1&quot;&gt;jmp&lt;/span&gt; exit_key_irq
&amp;nbsp;
check_6&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;cmp&lt;/span&gt; #&lt;span class=&quot;st0&quot;&gt;&#039;6&#039;&lt;/span&gt;
  bne check_9
  ldy #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;00&lt;/span&gt;
  jsr decrement_block
  jsr block_address
  &lt;span class=&quot;kw1&quot;&gt;jmp&lt;/span&gt; exit_key_irq
&amp;nbsp;
check_9&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;cmp&lt;/span&gt; #&lt;span class=&quot;st0&quot;&gt;&#039;9&#039;&lt;/span&gt;
  bne check_4
  jsr show_block
  &lt;span class=&quot;kw1&quot;&gt;jmp&lt;/span&gt; exit_key_irq
&amp;nbsp;
check_4&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;cmp&lt;/span&gt; #&lt;span class=&quot;st0&quot;&gt;&#039;4&#039;&lt;/span&gt;
  bne check_5
  lda &lt;span class=&quot;kw6&quot;&gt;BYTE&lt;/span&gt;
  sta HEXB
  lda &lt;span class=&quot;kw6&quot;&gt;BYTE&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  sta HEXB &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  jsr byte_to_hex
  &lt;span class=&quot;kw1&quot;&gt;jmp&lt;/span&gt; exit_key_irq
&amp;nbsp;
check_5&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;cmp&lt;/span&gt; #&lt;span class=&quot;st0&quot;&gt;&#039;5&#039;&lt;/span&gt;
  bne exit_key_irq
  jsr &lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;3F00
  &lt;span class=&quot;kw1&quot;&gt;jmp&lt;/span&gt; exit_key_irq
&amp;nbsp;
&amp;nbsp;
handle_new_char&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  lda ASCII &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
  sta ASCII &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;
  lda ASCII &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  sta ASCII &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
  lda ASCII
  sta ASCII &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  lda INKEY       &lt;span class=&quot;co1&quot;&gt;; get the new ASCII keypress value and... &lt;/span&gt;
  sta ASCII
  jsr print_char  &lt;span class=&quot;co1&quot;&gt;; and print it on LCD&lt;/span&gt;
&amp;nbsp;
  jsr ascii_byte  &lt;span class=&quot;co1&quot;&gt;; convert the rolling 4-byte ASCII character data into two binary bytes&lt;/span&gt;
&amp;nbsp;
exit_key_irq&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
  jsr scan  &lt;span class=&quot;co1&quot;&gt;; re-enable keypad&lt;/span&gt;
&amp;nbsp;
  rts
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&amp;nbsp;
nmi&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  rti
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;    interrupt is triggered by HIGH edge on VIA CA1 pin&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;     PORTA low nibble (keypad columns) inputs are diode ORed to CA1&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&amp;nbsp;
irq&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;; put registers on the stack while handling the IRQ&lt;/span&gt;
  pha
  phx
  phy
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;  find responsible hardware&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;  Is it VIA_1?&lt;/span&gt;
&amp;nbsp;
  lda IFR_1   &lt;span class=&quot;co1&quot;&gt;; if IFR_1 has Bit7 set (ie sign=NEGATIVE) then it IS the source of the interrupt&lt;/span&gt;
  &lt;span class=&quot;kw4&quot;&gt;bpl&lt;/span&gt; next_device &lt;span class=&quot;co1&quot;&gt;; if it&#039;s not set (ie sign=POSITIVE) then branch to test the next possible device&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;; IFR Flags&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;; B7  B6  B5  B4  B3  B2  B1  B0&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;; IRQ TI1 TI2 CB1 CB2 SR CA1 CA2&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;; Interrupt source is found by sequentially shifting IFR bit left to put bit-of-interest into the CARRY place&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;; and then branching based on whether CARRY is SET or not&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;; Only add tests for IRQ sources in use, and adjust the ASLs in each test as necessary&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&amp;nbsp;
test_timer1&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  asl           &lt;span class=&quot;co1&quot;&gt;; shift IFR left twice puts the TI1 bit into CARRY....&lt;/span&gt;
  asl
  bcc test_cb1  &lt;span class=&quot;co1&quot;&gt;; carry clear = next test&lt;/span&gt;
  bit T1CL_1      &lt;span class=&quot;co1&quot;&gt;; clear not clear = handle the TIMER interrupt&lt;/span&gt;
  jsr rtc
  &lt;span class=&quot;kw1&quot;&gt;jmp&lt;/span&gt; exit_irq
&amp;nbsp;
test_cb1&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  asl
  asl
  bcc test_cb2
  bit PORTB_1
  jsr cb1_handler
  &lt;span class=&quot;kw1&quot;&gt;jmp&lt;/span&gt; exit_irq
&amp;nbsp;
test_cb2&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  asl
  bcc test_ca1
  bit PORTB_1
  jsr cb2_handler
  &lt;span class=&quot;kw1&quot;&gt;jmp&lt;/span&gt; exit_irq
&amp;nbsp;
test_ca1&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  asl           &lt;span class=&quot;co1&quot;&gt;; shift CA1 bit into the CARRY bit &amp;amp; test&lt;/span&gt;
  asl
  bcc exit_irq        &lt;span class=&quot;co1&quot;&gt;; carry clear = leave&lt;/span&gt;
  jsr keypad_handler  &lt;span class=&quot;co1&quot;&gt;; carry not clear = handle the CA1 interrupt (keypad)&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;jmp&lt;/span&gt; exit_irq
&amp;nbsp;
&amp;nbsp;
next_device&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
&amp;nbsp;
exit_irq&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  ply
  plx
  pla
&amp;nbsp;
&amp;nbsp;
  rti
&amp;nbsp;
emt&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;asciiz &lt;span class=&quot;st0&quot;&gt;&amp;quot;hhh mm ss  MET&amp;quot;&lt;/span&gt;
splash&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;asciiz &lt;span class=&quot;st0&quot;&gt;&amp;quot;cmon&amp;gt; &amp;quot;&lt;/span&gt;
error_message&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;asciiz &lt;span class=&quot;st0&quot;&gt;&amp;quot;Not Decimal&amp;quot;&lt;/span&gt;
mem_pass_msg&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;asciiz &lt;span class=&quot;st0&quot;&gt;&amp;quot;RAM Test Pass&amp;quot;&lt;/span&gt;
mem_fail_msg_1&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;asciiz &lt;span class=&quot;st0&quot;&gt;&amp;quot;RAM Test 1 Fail&amp;quot;&lt;/span&gt;
mem_fail_msg_2&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;asciiz &lt;span class=&quot;st0&quot;&gt;&amp;quot;RAM Test 2 Fail&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;; Reset/IRQ vectors&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;segment&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;VECTORS&amp;quot;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
  &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kw6&quot;&gt;word&lt;/span&gt; nmi
  &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kw6&quot;&gt;word&lt;/span&gt; reset
  &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kw6&quot;&gt;word&lt;/span&gt; irq&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_965e507a710981562292fc5a230a5c5c_37&quot;&gt;ioports.inc &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_965e507a710981562292fc5a230a5c5c_37&quot;&gt;&lt;pre class=&quot;code asm&quot;&gt;  &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;code&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;; VIA_1 Port addresses&lt;/span&gt;
VIA_1     = &lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;6000&lt;/span&gt;
PORTB_1   = VIA_1
PORTA_1   = VIA_1 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
DDRB_1    = VIA_1 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
DDRA_1    = VIA_1 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;
T1CL_1    = VIA_1 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;
T1CH_1    = VIA_1 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;
T1LL_1    = VIA_1 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;
T1LH_1    = VIA_1 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;
T2CL_1    = VIA_1 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;
T2CH_1    = VIA_1 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;9&lt;/span&gt;
SR_1      = VIA_1 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
ACR_1     = VIA_1 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;11&lt;/span&gt;
PCR_1     = VIA_1 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;
IFR_1     = VIA_1 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;13&lt;/span&gt;
IER_1     = VIA_1 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;14&lt;/span&gt;
PORTA_NO_HS_1 = VIA_1 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;; VIA_2 Port addresses&lt;/span&gt;
VIA_2     = &lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5000&lt;/span&gt;
PORTB_2   = VIA_2
PORTA_2   = VIA_2 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
DDRB_2    = VIA_2 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
DDRA_2    = VIA_2 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;
T1CL_2    = VIA_2 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;
T1CH_2    = VIA_2 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;
T1LL_2    = VIA_2 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;
T1LH_2    = VIA_2 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;
T2CL_2    = VIA_2 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;
T2CH_2    = VIA_2 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;9&lt;/span&gt;
SR_2      = VIA_2 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
ACR_2     = VIA_2 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;11&lt;/span&gt;
PCR_2     = VIA_2 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;
IFR_2     = VIA_2 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;13&lt;/span&gt;
IER_2     = VIA_2 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;14&lt;/span&gt;
PORTA_NO_HS_2 = VIA_2 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;; VIA_3 Port addresses&lt;/span&gt;
VIA_3     = &lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4800&lt;/span&gt;
PORTB_3   = VIA_3
PORTA_3   = VIA_3 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
DDRB_3    = VIA_3 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
DDRA_3    = VIA_3 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;
T1CL_3    = VIA_3 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;
T1CH_3    = VIA_3 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;
T1LL_3    = VIA_3 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;
T1LH_3    = VIA_3 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;
T2CL_3    = VIA_3 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;
T2CH_3    = VIA_3 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;9&lt;/span&gt;
SR_3      = VIA_3 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
ACR_3     = VIA_3 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;11&lt;/span&gt;
PCR_3     = VIA_3 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;
IFR_3     = VIA_3 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;13&lt;/span&gt;
IER_3     = VIA_3 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;14&lt;/span&gt;
PORTA_NO_HS_3 = VIA_3 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;; ACIA_1 Port Addresses&lt;/span&gt;
ACIA_1    = &lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4400&lt;/span&gt;
S_TXRX_1  = ACIA_1      &lt;span class=&quot;co1&quot;&gt;; TXD / RXD&lt;/span&gt;
S_STA_1   = ACIA_1 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;  &lt;span class=&quot;co1&quot;&gt;; Status&lt;/span&gt;
S_COM_1   = ACIA_1 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;  &lt;span class=&quot;co1&quot;&gt;; Command&lt;/span&gt;
S_CON_1   = ACIA_1 &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;  &lt;span class=&quot;co1&quot;&gt;; Control&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
via_1_init&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
&amp;nbsp;
  lda #&lt;span class=&quot;nu0&quot;&gt;%01000000&lt;/span&gt;
  sta ACR_1
  lda #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;0E
  sta T1CL_1
  lda #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;27&lt;/span&gt;
  sta T1CH_1
&amp;nbsp;
  lda #&lt;span class=&quot;nu0&quot;&gt;%11011010&lt;/span&gt;  &lt;span class=&quot;co1&quot;&gt;; T1, CA1 active&lt;/span&gt;
  sta IER_1
&amp;nbsp;
  lda #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;01&lt;/span&gt;  &lt;span class=&quot;co1&quot;&gt;;  CA1 active high-transition &lt;/span&gt;
  sta PCR_1
&amp;nbsp;
  lda #&lt;span class=&quot;nu0&quot;&gt;%01111111&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;; Set all pins on port B to output except BIT 7 which is used for &amp;quot;SHIFT/INSTRUCTION&amp;quot;  button&lt;/span&gt;
  sta DDRB_1
  lda #&lt;span class=&quot;nu0&quot;&gt;%11110000&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;; Set low-nibble pins on port A to input and high-nibble pins to output, for keypad&lt;/span&gt;
  sta DDRA_1
&amp;nbsp;
  rts&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_965e507a710981562292fc5a230a5c5c_38&quot;&gt;lcd.inc &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_965e507a710981562292fc5a230a5c5c_38&quot;&gt;&lt;pre class=&quot;code asm&quot;&gt;&amp;nbsp;
&amp;nbsp;
  &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;code&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;; LCD Command masks&lt;/span&gt;
E  = &lt;span class=&quot;nu0&quot;&gt;%01000000&lt;/span&gt;
RW = &lt;span class=&quot;nu0&quot;&gt;%00100000&lt;/span&gt;
RS = &lt;span class=&quot;nu0&quot;&gt;%00010000&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;                              LCD Functions &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&amp;nbsp;
lcd_start&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  lda #&lt;span class=&quot;nu0&quot;&gt;%00101000&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;; Set 4-bit mode; 2-line display; 5x8 font&lt;/span&gt;
  jsr lcd_instruction
  jsr lcd_entry_mode
  jsr lcd_cursor_off
  jsr lcd_clear
  rts
&amp;nbsp;
lcd_entry_mode&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  lda #&lt;span class=&quot;nu0&quot;&gt;%00000110&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;; Increment and shift cursor; don&#039;t shift display&lt;/span&gt;
  jsr lcd_instruction
  rts
&amp;nbsp;
lcd_home&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  lda #&lt;span class=&quot;nu0&quot;&gt;%00000010&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;; cursor HOME&lt;/span&gt;
  jsr lcd_instruction
  rts
&amp;nbsp;
lcd_clear&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  lda #&lt;span class=&quot;nu0&quot;&gt;%00000001&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;; Clear display&lt;/span&gt;
  jsr lcd_instruction
  rts
&amp;nbsp;
lcd_cursor_off&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  lda #&lt;span class=&quot;nu0&quot;&gt;%00001100&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;; Display on; cursor off; blink off&lt;/span&gt;
  jsr lcd_instruction
  rts
&amp;nbsp;
lcd_cursor_on&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  lda #&lt;span class=&quot;nu0&quot;&gt;%00001111&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;; Display on; cursor on; blink on&lt;/span&gt;
  jsr lcd_instruction
  rts
&amp;nbsp;
lcd_line_2&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  lda #&lt;span class=&quot;nu0&quot;&gt;%10101001&lt;/span&gt;
  jsr lcd_instruction
  rts
&amp;nbsp;
lcd_wait&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  pha
  lda #&lt;span class=&quot;nu0&quot;&gt;%01110000&lt;/span&gt;  &lt;span class=&quot;co1&quot;&gt;; LCD data is input (don&#039;t change MSB BIT7, it has to stay ZERO for SHIFT Button input)&lt;/span&gt;
  sta DDRB_1
lcdbusy&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  lda #RW
  sta PORTB_1
  lda #&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;RW | E&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
  sta PORTB_1
  lda PORTB_1     &lt;span class=&quot;co1&quot;&gt;; Read high nibble&lt;/span&gt;
  pha             &lt;span class=&quot;co1&quot;&gt;; and put on stack since it has the busy flag&lt;/span&gt;
  lda #RW
  sta PORTB_1
  lda #&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;RW | E&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
  sta PORTB_1
  lda PORTB_1       &lt;span class=&quot;co1&quot;&gt;; Read low nibble&lt;/span&gt;
  pla             &lt;span class=&quot;co1&quot;&gt;; Get high nibble off stack&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;and&lt;/span&gt; #&lt;span class=&quot;nu0&quot;&gt;%00001000&lt;/span&gt;
  bne lcdbusy
&amp;nbsp;
  lda #RW
  sta PORTB_1
  lda #&lt;span class=&quot;nu0&quot;&gt;%01111111&lt;/span&gt;  &lt;span class=&quot;co1&quot;&gt;; LCD data is output (don&#039;t change MSB BIT7, it has to stay ZERO for SHIFT Buttion input)&lt;/span&gt;
  sta DDRB_1
  pla
  rts
&amp;nbsp;
lcd_init&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  lda #&lt;span class=&quot;nu0&quot;&gt;%00000010&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;; Set 4-bit mode : DO ONCE AT POWER UP&lt;/span&gt;
  sta PORTB_1
  ora #E
  sta PORTB_1
  &lt;span class=&quot;kw1&quot;&gt;and&lt;/span&gt; #&lt;span class=&quot;nu0&quot;&gt;%00001111&lt;/span&gt;
  sta PORTB_1
  rts
&amp;nbsp;
lcd_instruction&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  jsr lcd_wait
  pha
  lsr
  lsr
  lsr
  lsr            &lt;span class=&quot;co1&quot;&gt;; Send high 4 bits&lt;/span&gt;
  sta PORTB_1
  ora #E         &lt;span class=&quot;co1&quot;&gt;; Set E bit to send instruction&lt;/span&gt;
  sta PORTB_1
  eor #E         &lt;span class=&quot;co1&quot;&gt;; Clear E bit&lt;/span&gt;
  sta PORTB_1
  pla
  &lt;span class=&quot;kw1&quot;&gt;and&lt;/span&gt; #&lt;span class=&quot;nu0&quot;&gt;%00001111&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;; Send low 4 bits&lt;/span&gt;
  sta PORTB_1
  ora #E         &lt;span class=&quot;co1&quot;&gt;; Set E bit to send instruction&lt;/span&gt;
  sta PORTB_1
  eor #E         &lt;span class=&quot;co1&quot;&gt;; Clear E bit&lt;/span&gt;
  sta PORTB_1
  rts
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;   &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;        PRINT Characters on LCD - an ASCII value in Accumulator &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;        is printed on the display&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&amp;nbsp;
print_char&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  jsr lcd_wait
  pha
  lsr
  lsr
  lsr
  lsr             &lt;span class=&quot;co1&quot;&gt;; Send high 4 bits&lt;/span&gt;
  ora #RS         &lt;span class=&quot;co1&quot;&gt;; Set RS&lt;/span&gt;
  sta PORTB_1
  ora #E          &lt;span class=&quot;co1&quot;&gt;; Set E bit to send instruction&lt;/span&gt;
  sta PORTB_1
  eor #E          &lt;span class=&quot;co1&quot;&gt;; Clear E bit&lt;/span&gt;
  sta PORTB_1
  pla
  &lt;span class=&quot;kw1&quot;&gt;and&lt;/span&gt; #&lt;span class=&quot;nu0&quot;&gt;%00001111&lt;/span&gt;  &lt;span class=&quot;co1&quot;&gt;; Send low 4 bits&lt;/span&gt;
  ora #RS         &lt;span class=&quot;co1&quot;&gt;; Set RS&lt;/span&gt;
  sta PORTB_1
  ora #E          &lt;span class=&quot;co1&quot;&gt;; Set E bit to send instruction&lt;/span&gt;
  sta PORTB_1
  eor #E          &lt;span class=&quot;co1&quot;&gt;; Clear E bit&lt;/span&gt;
  sta PORTB_1
  rts&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_965e507a710981562292fc5a230a5c5c_39&quot;&gt;getkey.inc &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_965e507a710981562292fc5a230a5c5c_39&quot;&gt;&lt;pre class=&quot;code asm&quot;&gt;&amp;nbsp;
  &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;code&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;      READ THE 4x4 keypad using  VIA_1 PORTA &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;      Accumulator holds the ASCII value of the pressed key when it returns&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&amp;nbsp;
get_key&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
readKeypad&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  ldx #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;04&lt;/span&gt;        &lt;span class=&quot;co1&quot;&gt;; Row 4 - counting down&lt;/span&gt;
  ldy #&lt;span class=&quot;nu0&quot;&gt;%10000000&lt;/span&gt;  &lt;span class=&quot;co1&quot;&gt;;&lt;/span&gt;
ScanRow&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  sty PORTA_1
  lda PORTA_1
  &lt;span class=&quot;kw1&quot;&gt;and&lt;/span&gt; #&lt;span class=&quot;nu0&quot;&gt;%00001111&lt;/span&gt;  &lt;span class=&quot;co1&quot;&gt;; mask off keypad input - only low 4 (keypad column) bits are read&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;cmp&lt;/span&gt; #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;00&lt;/span&gt;
  bne Row_Found   &lt;span class=&quot;co1&quot;&gt;; non-zero means a row output has been connected via a switch to a column input&lt;/span&gt;
  dex             &lt;span class=&quot;co1&quot;&gt;; zero means it hasn&#039;t been found, so check next row down&lt;/span&gt;
  tya
  lsr
  tay
  &lt;span class=&quot;kw1&quot;&gt;cmp&lt;/span&gt; #&lt;span class=&quot;nu0&quot;&gt;%00001000&lt;/span&gt;
  bne ScanRow
  lda #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;ff
  rts
Row_Found&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  stx TEMP &lt;span class=&quot;co1&quot;&gt;; store row&lt;/span&gt;
  ldy #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;ff
FindCol&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  iny
  lsr
  bcc FindCol
  tya
  asl
  asl  &lt;span class=&quot;co1&quot;&gt;; col * 4&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;clc&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;adc&lt;/span&gt; TEMP &lt;span class=&quot;co1&quot;&gt;; add row &lt;/span&gt;
  tax
  lda keypad_array&lt;span class=&quot;sy1&quot;&gt;,&lt;/span&gt;x
  rts
&amp;nbsp;
&amp;nbsp;
keypad_array&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kw6&quot;&gt;byte&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;?DCBAF9630852E741&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;  set ROW keypad outputs high as a source for triggering interrupt when a key is pressed&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
scan&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  ldy #&lt;span class=&quot;nu0&quot;&gt;%11110000&lt;/span&gt;
  sty PORTA_1
  rts&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_965e507a710981562292fc5a230a5c5c_40&quot;&gt;functions.inc &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_965e507a710981562292fc5a230a5c5c_40&quot;&gt;&lt;pre class=&quot;code asm&quot;&gt;&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;.zeropage&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;MESSAGE_POINTER = $20&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;  .org $8000&lt;/span&gt;
  &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;code&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;          convert a binary number from Accumulator, in range 00000000 -&amp;gt; 11111111 ($00 to $FF)&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;          to its HEX number encode as ASCII -  using a simple lookup table and print it on LCD&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
bintohex&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  pha
  lsr
  lsr
  lsr
  lsr
  tax
  lda hexascii&lt;span class=&quot;sy1&quot;&gt;,&lt;/span&gt;x
  jsr print_char
  pla
  &lt;span class=&quot;kw1&quot;&gt;and&lt;/span&gt; #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0f&lt;/span&gt;
  tax
  lda hexascii&lt;span class=&quot;sy1&quot;&gt;,&lt;/span&gt;x
  jsr print_char
  rts
&amp;nbsp;
hexascii&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kw6&quot;&gt;byte&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;0123456789ABCDEF&amp;quot;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;    convert a binary (hex) value in Accumulator into&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;    its ASCII equivalent character in decimal 0-99 and print it&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;    this converts hex/binary numbers from the RTC into human readable&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;    decimal for display on clock&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
bintoascii&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;kw1&quot;&gt;cmp&lt;/span&gt; #&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
  bmi single_figure
  asl
  tax
  lda binascii&lt;span class=&quot;sy1&quot;&gt;,&lt;/span&gt;x
  jsr print_char
&amp;nbsp;
  inx
&amp;nbsp;
  lda binascii&lt;span class=&quot;sy1&quot;&gt;,&lt;/span&gt;x
  jsr print_char
  rts
&amp;nbsp;
single_figure&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  asl
  tax
  inx
  lda binascii&lt;span class=&quot;sy1&quot;&gt;,&lt;/span&gt;x
  jsr print_char
  rts
&amp;nbsp;
&amp;nbsp;
binascii&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kw6&quot;&gt;byte&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;00010203040506070809&amp;quot;&lt;/span&gt;
          &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kw6&quot;&gt;byte&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;10111213141516171819&amp;quot;&lt;/span&gt;
          &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kw6&quot;&gt;byte&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;20212223242526272829&amp;quot;&lt;/span&gt;
          &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kw6&quot;&gt;byte&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;30313233343536373839&amp;quot;&lt;/span&gt;
          &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kw6&quot;&gt;byte&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;40414243444546474849&amp;quot;&lt;/span&gt;
          &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kw6&quot;&gt;byte&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;50515253545556575859&amp;quot;&lt;/span&gt;
          &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kw6&quot;&gt;byte&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;60616263646566676869&amp;quot;&lt;/span&gt;
          &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kw6&quot;&gt;byte&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;70717273747576777879&amp;quot;&lt;/span&gt;
          &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kw6&quot;&gt;byte&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;80818283848586878889&amp;quot;&lt;/span&gt;
          &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kw6&quot;&gt;byte&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;90919293949596979899&amp;quot;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;      Convert a decimal number entered at keypad into its&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;      HEX equivalent and display&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&amp;nbsp;
byte_to_hex&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
&amp;nbsp;
  jsr lcd_clear
  lda HEXB &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;and&lt;/span&gt; #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0f&lt;/span&gt;
  jsr bintohex
  lda HEXB
  jsr bintohex
  lda #&lt;span class=&quot;st0&quot;&gt;&#039;d&#039;&lt;/span&gt;
  jsr print_char
  lda #&lt;span class=&quot;st0&quot;&gt;&#039;=&#039;&lt;/span&gt;
  jsr print_char
  lda #&lt;span class=&quot;st0&quot;&gt;&#039;$&#039;&lt;/span&gt;
  jsr print_char
&amp;nbsp;
  lda HEXB &lt;span class=&quot;co1&quot;&gt;; lo byte&lt;/span&gt;
  pha
  lsr
  lsr
  lsr
  lsr
  &lt;span class=&quot;kw1&quot;&gt;cmp&lt;/span&gt; #&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
  &lt;span class=&quot;kw4&quot;&gt;bpl&lt;/span&gt; error
  jsr mult10
  sta TENS
  pla
  &lt;span class=&quot;kw1&quot;&gt;and&lt;/span&gt; #&lt;span class=&quot;nu0&quot;&gt;%00001111&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;; UNITS&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;cmp&lt;/span&gt; #&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
  &lt;span class=&quot;kw4&quot;&gt;bpl&lt;/span&gt; print_error
&lt;span class=&quot;co1&quot;&gt;;  jsr mult10&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;clc&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;adc&lt;/span&gt; TENS
  sta HEX
&amp;nbsp;
  lda HEXB &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;; hi byte&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;and&lt;/span&gt; #&lt;span class=&quot;nu0&quot;&gt;%00001111&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;cmp&lt;/span&gt; #&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
  &lt;span class=&quot;kw4&quot;&gt;bpl&lt;/span&gt; print_error
  jsr mult10
  jsr mult10 &lt;span class=&quot;co1&quot;&gt;; hundreds&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;adc&lt;/span&gt; HEX
&amp;nbsp;
  jsr bintohex
  &lt;span class=&quot;kw1&quot;&gt;jmp&lt;/span&gt; exit_byte_to_hex
&amp;nbsp;
error&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  pla
print_error&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  lda #&amp;lt;error_message
  sta MESSAGE_POINTER
  lda #&amp;gt;error_message
  sta MESSAGE_POINTER &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  jsr print
  &lt;span class=&quot;co1&quot;&gt;;jsr lcd_cursor_off&lt;/span&gt;
  rts
&amp;nbsp;
exit_byte_to_hex&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  jsr lcd_line_2
&amp;nbsp;
  rts
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;  (A * 8) + (A * 2) = A * 10 &lt;/span&gt;
&amp;nbsp;
mult10&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  pha
  asl
  asl
  asl
  sta TEMP2 &lt;span class=&quot;co1&quot;&gt;; A*8&lt;/span&gt;
  pla
  asl      &lt;span class=&quot;co1&quot;&gt;; A*2&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;adc&lt;/span&gt; TEMP2 &lt;span class=&quot;co1&quot;&gt;; A*10&lt;/span&gt;
  rts
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;; Convert the encoded ASCII character representing a hex digit to its actual binary value.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;; e.g. Letter &amp;quot;A&amp;quot; in ASCII is $41 (0100001) but its &amp;quot;numerical&amp;quot; value as a hex digit is &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;; 10 ($0A = 10d = %00001010). &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;; &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;; We convert &amp;quot;A&amp;quot; in ASCII ($41) to a byte of numerical value 10 by subtracting $37&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;; $41 - $37 = $0A (in decimal 65 - 55 = 10) and the result is a byte 00001010&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;; The same is done for all characters representing upper case letters.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;; Numbers are handled differently according to their place on the ASCII table.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;; The ASCII representation of &amp;quot;9&amp;quot; is $39 (00111001) and to get a byte with a value of 9 we can simply&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;; AND it with a mask of 00001111 to save only the lower 4 bits.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&amp;nbsp;
ascii_bin&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;clc&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;cmp&lt;/span&gt; #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;41&lt;/span&gt;
  bmi ascii_bin_num   &lt;span class=&quot;co1&quot;&gt;; a CMP with $41, from a number character ($30 - $39), will set the negative flag&lt;/span&gt;
                      &lt;span class=&quot;co1&quot;&gt;; and the conversion is done by ANDing with $0F&lt;/span&gt;
&amp;nbsp;
ascii_bin_letter&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;    &lt;span class=&quot;co1&quot;&gt;; otherwise treat as a letter (A -&amp;gt; F) and the conversion is done by&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;clc&lt;/span&gt;                &lt;span class=&quot;co1&quot;&gt;; subtracting $37&lt;/span&gt;
  sec
  sbc #&lt;span class=&quot;sy2&quot;&gt;$&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;37&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;jmp&lt;/span&gt; end_ascii_bin
&amp;nbsp;
ascii_bin_num&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;and&lt;/span&gt; #&lt;span class=&quot;nu0&quot;&gt;%00001111&lt;/span&gt;
&amp;nbsp;
end_ascii_bin&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;      &lt;span class=&quot;co1&quot;&gt;; Accumulator holds the numerical version of the ASCII character supplied&lt;/span&gt;
  rts&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_965e507a710981562292fc5a230a5c5c_41&quot;&gt;rtc.inc &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_965e507a710981562292fc5a230a5c5c_41&quot;&gt;&lt;pre class=&quot;code asm&quot;&gt;&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
  &lt;span class=&quot;sy1&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;kw5&quot;&gt;code&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;                          RTC / Jiffy Tick&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&amp;nbsp;
rtc&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;;  RTC stores ticks at 10ms intervals into a 4-byte (32 bit) value&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;  as each byte rolls over the next one is incremented&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;  on a tick that doesn&#039;t roll over the TIME OF DAY &lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;  is updated&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;kw1&quot;&gt;inc&lt;/span&gt; TICKS
  bne inc_MET
  &lt;span class=&quot;kw1&quot;&gt;inc&lt;/span&gt; TICKS &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  bne inc_MET
  &lt;span class=&quot;kw1&quot;&gt;inc&lt;/span&gt; TICKS &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;
  bne inc_MET
  &lt;span class=&quot;kw1&quot;&gt;inc&lt;/span&gt; TICKS &lt;span class=&quot;sy1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;  Every time it&#039;s called we increment the &amp;quot;hundredths of a second&amp;quot; byte&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;  When there&#039;s been 100 x 10ms (i.e. 1 second) we increment the seconds&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;  When SECONDS reaches 60 we increment MINUTES and reset SECONDS to zero...&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;  etc... for HOURS, DAYS etc.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;  days/months years are handled too - although probably moot&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;  this routine comes from http://wilsonminesco.com/6502interrupts/#2.1&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;;;&lt;/span&gt;
inc_MET&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;inc&lt;/span&gt; CENTISEC
  lda CENTISEC
  &lt;span class=&quot;kw1&quot;&gt;cmp&lt;/span&gt; #&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;
  bmi end_MET
  stz CENTISEC
&amp;nbsp;
  &lt;span class=&quot;kw1&quot;&gt;inc&lt;/span&gt; SECONDS
  lda SECONDS
  &lt;span class=&quot;kw1&quot;&gt;cmp&lt;/span&gt; #&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
  bmi end_MET
  stz SECONDS
  &lt;span class=&quot;kw1&quot;&gt;inc&lt;/span&gt; TEN_SECONDS
&amp;nbsp;
  lda TEN_SECONDS
  &lt;span class=&quot;kw1&quot;&gt;cmp&lt;/span&gt; #&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;
  bmi end_MET
  stz TEN_SECONDS
&amp;nbsp;
  &lt;span class=&quot;kw1&quot;&gt;inc&lt;/span&gt; MINUTES
  lda MINUTES
  &lt;span class=&quot;kw1&quot;&gt;cmp&lt;/span&gt; #&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
  bmi end_MET
  stz MINUTES
&amp;nbsp;
  &lt;span class=&quot;kw1&quot;&gt;inc&lt;/span&gt; TEN_MINUTES
  lda TEN_MINUTES
  &lt;span class=&quot;kw1&quot;&gt;cmp&lt;/span&gt; #&lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt;
  bmi end_MET
  stz TEN_MINUTES
&amp;nbsp;
  &lt;span class=&quot;kw1&quot;&gt;inc&lt;/span&gt; HRS
  lda HRS
  &lt;span class=&quot;kw1&quot;&gt;cmp&lt;/span&gt; #&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
  bmi end_MET
  stz HRS
&amp;nbsp;
  &lt;span class=&quot;kw1&quot;&gt;inc&lt;/span&gt; TEN_HRS
  lda TEN_HRS
  &lt;span class=&quot;kw1&quot;&gt;cmp&lt;/span&gt; #&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
  bmi end_MET
  stz TEN_HRS
&amp;nbsp;
  &lt;span class=&quot;kw1&quot;&gt;inc&lt;/span&gt; HUNDRED_HRS
&amp;nbsp;
end_MET&lt;span class=&quot;sy1&quot;&gt;:&lt;/span&gt;
  rts&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
— &lt;em&gt;John Pumford-Green 05/09/22 14:23&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;monitor_dev.s source code&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;monitor_devs_source_code&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:8,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;5091-28628&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:14,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;28629-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 30 Dec 2025 09:55:07 +0000</pubDate>
        </item>
        <item>
            <title>Diaries</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:stationery:diaries:start</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:stationery:diaries:start&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:stationery:diaries:start&quot; data-wiki-id=&quot;public:miscellany:stationery:diaries:start&quot;&gt;Diaries&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;diaries&quot;&gt;Diaries&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; blog posts on the subject of diaries&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:blog:diaries&quot; class=&quot;wikilink1&quot; title=&quot;public:blog:diaries&quot; data-wiki-id=&quot;public:blog:diaries&quot;&gt;Diaries&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:blog:finding_things_in_a_diary&quot; class=&quot;wikilink1&quot; title=&quot;public:blog:finding_things_in_a_diary&quot; data-wiki-id=&quot;public:blog:finding_things_in_a_diary&quot;&gt;Finding Things In A Diary&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Diaries&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;diaries&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-165&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;diary_related_pages&quot;&gt;Diary related pages&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;script type=&quot;text/javascript&quot;&gt; catlist_baseurl = &quot;https://www.g4slv.info/dokuwiki/&quot;; catlist_basescript = &quot;doku.php&quot;; catlist_useslash = 0; catlist_userewrite = 0; catlist_sepchar = &quot;_&quot;; catlist_deaccent = 1; catlist_pagename_sanitize = 1; &lt;/script&gt;&lt;ul class=&quot;catlist-nslist&quot; &gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:stationery:diaries:bloods&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:stationery:diaries:bloods&quot; data-wiki-id=&quot;public:miscellany:stationery:diaries:bloods&quot;&gt;Bloods&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Diary related pages&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;diary_related_pages&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;166-242&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Page created  : 20/04/26 10:08 BST
&lt;/p&gt;

&lt;p&gt;
Page updated : 20/04/26 10:12 BST
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:diary&amp;amp;do=showtag&amp;amp;tag=diary&quot; class=&quot;wikilink1&quot; title=&quot;tag:diary&quot; rel=&quot;tag&quot;&gt;diary&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;243-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 20 Apr 2026 09:12:50 +0000</pubDate>
        </item>
        <item>
            <title>Damasko DA36 Measurements (2019)</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:da36measurements</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:start&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:damasko:start&quot; data-wiki-id=&quot;public:miscellany:watches:damasko:start&quot;&gt;Damasko DA36&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;damasko_da36_measurements_2019&quot;&gt;Damasko DA36 Measurements (2019)&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Created Friday 08 November 2019
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Damasko DA36 Measurements (2019)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;damasko_da36_measurements_2019&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-97&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;november_2019&quot;&gt;8 November 2019&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;	08/11/19 : 06:15
	Dial up : 254° : -1
	Dial dn : 261° : +4
	6H	: 243° : -6
	3H	: 237° : -1
	9H	: 222° : -6
	12H	: 226° : 0
	D 	: -5
	Mean	: 241° : -1.6&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;	08/11/19 : 12:45
	Dial up : 284° : 0
	Dial dn : 281° : +1
	6H	: 266° : -3	
	3H	: 263° : 0
	9H	: 259° : -1
	12H	: 266° : +3
	D 	: -3
	Mean	: 270° : 0&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;	08/11/19 : 23:20
	Dial up : 280° : -2
	Dial dn : 277° : 0
	6H	: 260° : -3	
	3H	: 261° : 0
	9H	: 254° : -2
	12H	: 259° : +3
	D 	: -1
	Mean	: 265° : 0&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;8 November 2019&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;november_2019&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;98-632&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;th_november_2019&quot;&gt;9th November 2019&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;09/11/19 : 06:50
Dial up : 256° : +1
Dial dn : 254° : +3
6H	: 230° : -7	
3H	: 227° : -4
9H	: 234° : -2
12H	: 227° : +1
D 	: -8
Mean	: 238° : -1.3&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;09/11/19 : 13:10
Dial up : 281° : 0
Dial dn : 282° : 0
6H	: 264° : -4	
3H	: 263° : 0
9H	: 268° : 0
12H	: 260° : +3
D 	: -4
Mean	: 270° : -0.2&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;09/11/19 : 23:00
Dial up : 286° : -2
Dial dn : 280° : 0
6H	: 260° : -6	
3H	: 256° : -2
9H	: 272° : 0
12H	: 263° : +1
D 	: -4
Mean	: 270° : -1.5&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;9th November 2019&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;th_november_2019&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;633-1150&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;th_november_20191&quot;&gt;10th November 2019&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;10/11/19 : 07:05
Dial up : 251° : 0
Dial dn : 246° : +1
6H	: 232° : -8	
3H	: 220° : -8
9H	: 230° : -3
12H	: 230° : 0
D 	: -8
Mean	: 236° : -3&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;10/11/19 : 14:20	
Dial up : 256° : -4
Dial dn : 248° : -5
6H	: 233° : -13	
3H	: 228° : -6
9H	: 227° : -8
12H	: 226° : -5
D 	: -9
Mean	: 236° : -6.8&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;Wound manually 40 turns:

Dial up	: 238°	: -5
Dial dn	: 234°	: -6
6H	: 225° 	: -14&lt;/pre&gt;

&lt;p&gt;
Amplitude still low…..
&lt;/p&gt;

&lt;p&gt;
Wound manually &amp;gt; 100 turns:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;	
Dial up : 263° : -1
Dial dn : 264° : 0
6H	: 244° : -9	
3H	: 245° : -3
9H	: 256° : -2
12H	: 249° : 0
D 	: -8
Mean	: 253° : -5.0&lt;/pre&gt;

&lt;p&gt;
Rate improved but amplitude still low - can&amp;#039;t achieve “full wind power”?
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;10/11/19 : 16:30
Dial up : 274° : 0
Dial dn : 259° : 0
6H	: 238° : -9	
3H	: 250° : -2
9H	: 245° : -3
12H	: 242° : 0
D 	: -9
Mean	: 251° : -2.3&lt;/pre&gt;

&lt;p&gt;
Back to on-wrist for further observations @ 16:50
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;10th November 2019&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;th_november_20191&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1151-2085&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;amplitude_vs_position_vs_mean_rate_error&quot;&gt;Amplitude vs position vs mean rate error&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;	Date     	Time		Du	Dd	6h	3h	9h	12h	Av	M	
	============================================================================================
	08/11/19	06:15		254	261	243	237	222	226	241	-1.6
	08/11/19	12:45		284	281	266	263	259	266	270	+0.0
	08/11/19	23:20		280	277	260	261	254	259	265	+0.0	&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;	09/11/19	06:50		256	254	230	227	234	227	238	-1.3
	09/11/19	13:10		281	282	264	263	268	260	270	-0.2
	09/11/19	23:00		286	280	260	256	272	263	270	-1.5
	
	10/11/19	07:05		251	246	232	220	230	230	236	-3.0
	10/11/19	14:20		256	248	233	228	227	226	236	-6.8 !!!!!
	10/11/19	16:30		274	259	238	250	245	242	251	-2.3
	10/11/19	17:30		286	281	265	268	259	263	270	-1.
	10/11/19	19:10		259	269	248	249	260	253	256	-1.8
	10/11/19	21:00		293	284	264	260	266	267	272	-2.5
	10/11/19	23:00		270	277	266	250	261	252	262	-3.0&lt;/pre&gt;

&lt;p&gt;
Over to &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:da36tests2&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:damasko:da36tests2&quot; data-wiki-id=&quot;public:miscellany:watches:damasko:da36tests2&quot;&gt;Damasko DA36 Tests 2 (2019)&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Amplitude vs position vs mean rate error&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;amplitude_vs_position_vs_mean_rate_error&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;2086-2980&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;dial-up_amplitude_rate&quot;&gt;Dial-Up Amplitude &amp;amp; Rate&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;Date		Time	Amp.	Rate
=====================================
08/11/19	06:15	254	-1
08/11/19	12:45	284	0	
08/11/19	15:40	281	0
08/11/19	17:00	272	0
08/11/19	23:20	280	-2&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;09/11/19	06:50	256	+1
09/11/19	10:40	270	-1
09/11/19	13:10	281	0
09/11/19	20:30	288	-1
09/11/19	23:00	286	-2

10/11/19	07:05	251	0
10/11/19	10:10	267	-3
10/11/19	14:20	256	-4 !!! Low amplitude all positions after several hours on wrist.&lt;/pre&gt;

&lt;p&gt;
Goto &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:da36tests2&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:damasko:da36tests2&quot; data-wiki-id=&quot;public:miscellany:watches:damasko:da36tests2&quot;&gt;Damasko DA36 Tests 2 (2019)&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Dial-Up Amplitude &amp;amp; Rate&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dial-up_amplitude_rate&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;2981-3466&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;watchcheck_measurements&quot;&gt;Watchcheck measurements&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;Android Watchcheck (one per day to show overall rate):&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;Date		Time	Δ(s)	Error(s/d)	Ave(s/d)	Comment
=======================================================================================&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;08/11/19	06:24	-7.7	-1.6		-2.0		overnight dial down
09/11/19	07:04	-9.5	-1.7		-1.9		overnight dial down
10/11/19	07:02	-11.9	-2.4		-2.1		overnight dial down
11/11/19	06:25	-14.1	-2.3		-2.1		overnight dial up


Python Watchcheck (2 per day to show difference between on-wrist and resting position):

dd/mm/yyyy HH:MM:SS	Δ(s)        Error(s/d)       Ave(s/d)	Comment
===================================================================&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;08/11/2019 06:25:07     -7.8            +3.6            -1.3	Nighttime dial down = positive
08/11/2019 23:19:10     -10.3           -3.6            -2.0 	daytime on wrist = negative
09/11/2019 07:05:09     -9.5            +2.6            -1.4	Nighttime dial down = positive
09/11/2019 23:05:12     -12.6           -4.8            -2.1	Daytime on wrist = negative
10/11/2019 07:03:11     -11.6           +3.1            -1.6	Nighttime dial down = positive
10/11/2019 23:10:14     -14.2           -3.8            -2.0 	Daytime worn = negative
11/11/2019 06:23:14     -14.1           +0.1            -1.8 	Dial Up overnight. Zero&lt;/pre&gt;

&lt;p&gt;
@watches
&lt;/p&gt;

&lt;p&gt;
Page Updated: 30/12/25 09:55 GMT
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:damasko&amp;amp;do=showtag&amp;amp;tag=damasko&quot; class=&quot;wikilink1&quot; title=&quot;tag:damasko&quot; rel=&quot;tag&quot;&gt;damasko&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:watch&amp;amp;do=showtag&amp;amp;tag=watch&quot; class=&quot;wikilink1&quot; title=&quot;tag:watch&quot; rel=&quot;tag&quot;&gt;watch&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Watchcheck measurements&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;watchcheck_measurements&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;3467-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 30 Dec 2025 09:55:07 +0000</pubDate>
        </item>
        <item>
            <title>Damasko DA36 Tests 2 (2019)</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:da36tests2</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:start&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:damasko:start&quot; data-wiki-id=&quot;public:miscellany:watches:damasko:start&quot;&gt;Damasko DA36&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;damasko_da36_tests_2_2019&quot;&gt;Damasko DA36 Tests 2 (2019)&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Created Sunday 10 November 2019
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Damasko DA36 Tests 2 (2019)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;damasko_da36_tests_2_2019&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-92&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;day_1sunday_10_nov_2019&quot;&gt;Day 1 : Sunday 10 Nov 2019&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;em class=&quot;u&quot;&gt;Low amplitude and poor rate&lt;/em&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;	10/11/19 : 14:20	
	Dial up 	: 256° : -4
	Dial dn 	: 248° : -5
	6H		: 233° : -13	
	3H		: 228° : -6
	9H		: 227° : -8
	12H		: 226° : -5
	D 		: -9
	Mean		: 236° : -6.8&lt;/pre&gt;

&lt;p&gt;
&lt;em class=&quot;u&quot;&gt;Wound manually &amp;gt; 100 turns. No immediate improvement → &lt;/em&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;	Dial up 	: 263° : -1
	Dial dn 	: 264° : 0
	6H		: 244° : -9	
	3H		: 245° : -3
	9H		: 256° : -2
	12H		: 249° : 0
	D 		: -8
	Mean		: 253° : -5.0&lt;/pre&gt;

&lt;p&gt;
&lt;em class=&quot;u&quot;&gt;Left dial-up for ≥ 1 hour…. ↓ partial recovery?&lt;/em&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;	10/11/19 : 16:30
	Dial up 	: 274° : 0
	Dial dn 	: 259° : 0
	6H		: 238° : -9	
	3H		: 250° : -2
	9H		: 245° : -3
	12H		: 242° : 0
	D 		: -9
	Mean		: 251° : -2.3
	&lt;/pre&gt;

&lt;p&gt;
&lt;em class=&quot;u&quot;&gt;Back on wrist @ 17:00 → &lt;/em&gt;
&lt;em class=&quot;u&quot;&gt;Full recovery? Due to hand-winding feeding power through after an hour or so?  ↓ &lt;/em&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;	10/11/19 : 17:30
	Dial up 	: 286° : -2
	Dial dn 	: 281° : 0
	6H		: 265° : -4	
	3H		: 268° : 0
	9H		: 259° : -2
	12H		: 263° : 0
	D 		: -2
	Mean		: 270° : -1.0 		&lt;/pre&gt;

&lt;p&gt;
&lt;em class=&quot;u&quot;&gt;Amplitude down again!   ↓ &lt;/em&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;	10/11/19 : 19:10
	Dial up 	: 259° : -2 
	Dial dn 	: 269° : 0
	6H		: 248° : -7	
	3H		: 249° : -2
	9H		: 260° : 0
	12H		: 253° : 0
	D 		: -5
	Mean		: 256° : -1.8		&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;	10/11/19 : 21:00
	Dial up 	: 293° : -2 
	Dial dn 	: 284° : -1
	6H		: 264° : -8	
	3H		: 260° : -2
	9H		: 266° : -3
	12H		: 267° : +1
	D 		: -6
	Mean		: 272° : -2.5
	
	10/11/19 : 23:00
	Dial up 	: 270° : -3 
	Dial dn 	: 277° : 0
	6H		: 266° : -8	
	3H		: 250° : -2
	9H		: 261° : -5
	12H		: 252° : 0
	D 		: -5
	Mean		: 262° : -3
	&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Day 1 : Sunday 10 Nov 2019&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;day_1sunday_10_nov_2019&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;93-1685&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;day_2monday_11_nov_2019&quot;&gt;Day 2 : Monday 11 Nov. 2019&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;	11/11/19 : 06:15
	Dial up 	: 249° : 0 
	Dial dn 	: 256° : +3
	6H		: 234° : -7	
	3H		: 231° : -3
	9H		: 221° : -6
	12H		: 224° : -1
	D 		: -7
	Mean		: 236° : -2.3
	
	11/11/19 : 09:00
	Dial up 	: 286° : -1
	Dial dn 	: 296° : +2
	6H		: 271° : -5	
	3H		: 278° : +1
	9H		: 266° : -1
	12H		: 281° : +3
	D 		: -4
	Mean		: 280° : -0.2
	
	11/11/19 : 19:00
	Dial up 	: 271° : -2
	Dial dn 	: 282° : 0
	6H		: 262° : -5	
	3H		: 265° : -2
	9H		: 264° : -3
	12H		: 260° : +1
	D 		: -3
	Mean		: 267° : -1.8		
	
	11/11/19 : 22:35
	Dial up 	: 265° : -2
	Dial dn 	: 267° : -1
	6H		: 249° : -6	
	3H		: 257° : -2
	9H		: 259° : -3
	12H		: 251° : -1
	D 		: -4
	Mean		: 258° : -2.5
	
* overnight on winder 23:00 → 05:45&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Day 2 : Monday 11 Nov. 2019&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;day_2monday_11_nov_2019&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1686-2495&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;day_3tuesday_12_nov_2019&quot;&gt;Day 3 : Tuesday 12 Nov 2019&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
after overnight on &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:watchwinder_python_code&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:watchwinder_python_code&quot; data-wiki-id=&quot;public:miscellany:watches:watchwinder_python_code&quot;&gt;Watchwinder&lt;/a&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;	12/11/19 : 05:45
	Dial up 	: 280° : +4
	Dial dn 	: 288° : +4
	6H		: 264° : -3	
	3H		: 261° : +1
	9H		: 264° : +1
	12H		: 267° : +5
	D 		: -7
	Mean		: 271° : +2.0&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;	12/11/19 : 08:00		
	Dial up 	: 280° : -1
	Dial dn 	: 292° : +1
	6H		: 260° : -4	
	3H		: 263° : 0
	9H		: 273° : -2
	12H		: 263° : +1
	D 		: -3
	Mean		: 272° : -0.8
	
	12/11/19 : 18:15
	Dial up 	: 282° : -3
	Dial dn 	: 271° : -3
	6H		: 255° : -9	
	3H		: 261° : -2
	9H		: 250° : -6
	12H		: 265° : +1
	D 		: -6
	Mean		: 264° : -3.6
	
	12/11/19 : 22:50
	Dial up 	: 274° : -2
	Dial dn 	: 264° : -3
	6H		: 258° : -9	
	3H		: 260° : -3
	9H		: 263° : -4
	12H		: 262° : 0
	D 		: -6
	Mean		: 264° : -3.3&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Day 3 : Tuesday 12 Nov 2019&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;day_3tuesday_12_nov_2019&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;2496-3312&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;day_4wednesday_13_nov_2019&quot;&gt;Day 4 : Wednesday 13 Nov 2019&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;	13/11/19 : 05:45
	Dial up 	: 290° : +3
	Dial dn 	: 288° : +4
	6H		: 266° : -2	
	3H		: 273° : +2
	9H		: 269° : 0
	12H		: 282° : +4
	D 		: -5
	Mean		: 278° : +1.8
	
	13/11/19 : 10:45
	Dial up 	: 280° : 0
	Dial dn 	: 283° : +1
	6H		: 260° : -4	
	3H		: 272° : +2
	9H		: 275° : 0
	12H		: 258° : +5
	D 		: -4
	Mean		: 271° : +0.7
	
	13/11/19 : 23:35
	Dial up 	: 290° : -2
	Dial dn 	: 287° : 0
	6H		: 256° : -7	
	3H		: 271° : 0
	9H		: 267° : -2
	12H		: 265° : +1
	D 		: -5
	Mean		: 273° : -1.6&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Day 4 : Wednesday 13 Nov 2019&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;day_4wednesday_13_nov_2019&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;3313-3893&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;day_5thursday_14_nov_2019&quot;&gt;Day 5 : Thursday 14 Nov 2019&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;	14/11/19 : 06:20
	Dial up 	: 293° : +2
	Dial dn 	: 287° : +5
	6H		: 260° : -3	
	3H		: 269° : +2
	9H		: 271° : 0
	12H		: 269° : +5
	D 		: -5
	Mean		: 275° : +1.8&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;	14/11/19 : 09:55
	Dial up 	: 282° : -2
	Dial dn 	: 286° : 0
	6H		: 274° : -4	
	3H		: 276° : +1
	9H		: 269° : 0
	12H		: 271° : +1
	D 		: -2
	Mean		: 276° : -0.7
	
	__14/11/19 : 18:25__
	__Dial up 	: 238° : -7__
	__Dial dn 	: 258° : -4__
	__6H		: 227° : -17	__
	__3H		: 240° : -9__
	__9H		: 229° : -11__
	__12H		: 250° : 0__
	__D 		: -10__
	__Mean		: 240° : -8.0__
	
	**ON WINDER 20:00** : no pause cycle — 2 mins CW / 2 mins CCW @ ~11rpm
	
	14/11/19 : 20:20
	__Dial up		: 197	: -40__
	__Dial dn		: 205	: -30__
	__6H		: 192	: -45__&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;	14/11/19 : 20:30
	__Dial up		: 126	: -243__
	__Dial dn		: 190	: -58__
	__6H		: 164	: -95__
	
	14/11/19 : 21:00
	__Dial up		: 174	: -75__
	__Dial dn		: 166	: -89__
	__6H		: 164	: -87__
	
	__15/11/19 : 06:15__
	__Dial up 	: 198° : -32__
	__Dial dn 	: 236° : -7__
	__6H		: 218° : -23	__
	__3H		: 216° : -16__
	__9H		: 218° : -17__
	__12H		: 208° : -21__
	__D 		: +9__
	__Mean		: 216° : -19__&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Day 5 : Thursday 14 Nov 2019&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;day_5thursday_14_nov_2019&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;3894-5105&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;amplitude_vs_position_vs_mean_rate_error_m&quot;&gt;Amplitude vs position vs mean rate error (M)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;em class=&quot;u&quot;&gt;Average Amplitude &amp;lt; 270 = MARKED IN YELLOW&lt;/em&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Date     	Time		Du(°)	Dd(°)	6H(°)	3H(°)	9H(°)	12H(°)	Av(°)	M(s/d)	Comment
==================================================================================================
10/11/19	14:20		__256	248	233	228	227	226	236	-6.8__
10/11/19	16:30		__274	259	238	250	245	242	251	-2.3	Low in all posns.__
10/11/19	17:30		286	281	265	268	259	263	270	-1.0	Recovered?
10/11/19	19:10		__259	269	248	249	260	253	256	-1.8	Low again__
10/11/19	21:00		293	284	264	260	266	267	272	-2.5	Recovered?
10/11/19	23:00		__270	277	266	250	261	252	262	-3.0	Low again__

11/11/19	06:15		__249	256	234	231	221	224	236	-2.3	Morning.__
11/11/19	09:00		286	296	271	278	266	281	280	-0.2	Good
11/11/19	19:00		__271	282	262	265	264	260	267	-1.8	marginal__
11/11/19	22:35		__265	267	249	257	259	251	258	-2.5	low again__.

12/11/19	05:45		280	288	264	261	264	267	271	+2.0	good after night on winder
12/11/19	08:00		280	292	260	263	273	263	272	-0.8
12/11/19	18:15		__282	271	255	261	250	265	264	-3.6	marginal, rate low__
12/11/19	22:50		__274	264	258	260	263	262	264	-3.3__		
	
13/11/19	05:45		290	288	266	273	269	282	278	+1.8	good after night on winder
13/11/19	10:45		280	283	260	272	275	258	271	+0.7		
13/11/19	23:35		290	287	256	271	267	265	273	-1.6
			
14/11/19	06:20		293	287	260	269	271	269	275	+1.8
14/11/19	09:55		282	286	274	276	269	271	276	-0.7
		
14/11/19	18:25		__238	258	227	240	229	250	240	-8.0	Very poor! Then much worse....__
14/11/19	20:20		__197	205	192				198	-38__
14/11/19	20:30		__126	190	164				193	!!!__
14/11/19	21:00		__174	166	164				168	-84__
		
15/11/19	06:15		__198	236	218	216	218	208	216	-19	Still poor after night on winder.__&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Amplitude vs position vs mean rate error (M)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;amplitude_vs_position_vs_mean_rate_error_m&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;5106-6869&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;watchcheck_data&quot;&gt;Watchcheck Data&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;	
	**Python **Watchcheck = morning &amp;amp; evening to observe difference between worn &amp;amp; resting rates
	
	dd/mm/yyyy HH:MM:SS	Δntp(s)        Error(s/d)       Ave(s/d)	Comment
	================================================================================================		15/11/2019 00:08:34     -34.9           -8.0            -25.2
	10/11/2019 23:10:14     -14.2           -3.8            -2.0 	Worn, daytime. Negative
	
	11/11/2019 06:23:14     -14.1           +0.1            -1.8 	Overnight dial up. Zero
	11/11/2019 22:46:16     -16.8		-4.0            -2.1	low amplitude most of the day
	**11/11/19 : on **Winder ** 23:00 → 05:45**	
	
	12/11/2019 05:55:16     -16.5           +1.2            -1.9	overnight on winder.
	12/11/2019 22:46:19     -19.1           -3.7            -2.1	
	**12/11/19 : on Winder 23:00 → 05:45 **
	
	13/11/2019 05:53:18     -18.5           +2.0            -1.9 	overnight on winder.
	13/11/2019 23:34:21     -21.3           -3.8            -2.1
	**13/11/19 : on Winder 23:45 → 06:20 **	
					
	14/11/2019 06:28:21     -21.0           +0.8            -2.0	overnight on winder
	
	**14/11/19 : New period started. Time reset at 20:01 after amplitude went haywire and rate -200....-40.... etc...:**
	
	
	dd/mm/yyyy HH:MM:SS	Δntp(s)        Error(s/d)       Ave(s/d)	Comment
	================================================================================================
	14/11/2019 20:01:30	-30.6					New Period at 21:01:30.
	14/11/2019 21:04:32     -32.6           -44.9           -44.9 	on winder for previous hour. 2 seconds lost.
	14/11/2019 21:30:33     -33.8           -67.5           -51.5	dial up for 1/2 hour, 1.2 seconds lost.
	14/11/2019 22:01:34     -34.2           -17.4           -42.7	dial up for 1/2 hour
	14/11/2019 22:30:34     -34.4           -11.1           -36.6	recovering??
	15/11/2019 00:08:34     -34.9           -8.0            -25.2	still improving!?
	15/11/2019 06:28:36     -36.2           -4.6            -12.7 	better after night on winder!?
	15/11/2019 17:36:45     -45.2           -19.5           -16.2 	on TG since 06:30.... variable amp. &amp;amp; poor rate.
	
	
	
	**Android **[[DA36DailyRates|Watchcheck]] = morning to observe overall rate	
	
	Date		Time	Δntp(s)		Error(s/d)	Ave(s/d)	Comment
	=======================================================================================
	11/11/19	06:25	-14.1		-2.3		-2.1		Overnight dial up
	12/11/19	05:56	-16.2		-2.2		-2.1		low amplitude most of previous day, overnight on winder
	13/11/19	05:52	-18.6		-2.3		-2.2		overnight on winder. being consistent day → day @ -2.3!
	14/11/19	06:29	-21.0		-2.3		-2.2		overnight on winder.
	&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;	15/11/19	06:30	-36.3						NEW PERIOD after reset last evening.
	
		&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Watchcheck Data&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;watchcheck_data&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;6870-9653&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit9&quot; id=&quot;power_test_prior_to_returning_to_damasko_for_repair_service&quot;&gt;Power test prior to returning to Damasko for repair/service&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Power test prior to returning to Damasko for repair\/service&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;power_test_prior_to_returning_to_damasko_for_repair_service&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;9654-9726&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit10&quot; id=&quot;dial-up_on_timegrapher_0615&quot;&gt;Dial-Up on Timegrapher 06:15&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;	Date		Time	Amp	TGRate	Run-time	Comment
	
	== ========================================================================== ==
	
	15/11/19	06:15	198	-32	00:00		Off the winder and test begun	
	15/11/19	06:45	246	-9	00:30		Amp. improving when stationary Dial-Up on Timegrapher
	__16/11/19	07:27	STOPPED				25:12 run time. poor (c.f. spec 38 hours and previous test 33 hours)__
			__This confirms power/amplitude/rate problem. __
	__To be sent back to Damasko 18/11/19__&lt;/pre&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:da36repair&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:damasko:da36repair&quot; data-wiki-id=&quot;public:miscellany:watches:damasko:da36repair&quot;&gt;Damasko DA36 Repair (2019)&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Page Updated: 30/12/25 09:55 GMT
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:damasko&amp;amp;do=showtag&amp;amp;tag=damasko&quot; class=&quot;wikilink1&quot; title=&quot;tag:damasko&quot; rel=&quot;tag&quot;&gt;damasko&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:watch&amp;amp;do=showtag&amp;amp;tag=watch&quot; class=&quot;wikilink1&quot; title=&quot;tag:watch&quot; rel=&quot;tag&quot;&gt;watch&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Dial-Up on Timegrapher 06:15&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dial-up_on_timegrapher_0615&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;9727-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 30 Dec 2025 09:55:07 +0000</pubDate>
        </item>
        <item>
            <title>Measurements (2022)</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:measurements_2022</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:damasko:start&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:damasko:start&quot; data-wiki-id=&quot;public:miscellany:watches:damasko:start&quot;&gt;Damasko DA36&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;measurements_2022&quot;&gt;Measurements (2022)&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Measurements (2022)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;measurements_2022&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-51&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;timegrapher_measurements&quot;&gt;Timegrapher Measurements&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;october_2022&quot;&gt;25 October 2022&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;div class=&quot;table sectionedit3&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Pos&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Amp&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Rate&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Dial Up&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;311&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;0&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Dial Down&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;293&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;0&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;6H&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;270&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;-6&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;3H&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;277&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;-3&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;9H&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;270&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;-1&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;12H&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;264&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;-2&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Ave&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;(289)&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;-2&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;D&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;-6&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;113-234&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Timegrapher Measurements&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;timegrapher_measurements&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;52-237&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;power_reserve_test&quot;&gt;Power Reserve Test&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 2/11/22 06:30 - start test after &amp;gt;12 hours on &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:watchwinder_python_code&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:watchwinder_python_code&quot; data-wiki-id=&quot;public:miscellany:watches:watchwinder_python_code&quot;&gt;Watchwinder&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;table sectionedit5&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Time&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Elapsed Time&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Rate&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Amplitude&lt;/th&gt;&lt;th class=&quot;col4&quot;&gt;Beat&lt;/th&gt;&lt;th class=&quot;col5&quot;&gt;Comments&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;06:30 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 0:00 &lt;/td&gt;&lt;td class=&quot;col2 centeralign&quot;&gt;  +4   &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt; 294    &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt; 0.2    &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; Start test &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;12:30 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 6:00 &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; +1 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 281 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 0.2 &lt;/td&gt;&lt;td class=&quot;col5 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;06:30 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 24:00&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; -3 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 248 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 0.2 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; One full day &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;12:30 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 30:00&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; -8 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 218 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 0.2 &lt;/td&gt;&lt;td class=&quot;col5 leftalign&quot;&gt;   &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;15:30 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 33:00&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; -10&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 205 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 0.2 &lt;/td&gt;&lt;td class=&quot;col5 leftalign&quot;&gt;   &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;17:00 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 34:30&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; -15&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 183 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 0.2 &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; rate dropping sharply &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;18:00 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 35:30&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; -19&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 168 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 0.2 &lt;/td&gt;&lt;td class=&quot;col5 leftalign&quot;&gt;   &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;19:00 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 36:30&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; -27&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 151 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 0.3 &lt;/td&gt;&lt;td class=&quot;col5 leftalign&quot;&gt;   &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;19:30 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 37:00&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; -34&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; 145 &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; 0.2 &lt;/td&gt;&lt;td class=&quot;col5 leftalign&quot;&gt;   &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;22:10 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 39:40 &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;   &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;     &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;     &lt;/td&gt;&lt;td class=&quot;col5&quot;&gt; STOPPED &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;351-823&amp;quot;} --&gt;
&lt;p&gt;
Full run-down reserve time = 39:40. 
&lt;/p&gt;

&lt;p&gt;
Specification = 38 hours.  
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Power Reserve Test&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;power_reserve_test&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;238-891&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;watchcheck_app_data&quot;&gt;Watchcheck app data&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;table sectionedit7&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Start&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;End&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Days&lt;/th&gt;&lt;th class=&quot;col3&quot;&gt;Average rate s/d&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;01/01/22&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;31/01/22&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 30 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; +0.9&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;01/02/22&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;28/02/22&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 27 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; +1.2&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;01/03/22&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;27/03/22&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 26 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; +0.3&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;27/03/22&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;17/05/22&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 51 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; -1.0&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;17/05/22&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;31/05/22&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 14 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; -1.9&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;01/06/22&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;30/06/22&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 29 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; -2.7&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;01/07/22&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;31/07/22&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;30&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;-3.0&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;01/08/22&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;05/09/22&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;35&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;-2.3&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;05/09/22 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;01/10/22&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;26 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;-2.7&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;01/10/22 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;29/10/22&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 28 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;-3.0&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row11&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;04/11/22 &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;   &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;   &lt;/td&gt;&lt;td class=&quot;col3 leftalign&quot;&gt;   &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table2&amp;quot;,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;923-1283&amp;quot;} --&gt;
&lt;p&gt;
— &lt;em&gt;John Pumford-Green 31/05/22 13:02&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Page last updated: 30/12/25 09:55 GMT
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Watchcheck app data&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;watchcheck_app_data&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;892-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 30 Dec 2025 09:55:07 +0000</pubDate>
        </item>
        <item>
            <title>Casio F91W</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:inventory:casio_f91w</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:inventory:start&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:inventory:start&quot; data-wiki-id=&quot;public:miscellany:watches:inventory:start&quot;&gt;Watch Inventory&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;casio_f91w&quot;&gt;Casio F91W&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; Description &lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Casio F91W&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;casio_f91w&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-61&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;section_one&quot;&gt;Section One&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Section One&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;section_one&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;62-87&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;section_two&quot;&gt;Section Two&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 24/04/23 17:10&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Section Two&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;section_two&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;88-157&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;158-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 30 Dec 2025 09:55:07 +0000</pubDate>
        </item>
        <item>
            <title>Casio GA-B2100</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:inventory:casio_ga-b2100</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:inventory:start&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:inventory:start&quot; data-wiki-id=&quot;public:miscellany:watches:inventory:start&quot;&gt;Watch Inventory&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;casio_ga-b2100&quot;&gt;Casio GA-B2100&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; Bluetooth equipped Casioak &lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Casio GA-B2100&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;casio_ga-b2100&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-80&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;details&quot;&gt;Details&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Model  : GA-B2100&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Bought : 06/03/23&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; From   : Casio UK&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Price  : £129.00&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;functions&quot;&gt;Functions&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Bluetooth - Requires &lt;code&gt;Casio Watches&lt;/code&gt; app on phone&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Time Sync to phone&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Phone Finder&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Record location&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Reminders&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; World Time&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Stopwatch&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Countdown Timer&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 5 Daily Alarms&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Solar Power&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 200m Water Resistant&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 48.5 × 45.4 × 11.9 mm&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Mineral Glass&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Details&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;details&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;81-501&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;user_manual&quot;&gt;User Manual&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:watches:inventory:qw5689.pdf&quot; class=&quot;media mediafile mf_pdf&quot; title=&quot;public:watches:inventory:qw5689.pdf (1.2 MB)&quot;&gt;qw5689.pdf&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;User Manual&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;user_manual&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;502-574&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;details1&quot;&gt;Details&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Amiscellany%3Awatches%3Ainventory%3Acasio_ga-b2100&amp;amp;media=public:watches:inventory:2024-03-26_18.53.22.jpg&quot; class=&quot;media&quot; title=&quot;public:watches:inventory:2024-03-26_18.53.22.jpg&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=600&amp;amp;tok=d0cfd5&amp;amp;media=public:watches:inventory:2024-03-26_18.53.22.jpg&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 24/04/23 17:06&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Details&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;details1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;575-700&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;701-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 30 Dec 2025 09:55:07 +0000</pubDate>
        </item>
        <item>
            <title>Casio Marlin</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:inventory:casio_marlin</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:inventory:start&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:inventory:start&quot; data-wiki-id=&quot;public:miscellany:watches:inventory:start&quot;&gt;Watch Inventory&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;casio_marlin&quot;&gt;Casio Marlin&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; Description &lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Casio Marlin&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;casio_marlin&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-63&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;section_one&quot;&gt;Section One&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Section One&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;section_one&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;64-89&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;section_two&quot;&gt;Section Two&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 24/04/23 17:03&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Section Two&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;section_two&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;90-159&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;160-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 30 Dec 2025 09:55:07 +0000</pubDate>
        </item>
        <item>
            <title>CWC G10</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:inventory:cwc_g10</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:inventory:start&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:inventory:start&quot; data-wiki-id=&quot;public:miscellany:watches:inventory:start&quot;&gt;Watch Inventory&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;cwc_g10&quot;&gt;CWC G10&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; Description &lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/images/smileys/fixme.svg&quot; class=&quot;icon smiley&quot; alt=&quot;FIXME&quot; /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;CWC G10&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;cwc_g10&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-64&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;section_one&quot;&gt;Section One&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Section One&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;section_one&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;65-90&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;section_two&quot;&gt;Section Two&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 24/04/23 17:02&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Section Two&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;section_two&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;91-160&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;161-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 30 Dec 2025 09:55:07 +0000</pubDate>
        </item>
        <item>
            <title>Seestern 300T</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:inventory:seestern_300t</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:inventory:start&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:inventory:start&quot; data-wiki-id=&quot;public:miscellany:watches:inventory:start&quot;&gt;Watch Inventory&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;seestern_300t&quot;&gt;Seestern 300T&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; Description &lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Seestern 300T&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;seestern_300t&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-64&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;section_one&quot;&gt;Section One&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Section One&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;section_one&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;65-90&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;section_two&quot;&gt;Section Two&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 24/04/23 17:06&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Section Two&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;section_two&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;91-160&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;161-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 30 Dec 2025 09:55:07 +0000</pubDate>
        </item>
        <item>
            <title>Seiko SKX007</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:inventory:seiko_skx007</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:inventory:start&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:inventory:start&quot; data-wiki-id=&quot;public:miscellany:watches:inventory:start&quot;&gt;Watch Inventory&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;seiko_skx007&quot;&gt;Seiko SKX007&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; Description &lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Seiko SKX007&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;seiko_skx007&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-63&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;section_one&quot;&gt;Section One&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Section One&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;section_one&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;64-89&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;section_two&quot;&gt;Section Two&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 24/04/23 17:03&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Section Two&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;section_two&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;90-159&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;160-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 30 Dec 2025 09:55:07 +0000</pubDate>
        </item>
        <item>
            <title>Watch Inventory</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:inventory:start</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:start&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:start&quot; data-wiki-id=&quot;public:miscellany:watches:start&quot;&gt;Watches&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;watch_inventory&quot;&gt;Watch Inventory&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;script type=&quot;text/javascript&quot;&gt; catlist_baseurl = &quot;https://www.g4slv.info/dokuwiki/&quot;; catlist_basescript = &quot;doku.php&quot;; catlist_useslash = 0; catlist_userewrite = 0; catlist_sepchar = &quot;_&quot;; catlist_deaccent = 1; catlist_pagename_sanitize = 1; &lt;/script&gt;&lt;ul class=&quot;catlist-nslist&quot; &gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:inventory:casio_f91w&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:inventory:casio_f91w&quot; data-wiki-id=&quot;public:miscellany:watches:inventory:casio_f91w&quot;&gt;Casio F91W&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:inventory:casio_ga-b2100&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:inventory:casio_ga-b2100&quot; data-wiki-id=&quot;public:miscellany:watches:inventory:casio_ga-b2100&quot;&gt;Casio GA-B2100&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:inventory:casio_gm-w5610&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:inventory:casio_gm-w5610&quot; data-wiki-id=&quot;public:miscellany:watches:inventory:casio_gm-w5610&quot;&gt;Casio GW-M5610&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:inventory:casio_marlin&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:inventory:casio_marlin&quot; data-wiki-id=&quot;public:miscellany:watches:inventory:casio_marlin&quot;&gt;Casio Marlin&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:inventory:cwc_g10&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:inventory:cwc_g10&quot; data-wiki-id=&quot;public:miscellany:watches:inventory:cwc_g10&quot;&gt;CWC G10&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:inventory:damasko_da36&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:inventory:damasko_da36&quot; data-wiki-id=&quot;public:miscellany:watches:inventory:damasko_da36&quot;&gt;Damasko DA36&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:inventory:garmin_instinct2&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:inventory:garmin_instinct2&quot; data-wiki-id=&quot;public:miscellany:watches:inventory:garmin_instinct2&quot;&gt;Garmin Instinct 2 Solar&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:inventory:seestern_300t&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:inventory:seestern_300t&quot; data-wiki-id=&quot;public:miscellany:watches:inventory:seestern_300t&quot;&gt;Seestern 300T&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:inventory:seiko_skx007&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:inventory:seiko_skx007&quot; data-wiki-id=&quot;public:miscellany:watches:inventory:seiko_skx007&quot;&gt;Seiko SKX007&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:inventory:seiko_turtle&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:inventory:seiko_turtle&quot; data-wiki-id=&quot;public:miscellany:watches:inventory:seiko_turtle&quot;&gt;Seiko Turtle&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:inventory:suunto_vector&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:inventory:suunto_vector&quot; data-wiki-id=&quot;public:miscellany:watches:inventory:suunto_vector&quot;&gt;Suunto Vector&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/p&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 24/04/23 16:58&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Watch Inventory&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;watch_inventory&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;13-122&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;123-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 30 Dec 2025 09:55:07 +0000</pubDate>
        </item>
        <item>
            <title>Suunto Vector</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:inventory:suunto_vector</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:miscellany:watches:inventory:start&quot; class=&quot;wikilink1&quot; title=&quot;public:miscellany:watches:inventory:start&quot; data-wiki-id=&quot;public:miscellany:watches:inventory:start&quot;&gt;Watch Inventory&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;suunto_vector&quot;&gt;Suunto Vector&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; Description &lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Suunto Vector&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;suunto_vector&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-64&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;section_one&quot;&gt;Section One&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Section One&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;section_one&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;65-90&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;section_two&quot;&gt;Section Two&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 24/04/23 17:10&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Section Two&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;section_two&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;91-160&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;161-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 30 Dec 2025 09:55:07 +0000</pubDate>
        </item>
        <item>
            <title>Allstar &amp; Echolink</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:allstar:allstar_echolink</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:allstar:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:allstar:start&quot; data-wiki-id=&quot;public:radio:topics:allstar:start&quot;&gt;AllStar Linking&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;allstar_echolink&quot;&gt;Allstar &amp;amp; Echolink&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; Revisiting Allstar with Node 48148 for 2024 &lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Allstar &amp;amp; Echolink&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;allstar_echolink&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-101&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;node_48148&quot;&gt;Node 48148&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
I&amp;#039;ve set up an Allstar node/gateway - in place of the Svxlink node I did yesterday &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:svxlink&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:svxlink&quot; data-wiki-id=&quot;public:radio:topics:svxlink:svxlink&quot;&gt;SVXLink : Install from source&lt;/a&gt;
&lt;/p&gt;
&lt;div class=&quot;table sectionedit3&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Platform&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Rapsberry Pi&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Interface&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;CM108 Soundcard&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Radio&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;FT-8900&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Frequency&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;144.9125 MHz&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Monitor&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;http://gm4slv.plus.com:42111/supermon/link.php?nodes=48148&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;http://gm4slv.plus.com:42111/supermon/link.php?nodes=48148&quot; rel=&quot;ugc nofollow noopener&quot;&gt;Supermon&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;AllStar &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; &lt;a href=&quot;http://stats.allstarlink.org/stats/48148&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;http://stats.allstarlink.org/stats/48148&quot; rel=&quot;ugc nofollow noopener&quot;&gt;http://stats.allstarlink.org/stats/48148&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;252-483&amp;quot;} --&gt;
&lt;p&gt;
It turned out to be not too difficult, as I already had all the correct working configs from &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:allstar:gm4slv_allstar&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:allstar:gm4slv_allstar&quot; data-wiki-id=&quot;public:radio:topics:allstar:gm4slv_allstar&quot;&gt; the last time&lt;/a&gt; I used Allstar, so I was able to copy them onto the new SD card image and have a working node straight from boot up!
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Node 48148&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;node_48148&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;102-758&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;editing_the_image&quot;&gt;Editing the image&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
I downloaded the most recent V2.0 beta image for Raspberry Pi here : &lt;a href=&quot;http://downloads.allstarlink.org/ASL_Images_Beta/Raspberry_Pi2_3_4/asl-2.0.0-beta.6-kc1kcc-20210324-rpi-armhf.img.zip&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;http://downloads.allstarlink.org/ASL_Images_Beta/Raspberry_Pi2_3_4/asl-2.0.0-beta.6-kc1kcc-20210324-rpi-armhf.img.zip&quot; rel=&quot;ugc nofollow noopener&quot;&gt; 2.0.0-beta.6&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Once I had the &lt;code&gt;img&lt;/code&gt; file unzipped I thought it would be fun to try and add my config to the image &lt;em&gt;before&lt;/em&gt; writing it to the SD Card. I had enough information &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:rpi_image&quot; class=&quot;wikilink1&quot; title=&quot;public:computers:archive:rpi_image&quot; data-wiki-id=&quot;public:computers:archive:rpi_image&quot;&gt; here&lt;/a&gt; to show me how to mount an image as a block device (ie disk). Once that was done I could simply copy any files onto the mounted image and then unmount it. The image could then be &lt;code&gt;dd&lt;/code&gt; to the SD card in the usual way.
&lt;/p&gt;

&lt;p&gt;
So I retrieved the last set of config file backups and copied all the &lt;code&gt;*.conf&lt;/code&gt; files that go in &lt;code&gt;/etc/asterisk&lt;/code&gt; into the mounted image device i.e. to &lt;code&gt;/mnt/etc/asterisk/&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Unmount the image from the filesystem &lt;code&gt;sudo umount /mnt&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Then
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;sudo dd if=my_new_image.img of=/dev/mmblblahblah bs=4M&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
and wait.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Editing the image&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;editing_the_image&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;759-1741&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;it_s_alive&quot;&gt;It&amp;#039;s alive&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Once written I put the CD card into the Pi. Booted up, and heard my callsign ID on the radio - it worked, without having to go through the rigmarole of a new install configuration.
&lt;/p&gt;

&lt;p&gt;
I SSH&amp;#039;d in via the DHCP address it had been given, and to change the IP to a static one I checked the peculiar name of the Ethernet interface: &lt;code&gt;enxb827eb6f9954&lt;/code&gt; and edited &lt;code&gt;/etc/dhcpcd.conf&lt;/code&gt; to use a static IP address on this device. Using &lt;code&gt;eth0&lt;/code&gt; didn&amp;#039;t work, as the interface wasn&amp;#039;t called &lt;code&gt;eth0&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# Example static IP configuration:&lt;/span&gt;
interface enxb827eb6f9954
static &lt;span class=&quot;re2&quot;&gt;ip_address&lt;/span&gt;=192.168.21.109&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;
static &lt;span class=&quot;re2&quot;&gt;routers&lt;/span&gt;=192.168.21.1
static &lt;span class=&quot;re2&quot;&gt;domain_name_servers&lt;/span&gt;=192.168.21.1 8.8.8.8&lt;/pre&gt;

&lt;p&gt;
Reboot again, and now I can SSH via the correct static IP address
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;It&amp;#039;s alive&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;it_s_alive&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1742-2513&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;next_steps&quot;&gt;Next Steps&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Add my own user (don&amp;#039;t want to use the built in &lt;code&gt;repeater&lt;/code&gt; user)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Add myself to the necessary groups (sudo etc.)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; change the hostname from &lt;code&gt;repeater&lt;/code&gt; → &lt;code&gt;asterisk&lt;/code&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; remember to edit &lt;code&gt;/etc/hosts&lt;/code&gt; as well as &lt;code&gt;/etc/hostname&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; set timezone to &lt;code&gt;Europe/London&lt;/code&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Check the RX/TX levels/deviation with &lt;code&gt;/usr/sbin/simpleusb-tune-menu &lt;/code&gt; - the levels were spot on due to using the same setup, and the same config. files as the previous incarnation.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Enable Echolink by editing &lt;code&gt;/etc/asterisk/modules.conf&lt;/code&gt; to load the Echolink Module (last time I&amp;#039;d disabled it)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Copy any necessary &lt;code&gt;allmon2&lt;/code&gt; files to &lt;code&gt;/var/www/html/allmon2/&lt;/code&gt;  &amp;amp; set up &lt;code&gt;allmon2&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Port Forward on router:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;UDP/4569&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;UDP/5198&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;UDP/5199&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; All working…!&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Next Steps&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;next_steps&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;2514-3326&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;first_qso&quot;&gt;First QSO&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
 * I was called on Echolink by &lt;code&gt;G0RAS&lt;/code&gt; while I was out walking the dogs. We had a good chat, so that was a good test that it&amp;#039;s all working 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;First QSO&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;first_qso&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;3327-3489&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;section_two&quot;&gt;Section Two&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/images/smileys/fixme.svg&quot; class=&quot;icon smiley&quot; alt=&quot;FIXME&quot; /&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; some macros as configured in &lt;code&gt;/etc/asterisk/rpt.conf&lt;/code&gt; for quick connect/disconnect&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;kbd class=&quot;__keyboard&quot;&gt;*&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;5&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;3&lt;/kbd&gt;&lt;kbd class=&quot;__keyboard&quot;&gt;1&lt;/kbd&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;macro&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;nu0&quot;&gt;11&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;141223&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;# ; disc. hubnet&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;21&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;241223&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;# ; monitor hubnet&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;31&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;341223&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;# ; transceive hubnet&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;12197&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;# ; disc Freedom Net&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;22&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;22197&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;# ; monitor Freedom Net&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;32&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;32197&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;# ; transceive Freedom Net&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;nu0&quot;&gt;13&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;129332&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;# ; disc Alaska&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;23&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;229332&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;# ; monitor Alaska&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;33&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;329332&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;# ; transceive Alaska&lt;/span&gt;
&amp;nbsp;
;&lt;span class=&quot;nu0&quot;&gt;14&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;154383&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;# ; disc CQ North&lt;/span&gt;
;&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;254383&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;# ; monitor CQ North&lt;/span&gt;
;&lt;span class=&quot;nu0&quot;&gt;34&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;354383&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;# ; transceive CQ North&lt;/span&gt;
&amp;nbsp;
;&lt;span class=&quot;nu0&quot;&gt;191&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;140894&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;# ; disconnect hubnet Echo&lt;/span&gt;
;&lt;span class=&quot;nu0&quot;&gt;391&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;340894&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;# ; connect hubnet echo&lt;/span&gt;
&amp;nbsp;
;&lt;span class=&quot;nu0&quot;&gt;192&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;13009999&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;#       ; dis echolink echotest&lt;/span&gt;
;&lt;span class=&quot;nu0&quot;&gt;392&lt;/span&gt; = &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;33009999&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;#       ; con echolink echotest&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 07/04/24 10:03&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Section Two&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;section_two&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;3490-4318&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit9&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:allstar&amp;amp;do=showtag&amp;amp;tag=allstar&quot; class=&quot;wikilink1&quot; title=&quot;tag:allstar&quot; rel=&quot;tag&quot;&gt;allstar&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:echolink&amp;amp;do=showtag&amp;amp;tag=echolink&quot; class=&quot;wikilink1&quot; title=&quot;tag:echolink&quot; rel=&quot;tag&quot;&gt;echolink&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;4319-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 05 Jun 2026 07:46:15 +0000</pubDate>
        </item>
        <item>
            <title>Java JRE and Echolink Proxy</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:allstar:jre_echolink</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:allstar:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:allstar:start&quot; data-wiki-id=&quot;public:radio:topics:allstar:start&quot;&gt;AllStar Linking&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;java_jre_and_echolink_proxy&quot;&gt;Java JRE and Echolink Proxy&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Java JRE and Echolink Proxy&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;java_jre_and_echolink_proxy&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-59&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit2&quot; id=&quot;setting_up_echolink_proxy_on_vps&quot;&gt;Setting up Echolink Proxy on VPS&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;apt-get install&lt;/span&gt; default-jre-headless
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;wget&lt;/span&gt; http:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;echolink.org&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;downloads&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;EchoLinkProxy_1_2_3.zip
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;apt-get install&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;unzip&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;unzip&lt;/span&gt; EchoLinkProxy_1_2_3.zip
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;755&lt;/span&gt; EcholinkProxy.jar
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;vi&lt;/span&gt; ELProxy.conf&lt;/pre&gt;

&lt;p&gt;
and set new password
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;vps_firewall&quot;&gt;VPS Firewall&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
on fasthost control panel open 
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;TCP/8100&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;UDP/5198&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;UDP/5199&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:linux:fhfw.png&quot; class=&quot;media wikilink2&quot; title=&quot;public:linux:fhfw.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=600&amp;amp;tok=f440a8&amp;amp;media=public:linux:fhfw.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Setting up Echolink Proxy on VPS&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;setting_up_echolink_proxy_on_vps&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;60-494&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;start_proxy&quot;&gt;Start Proxy&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;code&gt;java -jar EcholinkProxy.jar&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;gm4slv@gm4slv:~$ java -jar EchoLinkProxy.jar
EchoLink Proxy version 1.2.3
Listening for connections on port 8100
Ready for new client connection.
Client connected: 80.229.223.86
Client authenticated (call=GM4SLV).
&lt;/pre&gt;

&lt;p&gt;
This runs and works okay.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Start Proxy&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;start_proxy&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;495-808&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;start_in_tmux&quot;&gt;Start in tmux&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;dl class=&quot;file&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?do=export_code&amp;amp;id=public:radio:topics:allstar:jre_echolink&amp;amp;codeblock=2&quot; title=&quot;Download Snippet&quot; class=&quot;mediafile mf_sh&quot;&gt;start_proxy.sh&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code file bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;session&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;proxy&amp;quot;&lt;/span&gt;
&amp;nbsp;
tmux start-server
&amp;nbsp;
tmux new-session &lt;span class=&quot;re5&quot;&gt;-d&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-s&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$session&lt;/span&gt;
&amp;nbsp;
tmux rename-window &lt;span class=&quot;st0&quot;&gt;&amp;quot;echolink&amp;quot;&lt;/span&gt;
&amp;nbsp;
tmux selectp &lt;span class=&quot;re5&quot;&gt;-t&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
tmux send-keys &lt;span class=&quot;st0&quot;&gt;&amp;quot;java -jar /home/gm4slv/EchoLinkProxy.jar&amp;quot;&lt;/span&gt; C-m&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
add &lt;code&gt;crontab&lt;/code&gt; to start &lt;code&gt;@reboot&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;@reboot sleep 30 &amp;amp;&amp;amp; sudo -u gm4slv /home/gm4slv/start_proxy.sh &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&lt;/code&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Start in tmux&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;start_in_tmux&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;809-1187&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;page_info&quot;&gt;Page Info&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 04/06/22 07:26&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Page last updated: 04/06/26 21:40 BST
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:svxlink&amp;amp;do=showtag&amp;amp;tag=svxlink&quot; class=&quot;wikilink1&quot; title=&quot;tag:svxlink&quot; rel=&quot;tag&quot;&gt;svxlink&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:echolink&amp;amp;do=showtag&amp;amp;tag=echolink&quot; class=&quot;wikilink1&quot; title=&quot;tag:echolink&quot; rel=&quot;tag&quot;&gt;echolink&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:linux&amp;amp;do=showtag&amp;amp;tag=linux&quot; class=&quot;wikilink1&quot; title=&quot;tag:linux&quot; rel=&quot;tag&quot;&gt;linux&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Page Info&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;page_info&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1188-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 20:40:19 +0000</pubDate>
        </item>
        <item>
            <title>MB7AZE AllStar Config</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:allstar:mb7azeconf</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:allstar:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:allstar:start&quot; data-wiki-id=&quot;public:radio:topics:allstar:start&quot;&gt;AllStar Linking&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;mb7aze_allstar_config&quot;&gt;MB7AZE AllStar Config&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;MB7AZE AllStar Config&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;mb7aze_allstar_config&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-55&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;main_config_files&quot;&gt;Main Config files&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Main Config files&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;main_config_files&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;56-86&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;echolinkconf&quot;&gt;echolink.conf&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_15d1cf04a4bd433b3e955d90ef9c862b_1&quot;&gt;/etc/asterisk/echolink.conf &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_15d1cf04a4bd433b3e955d90ef9c862b_1&quot;&gt;&lt;pre class=&quot;code&quot;&gt;[el0]
call = MB7AZE-L                          ; Change this!
pwd = xxxxxxxx                           ; Change this!
name = John                        ; Change this!
qth = allstar 481481                           ; Change this!
email = gm4slv@gm4slv.plus.com                         ; Change this!
node = 879598                           ; Change this!
; Data for EchoLink Status Page
lat = 60.2883                               ; Latitude in decimal degrees
lon = -001.42533                               ; Longitude in decimal degrees
freq = 430.050                              ; not mandatory Frequency in MHz
tone = 0.0                              ; not mandatory CTCSS Tone (0 for none)
power = 1                               ; 0=0W, 1=1W, 2=4W, 3=9W, 4=16W, 5=25W, 6=36W, 7=49W, 8=64W, 9=81W (Power in Watts)
height = 0                              ; 0=10 1=20 2=40 3=80 4=160 5=320 6=640 7=1280 8=2560 9=5120 (AMSL in Feet)
gain = 0                                ; Gain in db (0-9)
dir = 0                                 ; 0=omni 1=45deg 2=90deg 3=135deg 4=180deg 5=225deg 6=270deg 7=315deg 8=360deg (Direction)
maxstns = 5                            ; Max Stations

rtcptimeout = 10
recfile = /tmp/echolink_recorded.gsm    ;
astnode = 481481             ; Change this!
context = radio-secure                  ; Default in code is echolink-in

; Max 3 servers
server1 = nasouth.echolink.org
server2 = naeast.echolink.org
server3 = server3.echolink.org

; To deny w6xxx you would add the statement: deny = w6xxx
; To prohibit computer-based connections you would write: permit = *-*
; To allow access to only a select group of callsigns: permit = w6abc,w6def,...
; permit                                ; comma delimited list of callsign, type (-r)
; deny


; Remote text commands thru netcat:
; o.conip &amp;lt;IPaddress&amp;gt;    (request a connect)
; o.dconip &amp;lt;IPaddress&amp;gt;   (request a disconnect)
; o.rec                  (turn on/off recording)

; ipaddr
; port
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;echolink.conf&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;echolinkconf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;87-2134&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;managerconf&quot;&gt;manager.conf&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_15d1cf04a4bd433b3e955d90ef9c862b_2&quot;&gt;/etc/asterisk/manager.conf &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_15d1cf04a4bd433b3e955d90ef9c862b_2&quot;&gt;&lt;pre class=&quot;code&quot;&gt;;
; Asterisk Call Management support
;

; By default asterisk will listen on localhost only. 
[general]
enabled = yes
port = 5038
bindaddr = 127.0.0.1

[gm4slv]
secret = llcgi
read = all,system,call,log,verbose,command,agent,user,config
write = all,system,call,log,verbose,command,agent,user,config&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;manager.conf&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;managerconf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;2135-2513&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;rptconf&quot;&gt;rpt.conf&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_15d1cf04a4bd433b3e955d90ef9c862b_3&quot;&gt;/etc/asterisk/rpt.conf &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_15d1cf04a4bd433b3e955d90ef9c862b_3&quot;&gt;&lt;pre class=&quot;code&quot;&gt;; Radio Repeater configuration file (for use with app_rpt)
; Your Repeater
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
; This is where you define your nodes which can be connected to.
;

[nodes]
; Note, if you are using automatic update for allstar link nodes,
; no allstar link nodes should be defined here. Only place a definition
; for your local nodes, and private (off of allstar link) nodes here.

;481480 = radio@127.0.0.1:4569/481480,NONE	; This must be changed to your node number
481481 = radio@127.0.0.1:4569/481481,NONE	; This must be changed to your node number
                                        ; and iax port number if not the default

;[481480]					; Change this to your assigned node number
[481481]					; Change this to your assigned node number

                                        ; Must also be enabled in modules.conf
					; Rx audio/signalling channel. Choose ONLY 1 per node stanza

					; Enable the selected channel driver in modules.conf !!!
;rxchannel = dahdi/pseudo	        ; No radio (hub)
 rxchannel = SimpleUSB/usb_48148	; SimpleUSB
; rxchannel = Pi/1                      ; Raspberry Pi PiTA
; rxchannel = Radio/usb_48148		; USBRadio (DSP)
; rxchannel = Dahdi/1			; PCI Quad card
; rxchannel = Beagle/1			; BeagleBoard
; rxchannel = USRP/127.0.0.1:34001:32001; GNU Radio interface USRP
; rxchannel = Voter/48148                ; RTCM device


duplex = 1                              ; 0 = Half duplex with no telemetry tones or hang time.
                                        ;     Special Case: Full duplex if linktolink is set to yes.
                                        ;     This mode is preferred when interfacing with an external multiport repeater controller.
					;     Comment out idrecording and idtalkover to suppress IDs also
                                        ; 1 = Half duplex with telemetry tones and hang time. Does not repeat audio.
                                        ;     This mode is preferred when interfacing a simplex node.
                                        ; 2 = Full Duplex with telemetry tones and hang time.
                                        ;     This mode is preferred when interfacing a repeater.
                                        ; 3 = Full Duplex with telemetry tones and hang time, but no repeated audio.
                                        ; 4 = Full Duplex with telemetry tones and hang time. Repeated audio only when the autopatch is down.

linktolink = no				; disables forcing physical half-duplex operation of main repeater while
					; still keeping half-duplex semantics (optional)

linkmongain = 0				; Link Monitor Gain adjusts the audio level of monitored nodes when a signal from another node or the local receiver is received.
					; If linkmongain is set to a negative number the monitored audio will decrease by the set amount in db.
					; If linkmongain set to a positive number monitored audio will increase by the set amount in db.
					; The value of linkmongain is in db. The default value is 0 db.

erxgain = -3				; Echolink receive gain adjustment
					; Note: Gain is in db-volts (20logVI/VO)
etxgain = 3				; Echolink transmit gain adjustment
					; Note: Gain is in db-volts (20logVI/VO)
eannmode = 2                           ; 1 = Say only node number on echolink connects (default = 1)
                                        ; 2 = say phonetic call sign only on echolink connects
                                        ; 3 = say phonetic call sign and node number on echolink connects

;controlstates = controlstates		; system control state stanza

scheduler = schedule			; scheduler stanza
functions = functions			; Repeater Function stanza
phone_functions = functions		; Phone Function stanza
link_functions = functions		; Link Function stanza

telemetry = telemetry			; Telemetry stanza
morse = morse				; Morse stanza
wait_times = wait-times			; Wait times stanza

context = radio				; dialing context for phone
callerid = &amp;quot;Repeater&amp;quot; &amp;lt;0000000000&amp;gt;	; callerid for phone calls
accountcode = RADIO                     ; account code (optional)

hangtime = 200				; squelch tail hang time (in ms) (optional, default 5 seconds, 5000 ms)
althangtime = 300			; longer squelch tail
totime = 300000				; 5 mins (12/4/22) transmit time-out time (in ms) (optional, default 3 minutes 180000 ms)

telemnomdb = -3				;
telemduckdb = -10			;

;idrecording = /home/gm4slv/gm4slv_id
;idrecording = /home/gm4slv/mb7aze_id
idrecording = |iDE MB7AZE			; Main ID message

;idtalkover = |iMB7AZE			; Talkover ID message
idtalkover = |iMB7AZE			; Talkover ID message
					; See Telemetry section Example: idrecording = rpt/nodenames/48148
idtime = 900000				; 15 mins (12/4/22) id interval time (in ms) (optional) Default 5 minutes (300000 ms)
politeid = 30000			; time in milliseconds before ID timer expires to try and ID in the tail. (optional, default 30000)

unlinkedct = ct12			; Send a this courtesy tone when the user unkeys if the node is not connected to any other nodes. (optional, default is none)
remotect = ct3				; remote linked courtesy tone (indicates a remote is in the list of links)
linkunkeyct = ct4			; sent when a transmission received over the link unkeys
;nolocallinkct = 0			; Send unlinkedct instead if another local node is connected to this node (hosted on the same PC).

; Supermon smlogger
connpgm=/usr/local/sbin/supermon/smlogger 1
discpgm=/usr/local/sbin/supermon/smlogger 0

;connpgm = yourconnectprogram		; Disabled. Execute a program you specify on connect. (default)
					; passes 2 command line arguments to your program:
					; 1. node number in this stanza (us)
					; 2. node number being connected to us (them)
;discpgm = yourdisconnectprogram	; Disabled. Execute a program you specify on disconnect. (default)
					; passes 2 command line arguments to your program:
					; 1. node number in this stanza (us)
					; 2. node number being disconnected from us (them)

lnkactenable = 0			; Set to 1 to enable the link activity timer. Applicable to standard nodes only.

lnkacttime = 3600			; Link activity timer time in seconds.
lnkactmacro = *73			; Function to execute when link activity timer expires.
lnkacttimerwarn = custom/timeout		; Message to play when the link activity timer has 30 seconds left.

;remote_inact_timeout =	60		; Specifies the amount of time without keying from the link. Set to 0 to disable timeout. (15 * 60)
;remote_timeout =			; Session time out for remote base. Set to 0 to disable. (60 * 60)
;remote_timeout_warning_freq =		; 30
;remote_timeout_warning =		; (3 * 60)

;nounkeyct = 0				; Set to a 1 to eliminate courtesy tones and associated delays.

holdofftelem = 0			; Hold off all telemetry when signal is present on receiver or from connected nodes
					; except when an ID needs to be done and there is a signal coming from a connected node.

telemdefault = 1                        ; 0 = telemetry output off
                                        ; 1 = telemetry output on (default = 1)
                                        ; 2 = timed telemetry output on command execution and for a short time thereafter.

telemdynamic = 1                        ; 0 = disallow users to change the local telemetry setting with a COP command,
                                        ; 1 = Allow users to change the setting with a COP command. (default = 1)

beaconing = 1				; Send ID regardless of repeater activity (Required in the UK, but probably illegal in the US)

parrotmode = 1				; 0 = Parrot Off (default = 0)
					; 1 = Parrot On Command
					; 2 = Parrot Always
					; 3 = Parrot Once by Command

parrottime = 1000			; Set the amount of time in milliseconds
					; to wait before parroting what was received

;rxnotch=1065,40                        ; (Optional) Notch a particular frequency for a specified
                                        ; b/w. app_rpt must have been compiled with
                                        ; the notch option

startup_macro = *80*81*70

; nodenames = /var/lib/asterisk/sounds/rpt/nodenames.callsign	; Point to alternate nodename sound directory

; Stream your node audio to Broadcastify or similar. See https://wiki.allstarlink.org/wiki/Stream_Node_Audio_to_Broadcastify
; outstreamcmd = /bin/sh,-c,/usr/bin/lame --preset cbr 16 -r -m m -s 8 --bitwidth 16 - - | /usr/bin/ezstream -qvc /etc/ezstream.xml

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Need more information on these

;extnodes = extnodes-different	; section in extnodefile containing dynamic node information (optional)
;extnodefile = /home/gm4slv/rpt_extnodes	; Points to nodelist file containing dynamic node info default = /var/lib/asterisk/rpt_extnodes (optional)
;extnodefile2 =			; Is this a list of node files? Possible a list of private nodes or a list of static IPs for known nodes????
;nodenames = /foo/names         ; locaton of node sound files default = /var/lib/asterisk/sounds/rpt/nodenames
;archivedir = /tmp              ; defines and enables activity recording into specified directory (optional)
;monminblocks = 2048            ; Min 1K blocks to be left on partition (will not save monitor output if disk too full)

;                               ; The tailmessagetime,tailsquashedtime, and tailmessagelist need to be set
;                               ; to support tail messages. They can be omitted otherwise.
;tailmessagetime = 300000       ; Play a tail message every 5 mins
;tailsquashedtime = 30000       ; If squashed by another user,
;                               ; try again after 30 seconds
;tailmessagelist = msg1,msg2    ; list of messages to be played for tail message

; alt_functions
; ctgroup
; dphone_functions
; idtime
; iobase
; iospeed
; locallist
; mars		Remote Base
; memory
; nobusyout
; nodes
; nolocallinkct
; notelemtx
; outxlat
; parrot
; propagate_phonedtmf
; rptnode
; rptinactmacro  Macro to execute when inactivity timer expires
; rptinacttime   Inactivity timer time in seconds  (0 seconds disables feature)
; rxnotch	Optional Audio notch
; simplexphonedelay
; tonemacro
; tonezone
; txlimits


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


; *** Status Reporting ***

; Comment the following statpost line stop to reporting of the status of your node to stats.allstarlink.org
statpost_url = http://stats.allstarlink.org/uhandler ; Status updates

[functions]

; Prefix	Functions
; *1		Disconnect Link
; *2		Monitor Link
; *3		Connect Link
; *4		Command Mode
; *5		Macros
; *6		User Functions
; *7		Connection Status/Functions
; *8		User Functions
; *9		User Functions
; *0		User Functions

; *A		User Functions
; *B		User Functions
; *C		User Functions
; *D		User Functions


; Mandatory Command Codes
1 = ilink,1		; Disconnect specified link
2 = ilink,2		; Connect specified link -- monitor only
3 = ilink,3		; Connect specified link -- tranceive
4 = ilink,4		; Enter command mode on specified link

70 = ilink,5		; System status

;99 = cop,6              ; PTT (phone mode only)

; End Mandatory Command Codes

73 = ilink,6		; Disconnect All Links
74 = ilink,16		; Reconnect links disconnected with &amp;quot;disconnect all links&amp;quot;

80 = status,11         ; Force ID (local only)
81 = status,12         ; Give Time of Day (local only)

91 = cop,21		; Enable Parrot Mode
92 = cop,22		; Disable Parrot Mode
93 = cop,55		; Parrot Once if parrot mode is disabled

98 = cop,2		; System enable
99 = cop,3		; System disable

901 = cop,1				; System warm boot

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Macro Commands
5 = macro

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Autopatch Commands
; Note, This may be a good place for other 2 digit frequently used commands

;61 = autopatchup,noct = 1,farenddisconnect = 1,dialtime = 20000  ; Autopatch up
;62 = autopatchdn                                                 ; Autopatch down

; autopatchup can optionally take comma delimited setting=value pairs:

; context = string		; Override default context with &amp;quot;string&amp;quot;
; dialtime = ms			; Specify the max number of milliseconds between phone number digits (1000 milliseconds = 1 second)
; farenddisconnect = 1		; Automatically disconnect when called party hangs up
; noct = 1			; Don&amp;#039;t send repeater courtesy tone during autopatch calls
; quiet = 1			; Don&amp;#039;t send dial tone, or connect messages. Do not send patch down message when called party hangs up
				; Example: 123=autopatchup,dialtime=20000,noct=1,farenddisconnect=1

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Status Commands

; 1 - Force ID (global)
; 2 - Give Time of Day (global)
; 3 - Give software Version (global)
; 4 - Give GPS location info
; 5 - Last (dtmf) user
; 11 - Force ID (local only)
; 12 - Give Time of Day (local only)

;721 = status,1          ; Force ID (global)
;722 = status,2          ; Give Time of Day (global)
;723 = status,3          ; Give software Version (global)
;724 = status,4          ; Give GPS location info
;725 = status,5          ; Last (dtmf) user



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Link Commands

; 1 - Disconnect specified link
; 2 - Connect specified link -- monitor only
; 3 - Connect specified link -- tranceive
; 4 - Enter command mode on specified link
; 5 - System status
; 6 - Disconnect all links
; 7 - Last Node to Key Up
; 8 - Connect specified link -- local monitor only
; 9 - Send Text Message (9,&amp;lt;destnodeno or 0 (for all)&amp;gt;,Message Text, etc.
; 10 - Disconnect all RANGER links (except permalinks)
; 11 - Disconnect a previously permanently connected link
; 12 - Permanently connect specified link -- monitor only
; 13 - Permanently connect specified link -- tranceive
; 15 - Full system status (all nodes)
; 16 - Reconnect links disconnected with &amp;quot;disconnect all links&amp;quot;
; 17 - MDC test (for diag purposes)
; 18 - Permanently Connect specified link -- local monitor only

; ilink commands 1 through 5 are defined in the Mandatory Command section

;806 = ilink,6			; Disconnect all links
;827 = ilink,7			; Last Node to Key Up
;808 = ilink,8			; Connect specified link -- local monitor only
;809 = ilink,9,48148,&amp;quot;Testing&amp;quot;	; would send a text message to node 48148 replace 48148 with 0 for all connected nodes
;810 = ilink,10			; Disconnect all RANGER links (except permalinks)
;811 = ilink,11			; Disconnect a previously permanently connected link
;812 = ilink,12			; Permanently connect specified link -- monitor only
;823 = ilink,13			; Permanently connect specified link -- tranceive
;815 = ilink,15			; Full system status (all nodes)
;817 = ilink,17			; MDC test (for diag purposes)
;818 = ilink,18			; Permanently Connect specified link -- local monitor only

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Control operator (cop) functions.
; Change these to something other than these codes listed below!
; Uncomment as needed.

;901 = cop,1				; System warm boot

; 904 = cop,4				; Test tone on/off (toggle)
; 905 = cop,5				; Dump system variables on console (debug use only)

; 907 = cop,7				; Time out timer enable
; 908 = cop,8				; Time out timer disable

; 909 = cop,9				; Autopatch enable
; 910 = cop,10				; Autopatch disable

; 911 = cop,11				; User linking functions enable
; 912 = cop,12				; User linking functions disable

; 913 = cop,13				; Query system control state
; 914 = cop,14				; Set system control state

; 915 = cop,15				; Scheduler enable
; 916 = cop,16				; Scheduler disable

; 917 = cop,17				; User functions enable (time, id, etc)
; 918 = cop,18				; User functions disable

; 919 = cop,19				; Select alternate hang time (althangtime)
; 920 = cop,20				; Select standard hangtime (hangtime)


; 924 = cop,24				; Flush all telemetry
; 925 = cop,25				; Query last node un-keyed
; 926 = cop,26				; Query all nodes keyed/unkeyed
; 927 = cop,27				; Reset DAQ minimum on a pin
; 928 = cop,28				; Reset DAQ maximum on a pin

; 930 = cop,30				; Recall Memory Setting in Attached Xcvr

; 931 = cop,31				; Channel Selector for Parallel Programmed Xcvr

; 932 = cop,32				; Touchtone pad test: command + Digit string + # to playback all digits pressed

; 933 = cop,33				; Local Telemetry Output Enable
; 934 = cop,34				; Local Telemetry Output Disable
; 935 = cop,35				; Local Telemetry Output on Demand

; 936 = cop,36				; Foreign Link Local Output Path Enable
; 937 = cop,37				; Foreign Link Local Output Path Disable
; 938 = cop,38				; Foreign Link Local Output Path Follows Local Telemetry
; 939 = cop,39				; Foreign Link Local Output Path on Demand

; 942 = cop,42				; Echolink announce node # only
; 943 = cop,43				; Echolink announce node Callsign only
; 944 = cop,44				; Echolink announce node # &amp;amp; Callsign

; 945 = cop,45				; Link Activity timer enable
; 945 = cop,46				; Link Activity timer disable
; 947 = cop,47				; Reset &amp;quot;Link Config Changed&amp;quot; Flag

; 948 = cop,48				; Send Page Tone (Tone specs separated by parenthesis)

; 949 = cop,49				; Disable incoming connections (control state noice)
; 950 = cop,50				; Enable incoming connections (control state noicd)

; 951 = cop,51				; Enable sleep mode
; 952 = cop,52				; Disable sleep mode
; 953 = cop,53				; Wake up from sleep
; 954 = cop,54				; Go to sleep

; 956 = cop,56                            ; Rx CTCSS Enable
; 957 = cop,57                            ; Rx CTCSS Disable

; 958 = cop.58                            ; Tx CTCSS On Input only Enable
; 959 = cop,59                            ; Tx CTCSS On Input only Disable

; 960 = cop,60                            ; Send MDC-1200 Burst (cop,60,type,UnitID[,DestID,SubCode])
;                                         ; Type is &amp;#039;I&amp;#039; for PttID, &amp;#039;E&amp;#039; for Emergency, and &amp;#039;C&amp;#039; for Call
;                                         ; (SelCall or Alert), or &amp;#039;SX&amp;#039; for STS (ststus), where X is 0-F.
;                                         ; DestID and subcode are only specified for  the &amp;#039;C&amp;#039; type message.
;                                         ; UnitID is the local systems UnitID. DestID is the MDC1200 ID of
;                                         ; the radio being called, and the subcodes are as follows:
;                                         ; Subcode &amp;#039;8205&amp;#039; is Voice Selective Call for Spectra (&amp;#039;Call&amp;#039;)
;                                         ; Subcode &amp;#039;8015&amp;#039; is Voice Selective Call for Maxtrac (&amp;#039;SC&amp;#039;) or
;                                         ; Astro-Saber(&amp;#039;Call&amp;#039;)
;                                         ; Subcode &amp;#039;810D&amp;#039; is Call Alert (like Maxtrac &amp;#039;CA&amp;#039;)

; 961 = cop,61                            ; Send Message to USB to control GPIO pins (cop,61,GPIO1=0[,GPIO4=1].....)
; 962 = cop,62                            ; Send Message to USB to control GPIO pins, quietly (cop,62,GPIO1=0[,GPIO4=1].....)

; 963 = cop,63                            ; Send pre-configred APRSTT notification (cop,63,CALL[,OVERLAYCHR])
; 964 = cop,64                            ; Send pre-configred APRSTT notification, quietly (cop,64,CALL[,OVERLAYCHR])
; 965 = cop,65                            ; Send POCSAG page (equipped channel types only)

[functions-remote]

0 = remote,1                            ; Retrieve Memory
1 = remote,2                            ; Set freq.
2 = remote,3                            ; Set tx PL tone
3 = remote,4                            ; Set rx PL tone
40 = remote,100                         ; Rx PL off
41 = remote,101                         ; Rx PL on
42 = remote,102                         ; Tx PL off
43 = remote,103                         ; Tx PL on
44 = remote,104                         ; Low Power
45 = remote,105                         ; Medium Power
46 = remote,106                         ; High Power
711 = remote,107                        ; Bump -20
714 = remote,108                        ; Bump -100
717 = remote,109                        ; Bump -500
713 = remote,110                        ; Bump +20
716 = remote,111                        ; Bump +100
719 = remote,112                        ; Bump +500
721 = remote,113                        ; Scan - slow
724 = remote,114                        ; Scan - quick
727 = remote,115                        ; Scan - fast
723 = remote,116                        ; Scan + slow
726 = remote,117                        ; Scan + quick
729 = remote,118                        ; Scan + fast
79 = remote,119                         ; Tune
51 = remote,5                           ; Long status query
52 = remote,140				; Short status query
67 = remote,210				; Send a *
69 = remote,211				; Send a #
;91 = remote,99,CALLSIGN,LICENSETAG     ; Remote base login.
                                        ; Define a different dtmf sequence for each user which is
                                        ; authorized to use the remote base to control access to it.
                                        ; For examble 9139583=remote,99,WB6NIL,G would grant access to
                                        ; the remote base and announce WB6NIL as being logged in.
                                        ; Another entry, 9148351=remote,99,WA6ZFT,E would grant access to
                                        ; the remote base and announce WA6ZFT as being logged in.
                                        ; When the remote base is disconnected from the originating node, the
                                        ; user will be logged out. The LICENSETAG argument is used to enforce
					; tx frequency limits. See [txlimits] below.
85 = cop,6                              ; Remote base telephone key


[telemetry]

; Telemetry entries can be shared across all repeaters, or defined for each repeater.
; Can be a tone sequence, morse string, or a file
;
; |t - Tone escape sequence
;
; Tone sequences consist of 1 or more 4-tuple entries (freq1, freq2, duration, amplitude)
; Single frequencies are created by setting freq1 or freq2 to zero.
;
; |m - Morse escape sequence
;
; Sends Morse code at the telemetry amplitude and telemetry frequency as defined in the
; [morse] section.
;
; Follow with an alphanumeric string
;
; |i - Morse ID escape sequence
;
; Sends Morse code at the ID amplitude and ID frequency as defined in the
; [morse] section.
;
; path/to/sound/file/without/extension
;
; Send the sound if in place of a constructed tone. Do not include the file extension
; Example: ct8 = rpt/bloop
; Example: idrecording = rpt/nodenames/48148

ct1 = |t(350,0,100,2048)(500,0,100,2048)(660,0,100,2048)
ct2 = |t(660,880,150,2048)
ct3 = |t(440,0,150,4096)
ct4 = |t(550,0,150,2048)
ct5 = |t(660,0,150,2048)
ct6 = |t(880,0,150,2048)
ct7 = |t(660,440,150,2048)
ct8 = |t(700,1100,150,2048)
ranger = |t(1800,0,60,3072)(0,0,50,0)(1800,0,60,3072)(0,0,50,0)(1800,0,60,3072)(0,0,50,0)(1800,0,60,3072)(0,0,50,0)(1800,0,60,3072)(0,0,50,0)(1800,0,60,3072)(0,0,150,0)
remotemon = |mR
;remotemon = |t(1209,0,50,2048)                                  ; local courtesy tone when receive only
remotetx = |mK
;remotetx = |t(1633,0,50,3000)(0,0,80,0)(1209,0,50,3000)		; local courtesy tone when linked Trancieve mode
cmdmode = |t(900,903,200,2048)
;functcomplete = |mW
functcomplete = |t(1000,0,100,2048)(0,0,100,0)(1000,0,100,2048)
remcomplete = |t(650,0,100,2048)(0,0,100,0)(650,0,100,2048)(0,0,100,0)(650,0,100,2048)
pfxtone = |t(350,440,30000,3072)
patchup = rpt/callproceeding
patchdown = rpt/callterminated

ct12 = |mI
ct13 = |mR

; As far as what the numbers mean,
; (000,000,010,000)
;   |   |   |   |-------amplitude
;   |   |   |-------------duration
;   |   |-------------------Tone 2
;   |-------------------------Tone 1

; So, with 0,0,10,0 That says No Tone1, No Tone2, 10ms duration, 0 Amplitude.
; Use it for a delay.  Fine tuning for how long before telemetry is sent, in conjunction with the telemdelay parameter)
; The numbers, like 350,440,10,2048 are 350Hz, 440Hz, 10ms delay, amplitude of 2048.

; Morse code parameters, these are common to all repeaters.

[morse]
speed = 18				; Approximate speed in WPM
frequency = 800				; Morse Telemetry Frequency
amplitude = 4096			; Morse Telemetry Amplitude
idfrequency = 1065			; Morse ID Frequency
idamplitude = 1024			; Morse ID Amplitude

;
; This section allows wait times for telemetry events to be adjusted
; A section for wait times can be defined for every repeater
;

[wait-times]
telemwait = 400                        ; Time to wait before sending most telemetry
idwait = 500                            ; Time to wait before starting ID
unkeywait = 200                        ; Time to wait after unkey before sending CT&amp;#039;s and link telemetry
calltermwait = 2000                     ; Time to wait before announcing &amp;quot;call terminated&amp;quot;

; Memories for remote bases

[memory]
;00 = 146.580,100.0,m
;01 = 147.030,103.5,m+t
;02 = 147.240,103.5,m+t
;03 = 147.765,79.7,m-t
;04 = 146.460,100.0,m
;05 = 146.550,100.0,m

; Place command macros here

[macro]
11 = *141223# ; disc. hubnet
21 = *241223# ; monitor hubnet
31 = *341223# ; transceive hubnet

12 = *12197# ; disc Freestar
22 = *22197# ; monitor Freestar
32 = *32197# ; transceive Freestar

13 = *129332# ; disc Alaska
23 = *229332# ; monitor Alaska
33 = *329332# ; transceive Alaska

14 = *154383# ; disc CQ North
24 = *254383# ; monitor CQ North
34 = *354383# ; transceive CQ North

191 = *140894# ; disconnect hubnet Echo
391 = *340894# ; connect hubnet echo

192 = *13009999#	; dis echolink echotest
392 = *33009999#	; con echolink echotest



; Data Acquisition configuration

;[daq-list]
;device = device_name1
;device = device_name2

;Where: device_name1 and device_name2 are stanzas you define in this file

;device = daq-cham-1

; Device name

;[daq-cham-1]				; Defined in [daq-list]
;hwtype = uchameleon			; DAQ hardware type
;devnode = /dev/ttyUSB0			; DAQ device node (if required)
;1 = inadc				; Pin definition for an ADC channel
;2 = inadc
;3 = inadc
;4 = inadc
;5 = inadc
;6 = inadc
;7 = inadc
;8 = inadc
;9 = inp				; Pin definition for an input with a weak pullup resistor
;10 = inp
;11 = inp
;12 = inp
;13 = in				; Pin definition for an input without a weak pullup resistor
;14 = out				; Pin definition for an output
;15 = out
;16 = out
;17 = out
;18 = out

;[meter-faces]

;face = scale(scalepre,scalediv,scalepost),word/?,...
;
; scalepre = offset to add before dividing with scalediv
; scalediv = full scale/number of whole units (e.g. 256/20 or 12.8 for 20 volts).
; scalepost = offset to add after dividing with scalediv
;
;face = range(X-Y:word,X2-Y2:word,...),word/?,...
;face = bit(low-word,high-word),word/?,...
;
; word/? is either a word in /var/lib/asterisk/sounds or one of its subdirectories,
; or a question mark which is  a placeholder for the measured value.
;
;
; Battery voltage 0-20 volts
;batvolts = scale(0,12.8,0),rpt/thevoltageis,?,ha/volts
; 4 quadrant wind direction
;winddir = range(0-33:north,34-96:west,97-160:south,161-224:east,225-255:north),rpt/thewindis,?
; LM34 temperature sensor with 130 deg. F full scale
;lm34f = scale(0,1.969,0),rpt/thetemperatureis,?,degrees,fahrenheit
; Status poll (non alarmed)
;light = bit(ha/off,ha/on),ha/light,?

;[alarms]
;
;tag = device,pin,node,ignorefirst,func-low,func-hi
;
;tag = a unique name for the alarm
;device = daq device to poll
;pin = the device pin to be monitored
;ignorefirstalarm = set to 1 to throwaway first alarm event, or 0 to report it
;node = the node number to execute the function on
;func-low = the DTMF function to execute on a high to low transition
;func-high = the DTMF function to execute on a low to high transition
;
; a  &amp;#039;-&amp;#039; as a function name is shorthand for no-operation
;
;door = daq-cham-1,9,1,2017,*7,-
;pwrfail = daq-cham-1,10,0,2017,*911111,-
;
; Control states
; Allow several control operator functions to be changed at once using one command (good for scheduling)
;
;[controlstates]
;statenum = copcmd,[copcmd]...
;0 = rptena,lnkena,apena,totena,ufena,noicd  ; Normal operation
;1 = rptena,lnkena,apdis,totdis,ufena,noice  ; Net and news operation
;2 = rptena,lnkdis,apdis,totena,ufdis,noice  ; Repeater only operation

; Scheduler - execute a macro at a given time

[schedule]
;dtmf_function =  m h dom mon dow  ; ala cron, star is implied
;8 = 55 12 * * *   ; at midnight, execute macro 2.

; See https://wiki.allstarlink.org/wiki/Event_Management
[events]

#includeifexists custom/rpt.conf

&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;rpt.conf&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;rptconf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;2514-30933&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;simpleusbconf&quot;&gt;simpleusb.conf&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_15d1cf04a4bd433b3e955d90ef9c862b_4&quot;&gt;/etc/asterisk/simpleusb.conf &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_15d1cf04a4bd433b3e955d90ef9c862b_4&quot;&gt;&lt;pre class=&quot;code&quot;&gt;; If you are going to use this channel driver, you MUST enable it in modules.conf
; change:
; noload =&amp;gt; chan_simpleusb.so ;                   CM1xx USB Cards with Radio Interface Channel Driver (No DSP)
; to:
; load =&amp;gt; chan_simpleusb.so ;                   CM1xx USB Cards with Radio Interface Channel Driver (No DSP)

; SimpleUSB configuration

[general]

[usb_48148]

eeprom = 0              ; EEPROM installed: 0,1
                        ; 0 = no (default)
                        ; 1 = yes

hdwtype = 0		; Leave this set to 0 for USB sound fobs modified using
			; the instructions from usbfob.pdf. Use a setting of 
			; 1 is for Dingotel/Sph interfaces.

; Receiver parameters

rxboost = 0             ; 0 = 20db attenuator inserted, 1= 20db attenuator removed
                        ; Set to 1 for additonal gain if using a low-level receiver output

carrierfrom = usb ; no,usb,usbinvert
                        ; no - no carrier detection at all
                        ; usb - from the COR line on the USB sound fob (Active high)
                        ; usbinvert - from the inverted COR line on the USB sound fob (Active low)

ctcssfrom = no		; no,usb,usbinvert
                        ; no - CTCSS decoding, system will be carrier squelch
                        ; usb - CTCSS decoding using input from USB sound fob (Active high)
                        ; usbinvert - from the inverted CTCSS line on the USB sound fob (Active low)

deemphasis = yes         ; enable de-emphasis (input from discriminator)

plfilter = no           ; enable PL filter

;rxondelay = 0		; number of 20ms intervals to hold off receiver turn-on indication


; Transmitter parameters

txmixa = voice          ; Left channel output (A): no,voice
                        ; no - Do not output anything
                        ; voice - output voice only

txmixb = no		; Right channel output (B): no,voice
                        ; no - Do not output anything
                        ; voice - output voice only

txboost = 0

invertptt = 0           ; Invert PTT: 0,1
                        ; 0 - ground to transmit
                        ; 1 - open to transmit

preemphasis = yes	; Perform standard 6db/octave pre-emphasis

; pager = no            ; no,a,b (e.g. pager = b means &amp;quot;put the normal repeat audio on channel A, and the pager audio on channel B&amp;quot;)

; duplex3 = 0           ; duplex 3 gain setting (0 to disable)

duplex = 0              ; Duplex 0,1
                        ; 0 - half duplex
                        ; 1 - full duplex

#includeifexists custom/simpleusb.conf
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;simpleusb.conf&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;simpleusbconf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;30934-33593&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;simpleusb_tune_usb_48148conf&quot;&gt;simpleusb_tune_usb_48148.conf&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_15d1cf04a4bd433b3e955d90ef9c862b_5&quot;&gt;/etc/asterisk/simpleusb_tune_usb_48148.conf &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_15d1cf04a4bd433b3e955d90ef9c862b_5&quot;&gt;&lt;pre class=&quot;code&quot;&gt;[usb_48148]
; name=usb_48148
; devicenum=1
devstr=1-1.2:1.0
rxmixerset=330
txmixaset=70
txmixbset=50
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;simpleusb_tune_usb_48148.conf&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;simpleusb_tune_usb_48148conf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;33594-33811&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;crontab&quot;&gt;crontab&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;code&gt;00 * * * * sudo /usr/sbin/asterisk -rx “rpt localplay 481481 /home/gm4slv/mb7aze_id ” &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;00 * * * * sleep 4 &amp;amp;&amp;amp; sudo /usr/sbin/asterisk -rx “rpt fun 481481 *81” &amp;gt;/dev/null 2&amp;gt;&amp;amp;1&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Page created Sun May 29 15:48:50 2022 by John Pumford-Green
&lt;/p&gt;

&lt;p&gt;
Page last updated: 04/06/26 21:19 BST
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:pi&amp;amp;do=showtag&amp;amp;tag=pi&quot; class=&quot;wikilink1&quot; title=&quot;tag:pi&quot; rel=&quot;tag&quot;&gt;pi&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:allstar&amp;amp;do=showtag&amp;amp;tag=allstar&quot; class=&quot;wikilink1&quot; title=&quot;tag:allstar&quot; rel=&quot;tag&quot;&gt;allstar&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:mb7aze&amp;amp;do=showtag&amp;amp;tag=mb7aze&quot; class=&quot;wikilink1&quot; title=&quot;tag:mb7aze&quot; rel=&quot;tag&quot;&gt;mb7aze&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;crontab&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;crontab&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;33812-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 20:19:57 +0000</pubDate>
        </item>
        <item>
            <title>MB7AZE AllStar</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:allstar:mb7aze_allstar</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:allstar:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:allstar:start&quot; data-wiki-id=&quot;public:radio:topics:allstar:start&quot;&gt;AllStar Linking&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 24/04/23 15:05&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;MB7AZE&lt;/strong&gt; is now QRT and the NoV has expired. 
&lt;/p&gt;

&lt;p&gt;
I may run AllStar at times from a personal node/gateway &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:allstar:gm4slv_allstar&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:allstar:gm4slv_allstar&quot; data-wiki-id=&quot;public:radio:topics:allstar:gm4slv_allstar&quot;&gt;GM4SLV Allstar&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
The following is for historical interest only….
&lt;/p&gt;
&lt;hr /&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;mb7aze_allstar&quot;&gt;MB7AZE AllStar&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;div class=&quot;table sectionedit2&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Platform&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Rapsberry Pi&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Interface&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;CM108 Soundcard&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Radio&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;FT-8900&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Frequency&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;430.050MHz&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Monitor&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;http://gm4slv.plus.com:42111/allmon2/link.php?nodes=481481&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;http://gm4slv.plus.com:42111/allmon2/link.php?nodes=481481&quot; rel=&quot;ugc nofollow noopener&quot;&gt;Allmon2&lt;/a&gt;&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;276-447&amp;quot;} --&gt;
&lt;p&gt;
&lt;a href=&quot;https://ukrepeater.net/my_repeater.php?id=4823&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://ukrepeater.net/my_repeater.php?id=4823&quot; rel=&quot;ugc nofollow noopener&quot;&gt;NoV issued April 2022&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;MB7AZE AllStar&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;mb7aze_allstar&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;245-523&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;commands&quot;&gt;Commands&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; DTMF Commands&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Please send * 7 3 to ensure all links are disconnected before making any new links&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;table sectionedit4&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0 leftalign&quot;&gt;Command	&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;DTMF Sequence&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Disconect from Node xxxx	&lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  * 1 xxxx  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Connect RX Only to xxxx	&lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  * 2 xxxx  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Connect Transceive to xxxx	&lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  * 3 xxxx  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Speak the Node Status	&lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  * 7 0  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Disconnect ALL nodes	&lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  * 7 3  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Reconnect ALL nodes	&lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  * 7 4  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Send Node ID	&lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  * 8 0  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Speak the Local Time	&lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  * 8 1  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Parrot ON	&lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  * 9 1  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Parrot OFF	&lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  * 9 2  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row11&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Parrot ONCE	&lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  * 9 3  &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;652-1034&amp;quot;} --&gt;&lt;div class=&quot;table sectionedit5&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0 centeralign&quot;&gt;  Number  &lt;/th&gt;&lt;th class=&quot;col1 centeralign&quot;&gt;  Name  &lt;/th&gt;&lt;th class=&quot;col2 leftalign&quot;&gt;* 5 Macro shortcut to…	&lt;/th&gt;&lt;th class=&quot;col3 centeralign&quot;&gt;  DTMF Sequence  &lt;/th&gt;&lt;th class=&quot;col4 centeralign&quot;&gt;  Node No.  &lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;  Fedihams &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; Connect RX Only to Fedihams &lt;/td&gt;&lt;td class=&quot;col3 centeralign&quot;&gt;  * 5 2 1  &lt;/td&gt;&lt;td class=&quot;col4 rightalign&quot;&gt;  57881 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;  Fedihams &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; Connect Transceive to Fedihams &lt;/td&gt;&lt;td class=&quot;col3 centeralign&quot;&gt;  * 5 3 1  &lt;/td&gt;&lt;td class=&quot;col4 rightalign&quot;&gt;  57881 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  1  &lt;/td&gt;&lt;td class=&quot;col1 rightalign&quot;&gt;  Fedihams &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; Disconnect from Fedihams &lt;/td&gt;&lt;td class=&quot;col3 centeralign&quot;&gt;  * 5 1 1  &lt;/td&gt;&lt;td class=&quot;col4 rightalign&quot;&gt;  57881 &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  2  &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  Hubnet  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;Connect RX Only to Hubnet	&lt;/td&gt;&lt;td class=&quot;col3 centeralign&quot;&gt;  * 5 2 2  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  41223  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  2  &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  Hubnet  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;Connect Transceive to Hubnet	&lt;/td&gt;&lt;td class=&quot;col3 centeralign&quot;&gt;  * 5 3 2  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  41223  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0 centeralign&quot;&gt;  2  &lt;/td&gt;&lt;td class=&quot;col1 centeralign&quot;&gt;  Hubnet  &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;Disconnect from Hubnet	&lt;/td&gt;&lt;td class=&quot;col3 centeralign&quot;&gt;  * 5 1 2  &lt;/td&gt;&lt;td class=&quot;col4 centeralign&quot;&gt;  41223  &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table2&amp;quot;,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1037-1532&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Commands&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;commands&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;524-1534&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;courtesy_tones&quot;&gt;Courtesy Tones&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Can give information about the node status.
&lt;/p&gt;

&lt;p&gt;
After a local Transmission on the “input” frequency the reponse will be one of:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Morse Letter &lt;strong&gt;I&lt;/strong&gt; (di-dit) = node is not connected to any other nodes&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Morse Letter &lt;strong&gt;R&lt;/strong&gt; (di-dah-dit) = node is connected in “Monitor/RX only” mode to one or more nodes&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Morse Letter &lt;strong&gt;K&lt;/strong&gt; (dah-di-dah) = node is connected in “Transceive” mode to one or more nodes&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
There are other tones, e.g. when a station on a linked node unkeys there&amp;#039;s a low-pitched “bloop”
&lt;/p&gt;

&lt;p&gt;
When a local RF station sends a command there&amp;#039;s a “bip bip” (not to be confused with the Morse letter I)
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Courtesy Tones&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;courtesy_tones&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;1535-2171&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;echolink&quot;&gt;Echolink&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
AllStar nodes can also connect to &lt;a href=&quot;https://www.echolink.org/logins.jsp&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://www.echolink.org/logins.jsp&quot; rel=&quot;ugc nofollow noopener&quot;&gt;Echolink&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
The node is connected to Echolink as &lt;code&gt;MB7AZE-L #879598&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Page created Sun May 29 12:18:09 2022 by John Pumford-Green
&lt;/p&gt;

&lt;p&gt;
Page last updated: 05/06/26 08:40 BST
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:pi&amp;amp;do=showtag&amp;amp;tag=pi&quot; class=&quot;wikilink1&quot; title=&quot;tag:pi&quot; rel=&quot;tag&quot;&gt;pi&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:allstar&amp;amp;do=showtag&amp;amp;tag=allstar&quot; class=&quot;wikilink1&quot; title=&quot;tag:allstar&quot; rel=&quot;tag&quot;&gt;allstar&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:mb7aze&amp;amp;do=showtag&amp;amp;tag=mb7aze&quot; class=&quot;wikilink1&quot; title=&quot;tag:mb7aze&quot; rel=&quot;tag&quot;&gt;mb7aze&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Echolink&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;echolink&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;2172-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 05 Jun 2026 07:40:31 +0000</pubDate>
        </item>
        <item>
            <title>HF APRS Base Station</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:aprs:hf_aprs</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:aprs:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:aprs:start&quot; data-wiki-id=&quot;public:radio:topics:aprs:start&quot;&gt;APRS&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;hf_aprs_base_station&quot;&gt;HF APRS Base Station&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; Direwolf TNC iGate on 30m &lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;HF APRS Base Station&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hf_aprs_base_station&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;12-80&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;using_direwolf_on_hf&quot;&gt;Using Direwolf on HF&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 30m APRS frequency = &lt;code&gt;10.1476MHz&lt;/code&gt; USB / &lt;code&gt;10.151MHz&lt;/code&gt; LSB (using 1.7kHz modem frequency)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; RF centre frequency = &lt;code&gt;10.1493MHz&lt;/code&gt;, tones ±100Hz&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Direwolf acts as &lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; TNC/Modem to send and receive packets via HF transceiver&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Internet I-Gate &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Tracker, when configured to use &lt;strong&gt;gpsd&lt;/strong&gt; to provide real time GPS position&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Network (AGWPE) TNC for other APRS client software&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Using Direwolf on HF&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;using_direwolf_on_hf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;81-512&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;direwolf_config&quot;&gt;Direwolf config&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_129dce16311735a6d41c49ccf82045fe_1&quot;&gt;~/direwolf.conf &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_129dce16311735a6d41c49ccf82045fe_1&quot;&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#############################################################&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#                                                           #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#               FIRST AUDIO DEVICE PROPERTIES               #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#               (Channel 0 + 1 if in stereo)                #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#                                                           #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#############################################################&lt;/span&gt;
&amp;nbsp;
ADEVICE  plughw:&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&amp;nbsp;
ACHANNELS &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;#############################################################&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#                                                           #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#               CHANNEL 0 PROPERTIES                        #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#                                                           #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#############################################################&lt;/span&gt;
&amp;nbsp;
CHANNEL &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&amp;nbsp;
MYCALL GM4SLV-&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&amp;nbsp;
MODEM &lt;span class=&quot;nu0&quot;&gt;300&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1600&lt;/span&gt;:&lt;span class=&quot;nu0&quot;&gt;1800&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;30 &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt;
&amp;nbsp;
TXDELAY &lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt;
&amp;nbsp;
TXTAIL &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;#############################################################&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#                                                           #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#               VIRTUAL TNC SERVER PROPERTIES               #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#                                                           #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#############################################################&lt;/span&gt;
&amp;nbsp;
AGWPORT &lt;span class=&quot;nu0&quot;&gt;8000&lt;/span&gt;
KISSPORT &lt;span class=&quot;nu0&quot;&gt;8001&lt;/span&gt;
&amp;nbsp;
FIX_BITS &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;#############################################################&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#                                                           #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#               BEACONING PROPERTIES                        #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#                                                           #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#############################################################&lt;/span&gt;
&amp;nbsp;
PBEACON  &lt;span class=&quot;re2&quot;&gt;every&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;  &lt;span class=&quot;re2&quot;&gt;symbol&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;\-&amp;quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;lat&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;^17.31N &lt;span class=&quot;re2&quot;&gt;long&lt;/span&gt;=001^25.49W &lt;span class=&quot;re2&quot;&gt;comment&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;30m HF&amp;quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;via&lt;/span&gt;=WIDE1-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;#############################################################&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#                                                           #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#               DIGIPEATER PROPERTIES                       #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#                                                           #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#############################################################&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;#DIGIPEAT 0 0 ^WIDE[3-7]-[1-7]$|^TEST$ ^WIDE[12]-[12]$ TRACE&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;#############################################################&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#                                                           #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#               INTERNET GATEWAY                            #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#                                                           #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#############################################################&lt;/span&gt;
&amp;nbsp;
IGSERVER euro.aprs2.net
&amp;nbsp;
IGLOGIN GM4SLV-&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;19626&lt;/span&gt;
&amp;nbsp;
PBEACON  &lt;span class=&quot;re2&quot;&gt;sendto&lt;/span&gt;=IG &lt;span class=&quot;re2&quot;&gt;every&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;  &lt;span class=&quot;re2&quot;&gt;symbol&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;\-&amp;quot;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;lat&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;^17.31N &lt;span class=&quot;re2&quot;&gt;long&lt;/span&gt;=001^25.49W &lt;span class=&quot;re2&quot;&gt;comment&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;30m HF&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;#IGTXVIA 0 WIDE1-1&lt;/span&gt;
&amp;nbsp;
IGTXLIMIT &lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Direwolf config&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;direwolf_config&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;513-3002&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;direwolf_running_in_a_tmux_session&quot;&gt;Direwolf running (in a Tmux session)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:direwolf.png&quot; class=&quot;media&quot; title=&quot;public:radio:direwolf.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=600&amp;amp;tok=c8d4be&amp;amp;media=public:radio:direwolf.png&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Direwolf running (in a Tmux session)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;direwolf_running_in_a_tmux_session&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;3003-3096&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;xastir_using_direwolf_as_tnc&quot;&gt;Xastir using Direwolf as TNC&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Direwolf can act as a network TNC for other clients&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Uses “AGWPE” protocol&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Set Xastir on another PC to use Direwolf as TNC. This gives user access to APRS - map, messaging etc.
&lt;/p&gt;

&lt;p&gt;
&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/images/smileys/fixme.svg&quot; class=&quot;icon smiley&quot; alt=&quot;FIXME&quot; /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Xastir using Direwolf as TNC&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;xastir_using_direwolf_as_tnc&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;3097-3333&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;aprsfi&quot;&gt;APRS.FI&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://aprs.fi/info/a/GM4SLV-10&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://aprs.fi/info/a/GM4SLV-10&quot; rel=&quot;ugc nofollow noopener&quot;&gt; GM4SLV-10 info at APRS.FI&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
List of stations who heard me, and stations I heard, after running overnight.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:aprs_fi.png&quot; class=&quot;media&quot; title=&quot;public:radio:aprs_fi.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=600&amp;amp;tok=c6d693&amp;amp;media=public:radio:aprs_fi.png&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;APRS.FI&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;aprsfi&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;3334-3548&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://github.com/wb2osz/direwolf&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://github.com/wb2osz/direwolf&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://github.com/wb2osz/direwolf&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;http://wa8lmf.net/aprs/HF_APRS_Notes.htm&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;http://wa8lmf.net/aprs/HF_APRS_Notes.htm&quot; rel=&quot;ugc nofollow noopener&quot;&gt;http://wa8lmf.net/aprs/HF_APRS_Notes.htm&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:aprs&amp;amp;do=showtag&amp;amp;tag=aprs&quot; class=&quot;wikilink1&quot; title=&quot;tag:aprs&quot; rel=&quot;tag&quot;&gt;aprs&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 26/04/23 06:30&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;3549-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 06:39:56 +0000</pubDate>
        </item>
        <item>
            <title>APRS</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:aprs:start</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:start&quot; data-wiki-id=&quot;public:radio:topics:start&quot;&gt;Radio Topics&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;aprs&quot;&gt;APRS&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
I&amp;#039;ve used APRS on both VHF and HF on and off for several years.
&lt;/p&gt;

&lt;p&gt;
This is a small collection of information about various APRS related projects.
&lt;/p&gt;

&lt;p&gt;
&lt;script type=&quot;text/javascript&quot;&gt; catlist_baseurl = &quot;https://www.g4slv.info/dokuwiki/&quot;; catlist_basescript = &quot;doku.php&quot;; catlist_useslash = 0; catlist_userewrite = 0; catlist_sepchar = &quot;_&quot;; catlist_deaccent = 1; catlist_pagename_sanitize = 1; &lt;/script&gt;&lt;ul style=&quot;-webkit-column-count: 3; -moz-column-count: 3; column-count: 3;&quot; class=&quot;catlist_columns catlist-nslist&quot; &gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:aprs:aprs&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:aprs:aprs&quot; data-wiki-id=&quot;public:radio:topics:aprs:aprs&quot;&gt;APRS&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:aprs:hf_aprs&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:aprs:hf_aprs&quot; data-wiki-id=&quot;public:radio:topics:aprs:hf_aprs&quot;&gt;HF APRS Base Station&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:aprs:mobile_hf_aprs&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:aprs:mobile_hf_aprs&quot; data-wiki-id=&quot;public:radio:topics:aprs:mobile_hf_aprs&quot;&gt;HF APRS Mobile/Portable&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:aprs:mini_igate&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:aprs:mini_igate&quot; data-wiki-id=&quot;public:radio:topics:aprs:mini_igate&quot;&gt;Mini Igate&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/p&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 26/04/23 13:41&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;APRS&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;aprs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;14-278&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;279-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 20:35:23 +0000</pubDate>
        </item>
        <item>
            <title>svxlink hotspot</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:svx</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:start&quot; data-wiki-id=&quot;public:radio:topics:svxlink:start&quot;&gt;SVXLink&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;svxlink_hotspot&quot;&gt;svxlink hotspot&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;svxlink hotspot&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;svxlink_hotspot&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;11-40&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;hardware&quot;&gt;Hardware&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;table sectionedit3&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Platform&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Raspberry Pi&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Software&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;SVXLink&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Interface&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;CM108 soundcard&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Radio&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;IC-2E&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;63-147&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Hardware&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hardware&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;41-148&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;background&quot;&gt;Background&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Remote/portable &lt;em&gt;personal&lt;/em&gt; node. 
&lt;/p&gt;

&lt;p&gt;
Similar setup to &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:aze&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:aze&quot; data-wiki-id=&quot;public:radio:topics:svxlink:aze&quot;&gt;MB7AZE&lt;/a&gt; but without the connection to &lt;code&gt;Echolink&lt;/code&gt; and monitoring fewer TalkGroups. I use TG 8 as a 
testing ground to keep my traffic off the rest of the system.
&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;UPDATE&lt;/strong&gt; — &lt;em&gt;John Pumford-Green 03/06/22 17:57&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Making it into a mobile hotspot/echolink node/SVXreflector/parrot….
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:svx_mobile&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:svx_mobile&quot; data-wiki-id=&quot;public:radio:topics:svxlink:svx_mobile&quot;&gt;Svx Mobile&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Background&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;background&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;149-538&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;networking&quot;&gt;Networking&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Usual method of deployment is to use a small &lt;em&gt;MiFi 4G router&lt;/em&gt; as an access point to let the Raspberry Pi reach the internet. 
When this MiFi router is in use the node is on an inaccessible network and I can&amp;#039;t reach it to make changes or shut it down.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Networking&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;networking&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;539-816&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;the_answer_is_ssh_tunnels&quot;&gt;The answer is SSH Tunnels&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
I use a “Remote SSH Tunnel” to get access to it from my home LAN.
&lt;/p&gt;

&lt;p&gt;
The idea is that the remote node makes an outgoing SSH connection, to a machine on my LAN. I have an open port in the router forwarded to an internal machine for SSH access when I&amp;#039;m away from home. This is straightforward, and the remote Pi can &lt;em&gt;easily&lt;/em&gt; create a SSH session on to my PC in the shack.
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;ssh -p xxxxx my.external.host.name&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
Along with this &lt;em&gt;incoming&lt;/em&gt; SSH connection from the remote node is also a request to set up a &lt;em&gt;“Remote Tunnel”&lt;/em&gt; which makes the internal Shack PC  set up a &lt;em&gt;listening SSH port&lt;/em&gt;. After this is done, any connection to this new listening port will be sent &lt;em&gt;backwards&lt;/em&gt; to the &lt;em class=&quot;u&quot;&gt;remote node&lt;/em&gt;, &lt;strong&gt;&lt;em&gt;tunnelling within&lt;/em&gt;&lt;/strong&gt; the existing SSH connection. 
&lt;/p&gt;

&lt;p&gt;
This &lt;em&gt;tunnel&lt;/em&gt; will now accept incoming connections from  machines &lt;em&gt;inside&lt;/em&gt; my LAN and &lt;em class=&quot;u&quot;&gt;forward them to the remote node&lt;/em&gt;. I can now effectively SSH to the remote SVXLink node as if it were on my LAN in the shack.
&lt;/p&gt;

&lt;p&gt;
The magic is all done in SSH, but to make it more robust I use a package called &lt;code&gt;autossh&lt;/code&gt; which is a wrapper around &lt;code&gt;SSH&lt;/code&gt; that monitors for loss of the tunnel connection and initiates a new connection automatically if it should fail for any reason.
&lt;/p&gt;

&lt;p&gt;
Here is the script that fires it all off:
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;tunnel.sh&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&amp;nbsp;
autossh &lt;span class=&quot;re5&quot;&gt;-M&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;20000&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-N&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-T&lt;/span&gt; gm4slv_tunnel&lt;/pre&gt;

&lt;p&gt;
Simple enough, but effective.
&lt;/p&gt;

&lt;p&gt;
The &lt;code&gt;gm4slv_tunnel&lt;/code&gt; is connection defined in &lt;code&gt;.ssh/config&lt;/code&gt; as:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;Host gm4slv_tunnel
	HostName gm4slv.plus.com
	User gm4slv
	Port xxxxx
	RemoteForward &lt;span class=&quot;nu0&quot;&gt;4446&lt;/span&gt; localhost:&lt;span class=&quot;nu0&quot;&gt;22&lt;/span&gt;
	RemoteForward &lt;span class=&quot;nu0&quot;&gt;8080&lt;/span&gt; 192.168.0.1:&lt;span class=&quot;nu0&quot;&gt;80&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
This sets up a remote tunnel, listening on port 4446 of my shack PC that will be forwarded back up the SSH connection to the SVXLink Raspberry Pi.
It also sets up a listening port 8080 which gives me &lt;code&gt;http&lt;/code&gt; access to the 4G MiFi router at the remote site in case I want to shut it down or reboot it or whatever. I just browse to &lt;code&gt;&lt;a href=&quot;http://my_shack_pc:8080&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;http://my_shack_pc:8080&quot; rel=&quot;ugc nofollow noopener&quot;&gt;http://my_shack_pc:8080&lt;/a&gt;&lt;/code&gt; and I&amp;#039;m actually logged into the MiFi router. Magic!
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;etc/ssh/sshd_conf&lt;/code&gt; needs to have &lt;code&gt;Gateway Ports yes&lt;/code&gt; to allow the Shack PC to accept connections to its new &lt;em&gt;remote listening&lt;/em&gt; ports (4446 for SSH and 8080 for HTTP) from other LAN machines, &lt;em class=&quot;u&quot;&gt;otherwise these ports would only be accessible to the Shack PC itself&lt;/em&gt; (on “localhost:4446” or “localhost:8080”)
&lt;/p&gt;

&lt;p&gt;
To allow an unattended/automatic login &lt;em&gt;from&lt;/em&gt; the remote Raspberry Pi &lt;em&gt;to&lt;/em&gt; the Shack PC it&amp;#039;s necessary to set up public_key authentication and to have a &lt;em&gt;passphrase-less&lt;/em&gt; key on the Raspberry Pi. 
&lt;/p&gt;

&lt;p&gt;
Generate a public/private key pair on the Raspberry Pi with &lt;code&gt;ssh-keygen&lt;/code&gt; and don&amp;#039;t enter a &lt;em&gt;passphrase&lt;/em&gt; before saving it in &lt;code&gt;.ssh/id_rsa&lt;/code&gt; and &lt;code&gt;.ssh/id_rsa.pub&lt;/code&gt;. Then transfer a copy of &lt;code&gt;.ssh/id_rsa.pub&lt;/code&gt; &lt;em&gt;from&lt;/em&gt; the Raspberry Pi &lt;em&gt;to&lt;/em&gt; the Shack PC and put it in the &lt;code&gt;authorized_keys2&lt;/code&gt; file:
&lt;/p&gt;

&lt;p&gt;
(on Raspberry Pi):
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;$ scp .ssh/id_rsa.pub user@shack_pc:&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
enter password etc. to do the initial &lt;code&gt;scp&lt;/code&gt; transfer
&lt;/p&gt;

&lt;p&gt;
(on Shack PC)
&lt;/p&gt;

&lt;p&gt;
&lt;code&gt;$ cat id_rsa.pub » .ssh/authorized_keys2&lt;/code&gt;
&lt;/p&gt;

&lt;p&gt;
then any further SSH or SCP sessions &lt;em&gt;from&lt;/em&gt; the Rasperry Pi &lt;em&gt;to&lt;/em&gt; the Shack PC &lt;em&gt;should&lt;/em&gt; occur without any need for 
passwords.
&lt;/p&gt;

&lt;p&gt;
The Pi is now set up for automatic SSH Remote Tunnel - as long as the script is run at boot time:
&lt;/p&gt;

&lt;p&gt;
Crontab is used to fire off the tunnel &lt;em&gt;and&lt;/em&gt; start SVXLink @reboot
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;reboot &lt;span class=&quot;kw2&quot;&gt;sleep&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-u&lt;/span&gt; gm4slv &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tunnel.sh &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;reboot &lt;span class=&quot;kw2&quot;&gt;sleep&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-u&lt;/span&gt; gm4slv &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svx_ref.sh &lt;span class=&quot;sy0&quot;&gt;&amp;gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;null &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
To check the Tunnel is up you look at &lt;code&gt;netstat -ntl&lt;/code&gt; on the Shack PC:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;laptop:~ $ &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;netstat&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-ntlp&lt;/span&gt;
Active Internet connections &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;only servers&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Program name
tcp        &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;      &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 0.0.0.0:&lt;span class=&quot;nu0&quot;&gt;22&lt;/span&gt;              0.0.0.0:&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;               LISTEN      &lt;span class=&quot;nu0&quot;&gt;854&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sshd: &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sbin
tcp        &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;      &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 0.0.0.0:&lt;span class=&quot;nu0&quot;&gt;631&lt;/span&gt;             0.0.0.0:&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;               LISTEN      &lt;span class=&quot;nu0&quot;&gt;167630&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cupsd
tcp        &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;      &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 0.0.0.0:&lt;span class=&quot;nu0&quot;&gt;23&lt;/span&gt;              0.0.0.0:&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;               LISTEN      &lt;span class=&quot;nu0&quot;&gt;761&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;inetd
tcp        &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;      &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 0.0.0.0:&lt;span class=&quot;nu0&quot;&gt;17500&lt;/span&gt;           0.0.0.0:&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;               LISTEN      &lt;span class=&quot;nu0&quot;&gt;62324&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dropbox
tcp        &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;      &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 0.0.0.0:&lt;span class=&quot;nu0&quot;&gt;445&lt;/span&gt;             0.0.0.0:&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;               LISTEN      &lt;span class=&quot;nu0&quot;&gt;1134&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;smbd
tcp        &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;      &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 0.0.0.0:&lt;span class=&quot;nu0&quot;&gt;4446&lt;/span&gt;            0.0.0.0:&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;               LISTEN      &lt;span class=&quot;nu0&quot;&gt;2537&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sshd: gm4slv
tcp        &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;      &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 127.0.0.1:&lt;span class=&quot;nu0&quot;&gt;17600&lt;/span&gt;         0.0.0.0:&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;               LISTEN      &lt;span class=&quot;nu0&quot;&gt;62324&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dropbox
tcp        &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;      &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 0.0.0.0:&lt;span class=&quot;nu0&quot;&gt;20000&lt;/span&gt;           0.0.0.0:&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;               LISTEN      &lt;span class=&quot;nu0&quot;&gt;2537&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sshd: gm4slv
tcp        &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;      &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 0.0.0.0:&lt;span class=&quot;nu0&quot;&gt;514&lt;/span&gt;             0.0.0.0:&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;               LISTEN      &lt;span class=&quot;nu0&quot;&gt;647&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;rsyslogd
tcp        &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;      &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 127.0.0.1:&lt;span class=&quot;nu0&quot;&gt;17603&lt;/span&gt;         0.0.0.0:&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;               LISTEN      &lt;span class=&quot;nu0&quot;&gt;62324&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dropbox
tcp        &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;      &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 127.0.0.1:&lt;span class=&quot;nu0&quot;&gt;2947&lt;/span&gt;          0.0.0.0:&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;               LISTEN      &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;init
tcp        &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;      &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 0.0.0.0:&lt;span class=&quot;nu0&quot;&gt;139&lt;/span&gt;             0.0.0.0:&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;               LISTEN      &lt;span class=&quot;nu0&quot;&gt;1134&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;smbd
tcp        &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;      &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 0.0.0.0:&lt;span class=&quot;nu0&quot;&gt;27659&lt;/span&gt;           0.0.0.0:&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;               LISTEN      &lt;span class=&quot;nu0&quot;&gt;854&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sshd: &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sbin
tcp        &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;      &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 0.0.0.0:&lt;span class=&quot;nu0&quot;&gt;111&lt;/span&gt;             0.0.0.0:&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;               LISTEN      &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;init
tcp        &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;      &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; 0.0.0.0:&lt;span class=&quot;nu0&quot;&gt;8080&lt;/span&gt;            0.0.0.0:&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;               LISTEN      &lt;span class=&quot;nu0&quot;&gt;2537&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sshd: gm4slv&lt;/pre&gt;

&lt;p&gt;
SSH is listening on ports &lt;code&gt;4446, 20000 and 8080&lt;/code&gt; which proves it&amp;#039;s up and running. 
&lt;/p&gt;

&lt;p&gt;
Port 20000 (and 20001) is used by &lt;code&gt;autossh&lt;/code&gt; to handle its “is the tunnel still up” packets. 
&lt;/p&gt;

&lt;p&gt;
From the Shack PC I can &lt;code&gt;ssh localhost -p 4446&lt;/code&gt; and reach the remove Pi, hostname &lt;code&gt;svx&lt;/code&gt;
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;laptop:~ $ &lt;span class=&quot;kw2&quot;&gt;ssh&lt;/span&gt; localhost &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;4446&lt;/span&gt;
Linux svx 5.15.32-v7+ &lt;span class=&quot;co0&quot;&gt;#1538 SMP Thu Mar 31 19:38:48 BST 2022 armv7l&lt;/span&gt;
&amp;nbsp;
The programs included with the Debian GNU&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Linux system are &lt;span class=&quot;kw2&quot;&gt;free&lt;/span&gt; software;
the exact distribution terms &lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; each program are described &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; the
individual files &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;doc&lt;span class=&quot;sy0&quot;&gt;/*/&lt;/span&gt;copyright.
&amp;nbsp;
Debian GNU&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Wed May  &lt;span class=&quot;nu0&quot;&gt;4&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;14&lt;/span&gt;:&lt;span class=&quot;nu0&quot;&gt;28&lt;/span&gt;:06 &lt;span class=&quot;nu0&quot;&gt;2022&lt;/span&gt; from 127.0.0.1
gm4slv&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;svx:~ $ &lt;span class=&quot;kw2&quot;&gt;who&lt;/span&gt;
gm4slv   pts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;        &lt;span class=&quot;nu0&quot;&gt;2022&lt;/span&gt;-05-04 &lt;span class=&quot;nu0&quot;&gt;14&lt;/span&gt;:&lt;span class=&quot;nu0&quot;&gt;35&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;127.0.0.1&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
gm4slv&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;svx:~ $ &lt;span class=&quot;kw2&quot;&gt;whoami&lt;/span&gt;
gm4slv
gm4slv&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;svx:~ $ &lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt;
backup         greeting.wav   id_rsa.pub    id_svx.pub  node_info.json      svxlink          svxlink.log        svxlink-sounds-en_US-heather      svx_ref.sh
backup.tar     hosts          id_sdr.pub    log1.log    ReflectorLogic.tcl  svxlink.conf     svxlink_noel.conf  svxlink-sounds-en_US-heather.tar  tunnel.sh
git_backup.sh  id_laptop.pub  id_shack.pub  Logic.tcl   svx_el.sh           svxlink_el.conf  svxlink_ref.conf   svx_noel.sh
gm4slv&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;svx:~ $&lt;/pre&gt;

&lt;p&gt;
 &lt;em&gt;&lt;a href=&quot;mailto:&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#64;&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#46;&amp;#112;&amp;#108;&amp;#117;&amp;#115;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&quot; class=&quot;mail&quot; title=&quot;&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#64;&amp;#103;&amp;#109;&amp;#52;&amp;#115;&amp;#108;&amp;#118;&amp;#46;&amp;#112;&amp;#108;&amp;#117;&amp;#115;&amp;#46;&amp;#99;&amp;#111;&amp;#109;&quot;&gt;John Pumford-Green&lt;/a&gt; Wed May  4 11:25:01 2022&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
Page Updated : 04/06/26 07:39 BST
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:pi&amp;amp;do=showtag&amp;amp;tag=pi&quot; class=&quot;wikilink1&quot; title=&quot;tag:pi&quot; rel=&quot;tag&quot;&gt;pi&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:svxlink&amp;amp;do=showtag&amp;amp;tag=svxlink&quot; class=&quot;wikilink1&quot; title=&quot;tag:svxlink&quot; rel=&quot;tag&quot;&gt;svxlink&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:linux&amp;amp;do=showtag&amp;amp;tag=linux&quot; class=&quot;wikilink1&quot; title=&quot;tag:linux&quot; rel=&quot;tag&quot;&gt;linux&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:ssh&amp;amp;do=showtag&amp;amp;tag=ssh&quot; class=&quot;wikilink1&quot; title=&quot;tag:ssh&quot; rel=&quot;tag&quot;&gt;ssh&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;The answer is SSH Tunnels&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;the_answer_is_ssh_tunnels&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;817-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 06:39:56 +0000</pubDate>
        </item>
        <item>
            <title>Svxlink &amp; Echolink</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:svx_echolink</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:start&quot; data-wiki-id=&quot;public:radio:topics:svxlink:start&quot;&gt;SVXLink&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;svxlink_echolink&quot;&gt;Svxlink &amp;amp; Echolink&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; Revisiting the Analogue FM Voice Gateway&lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Svxlink &amp;amp; Echolink&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;svxlink_echolink&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-97&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;svxlink_gateway_initial_setup&quot;&gt;Svxlink Gateway Initial Setup&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Svxlink Gateway Initial Setup&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;svxlink_gateway_initial_setup&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;98-141&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;trying_not_to_re-invent_the_wheel&quot;&gt;Trying not to re-invent the wheel&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; find saved Pi Image File for a previous Svxlink system&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; copy to a new SD Card and boot a spare Raspberry Pi with it&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; find and connect a modified CM108 sound-dongle - has PTT and SQL via the dongle&amp;#039;s own GPIO&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; connect to 2m FM radio and test initial config&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; make any necessary config changes - e.g. MB7AZE → GM4SLV&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; set up audio levels using &lt;em&gt;devcal&lt;/em&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; change to &lt;em&gt;9600 packet interface&lt;/em&gt; on 2m radio to remove radio pre/de emphasis and apply pre/de emphasis in Svxlink&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; set up audio levels again using &lt;em&gt;devcal&lt;/em&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Check connectivity to Echolink&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; remember to Port Forward on ADSL router : &lt;strong&gt;UDP 5198 &amp;amp; 5199&lt;/strong&gt; → svxlink Pi&amp;#039;s IP address&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; consider using a private proxy on my VPS instead? &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:allstar:jre_echolink&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:allstar:jre_echolink&quot; data-wiki-id=&quot;public:radio:topics:allstar:jre_echolink&quot;&gt;Java JRE and Echolink Proxy&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Trying not to re-invent the wheel&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;trying_not_to_re-invent_the_wheel&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;142-959&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;pi_image_file_handling&quot;&gt;Pi Image File handling&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:rpi_image&quot; class=&quot;wikilink1&quot; title=&quot;public:computers:archive:rpi_image&quot; data-wiki-id=&quot;public:computers:archive:rpi_image&quot;&gt;R Pi Image files&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Pi Image File handling&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;pi_image_file_handling&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;960-1034&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;devcal&quot;&gt;Devcal&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:mb7azeconf#devcal&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:mb7azeconf&quot; data-wiki-id=&quot;public:radio:topics:svxlink:mb7azeconf&quot;&gt;devcal&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; remember to &lt;code&gt;sudo killall svxlink&lt;/code&gt; to ensure no daemon svxlink processes are running in the background&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; remember to adjust path to valid &lt;em&gt;svxlink.conf&lt;/em&gt; file which will be different to this old example&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Set for 3kHz deviation&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; remember to edit the config file(s) to change the RX Pre-amp and TX Master Gain settings to match those find using Deval&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; devcal &lt;span class=&quot;re5&quot;&gt;-r&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-m&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;3000&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-d&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;3000&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink_noel.conf Rx1&lt;/pre&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; devcal &lt;span class=&quot;re5&quot;&gt;-t&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-m&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;3000&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-d&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;3000&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink_noel.conf Tx1&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; add the PRE_AMP and MASTER_GAIN settings to &lt;strong&gt;both&lt;/strong&gt; &lt;code&gt;svxlink_el.conf&lt;/code&gt; and &lt;code&gt;svxlink_noel.conf&lt;/code&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Devcal&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;devcal&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1035-1723&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;config_files&quot;&gt;Config Files&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; One for &lt;strong&gt;Echolink Enabled&lt;/strong&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; One for &lt;strong&gt;Echolink Disabled&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Switch Echolink on/off via DTMF commands&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Edit &lt;strong&gt;Logic.tcl&lt;/strong&gt; to give this functionality&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_302d5d994f7483861908ee9f146164df_1&quot;&gt;/etc/svxlink/svxlink_el.conf &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_302d5d994f7483861908ee9f146164df_1&quot;&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;###############################################################################&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#                                                                             #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#                Configuration file for the SvxLink server                    #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#                                                                             #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;###############################################################################&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;GLOBAL&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#MODULE_PATH=/usr/lib/arm-linux-gnueabihf/svxlink&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LOGICS&lt;/span&gt;=SimplexLogic
&lt;span class=&quot;re2&quot;&gt;CFG_DIR&lt;/span&gt;=svxlink.d
&lt;span class=&quot;re2&quot;&gt;TIMESTAMP_FORMAT&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;%c&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CARD_SAMPLE_RATE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;48000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CARD_CHANNELS=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#LOCATION_INFO=LocationInfo&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#LINKS=LinkToR4&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;SimplexLogic&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Simplex
&lt;span class=&quot;re2&quot;&gt;RX&lt;/span&gt;=Rx1
&lt;span class=&quot;re2&quot;&gt;TX&lt;/span&gt;=Tx1
&lt;span class=&quot;re2&quot;&gt;MODULES&lt;/span&gt;=ModuleHelp,ModuleEchoLink,ModuleParrot
&lt;span class=&quot;re2&quot;&gt;CALLSIGN&lt;/span&gt;=GM4SLV
&lt;span class=&quot;re2&quot;&gt;SHORT_IDENT_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SHORT_CW_ID_ENABLE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SHORT_VOICE_ID_ENABLE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CW_AMP&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CW_PITCH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;800&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CW_WPM&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LONG_IDENT_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#IDENT_ONLY_AFTER_TX=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#EXEC_CMD_ON_SQL_CLOSE=500&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;EVENT_HANDLER&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;local&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;events.tcl
&lt;span class=&quot;re2&quot;&gt;DEFAULT_LANG&lt;/span&gt;=en_US
&lt;span class=&quot;re2&quot;&gt;RGR_SOUND_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#REPORT_CTCSS=77.0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#TX_CTCSS=ALWAYS&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MACROS&lt;/span&gt;=Macros
&lt;span class=&quot;re2&quot;&gt;FX_GAIN_NORMAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;FX_GAIN_LOW&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#ACTIVATE_MODULE_ON_LONG_CMD=4:EchoLink&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#QSO_RECORDER=8:QsoRecorder&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;ONLINE_CMD&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;998877&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#MUTE_RX_ON_TX=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#MUTE_TX_ON_RX=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#STATE_PTY=/var/run/svxlink/state&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#DTMF_CTRL_PTY=/dev/shm/simplex_dtmf_ctrl&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TIME_FORMAT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;RGR_SOUND_ALWAYS&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;RepeaterLogic&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Repeater
&lt;span class=&quot;re2&quot;&gt;RX&lt;/span&gt;=Rx1
&lt;span class=&quot;re2&quot;&gt;TX&lt;/span&gt;=Tx1
&lt;span class=&quot;re2&quot;&gt;MODULES&lt;/span&gt;=ModuleHelp,ModuleParrot,ModuleEchoLink,ModuleTclVoiceMail
&lt;span class=&quot;re2&quot;&gt;CALLSIGN&lt;/span&gt;=MYCALL
&lt;span class=&quot;re2&quot;&gt;SHORT_IDENT_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LONG_IDENT_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#IDENT_ONLY_AFTER_TX=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#EXEC_CMD_ON_SQL_CLOSE=500&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;EVENT_HANDLER&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;events.tcl
&lt;span class=&quot;re2&quot;&gt;DEFAULT_LANG&lt;/span&gt;=en_US
&lt;span class=&quot;re2&quot;&gt;RGR_SOUND_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;REPORT_CTCSS&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;136.5&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#TX_CTCSS=SQL_OPEN&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MACROS&lt;/span&gt;=Macros
&lt;span class=&quot;co0&quot;&gt;#SEL5_MACRO_RANGE=03400,03499&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;FX_GAIN_NORMAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;FX_GAIN_LOW&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#QSO_RECORDER=8:QsoRecorder&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#NO_REPEAT=1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;IDLE_TIMEOUT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;OPEN_ON_1750&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPEN_ON_CTCSS=136:2000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPEN_ON_DTMF=*&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPEN_ON_SQL=5000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPEN_ON_SEL5=01234&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPEN_SQL_FLANK=OPEN&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPEN_ON_SQL_AFTER_RPT_CLOSE=10&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;IDLE_SOUND_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;3000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_FLAP_SUP_MIN_TIME=1000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_FLAP_SUP_MAX_COUNT=10&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#ACTIVATE_MODULE_ON_LONG_CMD=4:EchoLink&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#IDENT_NAG_TIMEOUT=15&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#IDENT_NAG_MIN_TIME=2000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#ONLINE_CMD=998877&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#STATE_PTY=/var/run/svxlink/state&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#DTMF_CTRL_PTY=/dev/shm/repeater_dtmf_ctrl&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;ReflectorLogic&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Reflector
&lt;span class=&quot;re2&quot;&gt;HOST&lt;/span&gt;=reflector.example.com
&lt;span class=&quot;co0&quot;&gt;#PORT=5300&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CALLSIGN&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;MYCALL&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;AUTH_KEY&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Change this key now!&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#JITTER_BUFFER_DELAY=0&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;LinkToR4&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CONNECT_LOGICS&lt;/span&gt;=RepeaterLogic:&lt;span class=&quot;nu0&quot;&gt;94&lt;/span&gt;:SK3AB,SimplexLogic:&lt;span class=&quot;nu0&quot;&gt;92&lt;/span&gt;:SK3CD
&lt;span class=&quot;co0&quot;&gt;#DEFAULT_ACTIVE=1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TIMEOUT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;300&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#AUTOACTIVATE_ON_SQL=RepeaterLogic&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;QsoRecorder&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;REC_DIR&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;spool&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;qso_recorder
&lt;span class=&quot;co0&quot;&gt;#MIN_TIME=1000&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MAX_TIME&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;3600&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SOFT_TIME&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;300&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MAX_DIRSIZE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1024&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#DEFAULT_ACTIVE=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#TIMEOUT=300&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#QSO_TIMEOUT=300&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#ENCODER_CMD=/usr/bin/oggenc -Q \&amp;quot;%f\&amp;quot; &amp;amp;&amp;amp; rm \&amp;quot;%f\&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Voter&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Voter
&lt;span class=&quot;re2&quot;&gt;RECEIVERS&lt;/span&gt;=Rx1,Rx2,Rx3
&lt;span class=&quot;re2&quot;&gt;VOTING_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;BUFFER_LENGTH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#REVOTE_INTERVAL=1000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#HYSTERESIS=50&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_CLOSE_REVOTE_DELAY=500&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#RX_SWITCH_DELAY=500&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#COMMAND_PTY=/dev/shm/voter_ctrl&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;MultiTx&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Multi
&lt;span class=&quot;re2&quot;&gt;TRANSMITTERS&lt;/span&gt;=Tx1,Tx2,Tx3
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;NetRx&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Net
&lt;span class=&quot;re2&quot;&gt;HOST&lt;/span&gt;=remote.rx.host
&lt;span class=&quot;re2&quot;&gt;TCP_PORT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;5210&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#LOG_DISCONNECTS_ONCE=0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;AUTH_KEY&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Change this key now!&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CODEC&lt;/span&gt;=S16
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_FRAMES_PER_PACKET=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_QUALITY=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_BITRATE=15000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_COMPLEXITY=2&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_VBR=0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_VBR_QUALITY=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_ABR=15000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_DEC_ENHANCER=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_FRAME_SIZE=20&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_COMPLEXITY=10&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_BITRATE=20000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_VBR=1&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;NetTx&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Net
&lt;span class=&quot;re2&quot;&gt;HOST&lt;/span&gt;=remote.tx.host
&lt;span class=&quot;re2&quot;&gt;TCP_PORT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;5210&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#LOG_DISCONNECTS_ONCE=0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;AUTH_KEY&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Change this key now!&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CODEC&lt;/span&gt;=S16
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_FRAMES_PER_PACKET=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_QUALITY=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_BITRATE=15000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_COMPLEXITY=2&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_VBR=0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_VBR_QUALITY=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_ABR=15000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_DEC_ENHANCER=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_FRAME_SIZE=20&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_COMPLEXITY=10&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_BITRATE=20000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_VBR=1&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Rx1&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Local
&lt;span class=&quot;re2&quot;&gt;AUDIO_DEV&lt;/span&gt;=alsa:plughw:&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;AUDIO_CHANNEL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SQL_DET&lt;/span&gt;=HIDRAW
&lt;span class=&quot;re2&quot;&gt;SQL_START_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SQL_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SQL_HANGTIME&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_EXTENDED_HANGTIME=1000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_EXTENDED_HANGTIME_THRESH=15&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_TIMEOUT=600&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;VOX_FILTER_DEPTH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;VOX_THRESH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_MODE=2&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CTCSS_FQ&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;77.0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_SNR_OFFSET=0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_OPEN_THRESH=15&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_CLOSE_THRESH=9&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_BPF_LOW=60&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_BPF_HIGH=270&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SERIAL_PORT=/dev/ttyUSB0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SERIAL_PIN=CTS&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SERIAL_SET_PINS=&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#EVDEV_DEVNAME=/dev/input/by-id/usb-SYNIC_SYNIC_Wireless_Audio-event-if03&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#EVDEV_OPEN=1,163,1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#EVDEV_CLOSE=1,163,0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#GPIO_PATH=/sys/class/gpio&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#GPIO_SQL_PIN=gpio25&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PTY_PATH=/tmp/rx1_sql&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;HID_DEVICE&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;hidraw0
&lt;span class=&quot;re2&quot;&gt;HID_SQL_PIN&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;VOL_DN
&lt;span class=&quot;co0&quot;&gt;#SIGLEV_DET=TONE&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SIGLEV_SLOPE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SIGLEV_OFFSET&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SIGLEV_BOGUS_THRESH=120&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#TONE_SIGLEV_MAP=100,84,60,50,37,32,28,23,19,8&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SIGLEV_OPEN_THRESH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SIGLEV_CLOSE_THRESH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DEEMPHASIS&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_TAIL_ELIM=300&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;PREAMP&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;1.5&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PEAK_METER=1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_DEC_TYPE&lt;/span&gt;=INTERNAL
&lt;span class=&quot;re2&quot;&gt;DTMF_MUTING&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_HANGTIME&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;40&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_SERIAL&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ttyS0
&lt;span class=&quot;co0&quot;&gt;#DTMF_PTY=/tmp/rx1_dtmf&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#DTMF_MAX_FWD_TWIST=8&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#DTMF_MAX_REV_TWIST=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#1750_MUTING=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SEL5_DEC_TYPE=INTERNAL&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SEL5_TYPE=ZVEI1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#FQ=433475000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#MODULATION=FM&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#WBRX=WbRx1&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;WbRx1&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#TYPE=RtlUsb&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#DEV_MATCH=0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#HOST=localhost&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PORT=1234&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CENTER_FQ=435075000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#FQ_CORR=0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#GAIN=0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PEAK_METER=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SAMPLE_RATE=960000&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Tx1&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Local
&lt;span class=&quot;re2&quot;&gt;AUDIO_DEV&lt;/span&gt;=alsa:plughw:&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;AUDIO_CHANNEL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;PTT_TYPE&lt;/span&gt;=Hidraw
&lt;span class=&quot;co0&quot;&gt;#PTT_PORT=/dev/ttyS0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PTT_PIN=HIDRAW&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;HID_DEVICE&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;hidraw0
&lt;span class=&quot;re2&quot;&gt;HID_PTT_PIN&lt;/span&gt;=GPIO3
&lt;span class=&quot;co0&quot;&gt;#SERIAL_SET_PINS=DTR!RTS&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#GPIO_PATH=/sys/class/gpio&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PTT_HANGTIME=1000&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TIMEOUT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;300&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TX_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_FQ=136.5&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_LEVEL=9&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;PREEMPHASIS&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_TONE_LENGTH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_TONE_SPACING&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_DIGIT_PWR&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MASTER_GAIN&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;1.25&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;LocationInfo&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#APRS_SERVER_LIST=euro.aprs2.net:14580&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;STATUS_SERVER_LIST&lt;/span&gt;=aprs.echolink.org:&lt;span class=&quot;nu0&quot;&gt;5199&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LON_POSITION&lt;/span&gt;=1.25.30W
&lt;span class=&quot;re2&quot;&gt;LAT_POSITION&lt;/span&gt;=60.17.18N
&lt;span class=&quot;re2&quot;&gt;CALLSIGN&lt;/span&gt;=EL-GM4SLV
&lt;span class=&quot;re2&quot;&gt;FREQUENCY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;144.912&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TX_POWER&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;ANTENNA_GAIN&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;ANTENNA_HEIGHT&lt;/span&gt;=2m
&lt;span class=&quot;re2&quot;&gt;ANTENNA_DIR&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PATH=WIDE1-1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;BEACON_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;STATISTICS_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TONE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;COMMENT&lt;/span&gt;=SvxLink
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Macros&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;=EchoLink:&lt;span class=&quot;nu0&quot;&gt;9999&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;=EchoLink:&lt;span class=&quot;nu0&quot;&gt;973498&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;=EchoLink:&lt;span class=&quot;nu0&quot;&gt;662666&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_302d5d994f7483861908ee9f146164df_2&quot;&gt;/etc/svxlink/svxlink_noel.conf &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_302d5d994f7483861908ee9f146164df_2&quot;&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;###############################################################################&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#                                                                             #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#                Configuration file for the SvxLink server                    #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#                                                                             #&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;###############################################################################&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;GLOBAL&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#MODULE_PATH=/usr/lib/arm-linux-gnueabihf/svxlink&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LOGICS&lt;/span&gt;=SimplexLogic
&lt;span class=&quot;re2&quot;&gt;CFG_DIR&lt;/span&gt;=svxlink.d
&lt;span class=&quot;re2&quot;&gt;TIMESTAMP_FORMAT&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;%c&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CARD_SAMPLE_RATE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;48000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CARD_CHANNELS=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#LOCATION_INFO=LocationInfo&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#LINKS=LinkToR4&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;SimplexLogic&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Simplex
&lt;span class=&quot;re2&quot;&gt;RX&lt;/span&gt;=Rx1
&lt;span class=&quot;re2&quot;&gt;TX&lt;/span&gt;=Tx1
&lt;span class=&quot;re2&quot;&gt;MODULES&lt;/span&gt;=ModuleHelp,ModuleParrot
&lt;span class=&quot;re2&quot;&gt;CALLSIGN&lt;/span&gt;=GM4SLV
&lt;span class=&quot;re2&quot;&gt;SHORT_IDENT_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SHORT_CW_ID_ENABLE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SHORT_VOICE_ID_ENABLE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CW_AMP&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CW_PITCH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;800&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CW_WPM&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LONG_IDENT_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#IDENT_ONLY_AFTER_TX=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#EXEC_CMD_ON_SQL_CLOSE=500&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;EVENT_HANDLER&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;local&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;events.tcl
&lt;span class=&quot;re2&quot;&gt;DEFAULT_LANG&lt;/span&gt;=en_GB
&lt;span class=&quot;re2&quot;&gt;RGR_SOUND_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#REPORT_CTCSS=77.0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#TX_CTCSS=ALWAYS&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MACROS&lt;/span&gt;=Macros
&lt;span class=&quot;re2&quot;&gt;FX_GAIN_NORMAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;FX_GAIN_LOW&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#ACTIVATE_MODULE_ON_LONG_CMD=4:EchoLink&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#QSO_RECORDER=8:QsoRecorder&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;ONLINE_CMD&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;998877&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#MUTE_RX_ON_TX=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#MUTE_TX_ON_RX=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#STATE_PTY=/var/run/svxlink/state&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#DTMF_CTRL_PTY=/dev/shm/simplex_dtmf_ctrl&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TIME_FORMAT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;24&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;RGR_SOUND_ALWAYS&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;RepeaterLogic&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Repeater
&lt;span class=&quot;re2&quot;&gt;RX&lt;/span&gt;=Rx1
&lt;span class=&quot;re2&quot;&gt;TX&lt;/span&gt;=Tx1
&lt;span class=&quot;re2&quot;&gt;MODULES&lt;/span&gt;=ModuleHelp,ModuleParrot,ModuleEchoLink,ModuleTclVoiceMail
&lt;span class=&quot;re2&quot;&gt;CALLSIGN&lt;/span&gt;=MYCALL
&lt;span class=&quot;re2&quot;&gt;SHORT_IDENT_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LONG_IDENT_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;60&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#IDENT_ONLY_AFTER_TX=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#EXEC_CMD_ON_SQL_CLOSE=500&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;EVENT_HANDLER&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;events.tcl
&lt;span class=&quot;re2&quot;&gt;DEFAULT_LANG&lt;/span&gt;=en_US
&lt;span class=&quot;re2&quot;&gt;RGR_SOUND_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;REPORT_CTCSS&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;136.5&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#TX_CTCSS=SQL_OPEN&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MACROS&lt;/span&gt;=Macros
&lt;span class=&quot;co0&quot;&gt;#SEL5_MACRO_RANGE=03400,03499&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;FX_GAIN_NORMAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;FX_GAIN_LOW&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#QSO_RECORDER=8:QsoRecorder&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#NO_REPEAT=1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;IDLE_TIMEOUT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;OPEN_ON_1750&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPEN_ON_CTCSS=136:2000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPEN_ON_DTMF=*&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPEN_ON_SQL=5000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPEN_ON_SEL5=01234&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPEN_SQL_FLANK=OPEN&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPEN_ON_SQL_AFTER_RPT_CLOSE=10&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;IDLE_SOUND_INTERVAL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;3000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_FLAP_SUP_MIN_TIME=1000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_FLAP_SUP_MAX_COUNT=10&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#ACTIVATE_MODULE_ON_LONG_CMD=4:EchoLink&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#IDENT_NAG_TIMEOUT=15&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#IDENT_NAG_MIN_TIME=2000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#ONLINE_CMD=998877&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#STATE_PTY=/var/run/svxlink/state&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#DTMF_CTRL_PTY=/dev/shm/repeater_dtmf_ctrl&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;ReflectorLogic&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Reflector
&lt;span class=&quot;re2&quot;&gt;HOST&lt;/span&gt;=reflector.example.com
&lt;span class=&quot;co0&quot;&gt;#PORT=5300&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CALLSIGN&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;MYCALL&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;AUTH_KEY&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Change this key now!&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#JITTER_BUFFER_DELAY=0&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;LinkToR4&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CONNECT_LOGICS&lt;/span&gt;=RepeaterLogic:&lt;span class=&quot;nu0&quot;&gt;94&lt;/span&gt;:SK3AB,SimplexLogic:&lt;span class=&quot;nu0&quot;&gt;92&lt;/span&gt;:SK3CD
&lt;span class=&quot;co0&quot;&gt;#DEFAULT_ACTIVE=1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TIMEOUT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;300&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#AUTOACTIVATE_ON_SQL=RepeaterLogic&lt;/span&gt;
&amp;nbsp;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;QsoRecorder&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;REC_DIR&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;spool&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;qso_recorder
&lt;span class=&quot;co0&quot;&gt;#MIN_TIME=1000&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MAX_TIME&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;3600&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SOFT_TIME&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;300&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MAX_DIRSIZE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1024&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#DEFAULT_ACTIVE=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#TIMEOUT=300&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#QSO_TIMEOUT=300&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#ENCODER_CMD=/usr/bin/oggenc -Q \&amp;quot;%f\&amp;quot; &amp;amp;&amp;amp; rm \&amp;quot;%f\&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Voter&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Voter
&lt;span class=&quot;re2&quot;&gt;RECEIVERS&lt;/span&gt;=Rx1,Rx2,Rx3
&lt;span class=&quot;re2&quot;&gt;VOTING_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;BUFFER_LENGTH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#REVOTE_INTERVAL=1000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#HYSTERESIS=50&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_CLOSE_REVOTE_DELAY=500&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#RX_SWITCH_DELAY=500&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#COMMAND_PTY=/dev/shm/voter_ctrl&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;MultiTx&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Multi
&lt;span class=&quot;re2&quot;&gt;TRANSMITTERS&lt;/span&gt;=Tx1,Tx2,Tx3
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;NetRx&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Net
&lt;span class=&quot;re2&quot;&gt;HOST&lt;/span&gt;=remote.rx.host
&lt;span class=&quot;re2&quot;&gt;TCP_PORT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;5210&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#LOG_DISCONNECTS_ONCE=0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;AUTH_KEY&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Change this key now!&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CODEC&lt;/span&gt;=S16
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_FRAMES_PER_PACKET=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_QUALITY=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_BITRATE=15000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_COMPLEXITY=2&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_VBR=0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_VBR_QUALITY=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_ABR=15000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_DEC_ENHANCER=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_FRAME_SIZE=20&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_COMPLEXITY=10&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_BITRATE=20000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_VBR=1&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;NetTx&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Net
&lt;span class=&quot;re2&quot;&gt;HOST&lt;/span&gt;=remote.tx.host
&lt;span class=&quot;re2&quot;&gt;TCP_PORT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;5210&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#LOG_DISCONNECTS_ONCE=0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;AUTH_KEY&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;Change this key now!&amp;quot;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CODEC&lt;/span&gt;=S16
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_FRAMES_PER_PACKET=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_QUALITY=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_BITRATE=15000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_COMPLEXITY=2&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_VBR=0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_VBR_QUALITY=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_ENC_ABR=15000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SPEEX_DEC_ENHANCER=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_FRAME_SIZE=20&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_COMPLEXITY=10&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_BITRATE=20000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#OPUS_ENC_VBR=1&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Rx1&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Local
&lt;span class=&quot;re2&quot;&gt;AUDIO_DEV&lt;/span&gt;=alsa:plughw:&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;AUDIO_CHANNEL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SQL_DET&lt;/span&gt;=HIDRAW
&lt;span class=&quot;re2&quot;&gt;SQL_START_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SQL_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SQL_HANGTIME&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;200&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_EXTENDED_HANGTIME=1000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_EXTENDED_HANGTIME_THRESH=15&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_TIMEOUT=600&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;VOX_FILTER_DEPTH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;VOX_THRESH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_MODE=2&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CTCSS_FQ&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;77.0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_SNR_OFFSET=0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_OPEN_THRESH=15&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_CLOSE_THRESH=9&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_BPF_LOW=60&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_BPF_HIGH=270&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SERIAL_PORT=/dev/ttyUSB0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SERIAL_PIN=CTS&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SERIAL_SET_PINS=&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#EVDEV_DEVNAME=/dev/input/by-id/usb-SYNIC_SYNIC_Wireless_Audio-event-if03&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#EVDEV_OPEN=1,163,1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#EVDEV_CLOSE=1,163,0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#GPIO_PATH=/sys/class/gpio&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#GPIO_SQL_PIN=gpio25&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PTY_PATH=/tmp/rx1_sql&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;HID_DEVICE&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;hidraw0
&lt;span class=&quot;re2&quot;&gt;HID_SQL_PIN&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;VOL_DN
&lt;span class=&quot;co0&quot;&gt;#SIGLEV_DET=TONE&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SIGLEV_SLOPE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SIGLEV_OFFSET&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SIGLEV_BOGUS_THRESH=120&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#TONE_SIGLEV_MAP=100,84,60,50,37,32,28,23,19,8&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SIGLEV_OPEN_THRESH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;SIGLEV_CLOSE_THRESH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DEEMPHASIS&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SQL_TAIL_ELIM=300&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;PREAMP&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;1.5&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PEAK_METER=1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_DEC_TYPE&lt;/span&gt;=INTERNAL
&lt;span class=&quot;re2&quot;&gt;DTMF_MUTING&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_HANGTIME&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;40&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_SERIAL&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ttyS0
&lt;span class=&quot;co0&quot;&gt;#DTMF_PTY=/tmp/rx1_dtmf&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#DTMF_MAX_FWD_TWIST=8&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#DTMF_MAX_REV_TWIST=4&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#1750_MUTING=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SEL5_DEC_TYPE=INTERNAL&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SEL5_TYPE=ZVEI1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#FQ=433475000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#MODULATION=FM&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#WBRX=WbRx1&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;WbRx1&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#TYPE=RtlUsb&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#DEV_MATCH=0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#HOST=localhost&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PORT=1234&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CENTER_FQ=435075000&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#FQ_CORR=0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#GAIN=0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PEAK_METER=1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#SAMPLE_RATE=960000&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Tx1&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TYPE&lt;/span&gt;=Local
&lt;span class=&quot;re2&quot;&gt;AUDIO_DEV&lt;/span&gt;=alsa:plughw:&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;,&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;AUDIO_CHANNEL&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;PTT_TYPE&lt;/span&gt;=Hidraw
&lt;span class=&quot;co0&quot;&gt;#PTT_PORT=/dev/ttyS0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PTT_PIN=HIDRAW&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;HID_DEVICE&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;hidraw0
&lt;span class=&quot;re2&quot;&gt;HID_PTT_PIN&lt;/span&gt;=GPIO3
&lt;span class=&quot;co0&quot;&gt;#SERIAL_SET_PINS=DTR!RTS&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#GPIO_PATH=/sys/class/gpio&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PTT_HANGTIME=1000&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TIMEOUT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;300&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TX_DELAY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_FQ=136.5&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#CTCSS_LEVEL=9&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;PREEMPHASIS&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_TONE_LENGTH&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;100&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_TONE_SPACING&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;DTMF_DIGIT_PWR&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;15&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;MASTER_GAIN&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;1.25&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;LocationInfo&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;APRS_SERVER_LIST&lt;/span&gt;=euro.aprs2.net:&lt;span class=&quot;nu0&quot;&gt;14580&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;STATUS_SERVER_LIST&lt;/span&gt;=aprs.echolink.org:&lt;span class=&quot;nu0&quot;&gt;5199&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LON_POSITION&lt;/span&gt;=1.25.30W
&lt;span class=&quot;re2&quot;&gt;LAT_POSITION&lt;/span&gt;=60.17.18N
&lt;span class=&quot;re2&quot;&gt;CALLSIGN&lt;/span&gt;=EL-GM4SLV
&lt;span class=&quot;re2&quot;&gt;FREQUENCY&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;144.9125&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TX_POWER&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;ANTENNA_GAIN&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;ANTENNA_HEIGHT&lt;/span&gt;=1m
&lt;span class=&quot;re2&quot;&gt;ANTENNA_DIR&lt;/span&gt;=-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#PATH=WIDE1-1&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#BEACON_INTERVAL=60&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;TONE&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;77&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;COMMENT&lt;/span&gt;=SvxLink by SM0SVX &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;www.svxlink.org&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;Macros&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;=EchoLink:&lt;span class=&quot;nu0&quot;&gt;9999&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;=EchoLink:&lt;span class=&quot;nu0&quot;&gt;973498&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt;=EchoLink:&lt;span class=&quot;nu0&quot;&gt;662666&lt;/span&gt;&lt;span class=&quot;co0&quot;&gt;#&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_302d5d994f7483861908ee9f146164df_3&quot;&gt;/etc/svxlink/svxlink.d/ModuleEchoLink.conf &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_302d5d994f7483861908ee9f146164df_3&quot;&gt;&lt;pre class=&quot;code&quot;&gt;[ModuleEchoLink]
NAME=EchoLink
ID=2
TIMEOUT=60
#ALLOW_IP=192.168.1.0/24
#DROP_INCOMING=^()$
#REJECT_INCOMING=^()$
#ACCEPT_INCOMING=^(.*)$
#REJECT_OUTGOING=^()$
#ACCEPT_OUTGOING=^(.*)$
#REJECT_CONF=0
#CHECK_NR_CONNECTS=2,300,120
SERVERS=servers.echolink.org
CALLSIGN=GM4SLV-L
PASSWORD=XXXXXXXXX
SYSOPNAME=John
LOCATION=[Svx] Shetland
PROXY_SERVER=my.vps.host.name
PROXY_PORT=8100
PROXY_PASSWORD=my_proxy_password
#BIND_ADDR=10.20.30.40
MAX_QSOS=5
MAX_CONNECTIONS=6
LINK_IDLE_TIMEOUT=900
#AUTOCON_ECHOLINK_ID=9999
#AUTOCON_TIME=1200
#USE_GSM_ONLY=1
#DEFAULT_LANG=en_US
#COMMAND_PTY=/dev/shm/echolink_ctrl
DESCRIPTION=&amp;quot;You have connected to a SvxLink node,\n&amp;quot;
&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_302d5d994f7483861908ee9f146164df_4&quot;&gt;/usr/local/share/svxlink/events.d/local &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_302d5d994f7483861908ee9f146164df_4&quot;&gt;
&lt;p&gt;
Edit the section &lt;code&gt;proc dtmf_cmd_received {cmd}&lt;/code&gt; to add the stanzas that run external bash scripts to stop and restart svxlink with different config files
&lt;/p&gt;
&lt;pre class=&quot;code tcl&quot;&gt;&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Executed when a DTMF command has been received&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#   cmd - The command&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# Return 1 to hide the command from further processing is SvxLink or&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# return 0 to make SvxLink continue processing as normal.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;#&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# This function can be used to implement your own custom commands or to disable&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# DTMF commands that you do not want users to execute.&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;proc&lt;/span&gt; dtmf_cmd_received &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;cmd&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #global active_module&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
  # Example: Ignore all commands starting with 3 in the EchoLink module.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #          Allow commands that have four or more digits.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #if {$active_module == &amp;quot;EchoLink&amp;quot;} {&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #  if {[string length $cmd] &amp;lt; 4 &amp;amp;&amp;amp; [string index $cmd 0] == &amp;quot;3&amp;quot;} {&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #    puts &amp;quot;Ignoring random connect command for module EchoLink: $cmd&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #    return 1&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #  }&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #}&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
  # Handle the &amp;quot;force core command&amp;quot; mode where a command is forced to be&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  # executed by the core command processor instead of by an active module.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  # The &amp;quot;force core command&amp;quot; mode is entered by prefixing a command by a star.&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #if {$active_module != &amp;quot;&amp;quot; &amp;amp;&amp;amp; [string index $cmd 0] != &amp;quot;*&amp;quot;} {&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #  return 0&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #}&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #if {[string index $cmd 0] == &amp;quot;*&amp;quot;} {&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;
  #  set cmd [string range $cmd 1 end]&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  #}&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;
  # Example: Custom command executed when DTMF 99 is received&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt; == &lt;span class=&quot;st0&quot;&gt;&amp;quot;99&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Executing external command&amp;quot;&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;online&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;exec&lt;/span&gt; /home/gm4slv/svx_noel.sh &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;  # Example: Custom command executed when DTMF 99 is received&lt;/span&gt;
  &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$cmd&lt;/span&gt; == &lt;span class=&quot;st0&quot;&gt;&amp;quot;98&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;puts&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Executing external command&amp;quot;&lt;/span&gt;
    playMsg &lt;span class=&quot;st0&quot;&gt;&amp;quot;Core&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;online&amp;quot;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;exec&lt;/span&gt; /home/gm4slv/svx_el.sh &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&lt;/span&gt;
    &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
  &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
  &lt;span class=&quot;kw1&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_302d5d994f7483861908ee9f146164df_5&quot;&gt;start with echolink : svx_el.sh &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_302d5d994f7483861908ee9f146164df_5&quot;&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;CFG&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink_el.conf
&lt;span class=&quot;re2&quot;&gt;LOG&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink.log
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;killall&lt;/span&gt; svxlink
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;killall&lt;/span&gt; svxlink
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;killall&lt;/span&gt; svxlink
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; svxlink &lt;span class=&quot;re5&quot;&gt;--daemon&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--logfile&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LOG&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--config&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$CFG&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_302d5d994f7483861908ee9f146164df_6&quot;&gt;start without echolink : svx_noel.sh &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_302d5d994f7483861908ee9f146164df_6&quot;&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;CFG&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink_noel.conf
&lt;span class=&quot;re2&quot;&gt;LOG&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svxlink.log
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;killall&lt;/span&gt; svxlink
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;killall&lt;/span&gt; svxlink
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;killall&lt;/span&gt; svxlink
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; svxlink &lt;span class=&quot;re5&quot;&gt;--daemon&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--logfile&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LOG&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--config&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$CFG&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_302d5d994f7483861908ee9f146164df_7&quot;&gt;crontab entry to start with echolink enabled at boot time &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_302d5d994f7483861908ee9f146164df_7&quot;&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;reboot &lt;span class=&quot;kw2&quot;&gt;sleep&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-u&lt;/span&gt; gm4slv &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gm4slv&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;svx_el.sh &lt;span class=&quot;sy0&quot;&gt;&amp;gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;null &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Config Files&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;config_files&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;1724-16686&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;catch_up_with_git_version&quot;&gt;Catch up with git version&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; The version of svxlink running on this Pi was self-compiled from the GIT repository&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:svxlink#update_to_latest_version_from_git&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:svxlink&quot; data-wiki-id=&quot;public:radio:topics:svxlink:svxlink&quot;&gt;Update to latest version from GIT&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; I decided to pull &amp;amp; compile the latest version so I simply followed the instructions I&amp;#039;d put on the above wiki page and all went smoothly (if slowly)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Catch up with git version&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;catch_up_with_git_version&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;16687-17020&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;dtmf_commands&quot;&gt;DTMF Commands&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Old info &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:svxlink:svxreflector_commands&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:svxlink:svxreflector_commands&quot; data-wiki-id=&quot;public:radio:topics:svxlink:svxreflector_commands&quot;&gt;SVXLink : DTMF commands&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Ignore &lt;strong&gt;Reflector&lt;/strong&gt; commands - I am not (yet) connected to the SVX Reflector &lt;a href=&quot;http://svxportal-uk.ddns.net:81/index.php&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;http://svxportal-uk.ddns.net:81/index.php&quot; rel=&quot;ugc nofollow noopener&quot;&gt;http://svxportal-uk.ddns.net:81/index.php&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;table sectionedit9&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;*#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;System Status &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;0#&lt;/code&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Help Module &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;1#&lt;/code&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Parrot Module &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;2#&lt;/code&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Echolink Module &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;17218-17318&amp;quot;} --&gt;&lt;div class=&quot;table sectionedit10&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; De-activate module&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;17320-17347&amp;quot;} --&gt;
&lt;/div&gt;

&lt;h4 id=&quot;echolink_module&quot;&gt;Echolink Module&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;div class=&quot;table sectionedit11&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;&amp;lt;node number&amp;gt;#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Connect to &lt;code&gt;&amp;lt;node number&amp;gt;&lt;/code&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;0#&lt;/code&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Play the help message&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;1#&lt;/code&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; List all connected stations&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;2#&lt;/code&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Play local EchoLink node id&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;31#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Connect to a random link or repeater&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;32#&lt;/code&gt; &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Connect to a random conference&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;4#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Reconnect to the last disconnected station&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;50#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Deactivate listen only mode&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;51#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Activate listen only mode&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;6*#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Use the connect by callsign feature&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;If connected = Disconnect, otherwise = Deactivate Echolink module &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table2&amp;quot;,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;17375-17876&amp;quot;} --&gt;
&lt;p&gt;
&lt;a href=&quot;https://github.com/sm0svx/svxlink/wiki/ModuleEchoLink&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;https://github.com/sm0svx/svxlink/wiki/ModuleEchoLink&quot; rel=&quot;ugc nofollow noopener&quot;&gt;https://github.com/sm0svx/svxlink/wiki/ModuleEchoLink&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;macros&quot;&gt;Macros&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;div class=&quot;table sectionedit12&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;D1#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Echolink &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;9999 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; Echotest &lt;/td&gt;&lt;td class=&quot;col4 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;D2#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Echolink &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;973498 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt; M0HOY-L &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; Hubnet &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;&lt;code&gt;D3#&lt;/code&gt;&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Echolink &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;662666 &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;M0JKT-L &lt;/td&gt;&lt;td class=&quot;col4&quot;&gt; FreeStar &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table3&amp;quot;,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;17955-18089&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;DTMF Commands&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;dtmf_commands&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;17021-18091&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit13&quot; id=&quot;sound_files&quot;&gt;Sound files&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; use &lt;code&gt;en_US&lt;/code&gt; when &lt;strong&gt;echolink is enabled&lt;/strong&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; this is also needed for &lt;strong&gt;reflector&lt;/strong&gt; when it&amp;#039;s re-enabled, as the &lt;code&gt;US&lt;/code&gt; files also have the additional reflector sound samples&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; use &lt;code&gt;en_GB&lt;/code&gt; when &lt;strong&gt;echolink is disable&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; easy to tell from status &lt;code&gt;*#&lt;/code&gt; which is active!&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Sound files&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;sound_files&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;18092-18399&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit14&quot; id=&quot;proxy&quot;&gt;Proxy&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; after consideration….&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; I decided to use my VPS-hosted echolink proxy&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; remove port forwards on home router for UDP/5198 &amp;amp; UDP/5199&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; open port TPC/8100 for &lt;strong&gt;only my home IP address&lt;/strong&gt; on VPS&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; this means only one IP address can reach the Proxy on port TCP/8100&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; open ports UDP/5198 &amp;amp; UDP/5199 for anywhere on VPS&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; edit echolink proxy config on VPS to allow only GM4SLV-L to connect&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level3&quot;&gt;&lt;div class=&quot;li&quot;&gt; this means only one callsign can connect to the proxy&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; start proxy in a tmux session, using bash script on VPS&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; edit ModuleEchoLink.conf on svxlink pi to use the proxy&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; restart &lt;code&gt;svx_el.sh&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;re2&quot;&gt;PROXY_SERVER&lt;/span&gt;=my.vps.host.name
&lt;span class=&quot;re2&quot;&gt;PROXY_PORT&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;8100&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;PROXY_PASSWORD&lt;/span&gt;=xxxxxxxxx&lt;/pre&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 06/04/24 07:09&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
LAST MODIFIED : 01/01/70 01:00 BST
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Proxy&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;proxy&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;18400-19212&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit15&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:svxlink&amp;amp;do=showtag&amp;amp;tag=svxlink&quot; class=&quot;wikilink1&quot; title=&quot;tag:svxlink&quot; rel=&quot;tag&quot;&gt;svxlink&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:10,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;19213-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 21:01:52 +0000</pubDate>
        </item>
        <item>
            <title>VHF / HF Xgate 2024</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:xgate:hf-vhf_xgate</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:xgate:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:xgate:start&quot; data-wiki-id=&quot;public:radio:topics:xgate:start&quot;&gt;HF / VHF Xgate&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;vhf_hf_xgate_2024&quot;&gt;VHF / HF Xgate 2024&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt; Revisiting an old project &lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;VHF \/ HF Xgate 2024&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;vhf_hf_xgate_2024&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;17-84&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;previously&quot;&gt;Previously...&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:xgate:xgate&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:xgate:xgate&quot; data-wiki-id=&quot;public:radio:topics:xgate:xgate&quot;&gt;VHF / HF X-Gate Project&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_3c3b87632146fc79efd59c4fb0fb959f_7&quot;&gt;DTMF Commands on VHF Port &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_3c3b87632146fc79efd59c4fb0fb959f_7&quot;&gt;
&lt;h2&gt;DTMF Commands&lt;/h2&gt;
&lt;div class=&quot;table sectionedit3&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Function&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Command&lt;/th&gt;&lt;th class=&quot;col2&quot;&gt;Comment&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Log on &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; 0# &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Log off &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; *99*# &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Set Frequency &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; *1fffff# &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; ffff.f kHz &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Set Channel &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; *1xxxx# &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; mem chan xxxx &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Set Mode USB &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; *21# &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Set Mode LSB &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; *22# &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0 leftalign&quot;&gt;Set Mode AM  &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; *23# &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Set TX Power Low &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; *41# &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 15W &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Set TX Power Medium &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; *42# &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 50W &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Set TX Power High &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; *43# &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 100W &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row11&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;QSY Down 0.5kHz &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; *5# &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row12&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;QSY Up 0.5kHz &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; *6# &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row13&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Monitor HF &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; *7# &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; 5 seconds &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row14&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Monitor HF &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; *7xx# &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; xx seconds &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row15&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Monitor HF &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; *7*1# &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;(Duplex Mode) Continuous Monitor ON &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row16&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Monitor HF &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; *7*0# &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;(Duplex Mode) Continuous Monitor OFF &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row17&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;ATU Tune &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; *8# &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row18&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Status &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; *9# &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row19&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;S-Meter &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; *91# &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row20&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Full Status &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; *93# &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row21&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Talkthrough ON &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; *01# &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row22&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Talkthrough OFF &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; *00# &lt;/td&gt;&lt;td class=&quot;col2 leftalign&quot;&gt;  &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;189-904&amp;quot;} --&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Previously...&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;previously&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;85-911&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;plans_for_2024&quot;&gt;Plans for 2024&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Re-install all the hardware:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; IC-M710&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Raspberry Pi X-Gate controller&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; X-Gate Interface with syllabic squelch and DTMF decoder&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Test in full-duplex VHF/UHF mode to identify any issues that need addressing to bring back to normal function&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Suspend or stop completely VHF APRS to free up V/UHF for X-Gate&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Test remote operation from Vehicle - V/UHF coverage is unlikely to be very good…&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Revisit Python code if necessary to add/remove features.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Actually &lt;em&gt;have&lt;/em&gt; real QSOs on HF using the X-Gate!&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Plans for 2024&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;plans_for_2024&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;912-1472&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;progress&quot;&gt;2024 Progress&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;2024 Progress&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;progress&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1473-1500&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;section23324&quot;&gt;23/3/24&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Connected X-Gate Interface, R.Pi controller, IC-M710 and FT8900&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Initial problem with crashing due to USB problems on R.Pi causing USB/Serial adaptor (for control of IC-M710) to fail - this was cured by using different 5V USB power supply.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Speech clipper removed from HF TX audio path due to distortion and poor audio quality.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; HF Audio drive level set to give correct HF SSB Power out&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Web server status page available by port forwarding at &lt;a href=&quot;http://gm4slv.plus.com:42109/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;http://gm4slv.plus.com:42109/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;http://gm4slv.plus.com:42109/&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; VHF uplink changed to split-band&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Input : 144.650MHz&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Output: 435.400MHz&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; This allows control even when in permanent “Monitor” or “Talkthrough”&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Enabled a 15-minute CW ident on the UHF port which identifies with my callsign and the current HF frequency/mode. &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Aradio%3Atopics%3Axgate%3Ahf-vhf_xgate&amp;amp;media=public:radio:2024:screenshot_2024-03-23_233517.png&quot; class=&quot;media&quot; title=&quot;public:radio:2024:screenshot_2024-03-23_233517.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=600&amp;amp;tok=f07b5a&amp;amp;media=public:radio:2024:screenshot_2024-03-23_233517.png&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;23\/3\/24&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;section23324&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;1501-2362&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;tmux_session&quot;&gt;TMUX Session&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Xgate software runs in a Tmux session with 3 panes&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Xgate software - printing commands etc. from the running controller code&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Relay control - independantly control various Xgate relays (PTT, Monitor, Mute, CW tone) directly, while main xgate is running.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; a shell for editing code etc.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/detail.php?id=public%3Aradio%3Atopics%3Axgate%3Ahf-vhf_xgate&amp;amp;media=public:radio:2024:screenshot_2024-03-23_232709.png&quot; class=&quot;media&quot; title=&quot;public:radio:2024:screenshot_2024-03-23_232709.png&quot;&gt;&lt;img src=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?w=600&amp;amp;tok=41d39f&amp;amp;media=public:radio:2024:screenshot_2024-03-23_232709.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;TMUX Session&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;tmux_session&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;2363-2754&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;thoughts&quot;&gt;24/3/24 : Thoughts....&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; Is the “HF Channel” 4-digit input selection really of any value?&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; It requires memorizing channel numbers and saves entering only one or two digits.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; Will probably drop this function unless I find a use for it soon.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Perhaps change to 2-digit channels and limit to a few frequently used frequency/mode combinations?&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a class=&quot;folder&quot; href=&quot;#folded_3c3b87632146fc79efd59c4fb0fb959f_8&quot;&gt;The current channels are: Memory Dictionary (4 digits) &lt;/a&gt;&lt;/p&gt;&lt;div class=&quot;folded hidden&quot; id=&quot;folded_3c3b87632146fc79efd59c4fb0fb959f_8&quot;&gt;&lt;pre class=&quot;code python&quot;&gt;mem_dict &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0101&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;1942.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;LSB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0102&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;1933.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;LSB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0103&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;1957.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;LSB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0104&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;1985.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;LSB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0105&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;1966.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;LSB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0301&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;3773.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;LSB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0302&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;3760.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;LSB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0303&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;3615.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;AM&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0501&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5276.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0502&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5279.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0503&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5298.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0504&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5301.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0505&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5304.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0506&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5317.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;AM&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0507&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5320.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0508&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5333.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0509&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5354.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0510&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5363.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0511&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5366.5&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0512&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5371.5&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0513&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5378.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0514&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5395.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0515&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5398.5&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0516&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5403.5&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0521&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5258.5&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0522&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5278.5&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0523&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5288.5&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0524&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5366.5&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0525&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5371.5&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0526&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5398.5&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0527&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5403.5&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0531&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5330.5&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0532&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5346.5&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0533&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5357.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0534&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5371.5&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0535&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5403.5&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0591&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5450.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0592&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5505.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;0701&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;7160.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;LSB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;1091&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;10051.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;24\/3\/24 : Thoughts....&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;thoughts&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;2755-4687&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;initial_try_at_2-digit_memory_channels&quot;&gt;Initial try at 2-digit memory channels&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code python&quot;&gt;mem_dict &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
&amp;nbsp;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;01&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5279.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;02&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5320.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;03&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5366.5&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;04&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5371.5&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;05&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5378.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;06&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5395.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;07&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5398.5&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;08&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5450.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;09&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;5505.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;USB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;st0&quot;&gt;&amp;quot;10&amp;quot;&lt;/span&gt; : &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;7160.0&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;LSB&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; One change in main xgate code:&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt; if len(command_two[2:]) == 4:
 &lt;/pre&gt;

&lt;p&gt;
becomes
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt; if len(command_two[2:]) == 2:
 
 &lt;/pre&gt;
&lt;pre class=&quot;code python&quot;&gt;                &lt;span class=&quot;kw1&quot;&gt;elif&lt;/span&gt; command_two&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;:&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;*1&amp;quot;&lt;/span&gt;:
                    write_file&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Frequency / Memory&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                    &lt;span class=&quot;co1&quot;&gt;#if len(command_two[2:]) == 4:&lt;/span&gt;
                    &lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;len&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;command_two&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;:&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;:
                        new_freq &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;mem_dict&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;command_two&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;:&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                        new_mode &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; mem_dict&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;command_two&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;:&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;
                        write_file&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;Memory Channel selected %s&amp;quot;&lt;/span&gt; % mem_dict&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;command_two&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;:&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                        set_frequency&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;new_freq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                        set_mode&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;new_mode&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                        write_status&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;freq&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;new_freq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                        write_status&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;mode&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;new_mode&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                    &lt;span class=&quot;kw1&quot;&gt;else&lt;/span&gt;:
                        new_freq &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;float&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;command_two&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;:&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;/&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;
                        set_frequency&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;new_freq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
                        write_status&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;freq&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;str&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;new_freq&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; modified main xgate code to be able to start in &lt;em&gt;simplex&lt;/em&gt; or &lt;em&gt;duplex&lt;/em&gt; mode by the choice of commandline argument:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; for simplex (single frequency/band uplink/downlink) which will disable the continuous monitor function to avoid getting locked out →&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;./xgate_current.py s&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; for duplex (separate uplink and downlink bands) which will enable the continuous monitor function, as it is always possible to send a command on the uplink band while the downlink is transmitting →&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;code&quot;&gt;./xgate_current.py d&lt;/pre&gt;

&lt;p&gt;
I&amp;#039;ve updated the &lt;code&gt;mercurial repository&lt;/code&gt; - added new files, committed recent changes and made a clone of it on the shack laptop - in Dropbox (which might be a bad idea?)
&lt;/p&gt;

&lt;p&gt;
There&amp;#039;s another page about &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:computers:archive:mercurial&quot; class=&quot;wikilink1&quot; title=&quot;public:computers:archive:mercurial&quot; data-wiki-id=&quot;public:computers:archive:mercurial&quot;&gt; simple Mercurial&lt;/a&gt; , as an aid to remembering how to do it each time.
&lt;/p&gt;
&lt;div class=&quot;table sectionedit10&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;24/3/24 &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/lib/exe/fetch.php?media=public:radio:2024:xgate_m710.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;public:radio:2024:xgate_m710.zip (92 KB)&quot;&gt;xgate_m710.zip&lt;/a&gt; &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;Xgate scripts &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table1&amp;quot;,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;6932-6999&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Initial try at 2-digit memory channels&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;initial_try_at_2-digit_memory_channels&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;4688-7002&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit11&quot; id=&quot;mobile_cross-band_repeat_access&quot;&gt;Mobile Cross-band repeat access&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;section29324&quot;&gt;29/3/24&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
If the X-gate is set to &lt;code&gt;simplex&lt;/code&gt; mode (single band control) on &lt;code&gt;VHF&lt;/code&gt; it should be possible to access the system via a mobile cross-band repeater from a low power UHF handheld. 
&lt;/p&gt;

&lt;p&gt;
This extends the range of the &lt;code&gt;local VHF network&lt;/code&gt;. 
&lt;/p&gt;

&lt;p&gt;
If you are within UHF simplex range of the V/UHF cross-band repeater (usually vehicle mounted) and the vehicle is located within VHF range of the X-Gate (e.g. on a suitable distant hill-top) it &lt;em&gt;should&lt;/em&gt; be possible to access the X-Gate and log in/change frequency  etc. and to operate through it on HF, from the UHF side of the vehicle&amp;#039;s Cross-Band repeater.
&lt;/p&gt;

&lt;p&gt;
I am beginning tests on this using a &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:radio_database:tm-d710&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:radio_database:tm-d710&quot; data-wiki-id=&quot;public:radio:radio_database:tm-d710&quot;&gt; TM-D710 mobile&lt;/a&gt; and &lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:radio_database:th-d72&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:radio_database:th-d72&quot; data-wiki-id=&quot;public:radio:radio_database:th-d72&quot;&gt;TH-D72 handheld&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
From the RSGB Band Plan
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 144.500 MHz   Image Modes (SSTV, Fax etc)	&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 144.600 MHz   Data Centre of Activity (MGM, RTTY etc)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; 433.8000-434.2500 MHz   Digital communications &amp;amp; Experiments&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
On 2m an appropriate place seems to be between 144.500 and 144.600, where there don&amp;#039;t seem to be any prior &lt;code&gt;centre-of-activity&lt;/code&gt; channels carved out.
&lt;/p&gt;

&lt;p&gt;
I&amp;#039;ll use 144.575MHz.
&lt;/p&gt;

&lt;p&gt;
On 70cm an appropriate place seems to be between 433.800 and 434.250 - &lt;em&gt;experiments&lt;/em&gt;
&lt;/p&gt;

&lt;p&gt;
I&amp;#039;ll use 433.825MHz
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; X-Gate uplink changed to &lt;code&gt;Simplex&lt;/code&gt; : 144.575MHz&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Mobile Cross-band repeat access&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;mobile_cross-band_repeat_access&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;7003-8357&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit12&quot; id=&quot;talkthrough_watchdog_timer&quot;&gt;Talkthrough Watchdog Timer&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
I found an old piece of the python code I&amp;#039;d written that adds a &lt;strong&gt;Talkthrough Timeout&lt;/strong&gt; to the X-Gate. It detects the commencement of a &lt;em&gt;Talkthrough&lt;/em&gt; period and starts a timer. The timeout of this watchdog is set in the code, as is a &lt;em&gt;pre-timeout&lt;/em&gt; warning time. 
&lt;/p&gt;

&lt;p&gt;
At the end of the &lt;em&gt;warning&lt;/em&gt; time the VHF port sends “di-dit” every 20 seconds superimposed over the talkthrough (HF Receive) audio, to warn the VHF user(s) that the talkthrough will terminate soon. 
&lt;/p&gt;

&lt;p&gt;
At the end of the &lt;em&gt;timeout&lt;/em&gt; period the &lt;em&gt;Talkthrough&lt;/em&gt; is turned off and the system returns to it&amp;#039;s quiescent state.
&lt;/p&gt;

&lt;p&gt;
The Barrett 2062 Crossgate has a 10 minute inactivity timeout, which closes the cross-connection (talkthrough) after 10 minutes with no user activity. 
&lt;/p&gt;

&lt;p&gt;
My X-Gate doesn&amp;#039;t take into consideration user activity, as the VHF→HF PTT does not get monitored by the X-Gate, so it is not currently possible to quantify “user inactivity”, by observing if there&amp;#039;s any traffic on the VHF port. The Watchdog as it stands is a safety precaution against talkthrough getting locked up in transmit (in either direction).
&lt;/p&gt;

&lt;p&gt;
After a timeout it&amp;#039;s a simple matter of logging in again via VHF DTMF and re-starting talkthrough if it&amp;#039;s still required. The “warning pips” give notice that this action is soon to be needed. If talkthrough is no longer needed then no further action is required.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;ideas&quot;&gt;Ideas&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Make the Watchdog timer user switchable - be able to disable it if required.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Added new DTMF Commands “Timeout on” = &lt;code&gt;* 3 1 #&lt;/code&gt;, “Timeout off” = &lt;code&gt;* 3 0 #&lt;/code&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Use these to write to the “status” file&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; The watchdog process can check the status file to decide whether to take action or not&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Tested and it works as expected&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;problems&quot;&gt;Problems&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
29/3/24
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Found that the IC-M710 HF radio has poor receive sensitivity - well below spec. 12dB SINAD should be at 0.5uV but it needs more like 3uV (or more) which is quite poor&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; X-Gate taken out of use until I can either repair the &lt;code&gt;IC-M710&lt;/code&gt; or make up connections to use the &lt;code&gt;IC-7200&lt;/code&gt;. The latter needs a 13-pin DIN plug for the rear panel ACC socket.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Talkthrough Watchdog Timer&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;talkthrough_watchdog_timer&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;8358-10492&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit13&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;div class=&quot;table sectionedit14&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; GM4SLV XGate &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Status Page &lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; &lt;a href=&quot;http://gm4slv.plus.com:42109/&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;http://gm4slv.plus.com:42109/&quot; rel=&quot;ugc nofollow noopener&quot;&gt;http://gm4slv.plus.com:42109/&lt;/a&gt; &lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table2&amp;quot;,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;10527-10593&amp;quot;} --&gt;&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:radio&amp;amp;do=showtag&amp;amp;tag=radio&quot; class=&quot;wikilink1&quot; title=&quot;tag:radio&quot; rel=&quot;tag&quot;&gt;radio&lt;/a&gt;,
	&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=tag:xgate&amp;amp;do=showtag&amp;amp;tag=xgate&quot; class=&quot;wikilink1&quot; title=&quot;tag:xgate&quot; rel=&quot;tag&quot;&gt;xgate&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;10493-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 20:38:12 +0000</pubDate>
        </item>
        <item>
            <title>HF / VHF Xgate</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:xgate:start</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:start&quot; data-wiki-id=&quot;public:radio:topics:start&quot;&gt;Radio Topics&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;hf_vhf_xgate&quot;&gt;HF / VHF Xgate&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
My old project to make a cross-connect between HF and V/UHF, using a syllabic squelch, a Raspberry Pi, DTMF control….
&lt;/p&gt;

&lt;p&gt;
&lt;script type=&quot;text/javascript&quot;&gt; catlist_baseurl = &quot;https://www.g4slv.info/dokuwiki/&quot;; catlist_basescript = &quot;doku.php&quot;; catlist_useslash = 0; catlist_userewrite = 0; catlist_sepchar = &quot;_&quot;; catlist_deaccent = 1; catlist_pagename_sanitize = 1; &lt;/script&gt;&lt;ul style=&quot;-webkit-column-count: 3; -moz-column-count: 3; column-count: 3;&quot; class=&quot;catlist_columns catlist-nslist&quot; &gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:xgate:xgate&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:xgate:xgate&quot; data-wiki-id=&quot;public:radio:topics:xgate:xgate&quot;&gt;VHF / HF X-Gate Project&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:xgate:hf-vhf_xgate&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:xgate:hf-vhf_xgate&quot; data-wiki-id=&quot;public:radio:topics:xgate:hf-vhf_xgate&quot;&gt;VHF / HF Xgate 2024&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/p&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 26/04/23 13:41&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;HF \/ VHF Xgate&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;hf_vhf_xgate&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;14-265&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;266-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 20:42:00 +0000</pubDate>
        </item>
        <item>
            <title>YaDDNet</title>
            <link>https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:yaddnet:start</link>
            <description>
&lt;p&gt;
←&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:start&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:start&quot; data-wiki-id=&quot;public:radio:topics:start&quot;&gt;Radio Topics&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;yaddnet&quot;&gt;YaDDNet&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
I no longer have anything to do with the running of YaDDNet, the online web-database for Marine DSC Loggings.
&lt;/p&gt;

&lt;p&gt;
This is a collection of information from my time as the creator of YaDDNet.
&lt;/p&gt;

&lt;p&gt;
&lt;script type=&quot;text/javascript&quot;&gt; catlist_baseurl = &quot;https://www.g4slv.info/dokuwiki/&quot;; catlist_basescript = &quot;doku.php&quot;; catlist_useslash = 0; catlist_userewrite = 0; catlist_sepchar = &quot;_&quot;; catlist_deaccent = 1; catlist_pagename_sanitize = 1; &lt;/script&gt;&lt;ul style=&quot;-webkit-column-count: 3; -moz-column-count: 3; column-count: 3;&quot; class=&quot;catlist_columns catlist-nslist&quot; &gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:yaddnet:yaddnet_new_vps&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:yaddnet:yaddnet_new_vps&quot; data-wiki-id=&quot;public:radio:topics:yaddnet:yaddnet_new_vps&quot;&gt;YaDDNet : New VPS&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:yaddnet:yaddnet_running_costs&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:yaddnet:yaddnet_running_costs&quot; data-wiki-id=&quot;public:radio:topics:yaddnet:yaddnet_running_costs&quot;&gt;YaDDNet : Running Costs&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:yaddnet:yaddnet_ssl_renewal&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:yaddnet:yaddnet_ssl_renewal&quot; data-wiki-id=&quot;public:radio:topics:yaddnet:yaddnet_ssl_renewal&quot;&gt;YaDDNet : VPS SSL Renewal&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:yaddnet:yaddnet_data_backup&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:yaddnet:yaddnet_data_backup&quot; data-wiki-id=&quot;public:radio:topics:yaddnet:yaddnet_data_backup&quot;&gt;YaDDNet Data Backup&lt;/a&gt;&lt;/li&gt;&lt;li class=&quot;catlist-page&quot;&gt;&lt;a href=&quot;https://www.g4slv.info/dokuwiki/doku.php?id=public:radio:topics:yaddnet:yaddnet_migration&quot; class=&quot;wikilink1&quot; title=&quot;public:radio:topics:yaddnet:yaddnet_migration&quot; data-wiki-id=&quot;public:radio:topics:yaddnet:yaddnet_migration&quot;&gt;Yaddnet Migration&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;/p&gt;

&lt;p&gt;
— &lt;em&gt;John Pumford-Green 26/04/23 13:41&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;YaDDNet&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;yaddnet&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;14-326&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;further_information&quot;&gt;Further Information&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.yaddnet.org&quot; class=&quot;urlextern&quot; target=&quot;_BLANK&quot; title=&quot;http://www.yaddnet.org&quot; rel=&quot;ugc nofollow noopener&quot;&gt;http://www.yaddnet.org&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Further Information&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;further_information&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;327-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 04 Jun 2026 20:27:36 +0000</pubDate>
        </item>
    </channel>
</rss>
