md380tools on the TYT MD-380/390: what it adds and how to flash it (and why it's not for the UV380)
md380tools is a legendary project by Travis Goodspeed (KK4VCZ) and the community: a patch for the factory firmware of the iconic TYT MD-380 / MD-390 radio. It adds features the stock firmware lacks and is still loved by hams for its "hacker" spirit. But it has a hard model restriction — let's get that out of the way first.
What the firmware gives you
- Promiscuous mode — the radio receives every talkgroup on the slot, not just the ones in your codeplug. Handy for "listening to everything."
- Callsign database on the display — instead of a bare DMR ID, you see the callsign, name and QTH of whoever is talking (the full ID database is flashed in).
- Parrot / echo test — the radio plays back what you say so you can check audio and deviation.
- Extra screens, debug information and small interface conveniences.
What you'll need
- a TYT MD-380 or MD-390 radio and its proprietary USB cable (it plugs into the SP/MIC jacks);
- a computer. md380tools has historically been built around Linux; the easiest path for Windows/Mac is the ready-made md380tools-vm virtual machine;
- 15 minutes and a careful hand — after all, this is firmware with a "bricking" risk.
Step 1. Set up the environment
On Linux, clone the repository and install the udev rules:
git clone https://github.com/travisgoodspeed/md380tools
cd md380tools
sudo cp 99-md380.rules /etc/udev/rules.d/
On Windows/Mac it's easier to grab md380tools-vm (a VirtualBox image with the environment already set up) — it spares you the hassle of dependencies.
Step 2. Put the radio into DFU mode
Switch the radio off with the volume knob. Connect the cable. Now hold PTT and the button directly above PTT and turn the radio on — it will enter DFU mode (the recovery bootloader) and be ready to accept firmware. It's a quiet mode from the outside: the screen usually stays dark.
Step 3. Back up the codeplug
Before flashing, save the current codeplug — md380tools can read/write raw images via md380-dfu:
md380-dfu readspi backup.bin # back up the SPI flash (codeplug/settings)
Step 4. Flash the firmware
From the project directory, with the radio in DFU:
make clean
make flash # build the patch and flash it
When it finishes, power-cycle the radio normally and you'll see the updated interface. Next, flash in the full callsign database (users.csv) following the project's instructions so that names appear on the display.
make flash with the radio in DFU — that usually "cures" it. This is exactly what the backup from Step 3 is for.Or maybe just OpenGD77?
md380tools is a patch on the factory firmware: powerful, but "old-school" and Linux-centric. For the same MD-380/390, many people today choose the fully rewritten OpenGD77 — a modern interface, ID database and flashing through a graphical CPS on Windows. If you prefer a GUI and Windows, take a look at it. If you want the classic and Linux, md380tools lives on just fine.
A flashed MD-380 + the DMRhub network
The callsign database on the display really shines when there's someone on the air to hear. Spin up a hotspot from our image and connect the radio to a live network — Last Heard, talkgroups, private calls.
Sources
- md380tools (Travis Goodspeed) — github.com/travisgoodspeed/md380tools
- Updating the MD-380 firmware (Adafruit) — learn.adafruit.com
- md380-dfu (reading/writing the codeplug) — github.com/travisgoodspeed/md380tools/md380-dfu