Update readmewith more up-to-date info
This commit is contained in:
parent
7d2e20e9f3
commit
384a89d3d5
1 changed files with 301 additions and 46 deletions
347
README.md
347
README.md
|
|
@ -1,76 +1,331 @@
|
|||
[![CC BY-NC-SA 4.0][cc-by-nc-sa-shield]][cc-by-nc-sa]
|
||||
|
||||
# LinHT-hw
|
||||
Open-source hardware, Linux-based, SDR handheld transceiver. [OpenHT](https://github.com/M17-Project/OpenHT-hw) successor with greatly simplified hardware - no FPGAs involved.
|
||||
This project offers a replacement board for the Retevis C62 radio, greatly expanding its capabilities.
|
||||
|
||||
## Hardware
|
||||
The device uses an [MCM-iMX93](https://www.compulab.com/products/computer-on-modules/mcm-imx93-nxp-i-mx-93-som-smd-system-on-module) System on Module (SoM) running Linux. The RF front-end is based on the [Semtech SX1255](https://www.semtech.com/products/wireless-rf/lora-core/sx1255). The chip is used as a complete IQ modulator/demodulator, allowing for true all-mode support.
|
||||
**Open-source, Linux-based, SDR handheld transceiver**
|
||||
|
||||
### Resources
|
||||
**CPU:**
|
||||
[![CC BY-NC-SA 4.0][cc-by-nc-sa-shield]][cc-by-nc-sa]
|
||||

|
||||
[](https://m17-project.github.io/LinHT-hw/)
|
||||

|
||||
|
||||
* Dual-core ARM Cortex-A55 @ 1.7GHz
|
||||
* ARM Cortex-M33 coprocessor @ 250MHz
|
||||
* Floating Point Unit
|
||||
* ARM Ethos U-65 microNPU (Neural Processing Unit with TensorFlow Lite support)
|
||||
## What is LinHT?
|
||||
|
||||
**Memory:**
|
||||
**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.
|
||||
|
||||
* 2GB LPDDR4
|
||||
* 32GB eMMC
|
||||
It is the **successor of the OpenHT project**, with focus on:
|
||||
|
||||
**RF:**
|
||||
* 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.
|
||||
|
||||
* 500kHz bandwidth complete IQ transceiver
|
||||
LinHT is developed by members of the **M17 community** and is intended primarily
|
||||
for **radio amateurs, SDR experimenters, and developers**.
|
||||
|
||||
## Software
|
||||
Developers can use C/C++/Python as well as (or in conjunction with) GNU Radio flowgraphs. Tools such as gcc are built-in.
|
||||
This repository contains the **hardware design files** for LinHT.
|
||||
|
||||
### Supported modes (so far):
|
||||
> ⚠️ **Important:** LinHT is **not a consumer product**.
|
||||
> It is an experimental, community-driven open hardware project.
|
||||
|
||||
* FM transmission and reception with pre-/de-emphasis and CTCSS,
|
||||
* SSB transmission and reception,
|
||||
* M17 - transmission and reception,
|
||||
* TETRA - reception only,
|
||||
* Demo 64QAM transmission at 2Mbps
|
||||
## Key ideas behind LinHT
|
||||
|
||||
Other modes can be added later (FreeDV, APRS, etc.).
|
||||
* **True SDR**: IQ baseband access, not audio-only hacks
|
||||
* **Linux-first**: no microcontroller firmware lock-in
|
||||
* **No FPGA**: easier development, lower barrier to entry
|
||||
* **Open everything**: hardware, software, toolchains
|
||||
* **Hackable handheld**: not just another black box HT
|
||||
|
||||
## Images
|
||||
## Hardware overview
|
||||
|
||||
### Download images
|
||||
LinHT is built around a Linux SoM and a wideband IQ transceiver.
|
||||
|
||||
Prebuilt images for LinHT can be downloaded [here](https://m17project.org/linht/).
|
||||
* **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)
|
||||
|
||||
### Building images
|
||||
**CPU**
|
||||
|
||||
Instructions for setting up the Yocto build environment can be found in the [M17 Wiki](https://wiki.m17foundation.org/index.php?title=LinHT_Image_Build).
|
||||
All layers required to build the image are located in the M17 Project GitHub:
|
||||
* Dual-core ARM Cortex-A55 @ 1.7 GHz
|
||||
* ARM Cortex-M33 coprocessor @ 250 MHz
|
||||
* Floating-Point Unit
|
||||
* ARM Ethos-U65 microNPU (TensorFlow Lite support)
|
||||
|
||||
- [meta-linht-hardware](https://github.com/M17-Project/meta-linht-hardware): Provides machine configuration and hardware support for the LinHT hardware.
|
||||
- [meta-linht-software](https://github.com/M17-Project/meta-linht-software): Provides application software, libraries, and system configuration.
|
||||
- [meta-linht-sdr](https://github.com/M17-Project/meta-linht-sdr): A modified version of [meta-sdr](https://github.com/balister/meta-sdr), providing the GNU Radio package.
|
||||
**Memory**
|
||||
|
||||
### Flashing
|
||||
* 2 GB LPDDR4
|
||||
* 32 GB eMMC
|
||||
|
||||
To flash the images to LinHT the [Universal Update Utility](https://github.com/nxp-imx/mfgtools/releases) is needed.
|
||||
LinHT needs to be booted into flash mode (holding the secondary side button while booting).
|
||||
Once in flash mode, the image can be written with uuu:
|
||||
```bash
|
||||
uuu -v -b emmc_all imx-boot-mcm-imx93-sd.bin-flash_singleboot linht-image-mcm-imx93.rootfs.wic.zst
|
||||
```
|
||||
### RF capabilities (revision B target)
|
||||
|
||||
## Driver
|
||||
| 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 |
|
||||
|
||||
To access LinHTs network device under windows, [RNDIS driver](https://www.catalog.update.microsoft.com/Search.aspx?q=USB%20RNDIS%20Gadget) need to be installed.
|
||||
> 📌 **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**
|
||||
|
||||
> 📅 **December 2025 status**
|
||||
> Revision B is currently being finalized, manufactured, and tested.
|
||||
> 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**, 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 work is licensed under a
|
||||
[Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License][cc-by-nc-sa].
|
||||
|
||||
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
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue