Skip to content

Updates for FT5DR and Repeater Book#2

Open
randyransier wants to merge 5 commits into
eidolonFIRE:masterfrom
randyransier:rr/update-for-ft5dr-and-repeater-book
Open

Updates for FT5DR and Repeater Book#2
randyransier wants to merge 5 commits into
eidolonFIRE:masterfrom
randyransier:rr/update-for-ft5dr-and-repeater-book

Conversation

@randyransier

Copy link
Copy Markdown

Hey there, I was just playing this weekend working to get a Yaesu FT5DR radio programmed (without needing to get Windows set up and potentially working with buggy Yaesu apps) and came across your repository. Thanks for hosting it, it is pretty much exactly what I was looking for! 😄

Going through everything, I ended up making some changes to fix a couple warnings and and an issue with float precision that was dorking the frequency values. But the real goal was to be able to export from Repeater Book and then use this tool to create a MEMORY.dat that can be loaded onto a microSD card to program the radio. So I'm also submitting some changes to update the CSV format to match the Repeater Book format for Yaesu ADMS 11, and to change some of the data values to match what I saw on the FT5DR.

Thanks again!

Added a couple fixes to make sure to only use "is" when comparing
whether two variables point to the same exact object, like when
comparing to None, and to use "==" instead when we want to compare
whether two *different* objects are equivalent.
Some frequencies are getting corrupted in translation to the 3-byte
binary-coded decimal representation. Here is an example of the error
when using the APRS frequency in North America.

'''
aprs_freq = 144.39
aprs_freq * 100 = 14438.999999999998
int(aprs_freq * 100) = 14438
int(aprs_freq * 100) % 10 = 8
'''

You can see in the example the that last 9 gets incorrectly changed to
an 8. By using the round() function, we can help the floats along so
they don't mess with our frequencies. Here is an example of the fix.

'''
aprs_freq = 144.39
round(aprs_freq * 100, 1) = 14439.0
int(round(aprs_freq * 100, 1)) = 14439
int(round(aprs_freq * 100, 1)) % 10 = 9
'''

Now you can see that the last 9 stayed a 9.
I couldn't find any specific documentation, so these updates are largely
just from playing around with a Yaesu FT5DR. I added a few channels to
memory manually on the radio, then saved to a microSD card. Then I
started using this tool to parse the MEMORY.dat that was saved to the
microSD card, and export the parsed data to test.csv and test.dat files.
Using xxd and diff, I kept making updates until the data was as similar
as possible.
Update the CSV format to match Repeater Book's Yaesu FT3 ADMS 11
export format. It seems this format might have been added to Repeater
Book after this tool was developed, but I'm not exactly sure on that.
Anyhow, the goal is essentially to be able to export from Repeater Book
and then use this tool to create a MEMORY.dat that can be loaded onto
the radio via microSD. There are more fields and they are in a different
order than the format this tool was using, but one of the benefits is
that we can capture more of the data fields so that we can import and
export without too much being changed the process.

Repeater Book documents their Yaesu FT3 ADMS 11 CSV fields at
https://www.repeaterbook.com/wiki/doku.php?id=yaesu_adms_11.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant