User Tools

Site Tools


packet:ninotnc

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
packet:ninotnc [2025/11/10 14:03] – [NinoTNC 3D printed cases] m0ltepacket:ninotnc [2026/02/08 14:36] (current) – [Firmware] m0lte
Line 9: Line 9:
 [[https://groups.io/g/ninotnc|groups.io mailing list]] [[https://groups.io/g/ninotnc|groups.io mailing list]]
  
-===== Group Buys ===== 
  
-OARC has run two successful UK/EI group buys, with around 250 kits distributed across two rounds.+[[packet:ninotnc-ordering-howto|Here is information on ordering a set of components to build up a NinoTNC]]. It's fast and easy.
  
-There are no current plans for another group buy, however never say never. 
- 
-Board + CPU sets are available in the UK, see below. 
- 
-[[packet:ninotnc-ordering-howto|Here is information on ordering a set of components to build up a NinoTNC]]. It's fast and easy. 
  
-===== UK Stock =====+===== EU Stock =====
  
-By agreement, Tom M0LTE sometimes holds stock of PCB + microcontroller only kits in the UK. These are available from [[https://ko-fi.com/s/981d919ea3|https://ko-fi.com/s/981d919ea3]]. Two sets of components from Mouser takes you over their free shipping threshold.+Tindie shop by Vic EI5IYB [[https://www.tindie.com/products/ei5iyb/ninotnc-a4r3-board-and-cpu-chip/|https://www.tindie.com/products/ei5iyb/ninotnc-a4r3-board-and-cpu-chip/]] If shipping to your country is not listed, just contact Vic, via Tindie or QRZ mail, and he will get you sorted.
  
 ===== Operating modes ===== ===== Operating modes =====
Line 149: Line 143:
  
  
-===== Experimental new modes ===== 
- 
-Packet radio on HF is typically 300 baud (and bits/sec), using the Bell 103 modem standard. This was released by AT&T Corporation in 1962. It is extremely susceptible to interference and performs poorly with weak signals common in amateur radio. 
- 
-61 years later, we have far more processing power at our disposal, which means it is possible to achieve much better performance using the same RF bandwidth. While there are some interesting projects around, e.g. FreeDV / Codec2, nothing so far has been found which is easily accessible for amateurs to deploy in a packet radio setting.  
- 
-Until now. 
- 
-Nino, KK4HEJ, has been developing a number of new modes which can be added to the NinoTNC with a simple firmware upgrade. Instead of frequency-shift keying (i.e. tone changing in pitch), the new modes are based on phase-shift keying (i.e. phase of a continuous sine wave changing). BPSK (binary phase shift keying) devices modulate input signals by 0° and 180° phase shifts. QPSK (quadrature phase shift keying) devices modulate input signals by 0°, 90°, 180°, and 270° phase shifts, thus in QPSK mode, each symbol can have one of four values, meaning it is possible to transmit two bits of data in each symbol as opposed to just one, doubling the effective throughput in the same bandwidth, at the expense of requiring a bit more signal-to-noise ratio. 
- 
-The great news is that these modes are now present in the latest firmware. 
- 
-These new modes are then selectable using the Signals DIP switch. The software node / client settings can be left as-is - the modulation is completely transparent to them, and this can be used for any kind of packet radio traffic. However, given these are new modes, which may perform quite differently (likely better!) than Bell 103, new values for other parameters such as maxframe, frack, paclen may need to be found, but the Network 105 recommendation of paclen=60, maxframe=1, frack=5000 are probably a good starting point until more is known about how these modes perform in the wild.  
- 
-Until we know more, suitable BPQ port settings might be: 
- 
-<code> 
-PORT 
-  PORTNUM=1 
-  ID=HF 
-  TYPE=ASYNC 
-  PROTOCOL=KISS 
-  KISSOPTIONS=ACKMODE 
-  COMPORT=/dev/ttyACM0 
-  SPEED=57600 
-  FRACK=7000 
-  PACLEN=80 
-  NODESPACLEN=60 
-  DIGIFLAG=0 
-  MAXFRAME=1 
-  RETRIES=10 
-  QUALITY=192 
-  MINQUAL=100 
-  TXDELAY=100 
-  TXTAIL=300 
-  RESPTIME=100 
-  T3=300 
-ENDPORT 
-</code> 
- 
-Obviously, there is no cross- or backwards-compatibility with any old modes or indeed any other model of modem or software out there at this point. You switch exclusively to this on-air scheme using the Signals DIP switch on the NinoTNC. 
- 
-Some notes from Nino: 
- 
-> The speeds refer to gross bit rate, not including IL2P overhead. The baud rates are 300 for the narrow modes and 1200 for the wide modes. Net bit rate will obviously be slightly less.  
- 
-> Precise tuning will always be an advantage on SSB, but these have more inherent frequency mismatch tolerance than AFSK. 300 can deal with up to about 50 Hz. 1200 should work up to about 100 Hz. The QPSK modes are slightly less, respectively. 
- 
-> In addition, the wideband PSK modes should work better than AFSK over FM, e.g. on 2m. I also expect these to work through mic/speaker connections or direct modulator/discriminator connections. Data port not required, but also not an obstacle. 
- 
-> The old 2400 bps audio mode at 0100 and 0101 will go away. It wasn't based on any widely-used standard and 2400 QPSK is far superior. 
- 
-Performing the firmware update is easy- follow the instructions [[https://github.com/ninocarrillo/flashtnc/blob/master/README.md|here]] on Windows or Linux. Be sure to take the precautions mentioned on that page. 
- 
-Once you have updated, you can set your signals switch to one of the new modes as per the table above. 
- 
-To switch back to the previous mode, just change your signals switch settings. You don't even need to restart your software - the change is immediate and totally transparent to the software running on the PC. 
- 
-Given these are new modes, it is at the very least good manners that we ID regularly in a well-known mode. To that end, this firmware IDs every 9 minutes in BPSK/QPSK modes, modulated in 1600/1800 AFSK AX.25. 
- 
-On transmit, like any data mode, it's important to make sure that your signal is linear, i.e. clean. My recommendation is to turn your rig power up fairly high, turn your TX DEV pot on the TNC down to zero, hold down the TX TEST button on the NinoTNC until it goes into transmit test mode where it repeatedly transmits frames, let go of the button, then turn up the TX DEV pot on the TNC until you are transmitting the desired power level. Press and hold the TX TEST button for a moment and the TNC will come out of TX test mode. 
- 
-Usage and testing in any scenario is encouraged: 
- 
-  * between nodes 
-  * accessing a node 
-  * keyboard to keyboard, e.g. using QtTermTCP at both ends 
-  * on QO-100 
-  * even HF APRS! (Maybe someone will put up a BPSK or QPSK iGate?!) 
- 
-Don't use this on established FSK packet channels - this will be QRM to anyone else on frequency - pick a clear channel anywhere in All Modes / Data sections of bands. 
- 
-Please be sure to feed back your experiences to Nino and others via OARC Discord. 
- 
-Usage with QtSoundModem 
- 
-The user must: 
- 
-  * choose "IL2P Mode"->"IL2P RX+TX" or "IL2P Only" under the Settings->Setup Modems menu in QTSM 
-  * and ensure the center frequency in QTSM is set to 1500. 
  
 ===== Surface-mount versions ===== ===== Surface-mount versions =====
Line 410: Line 324:
  
 * Note - for a startup script you should always use the temporary value rather than writing to memory each time * Note - for a startup script you should always use the temporary value rather than writing to memory each time
-=== GPIO === 
-With Raspberry Pi GPIO, put /usr/bin in the crontab path, and add the following to /etc/crontab: 
  
-<code> 
-# 1000 - BPSK300 
-0 *     * * *   root    raspi-gpio set 5 op dh && raspi-gpio set 6 op dl && raspi-gpio set 13 op dl && raspi-gpio set 19 op dl 
- 
-# 1001 - QPSK600 
-30 *    * * *   root    raspi-gpio set 5 op dh && raspi-gpio set 6 op dl && raspi-gpio set 13 op dl && raspi-gpio set 19 op dh 
-</code> 
- 
-dl = drive low, dh = drive high. 
- 
-Wire the numbered GPIO pins to the bottom of the MODE DIP switch, turn all the switches off, and it'll mode-switch automatically. I've gone for BPSK300 for the first half of each hour, and QPSK600 for the second half. 
- 
-I picked GPIOs 5, 6, 13 and 19 (consecutive physical pins) to map to the DIP switch pins from left to right as you look at the PCB. 
- 
-=== MCP2221A === 
- 
-The MCP2221A USB chip has four GPIOs which can be used to control the mode, instead of the DIP switches. This can be useful particularly on a remote site, and removes the need for a second cable (and works with a machine without its own GPIO interface). 
- 
-This is experimental and is likely to change. See https://github.com/g5dsg/2221aTool for up to date info. Thanks to Dan for working on this. 
- 
-General steps: 
- 
-''git clone https://github.com/g5dsg/2221aTool.git'' 
- 
-Install python3. 
- 
-then, once (persistent): 
- 
-''sudo python3 ./2221aTool.py setup-gpio'' 
- 
-this will configure the GPIO pins as outputs, and make them all low at power on. 
- 
-then, when required (non-persistent): 
- 
-''sudo python3 ./2221aTool.py set-gpio 1111'' 
- 
-where 1111 is the state of the four switches, left to right. 
- 
-Wiring as follows. **NOTE - you MUST either remove the DIP switch or leave all four switches set permanently off with the jumpers in place.** 
- 
-Note: bit of an edge case, but it is required to run ''sudo python3 ./2221aTool.py setup-gpio'' at least once on a TNC before it can be flashed with new firmware, or indeed just used normally at all, at least while some of the MODE DIP switches are set to zero. 
- 
-{{:packet:ninotnc-mcp2221a-mode.jpg?400|}} 
  
 ===== Pinout ===== ===== Pinout =====
  
-Note: this is the BACK / SOLDER side of the PLUG.+Note: this is the BACK / SOLDER side of the PLUG. You are looking at the solder cups, NOT the pins.
  
 {{:kantronicstncwiring.png|}} {{:kantronicstncwiring.png|}}
Line 492: Line 361:
 </code> </code>
  
-Use v3 firmware unless you know you have a 512kb chip, which is none of the OARC UK kits (i.e. ignore the v4 firmware - it's the samebut for the bigger chip).+Use v3 firmware if you have a 256kb chip, or the v4 firmware if you have a 512kb chip. They are functionally identicaljust tailored for the memory map of the device.
  
 If you get dire warnings about bricked TNCs, know is this highly unlikely. Unplug TNC, reboot system, plug TNC, try again. If you get dire warnings about bricked TNCs, know is this highly unlikely. Unplug TNC, reboot system, plug TNC, try again.
Line 505: Line 374:
  
 {{:radios:tait-volume.jpeg?400|}} {{:radios:tait-volume.jpeg?400|}}
 +
 +===== TXTAIL note =====
 +
 +Fun finding. Nino implemented TXTAIL support in April, to support a newer Icom with digital audio chain with latency. It seems that BPQ sends a TXTAIL KISS command with value 3 (30ms) by default. My 70cm 9k6 port has therefore had a 30ms tail since then. That's a ton of overhead at 9k6!  TXTAIL=0 in the port config seems to result in BPQ still sending 3 (30ms) to the modem periodically. But TXTAIL=1 (ms) in the config seems to result in BPQ sending TAIL KISS command with value 0 (0ms) which is what we probably want. Therefore my recommendation is to put TXTAIL=1 into the PORT config for any NinoTNC port that isn't an Icom 9700.
packet/ninotnc.1762783388.txt.gz · Last modified: by m0lte