- README: add 'What's different from OpenGD77' (incl. the new SK2 mute) and a dedicated 'Flashing' section (DFU steps, per-model flash.sh, donor note). - scripts/forgejo-release.sh: build/attach a single platform or all, reuse an existing release, replace same-named assets, and warn if freetrxVersion.h doesn't match the tag. - TOOLS.md: document the platform build argument. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
111 lines
4.9 KiB
Markdown
111 lines
4.9 KiB
Markdown
# FreeTRX
|
||
|
||
**FreeTRX is a fork of the [OpenGD77](https://opengd77.org) firmware** for DMR
|
||
transceivers built around the STM32F405VGT MCU, AT1846S RF chip and HR-C6000 DMR
|
||
chipset — the **TYT MD-UV380 / Retevis RT-3S** and **Baofeng DM-1701 / Retevis
|
||
RT-84**.
|
||
|
||
It adds a number of UI and quality-of-life changes on top of OpenGD77 (segmented
|
||
S-meter, 7-segment frequency font, screen dimming, an audio-mute function, menu
|
||
icons, and more). See [`CHANGELOG.md`](CHANGELOG.md) for the full list.
|
||
|
||
## Screenshots
|
||
|
||
| Segmented S-meter & DMR call | 7-segment frequency display |
|
||
| --- | --- |
|
||
|  |  |
|
||
|
||
## What's different from OpenGD77
|
||
|
||
FreeTRX keeps OpenGD77's core (DMR/FM, hotspot, CPS compatibility) and adds:
|
||
|
||
- **Audio mute — new SK2 short-tap.** A short tap of **SK2** on the VFO/Channel
|
||
screen toggles the speaker mute on and off. Turning the **volume knob fully
|
||
down** counts as muted too. While muted, a bold **"M"** appears in the status
|
||
bar (left of the battery) and the **red LED flashes** (0.5 s every 2 s). SK2's
|
||
existing roles are unchanged: held as a modifier, extra-long-press for
|
||
monitor/squelch-off, and — while a DMR QSO is on screen — a tap still sets the
|
||
TX talkgroup to the incoming one.
|
||
- **Segmented block S-meter** with one block per S-level (S1–S9 green, S9+ red)
|
||
and a scale label row (S1 S3 S5 S7 S9 / +20 +40 +60).
|
||
- **7-segment "LED" frequency font** with faintly-lit inactive segments, on the
|
||
VFO and the SK1-held frequency view.
|
||
- **Screen dimming** — optionally dim the backlight to 100 / 50 / 30 % after
|
||
inactivity (Auto backlight mode); new setting in Display Options.
|
||
- **Main-menu icons** next to each top-level entry.
|
||
- **DMR reliability fix** — resolves a hard-fault (freeze needing a battery pull)
|
||
on the DMR path that affected recent self-built OpenGD77 revisions.
|
||
|
||
See [`CHANGELOG.md`](CHANGELOG.md) for the complete list.
|
||
|
||
## Supported radios
|
||
|
||
This first iteration is developed for and **tested only on the TYT MD-UV380 and
|
||
Retevis RT-3S**. No other radios are officially supported at this time.
|
||
|
||
If you have another radio that OpenGD77 supports (Baofeng DM-1701 / Retevis RT-84,
|
||
MD-9600, MD-380, MD-2017, …) and would like to help test FreeTRX on it, that would
|
||
be very welcome — please email **Marcus, DK1DA** at <qsl@dk1da.de>.
|
||
|
||
## Upstream source
|
||
|
||
This fork is based on the official OpenGD77 source release **R20260131**
|
||
(source snapshot `OpenGD77_MDUV380_DM1701_20260130`):
|
||
|
||
<https://opengd77.eu/index.php?dir=MDUV380_DM1701_RT3S_RT84/R20260131/sources_and_tools/&file=OpenGD77_MDUV380_DM1701_20260130.zip>
|
||
|
||
The original OpenGD77 project README is preserved in
|
||
[`README.OpenGD77.md`](README.OpenGD77.md).
|
||
|
||
## DMR / AMBE codec
|
||
|
||
As with OpenGD77, the source does **not** contain the AMBE codec required for DMR
|
||
audio. It is merged in from an official manufacturer firmware (V26.45) at flash
|
||
time by the firmware loader. See [`TOOLS.md`](TOOLS.md).
|
||
|
||
## Flashing
|
||
|
||
Pre-built firmware is attached to each
|
||
[release](https://git.dk1da.de/DK1DA/FreeTRX/releases): `OpenMDUV380.bin` for the
|
||
MD-UV380 / RT-3S, `OpenDM1701.bin` for the DM-1701 / RT-84. (Or build your own —
|
||
see below.)
|
||
|
||
1. **Enter firmware-update (DFU) mode:** power the radio **off**, then power it
|
||
**on while holding PTT + SK1** (the button above PTT). The screen stays blank
|
||
and the top LED glows steadily. Connect the USB cable.
|
||
2. **Flash** with the helper (it applies the DMR codec donor and, optionally, a
|
||
secondary language):
|
||
```bash
|
||
./flash.sh -m MD-UV380 -f MDUV380_firmware/build/OpenMDUV380.bin
|
||
# DM-1701 / RT-84:
|
||
./flash.sh -m DM-1701 -f MDUV380_firmware/build/OpenDM1701.bin
|
||
```
|
||
|
||
**DMR note:** the firmware image is FM-only until the **AMBE codec donor** (the
|
||
official V26.45 manufacturer firmware) is merged in at flash time. Register it
|
||
once with `./flash.sh -s /path/to/official_V26.45.bin`; the path is then
|
||
remembered. Full options, the DFU device list and the underlying loader are
|
||
documented in [`TOOLS.md`](TOOLS.md).
|
||
|
||
## Building & tools
|
||
|
||
See [`TOOLS.md`](TOOLS.md) for building in Docker
|
||
(`./build-firmware.sh [MDUV380|DM1701]`, Arm GNU Toolchain 14), grabbing
|
||
screenshots, and building language files.
|
||
|
||
## License
|
||
|
||
FreeTRX **inherits the OpenGD77 license** — a modified BSD 3-Clause license with
|
||
an additional **non-commercial** clause. It is **not** an OSI-approved
|
||
open-source license and is **not GPL-compatible**; commercial use is prohibited.
|
||
The code cannot be relicensed. See [`LICENSE.md`](LICENSE.md).
|
||
|
||
## Credits
|
||
|
||
OpenGD77 was originally conceived by **Kai Ludwig, DG4KLU**, with further
|
||
development led by **Roger Clark, VK3KYY** and assisted by **Daniel
|
||
Caujolle-Bert, F1RMB**, Alex DL4LEX, Colin G4EML and many other contributors.
|
||
All original copyrights are retained (see the source file headers and
|
||
[`README.OpenGD77.md`](README.OpenGD77.md)).
|
||
|
||
FreeTRX fork maintained by **Marcus, DK1DA**.
|