Both sides previous revisionPrevious revisionNext revision | Previous revision |
nodes:gb7win [2025/07/29 19:26] – m0mzf | nodes:gb7win [2025/10/11 14:53] (current) – [Current and planned ports] m0mzf |
---|
====== GB7WIN Crab Wood, Winchester ====== | ====== GB7WIN Crab Wood, Winchester ====== |
| |
**Currently 2m only, ** | |
| |
GB7WIN was commissioned on 23rd March 2025 by Alan G8IPG and Jason M0MZF as part of [[https://swhr.org.uk/|South West Hampshire Raynet's]] wider project to provide digital voice and data services to amateurs across the wider area and as a spiritual successor to [[nodes:gb7sou|GB7SOU]]. Thanks to Matt 2E0HKD for his continuing involvement in BPQ node configuration and to all the OARC packet community for helping us along the way. | GB7WIN was commissioned on 23rd March 2025 by Alan G8IPG and Jason M0MZF as part of [[https://swhr.org.uk/|South West Hampshire Raynet's]] wider project to provide digital voice and data services to amateurs across the wider area and as a spiritual successor to [[nodes:gb7sou|GB7SOU]]. Thanks to Matt 2E0HKD for his continuing involvement in BPQ node configuration and to all the OARC packet community for helping us along the way. |
|4| 70.4875MHz \\ 12.5KHz FM | V Omni 0dBd 7mAGL | - | - | planned | | | | |4| 70.4875MHz \\ 12.5KHz FM | V Omni 0dBd 7mAGL | - | - | planned | | | |
|6| 50.650MHz \\ 12.5KHz FM | V Omni 0dBd 40mAGL | 1011 QPSK 2k4 IL2P+CRC | 13dBW 2.4KHz | active | [[nodes:gb7bdh|GB7BDH]] [[nodes:gb7rdg|GB7RDG]] |[[http://wessex.hopto.org:8070/|Wessex]] | | |6| 50.650MHz \\ 12.5KHz FM | V Omni 0dBd 40mAGL | 1011 QPSK 2k4 IL2P+CRC | 13dBW 2.4KHz | active | [[nodes:gb7bdh|GB7BDH]] [[nodes:gb7rdg|GB7RDG]] |[[http://wessex.hopto.org:8070/|Wessex]] | |
|7| 432.650MHz \\ 25KHz FM | V Omni 5dBd 7mAGL | 0011 C4SK 9k6 IL2P+CRC | 14dBW 5KHz | testing | [[nodes:gb7sou|GB7SOU?]] | [[http://zepler-websdr.suws.org.uk/|SUWS]] | | |7| 432.650MHz \\ 25KHz FM | V Omni 5dBd 40mAGL | 0010 GFSK 9k6 IL2P+CRC | 14dBW 5KHz | testing | [[nodes:mb7npw|MB7NPW?]] | [[http://zepler-websdr.suws.org.uk/|SUWS]] | |
=====Coverage Maps===== | =====Coverage Maps===== |
Simulations from radiomobileonline; Outstation antenna 12m AGL; Strong signal 15dBuV/m, Weak Signal 3dBuV/m, Path "reliability" 95% | Simulations from radiomobileonline; Outstation antenna 12m AGL; Strong signal 15dBuV/m, Weak Signal 3dBuV/m, Path "reliability" 95% |
| |
^ 2m plot, 4dBi antenna^ 6m plot, 2.2dBi antenna^ | ^ 2m plot ^ 6m plot ^ |
| {{:nodes:2m_crab_wood_45m_25w_erp_base.png?400}} | {{:nodes:6m_crab_wood_45m_25w_erp_base.png?400}} | | | {{:nodes:2m_crab_wood_45m_25w_erp_base.png?400}} | {{:nodes:6m_crab_wood_45m_25w_erp_base.png?400}} | |
| | Antenna 12m AGL, 4.4dBi omni \\ Rx threshold -3dBuV (S6) \\ Strong signal field 15.4dBuV/m \\ Weak signal field 3.4dBuV/m \\ Reliability 90% | Antenna 12m AGL, 2.2dBi omni \\ Rx threshold -3dBuV (S6) \\ Strong signal field 8.2dBuV/m \\ Weak signal field -3.8dBuV/m \\ Reliability 90% | |
| |
| |
=====Technical===== | =====Technical===== |
====Hardware==== | ====Hardware==== |
* Modified Comet GP-15N @ ~40m AGL / ~200m ASL, 55m Andrews LDF7-50A, 14dBW ERP | * Modified Comet GP-15N @ ~40m AGL / ~200m ASL, 55m Andrews LDF7-50A |
* Raspberry Pi 5 / Raspberry Pi OS (Debian Bookworm) / 256GB NVMe SSD | * Raspberry Pi 5 (Debian Bookworm) |
* [[https://www.meanwell-web.com/content/files/pdfs/productPdfs/MW/HRP-100/HRP-100-spec.pdf|Meanwell HRP-100-12 PSU]] | |
* GPIO Relays for remote power switching, Dallas 1-wire temperature sensor for radio | |
* External 12V switched power & USB for future expansion | |
* 70cm: Motorola GM360 (data in / flat audio out) | * 70cm: Motorola GM360 (data in / flat audio out) |
* 2m: Motorola GM380 (data in / flat audio out) | * 2m: Motorola GM380 (data in / flat audio out) |
* 6m: Alinco DR-M06TH [[https://wiki.oarc.uk/radios:dr-m06th|(modulator / discriminator tapped)]] | * 6m: Alinco DR-M06TH [[https://wiki.oarc.uk/radios:dr-m06th|(modulator / discriminator tapped)]] |
* All ports use a NinoTNC A4 v3.42 firmware | * NinoTNC A4 v3.42 firmware |
* [[https://wiki.oarc.uk/cm108_sound_interface_smd|CM108]] on NinoTNC RX audio tap for 1k2 AX.25 decode (Direwolf 1.7) | * [[https://wiki.oarc.uk/cm108_sound_interface_smd|CM108]] on NinoTNC RX audio tap for 1k2 AX.25 decode on 2m (Direwolf 1.7) |
| |
====LinBPQ==== | ====LinBPQ==== |
**Version** | **Version** |
<code>G8BPQ AX25 Packet Switch System Version 6.0.24.74 April 2025 (hibbian)</code> | <code>G8BPQ AX25 Packet Switch System Version 6.0.25.6 October 2025 (Test)</code> |
| |
**Last updated** | **Last updated** |
<code>Mon 2025-07-28 16:33:02 BST</code> | <code>2025-09-10 10:24 BST</code> |
| |
**Global** | **Global** |
<code> | <code> |
| |
| ; Set up some global stuff |
| ; Set up some global stuff |
;T3=540 ; L2 validation timer - increase from default 180 (3min) | ;T3=540 ; L2 validation timer - increase from default 180 (3min) |
;IDLETIME=2700 ; L2 idle link shutdown timer - increase from default 900 (15min) | ;IDLETIME=2700 ; L2 idle link shutdown timer - increase from default 900 (15min) |
MINQUAL=50 ; Minimum quality to add nodes to the table | MINQUAL=50 ; Minimum quality to add nodes to the table |
| ;L2COMPRESS=1 ; Enable compression on L2 links |
| ;L2COMPMAXFRAME=3 ; Compress our MAXFRAME |
L4COMPRESS=1 ; Enable compression on L4 links | L4COMPRESS=1 ; Enable compression on L4 links |
| ;L4COMPMAXFRAME=3 ; Compress our MAXFRAME |
NODESINTERVAL=60 ; Broadcast / expect nodes every 60min | NODESINTERVAL=60 ; Broadcast / expect nodes every 60min |
OBSINIT=6 ; Initial OBS counter for an added node | OBSINIT=6 ; Initial OBS counter for an added node |
L4DELAY=10 ; L4 delayed ACK timer | L4DELAY=10 ; L4 delayed ACK timer |
L4RETRIES=6 ; L4 retry count, default=3, increased to 6 | L4RETRIES=6 ; L4 retry count, default=3, increased to 6 |
L4TIMEOUT=120 ; L4 Timeout increased to 2min | L4TIMEOUT=120 ; L4 Timeout 2min |
PACLEN=236 ; Max out NETROM frames | PACLEN=236 ; Max out NETROM frames |
| |
| ; INP3 Stuff |
| MAXHOPS=2 ; Try to keep things limited with such a high RTT |
| MAXRTT=15 ; Fixed in 25.5 |
| PREFERINP3ROUTES=1 ; |
</code> | </code> |
| |
**Routes** | **Routes** |
| <code> |
ROUTES: | ROUTES: |
GB7WOD,192,2 | GB7WOD,192,2 |
| |
; Prioritise RDG on 6m | ; Prioritise RDG on 2m |
GB7RDG,192,6 | ;GB7RDG,1,2,0,0,0,1 |
GB7RDG,191,2 | ;GB7RDG,1,6,0,0,0,1 |
| GB7RDG,192,2,0,0,0,0 |
| GB7RDG,192,6,0,0,0,0 |
| |
; Prioritise BDH on 2m | ; Prioritise BDH on 2m |
GB7BDH,192,2 | GB7BDH,1,2,0,0,0,1 |
GB7BDH,191,6 | GB7BDH,1,6,0,0,0,1 |
| |
; Prioritise MZF on 70cm | ;M0MZF-1,1,7,0,0,0,1 |
M0MZF-1,192,7 | ;M0MZF-1,1,6,0,0,0,1 |
M0MZF-1,191,2 | M0MZF-1,1,2,0,0,0,1 |
| |
G7BCS-7,192,2 | G7BCS-7,192,2,0,0,0,0 |
;GB7BSK,192,2 | ;GB7BSK,192,2 |
;MB7NPW,192,6 | ;MB7NPW,192,6 |
MAXFRAME=4 ;no., Default frames before ACK | MAXFRAME=4 ;no., Default frames before ACK |
RESPTIME=648 ;msec, Delay before L2 ACK (256*8)/3600=568 +80msec | RESPTIME=648 ;msec, Delay before L2 ACK (256*8)/3600=568 +80msec |
RETRIES=10 ;no., L2 retries before failure | RETRIES=10 ;no., L2 retries before failure, default=6 |
SLOTTIME=100 ;msec, Wait time before checking PERSIST again | SLOTTIME=100 ;msec, Wait time before checking PERSIST again |
PERSIST=255 ;255/(# hidden stations on link - 1) but we can hear everyone | PERSIST=255 ;255/(# hidden stations on link - 1) but we can hear everyone |
DIGIFLAG=0 ;Don't digipeat (=1 all, =255 UI only) | DIGIFLAG=0 ;Don't digipeat (=1 all, =255 UI only) |
| |
| INP3ONLY=0 ; |
| ENABLEINP3=1 ;Try INP3 immediately when a link is established |
| ALLOWINP3=1 ;Respond to INP3 on this port |
QUALITY=1 ;Nodes heard on this port get this quality | QUALITY=1 ;Nodes heard on this port get this quality |
MINQUAL=50 ;Therefore do not broadcast nodes heard on this port | MINQUAL=50 ;Therefore do not broadcast nodes heard on this port |
NODESPACLEN=160 ;Keep NODES broadcast shorter to help decode | NODESPACLEN=160 ;Keep NODES broadcast shorter to help decode |
; QUALADJUST=100 ; % by which to reduce quality if the best neighbor is on the same port, needs tuning | |
NONORMALIZE=1 ;Disable node quality normalisation algorithm | NONORMALIZE=1 ;Disable node quality normalisation algorithm |
IGNOREUNLOCKEDROUTES=1 ;Locked routes only | IGNOREUNLOCKEDROUTES=1 ;Locked routes only |
MAXFRAME=4 ;Default no. frames before ACK | MAXFRAME=4 ;Default no. frames before ACK |
RESPTIME=933 ;msec, Delay time before L2 ACK (256*8)/2400=853 + 80msec | RESPTIME=933 ;msec, Delay time before L2 ACK (256*8)/2400=853 + 80msec |
RETRIES=10 ;no., L2 retries before failure | RETRIES=10 ;no., L2 retries before failure, default=6 |
SLOTTIME=100 ;msec, Wait time before checking PERSIST again | SLOTTIME=100 ;msec, Wait time before checking PERSIST again |
PERSIST=255 ;255/(# hidden stations on link - 1) - but we can hear everyone | PERSIST=255 ;255/(# hidden stations on link - 1) - but we can hear everyone |
DIGIFLAG=0 ;Don't digipeat (=1 all, =255 UI only) | DIGIFLAG=0 ;Don't digipeat (=1 all, =255 UI only) |
| |
| INP3ONLY=0 ; |
| ENABLEINP3=1 ;Try INP3 immediately when a link is established |
| ALLOWINP3=1 ;Respond to INP3 on this port |
QUALITY=1 ;Nodes heard on this port get this quality | QUALITY=1 ;Nodes heard on this port get this quality |
MINQUAL=50 ;Therefore do not broadcast nodes heard on this port | MINQUAL=50 ;Therefore do not broadcast nodes heard on this port |
NODESPACLEN=160 ;Keep NODES broadcast shorter to help decode | NODESPACLEN=160 ;Keep NODES broadcast shorter to help decode |
; QUALADJUST=100 ; % by which to reduce quality if the best neighbor is on the same port, needs tuning | |
NONORMALIZE=1 ;Disable node quality normalisation algorithm | NONORMALIZE=1 ;Disable node quality normalisation algorithm |
IGNOREUNLOCKEDROUTES=1 ;Locked routes only | IGNOREUNLOCKEDROUTES=1 ;Locked routes only |
COMPORT=/dev/tnc-70cm | COMPORT=/dev/tnc-70cm |
SPEED=57600 | SPEED=57600 |
TXDELAY=40 ;msec, GM340 keys up fast | TXDELAY=100 ;msec, GM340 keys up fast |
TXTAIL=1 ;msec, Needed to prevent NinoTNC sending 30msec tail | TXTAIL=1 ;msec, Needed to prevent NinoTNC sending 30msec tail |
FRACK=4000 ;msec, Needs tuning | FRACK=4000 ;msec, Needs tuning |
MAXFRAME=8 ;Default no. frames before ACK | MAXFRAME=8 ;Default no. frames before ACK |
RESPTIME=213 ;msec, Delay time before L2 ACK (256*8)/9600=213 | RESPTIME=213 ;msec, Delay time before L2 ACK (256*8)/9600=213 |
RETRIES=10 ;no., L2 retries before failure | RETRIES=10 ;no., L2 retries before failure, default=6 |
SLOTTIME=20 ;msec, Wait time before checking PERSIST again | SLOTTIME=20 ;msec, Wait time before checking PERSIST again |
PERSIST=255 ;255/(# hidden stations on link - 1) - but we can hear everyone | PERSIST=255 ;255/(# hidden stations on link - 1) - but we can hear everyone |
DIGIFLAG=0 ;Don't digipeat (=1 all, =255 UI only) | DIGIFLAG=0 ;Don't digipeat (=1 all, =255 UI only) |
| |
| INP3ONLY=0 ; |
| ENABLEINP3=1 ;Try INP3 when a link is established |
| ALLOWINP3=1 ;Respond to INP3 on this port |
QUALITY=1 ;Nodes heard on this port get this quality | QUALITY=1 ;Nodes heard on this port get this quality |
MINQUAL=50 ;Therefore do not broadcast nodes heard on this port | MINQUAL=50 ;Therefore do not broadcast nodes heard on this port |
NODESPACLEN=160 ;Keep NODES broadcast shorter to help decode | NODESPACLEN=160 ;Keep NODES broadcast shorter to help decode |
; QUALADJUST=100 ; % by which to reduce quality if the best neighbor is on the same port, needs tuning | |
NONORMALIZE=1 ;Disable node quality normalisation algorithm | NONORMALIZE=1 ;Disable node quality normalisation algorithm |
IGNOREUNLOCKEDROUTES=1 ;Locked routes only | IGNOREUNLOCKEDROUTES=1 ;Locked routes only |
Testing INP3 in the local area; GB7BDH, M1BFP, GB7BSK, MB7NPW, GB7RDG, GB7WIN\\ | Testing INP3 in the local area; GB7BDH, M1BFP, GB7BSK, MB7NPW, GB7RDG, GB7WIN\\ |
Maybe GB7WOD? GB7WOK? GB7BRK? G7BCS? | Maybe GB7WOD? GB7WOK? GB7BRK? G7BCS? |
| |
MAXRTT=90 seems a bit high?\\ | |
MAXHOPS=5 is probably a minimum?\\ | |
| |
Plan is to document this "better" over on the OARC Wiki but for posterity... | |
| |
From discussion on Discord:\\ | From discussion on Discord:\\ |
* BPQ uses MAXRTT, round trip time | <del> * BPQ uses MAXRTT, round trip time</del> |
* BPQ sends full nodes table only when a neighbour first appears | * BPQ sends full nodes table only when a neighbour first appears |
* BPQ sends RTT probes every 4 minutes and accumulates RTT from these | * BPQ sends RTT probes every 4 minutes and accumulates RTT from these |
* XRouter resets OBSCNT after receiving a NODES table from neighbour | * XRouter resets OBSCNT after receiving a NODES table from neighbour |
* XRouter sends a node drop immediately | * XRouter sends a node drop immediately |
====LinBPQ==== | |
**Version** | |
<code>G8BPQ AX25 Packet Switch System Version 6.0.24.69 March 2025 (G8BPQ beta)</code> | |
| |
**Last updated** | |
<code>Mon 2025-04-121 22:16:14 BST</code> | |
| |
**Global** | |
<code> | |
;T3=540 ; L2 validation timer - increase from default 180 (3min) | |
;IDLETIME=2700 ; L2 idle link shutdown timer - increase from default 900 (15min) | |
MINQUAL=50 ; Minimum quality to add nodes to the table | |
L4COMPRESS=1 ; Enable compression on L4 links | |
NODESINTERVAL=60 ; Broadcast / expect nodes every 60min | |
OBSINIT=6 ; Initial OBS counter for an added node | |
OBSMIN=4 ; Minimum OBS number to select broadcasted nodes | |
L3TIMETOLIVE=25 ; L3 maximum hops count | |
L4DELAY=10 ; L4 delayed ACK timer | |
L4RETRIES=6 ; L4 retry count, default=3, increased to 6 | |
L4TIMEOUT=120 ; L4 Timeout increased to 2min | |
PACLEN=236 ; Max out NETROM frames | |
</code> | |
| |
**Routes** | |
<code> | |
ROUTES: ; Locked routes (31 maximum) | |
; CALLSIGN,QUALITY,PORT[,MAXFRAME,FRACK,PACLEN,INP3Flag] | |
GB7BDH,1,2,8,7000,236,1 ;Good to BDH on 2, intermittent on 6 | |
GB7BDH,1,6,2,4000,160,1 ;Keep PACLEN lower on 6m | |
| |
GB7RDG,1,2,8,7000,236,1 ;Good to RDG on 2, intermittent on 6 | |
GB7RDG,1,6,2,4000,160,1 ;Keep PACLEN lower on 6 | |
| |
GB7BSK,1,2,8,7000,236,1 ;Good-ish to BSK on 2 | |
MB7NPW,1,2,8,4000,120,1 ;Intermittent to NPW on 2, PACLEN low, try it out? | |
| |
M0MZF-1,1,2,8,7000,236,1 ;Good paths to Sysops | |
G8IPG-1,1,2,8,7000,236,1 | |
*** | |
</code> | |
| |
**RF Ports** | |
<code> | |
PORT | |
PORTNUM=2 | |
ID=144.9375MHz/Nino-0101/QPSK/3k6 | |
M0LTEMapInfo=RF,144.9375,QPSK,3600,3600,Mixed | |
TYPE=ASYNC | |
PROTOCOL=KISS | |
KISSOPTIONS=ACKMODE | |
COMPORT=/dev/tnc-2m | |
SPEED=57600 | |
TXDELAY=100 ;msec, Seems OK for a relay-switched 857d | |
TXTAIL=1 ;msec, Needed to prevent NinoTNC sending 30msec tail | |
FRACK=7000 ;msec, Busy channel, 7sec ACK timeout | |
PACLEN=236 ;bytes, 236 is max for a NETROM frame | |
MAXFRAME=4 ;no., Default frames before ACK | |
RESPTIME=600 ;msec, Delay time before L2 ACK (256*8)/3600=568 | |
SLOTTIME=100 ;msec, Wait time before checking PERSIST again | |
PERSIST=51 ;255/(# hidden stations on link - 1) but we can hear everyone | |
DIGIFLAG=0 ;Don't digipeat (=1 all, =255 UI only) | |
| |
;INP3 tunables | |
IGNOREUNLOCKEDROUTES=0 ;Peer to all | |
QUALITY=0 ;Disable quality based routing | |
INP3ONLY=1 ;Enable INP3 Only | |
MAXRTT=90 ;sec, Max RTT to add INP3 node | |
MAXHOPS=5 ;num, Max distance to other INP3 node | |
ENDPORT | |
| |
PORT | |
PORTNUM=6 | |
ID=50.650MHz/Nino-1011/BPSK/2k4 | |
M0LTEMapInfo=RF,50.650,QPSK,2400,2400,Backbone | |
TYPE=ASYNC | |
PROTOCOL=KISS | |
KISSOPTIONS=ACKMODE | |
COMPORT=/dev/tnc-6m | |
SPEED=57600 | |
TXDELAY=180 ;msec, DR-M06 takes ~150msec to key up | |
TXTAIL=1 ;msec, Needed to prevent NinoTNC sending 30msec tail | |
FRACK=4000 ;msec, Needs tuning | |
PACLEN=160 ;bytes, 236 is max for a NETROM frame | |
MAXFRAME=4 ;Default no. frames before ACK | |
RESPTIME=900 ;msec, Delay time before L2 ACK (256*8)/2400=853 | |
SLOTTIME=100 ;msec, Wait time before checking PERSIST again | |
PERSIST=255 ;255/(# hidden stations on link - 1) - but we can hear everyone | |
DIGIFLAG=0 ;Don't digipeat (=1 all, =255 UI only) | |
| |
;INP3 tunables | |
IGNOREUNLOCKEDROUTES=0 ;Peer to all | |
QUALITY=0 ;Disable quality based routing | |
INP3ONLY=1 ;Enable INP3 Only | |
MAXRTT=90 ;sec, Max RTT to add INP3 node | |
MAXHOPS=5 ;num, Max distance to other INP3 node | |
ENDPORT | |
</code> | |
| |
| |
=====Other FAC'd equipment on site===== | =====Other FAC'd equipment on site===== |