2020-09-22 20:32:59 +00:00
|
|
|
# OpenRTX
|
|
|
|
## Modular Open Source Radio Firmware
|
|
|
|
|
|
|
|
OpenRTX is a free and open source firmware for digitam ham radios, top-down designed
|
|
|
|
with modularity, flexibility and performance in mind.
|
|
|
|
|
|
|
|
Currently OpenRTX is being actively developed for the TYT MD-380/390 and MD-UV380/390.
|
2020-03-30 14:58:03 +00:00
|
|
|
|
|
|
|
This firmware is *highly experimental* and is not in a usable state right now,
|
|
|
|
however contributions and testing are welcome and accepted.
|
|
|
|
|
2020-10-10 22:25:59 +00:00
|
|
|
## Compilation
|
2020-03-30 14:58:03 +00:00
|
|
|
|
|
|
|
To build and install the firmware, first clone this repository:
|
|
|
|
|
|
|
|
```
|
2020-09-22 20:32:59 +00:00
|
|
|
git clone https://github.com/n1zzo/OpenRTX
|
2020-03-30 14:58:03 +00:00
|
|
|
```
|
|
|
|
|
2020-10-10 22:25:59 +00:00
|
|
|
The following steps depend on the selected platform:
|
|
|
|
|
|
|
|
### Linux
|
|
|
|
|
|
|
|
The OpenRTX linux build depends on libSDL, on Ubuntu you can install it with:
|
|
|
|
```
|
2020-10-14 12:12:50 +00:00
|
|
|
sudo apt install gcc pkg-config libsdl2-dev
|
2020-10-10 22:25:59 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
The firmware can be compiled with:
|
|
|
|
|
|
|
|
```
|
2020-10-14 12:12:50 +00:00
|
|
|
meson setup build_linux
|
2020-10-20 11:42:17 +00:00
|
|
|
meson compile -C build_linux openrtx_linux
|
2020-10-10 22:25:59 +00:00
|
|
|
```
|
|
|
|
|
2020-10-14 12:12:50 +00:00
|
|
|
If you are using a version of Meson older than v0.55.0, the above command will fail, compile with:
|
|
|
|
|
|
|
|
```
|
|
|
|
meson setup build_linux
|
2020-10-22 12:22:47 +00:00
|
|
|
ninja -C build_linux openrtx_linux -jN
|
2020-10-14 12:12:50 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
Where N is the number of cores that you want to allocate to the build process.
|
|
|
|
|
2020-10-10 22:25:59 +00:00
|
|
|
### TYT MD-380 / TYT MD-UV380
|
|
|
|
|
2020-03-30 14:58:03 +00:00
|
|
|
To build the firmware you need to have a toolchain for the ARM ISA installed
|
|
|
|
on you system, you can install one using your package manager.
|
2020-09-28 12:55:29 +00:00
|
|
|
|
|
|
|
For example on Ubuntu you can install `arm-none-eabi-gcc`
|
|
|
|
```
|
|
|
|
sudo apt install gcc-arm-none-eabi
|
|
|
|
```
|
|
|
|
|
2020-03-30 14:58:03 +00:00
|
|
|
You can then proceed in building the firmware:
|
|
|
|
|
|
|
|
```
|
2020-10-19 13:02:18 +00:00
|
|
|
meson setup --cross-file cross_arm.txt build_arm
|
|
|
|
meson compile -C build_arm openrtx_md380
|
2020-03-30 14:58:03 +00:00
|
|
|
```
|
|
|
|
|
2020-10-14 12:12:50 +00:00
|
|
|
If you are using a version of Meson older than v0.55.0, the above command will fail, compile with:
|
|
|
|
|
|
|
|
```
|
2020-10-19 13:02:18 +00:00
|
|
|
meson setup --cross-file cross_arm.txt build_arm
|
|
|
|
ninja -C build_arm openrtx_md380 -jN
|
2020-10-14 12:12:50 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
Where N is the number of cores that you want to allocate to the build process.
|
|
|
|
|
2020-10-22 20:20:29 +00:00
|
|
|
## Flashing your radio
|
|
|
|
|
2020-09-22 20:32:59 +00:00
|
|
|
If everything compiled without errors you can connect your radio via USB,
|
2020-03-30 14:58:03 +00:00
|
|
|
put it in recovery mode (by powering it on with the PTT and the button
|
|
|
|
above it pressed), and flash the firmware:
|
|
|
|
|
|
|
|
```
|
2020-10-19 13:02:18 +00:00
|
|
|
meson compile -C build_arm openrtx_md380_flash
|
2020-03-30 14:58:03 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
Now you can power cycle your radio and enjoy the new breath of freedom!
|
|
|
|
|
2020-10-22 20:20:29 +00:00
|
|
|
## Running on Linux
|
|
|
|
|
|
|
|
To run OpenRTX on Linux you have to change a system configuration.
|
|
|
|
This is needed in order to run the uC/OS-III RTOS on Linux.
|
|
|
|
|
|
|
|
Add the following line to `/etc/security/limits.conf`
|
|
|
|
```
|
|
|
|
user - rtprio unlimited
|
|
|
|
```
|
|
|
|
And then reboot your computer.
|
|
|
|
|
|
|
|
Now you can execute the binary `build_linux/openrtx_linux` you compiled with the instructions above.
|
|
|
|
|
2020-03-30 14:58:03 +00:00
|
|
|
## License
|
|
|
|
|
|
|
|
This software is released under the GNU GPL v3, the modified wrapping scripts
|
|
|
|
from Travis Goodspeed are licensed in exchange of two liters of India Pale Ale,
|
|
|
|
we still owe you the two liters, Travis!
|
|
|
|
|
|
|
|
## Credits
|
|
|
|
|
2020-09-22 20:32:59 +00:00
|
|
|
OpenRTX was created by:
|
2020-03-30 14:58:03 +00:00
|
|
|
|
|
|
|
- Niccolò Izzo IU2KIN <n@izzo.sh>
|
|
|
|
- Silvano Seva IU2KWO <silseva@fastwebnet.it>
|
2020-10-04 15:20:55 +00:00
|
|
|
- Federico Amedeo Izzo IU2NUO <federico@izzo.pro>
|
2020-03-30 14:58:03 +00:00
|
|
|
|
|
|
|
All this was made possible by the huge reverse engineering effort of
|
|
|
|
Travis Goodspeed and all the contributors of [md380tools](https://github.com/travisgoodspeed/md380tools).
|
2020-09-22 20:32:59 +00:00
|
|
|
A huge thank goes to Roger Clark, and his [OpenGD77](https://github.com/rogerclarkmelbourne/OpenGD77) which inspired this project.
|