It took us some time, but here’s a quick update on where we’re at with the LinHT Rev B hardware tests:
What‘s working?
- Variable RF input attenuators
- RF switch – switching between TX/RX paths
- RF PA (Power Amplifier) – functional, delivering about 4.5 watts (CW)
- GNSS connection – UART interface (NMEA)
Still requires testing
- GNSS receiver’s antenna path
- PMU (Power Management Unit) – battery voltage measurements
Known problems
- Audio codec IC – reset and I²C communication issues needing a bit of investigation
- The button below PTT not triggering USB boot sequence correctly
Test setups
RX path (RF switch, attenuators)
For testing, I used a simple GNU Radio flowgraph, based on the M17 flowgraph used in LinHT, to check the signal levels.

LinHT provides Ethernet via USB, so the received baseband socket can be accessed remotely by forwarding it via SSH:
ssh -o StreamLocalBindUnlink=yes -L /tmp/bsb_rx:/tmp/bsb_rx root@10.17.17.17
BTW, it would be awesome to have CARI support for such things in LinHT at some point!
With the flowgraph running, I toggled the RF switch and adjusted the attenuators while observing signal levels.

TX path
For the TX path test, I kept it simple. I’ve set the RF switch to “transmit” using the new controls of the web UI and transmitted M17 with the gui_test program (included in the LinHT image).

I was able to hit my repeater OE3XOR with the M17 RF transmission.
Software changes
There were some required software changes to get the new hardware components working.
Device tree updates in meta-linht-hardware:
- New audio codec
- RF attenuators
- RF switch
- RF power amplifier
- Updated changed GPIO pins
Experimental driver support in liblinht-ctrl:
- RF attenuator control
- RF switch control
- RF PA control
- Corresponding linht-web controls added

You can find more information about LinHT in the M17 Foundation’s wiki.
Enjoy experimenting with M17!
Leave a Reply