Okay, here is my ID-51 (id51.py) new driver.  Also included is an image file for same.

I also included a modified id31.py file to handle modulation modes the way I do for the ID-51;  if you do two regular diffs, you can see how minimal the changes are, between both it and my id51.py, and between it and the repository version of id31.py.  The only thing that I didn't retrofit into id31.py, is the "char tag[4]" line.  I need to look at a real ID-31 .ICF file to see if that field is really there (I suspect it is).  While I have the Icom CS-31 software installed, remember that it needs to be "primed" with a radio load or a .ICF file to set the country version in Icom's software.  I have someone that I can get an ID-31 .ICF file from, and will check it.

I didn't use the one in tests/images because there isn't one.

Remember, this version generates the following messages to stdout when loading the ID-51 .ICF file:

chirpw:136: Warning: g_value_type_compatible: assertion `G_TYPE_IS_VALUE (src_type)' failed
  gtk.main()
chirpw:136: Warning: gsignal.c:2964: invalid object type `
  gtk.main()

I have no idea what those are.

-- Dean