md380tools on the TYT MD-380/390: what it adds and how to flash it (and why it's not for the UV380)

Category: FirmwareDifficulty: ★★★~12 minutes

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.

First — about compatibilitymd380tools works only on single-band MD-380 / MD-390 radios (and the closely related MD-446). It does NOT support the dual-band MD-UV380 / MD-UV390 or the MD-2017. If you have a "UV" model, don't try it — go with OpenGD77, which does support them.

What the firmware gives you

What you'll need

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.

If you're stuck in DFUSometimes after a failed flash the radio stays in DFU. Don't panic: repeat 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

  1. md380tools (Travis Goodspeed) — github.com/travisgoodspeed/md380tools
  2. Updating the MD-380 firmware (Adafruit) — learn.adafruit.com
  3. md380-dfu (reading/writing the codeplug) — github.com/travisgoodspeed/md380tools/md380-dfu