I have been working on completing Travis Goodspeed's MD-380 driver. It's still unfinished, but I haven't touched this code in a week or two and wanted to share it rather than let it rot on my system.
There are a few things about the MD-380 that add complexity to the Chirp driver:
- It is a DMR radio, which means in addtion to channels and banks, a contact/talkgroup editor is required. - It uses USB DFU for upload/download, which has never been done before in Chirp.
Here is the current state:
- Memory map is complete. - get_memory() works - I think I finished set_memory(), but don't take my word for it. - Bank/zone editing works based on Travis' earlier implementation. - There's no contact editor. - Can read .rdt files from MD-380 OEM software - Can read .img files from md380tools - No attempt has been made to support upload/download, yet, although Travis' implementation in md380tools works. Porting this is on my to-do list. - Copy/paste of DMR channels doesn't work, because the "extra" settings aren't copied. With DMR radios there is essential stuff here. This looks rather involved to fix, because Chirp doesn't pass the full Memory object during copy/paste. - It's difficult to read the channel list because color code, timeslot, and talkgroup/contact are all hidden. I'm not sure the best way to add this to Chirp.
There's some other interesting stuff in this patchbomb:
- Import repeater list from DMR-MARC. Unfortunately this doesn't include talkgroup data, so it's not really useful for programming the radio. - Support for reading and writing files that contain img data between a header and footer. I've noticed this is pretty common with other radio programming software, so I created a generic way to support it. - A fix for a bug that has broken a Chirp feature for about 3 years. I guess I'm the only one who uses multiple memory maps!
Please comment.
Tom KD7LXL