Also, I'm not happy with the loop that converts the data to the name in get_memory. It's possible the loop will never terminate, since there is no guarantee there will be an 0xFF byte present. Instead I will make it loop over rf.valid_name_length bytes (and terminate early if 0xFF is found).
No, because mem.name is bounded in length, so it will end before it runs over.
My next task is to make a whole bunch of memories on the radio that differ by only one option setting, then dump the data and see what bits have changed. Then I can define them and unpack them properly.
Yep, welcome to the party :) Be sure to enable the developer features which provide the graphical diffing of two memories, which is handy. Also, note that several of us hang out on #chirp on FreeNode during the US day.
Good luck!