# LinHT-hw **Open-source, Linux-based, SDR handheld transceiver** [![CC BY-NC-SA 4.0][cc-by-nc-sa-shield]][cc-by-nc-sa] ![GitHub Actions](https://github.com/M17-Project/LinHT-hw/actions/workflows/main.yml/badge.svg) [![Docs](https://img.shields.io/badge/docs-GitHub%20Pages-blue)](https://m17-project.github.io/LinHT-hw/) ![Status](https://img.shields.io/badge/status-active%20development-orange) ## What is LinHT? **LinHT** is an open-source handheld **software-defined radio (SDR) transceiver** built around a modern Linux System-on-Module and a true IQ RF front-end. It is the **successor of the OpenHT project**, with focus on: * simpler and more maintainable hardware, * no FPGA in the signal path, * tight integration with Linux, GNU Radio, and modern SDR tooling, * long-term openness and hackability. LinHT is developed by members of the [**M17 community**](https://m17project.org) and is intended primarily for **radio amateurs, SDR experimenters, and developers**. This repository contains the **hardware design files** for LinHT. > ⚠️ **Important**
> LinHT is **not a consumer product** yet.
> It is an experimental, community-driven open hardware project. ## Key ideas behind LinHT * **True SDR**: IQ baseband access, not FM-only * **Linux-first**: no microcontroller firmware lock-in * **No FPGA**: easier development, lower entry barrier * **Open everything**: hardware, software, toolchains * **Hackable handheld**: not just another black box walkie-talkie ## Hardware overview LinHT is built around a Linux SoM and a wideband IQ transceiver. * **System on Module:** [CompuLab MCM-iMX93](https://www.compulab.com/products/computer-on-modules/mcm-imx93-nxp-i-mx-93-som-smd-system-on-module) * **RF front-end:** [Semtech SX1255](https://www.semtech.com/products/wireless-rf/lora-core/sx1255) **CPU** * Dual-core ARM Cortex-A55 @ 1.7 GHz * ARM Cortex-M33 coprocessor @ 250 MHz * Floating-Point Unit * ARM Ethos-U65 microNPU (TensorFlow Lite support) **Memory** * 2 GB LPDDR4 * 32 GB eMMC ### RF capabilities (revision B target) | Parameter | Value | | --------------- | ------------------------------------------------------------- | | Frequency range | **UHF band** (exact limits depend on PA/filter configuration) | | Bandwidth | up to **500 kHz IQ** | | Architecture | Direct IQ (complex baseband) | | TX power | up to **~5 W** (revision B, internal PA) | | RX features | Programmable attenuation, gain control | | Modes | FM, SSB, M17, experimental digital modes | > 📌 **UHF only!**
> VHF support is frequently requested, but **is not planned for revision B**. > The current priority is **stability, manufacturability, and software maturity**. ## Software overview LinHT runs a **custom Yocto-based Linux distribution** designed for SDR and embedded radio use. ### Supported development models * C / C++ * Python * GNU Radio flowgraphs * SoapySDR * Custom DSP pipelines Standard Linux tools (gcc, gdb, strace, etc.) are available directly on the device. ### Supported modes (current status) * ✅ FM (TX/RX) with pre-/de-emphasis and CTCSS * ✅ SSB (TX/RX) * ✅ **M17** (TX/RX) * ✅ TETRA (RX only) * 🧪 Experimental 64-QAM @ 2 Mbps * ⏳ Planned / possible: FreeDV, APRS, packet radio, custom modulations ## Hardware revisions LinHT is developed iteratively. Each revision serves a specific purpose. | Revision | Status | Purpose | | ---------- | --------------------------------------------- | -------------------------------------------- | | **Rev. A** | Completed | Early prototype, architecture validation | | **Rev. B** | In progress | Feature-complete, manufacturing-ready design | ### Revision A * Manufactured earlier in 2025 * **4 assembled prototype units** * Used to: * validate the Linux + SDR architecture, * bring up SX1255 under Linux, * start software and DSP development, * identify mechanical, RF, and power issues * Revision A was **never intended for production**. ### Revision B (current focus) * Incorporates lessons learned from Rev. A * Major improvements: * redesigned power supply * internal PA (~5 W) * improved RF path and attenuation for RX * cleaner layout and grounding * **Not yet released for manufacturing** > 📅 **February 2026 status**
> A test batch of Revision B PCBs is currently being assembled.
> Please check this page later for updates. ## Repository contents This repository contains: * KiCad 9.0 project files * Schematics * PCB layout * Manufacturing outputs (generated automatically) Gerbers, BOM, pick-and-place files, and schematics are: * generated automatically via **GitHub Actions** * published on [**GitHub Pages**](https://m17-project.github.io/LinHT-hw/) ## Required hardware (donor radio) LinHT is designed as a **replacement mainboard** for the **Retevis C62 handheld radio**. You will need: * a Retevis C62 (donor device) * its: * enclosure * display * keypad * battery * connectors More details (Rev. A focused, older but useful): [LinHT Open SDR Handheld For Radio Amateurs](https://uart.cz/2811/linht-open-sdr-handheld-for-radio-amateurs/) ## Firmware images Prebuilt Linux images for LinHT are available here: [https://m17project.org/linht/](https://m17project.org/linht/) Documentation: * [https://wiki.m17foundation.org/index.php?title=LinHT_Image_Build](https://wiki.m17foundation.org/index.php?title=LinHT_Image_Build) Yocto layers: * [meta-linht-hardware](https://github.com/M17-Project/meta-linht-hardware) * [meta-linht-software](https://github.com/M17-Project/meta-linht-software) * [meta-linht-sdr](https://github.com/M17-Project/meta-linht-sdr) ## Flashing the device Flashing is done using **NXP Universal Update Utility (uuu)**. 1. Boot LinHT into flash mode (hold the secondary side button while powering on) 2. Flash using: ```bash uuu -v -b emmc_all imx-boot-mcm-imx93-sd.bin-flash_singleboot linht-image-mcm-imx93.rootfs.wic.zst ``` Tool download: [mfgtools](https://github.com/nxp-imx/mfgtools/releases) To access LinHT’s USB network device on Windows, install the **RNDIS driver**: [microsoft.com USB RNDIS Gadget](https://www.catalog.update.microsoft.com/Search.aspx?q=USB%20RNDIS%20Gadget) ## Documentation & Wiki Primary documentation lives on the **M17 Wiki**: * [LinHT overview](https://wiki.m17foundation.org/index.php?title=LinHT) * [Image build instructions](https://wiki.m17foundation.org/index.php?title=LinHT_Image_Build) * [Image usage & manual](https://wiki.m17foundation.org/index.php?title=LinHT_Image_Manual) ## Contributing LinHT is a **community project** and contributions are welcome. The best way to get involved is [**joining the M17 Discord**](https://discord.gg/4brEP8wwVp), look for channel: **#linht**. This is the preferred place to: * discuss ideas, * coordinate work, * ask questions, * avoid duplicated effort. Other ways to contribute: * Open issues in this repository (design notes, questions, suggestions) * Help on the **software side** (especially welcome): * Yocto recipes * device tree improvements * CI / GitHub Actions * build automation * Explore and extend [LinHT-utils](https://github.com/M17-Project/LinHT-utils) If you’re an experienced **embedded Linux or SDR developer**, we would love your help. ## FAQ – Frequently Asked Questions ### ❓ Where can I buy LinHT hardware? You currently **cannot buy LinHT as a product**. To build LinHT, you need to: * manufacture the PCB yourself (using provided Gerbers), * source components, * assemble the board, * use a **Retevis C62** handheld radio as a donor for: * enclosure, * display, * keypad, * battery, * connectors. This may change in the future. ### ❓ Is LinHT suitable for everyday radio use? Not yet. And maybe never in the "consumer radio" sense. LinHT is currently best suited for: * developers, * radio amateurs comfortable with Linux, * SDR experimenters, * people who enjoy building and debugging hardware. You should **not** expect: * plug-and-play user experience, * polished UI, * certification, * warranty, * commercial-grade RF compliance. ### ❓ Does LinHT support VHF? **No, not in revision B.** VHF support is a **frequently requested feature**, but it is **not planned for revision B**, adding another band significantly increases: * RF complexity, * filtering requirements, * PCB area, * development time. Right now, the project is focused on: * stabilizing the hardware, * finishing revision B, * improving software and DSP, * validating the new power amplifier and RF chain. VHF is **not ruled out** for future revisions, but it is **not a current priority**. ### ❓ Is LinHT certified / legal to transmit with? LinHT itself is **not certified**. Responsibility lies with the builder and the operator. LinHT is intended primarily for: * amateur radio use, * experimental licenses, * lab and research environments. Always follow your local radio regulations. ### ❓ I want to help. Where do I start? The best starting point is **discussion**. Join the M17 Discord, channel: **#linht**. Good ways to contribute: * software development (Yocto, drivers, tooling), * testing and feedback, * documentation, * RF/DSP experiments, * CI and automation improvements. If you’re unsure where to help - just ask. ## License This project is licensed under: **Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International** You are free to: * share * adapt Under the conditions: * attribution * non-commercial use * share alike [![CC BY-NC-SA 4.0][cc-by-nc-sa-image]][cc-by-nc-sa] ## Acknowledgements LinHT is developed by the **M17 community**, with contributions from many individuals. Thanks to everyone testing prototypes, reviewing schematics, writing software, and sharing ideas. [cc-by-nc-sa]: http://creativecommons.org/licenses/by-nc-sa/4.0/ [cc-by-nc-sa-image]: https://licensebuttons.net/l/by-nc-sa/4.0/88x31.png [cc-by-nc-sa-shield]: https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey.svg