hmatuschek / qdmr

A GUI application for configuring and programming cheap DMR radios under Linux and MacOS X.
https://dm3mat.darc.de/qdmr/
GNU General Public License v3.0
221 stars 45 forks source link

GD-77 DMR ID Database Upload #132

Closed pe1rrr closed 2 years ago

pe1rrr commented 3 years ago

Continuing from Issue #131

Debug in /home/pi/build/qdmr/lib/dfu_libusb.cc@40: Try to detect USB DFU interface 483:df11.
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@11: Try to detect USB HID interface 15a2:73.
Debug in /home/pi/build/qdmr/lib/gd77.cc@132: Start upload to Radioddity GD-77...
Debug in /home/pi/build/qdmr/lib/gd77.cc@140: Encode call-signs into db.
Debug in /home/pi/build/qdmr/lib/hid_interface.cc@220: Selecting memory bank 3
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@167: HID (libusb): timeout. Retry no 1...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@167: HID (libusb): timeout. Retry no 2...

In DB access mode (menu+#+sk2)

pe1rrr commented 3 years ago
pi@hambox:~/build/qdmr/build $ dmrconf write-db --id=2350000
QString::arg: Argument missing: Cannot open user list '/home/pi/.local/share/DM3MAT/dmrconf/user.json': , No such file or directory
ERROR in /home/pi/build/qdmr/lib/userdatabase.cc@82: Cannot open user list '/home/pi/.local/share/DM3MAT/dmrconf/user.json': 
[================================================= ] 99%

Looks like dmrconf works Ok!

Radio reboots after.

Looking at qdmr, there seems to be an issue with that. Still checking that.

pe1rrr commented 3 years ago

ERROR in /home/pi/build/qdmr/lib/gd77.cc@388: In uploadCallsigns(), cannot write block 0:
     Cannot select memory bank 3: Cannot select memory bank: 

Notable, no number given after :

hmatuschek commented 3 years ago

Ok, interesting. It works with dmrconf and not with qdmr. But the error happens when the bank gets selected.

hmatuschek commented 3 years ago

ERROR in /home/pi/build/qdmr/lib/gd77.cc@388: In uploadCallsigns(), cannot write block 0:
   Cannot select memory bank 3: Cannot select memory bank: 

Notable, no number given after :

Actually, there is a missing error message. Updated that.

pe1rrr commented 3 years ago

New build:

/hid_libusb.cc@167: HID (libusb): timeout. Retry no 100...
ERROR in /home/pi/build/qdmr/lib/gd77.cc@390: In uploadCallsigns(), cannot write block 0:
     Cannot select memory bank 3: Cannot send command: 
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@167: HID (libusb): timeout. Retry no 1...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@167: HID (libusb): timeout. Retry no 2...

timeout. Retry no 100...
ERROR in /home/pi/build/qdmr/lib/gd77.cc@390: In uploadCallsigns(), cannot write block 0:
     Cannot select memory bank 3: Cannot send command: 
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@167: HID (libusb): timeout. 

Any clues?

hmatuschek commented 3 years ago

Is this qdmr or dmrconf?

hmatuschek commented 3 years ago

Does it say something like "Enter program mode" before writing?

pe1rrr commented 3 years ago

Is this qdmr or dmrconf?

Its qdmr

Does it say something like "Enter program mode" before writing?

QXcbConnection: Failed to initialize XRandr
qt5ct: using qt5ct plugin
Debug in /home/pi/build/qdmr/lib/repeaterdatabase.cc@96: Loaded repeater database with 3997 entries from /home/pi/.local/share/DM3MAT/qdmr/repeater.json.
Debug in /home/pi/build/qdmr/lib/userdatabase.cc@124: Loaded user database with 202251 entries from /home/pi/.local/share/DM3MAT/qdmr/user.json.
Debug in /home/pi/build/qdmr/lib/talkgroupdatabase.cc@140: Loaded talk group database with 1561 entries from /home/pi/.local/share/DM3MAT/qdmr/talkgroups.json.
Debug in /home/pi/build/qdmr/src/application.cc@95: Last known position: 51° 35' 0.0" N, 4° 55' 0.0" E
qt5ct: D-Bus global menu: no
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
Debug in /home/pi/build/qdmr/src/application.cc@372: Load codeplug from '/home/pi/gd77/pe1rrr.conf'.
Debug in /home/pi/build/qdmr/lib/csvreader.cc@1753: Got 1 IDs...
Debug in /home/pi/build/qdmr/lib/dfu_libusb.cc@40: Try to detect USB DFU interface 483:df11.
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@11: Try to detect USB HID interface 15a2:73.
Debug in /home/pi/build/qdmr/lib/hid_interface.cc@46: Radioddity HID interface: Enter program mode.
Debug in /home/pi/build/qdmr/lib/hid_interface.cc@89: Got radio ID '0xb6ecdf84'.
Debug in /home/pi/build/qdmr/lib/gd77.cc@133: Start upload to Radioddity GD-77...
Debug in /home/pi/build/qdmr/lib/gd77.cc@141: Encode call-signs into db.
Debug in /home/pi/build/qdmr/lib/hid_interface.cc@224: Selecting memory bank 3
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@167: HID (libusb): timeout. Retry no 1...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@167: HID (libusb): timeout. Retry no 2...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@167: HID (libusb): timeout. Retry no 3...

This counts up to 100 then it goes to:

Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@167: HID (libusb): timeout. Retry no 100...
ERROR in /home/pi/build/qdmr/lib/gd77.cc@390: In uploadCallsigns(), cannot write block 0:
     Cannot select memory bank 3: Cannot send command: 
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@167: HID (libusb): timeout. Retry no 1...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@167: HID (libusb): timeout. Retry no 2...
hmatuschek commented 3 years ago

And with dmrconf it works? If so, this is really weird.

pe1rrr commented 3 years ago

The only difference I can think of is that in qdmr I must load a codeplug first to set my DMR ID.

Additionally, is there a mechanism here to validate that the stuff dmrconf has written to the radio is actually there?

qdmr doesn't appear to put the radio into "Memory Prog" mode when trying to write the db. This is a text string shown on the screen when the radio starts doing memory programming stuff, and shows it when dmrconf is sending the db to the radio.

hmatuschek commented 3 years ago

qdmr doesn't appear to put the radio into "Memory Prog" mode when trying to write the db. This is a text string shown on the screen when the radio starts doing memory programming stuff, and shows it when dmrconf is sending the db to the radio.

I suspect something like that. I've fixed the way the radio is put into the programming mode.

hmatuschek commented 3 years ago

Additionally, is there a mechanism here to validate that the stuff dmrconf has written to the radio is actually there?

For now not.

pe1rrr commented 3 years ago

I'll report back tomorrow/later with updates, as it is now getting late. I dont expect you to want to be up all night HI. 73

pe1rrr commented 3 years ago
pi@hambox:~/build/qdmr/build $ qdmr
QXcbConnection: Failed to initialize XRandr
qt5ct: using qt5ct plugin
Debug in /home/pi/build/qdmr/lib/repeaterdatabase.cc@96: Loaded repeater database with 3997 entries from /home/pi/.local/share/DM3MAT/qdmr/repeater.json.
Debug in /home/pi/build/qdmr/lib/userdatabase.cc@124: Loaded user database with 202251 entries from /home/pi/.local/share/DM3MAT/qdmr/user.json.
Debug in /home/pi/build/qdmr/lib/talkgroupdatabase.cc@140: Loaded talk group database with 1561 entries from /home/pi/.local/share/DM3MAT/qdmr/talkgroups.json.
Debug in /home/pi/build/qdmr/src/application.cc@95: Last known position: 51° 35' 0.0" N, 4° 55' 0.0" E
qt5ct: D-Bus global menu: no
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
Debug in /home/pi/build/qdmr/src/application.cc@372: Load codeplug from '/home/pi/gd77/pe1rrr.conf'.
Debug in /home/pi/build/qdmr/lib/csvreader.cc@1753: Got 1 IDs...
Debug in /home/pi/build/qdmr/lib/dfu_libusb.cc@40: Try to detect USB DFU interface 483:df11.
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@11: Try to detect USB HID interface 15a2:73.
Debug in /home/pi/build/qdmr/lib/hid_interface.cc@50: Radioddity HID interface: Enter program mode.
Debug in /home/pi/build/qdmr/lib/hid_interface.cc@94: Got device ID 'MD-760P'.
Debug in /home/pi/build/qdmr/lib/gd77.cc@133: Start upload to Radioddity GD-77...
Debug in /home/pi/build/qdmr/lib/gd77.cc@141: Encode call-signs into db.
Debug in /home/pi/build/qdmr/lib/hid_interface.cc@233: Selecting memory bank 3
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 1...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 2...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 3...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 4...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 5...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 6...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 7...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 8...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 9...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 10...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 11...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 12...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 13...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 14...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 15...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 16...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 17...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 18...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 19...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 20...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 21...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 22...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 23...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 24...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 25...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 26...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 27...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 28...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 29...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 30...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 31...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 32...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 33...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 34...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 35...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 36...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 37...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 38...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 39...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 40...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 41...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 42...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 43...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 44...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 45...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 46...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 47...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 48...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 49...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 50...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 51...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 52...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 53...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 54...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 55...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 56...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 57...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 58...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 59...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 60...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 61...
ERROR in /home/pi/build/qdmr/lib/gd77.cc@392: In uploadCallsigns(), cannot write block 0:
     Cannot select memory bank 3: Cannot send command: LIBUSB_ERROR_IO
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@60: Closing HIDevice.
Debug in /home/pi/build/qdmr/lib/dfu_libusb.cc@40: Try to detect USB DFU interface 483:df11.
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@11: Try to detect USB HID interface 15a2:73.
Debug in /home/pi/build/qdmr/lib/hid_interface.cc@50: Radioddity HID interface: Enter program mode.
Debug in /home/pi/build/qdmr/lib/hid_interface.cc@94: Got device ID 'MD-760P'.
Debug in /home/pi/build/qdmr/lib/gd77.cc@133: Start upload to Radioddity GD-77...
Debug in /home/pi/build/qdmr/lib/gd77.cc@141: Encode call-signs into db.
Debug in /home/pi/build/qdmr/lib/hid_interface.cc@233: Selecting memory bank 3
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 1...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 2...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 3...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 4...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 5...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 6...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 7...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 8...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 9...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 10...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 11...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 12...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 13...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 14...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 15...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 16...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 17...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 18...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 19...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 20...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 21...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 22...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 23...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 24...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 25...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 26...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 27...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 28...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 29...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 30...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 31...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 32...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 33...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 34...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 35...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 36...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 37...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 38...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 39...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 40...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 41...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 42...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 43...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 44...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 45...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 46...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 47...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 48...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 49...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 50...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 51...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 52...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 53...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 54...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 55...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 56...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 57...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 58...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 59...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 60...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 61...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 62...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 63...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 64...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 65...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 66...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 67...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 68...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 69...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 70...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 71...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 72...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 73...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 74...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 75...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 76...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 77...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 78...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 79...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 80...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 81...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 82...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 83...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 84...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 85...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 86...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 87...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 88...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 89...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 90...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 91...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 92...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 93...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 94...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 95...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 96...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 97...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 98...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 99...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@168: HID (libusb): timeout. Retry no 100...
ERROR in /home/pi/build/qdmr/lib/gd77.cc@392: In uploadCallsigns(), cannot write block 0:
     Cannot select memory bank 3: Cannot send command: LIBUSB_ERROR_TIMEOUT
pe1rrr commented 3 years ago

Can you add a var dump/echo to debug terminal of the user's DMR ID (the equivalent of --id=2350000) , i am wondering if the DMR ID from qdmr config box is being sent to the backend properly, because if it is blank then the database it parsed for the DMR prefix might be zero bytes or something(?).

pe1rrr commented 3 years ago

I accidentally tried to send the callsign DB to the radio while it was not connected, this caused a segfault:

Thread 1 "qdmr" received signal SIGSEGV, Segmentation fault.
0xb6f22170 in libusb_submit_transfer () from /lib/arm-linux-gnueabihf/libusb-1.0.so.0
(gdb) bt
#0  0xb6f22170 in libusb_submit_transfer () at /lib/arm-linux-gnueabihf/libusb-1.0.so.0
#1  0xb6e002fc in HIDevice::write_read(unsigned char const*, unsigned int, unsigned char*, unsigned int) (this=0x4fc3578, data=0xbec3b5fc "\001", length=42, reply=0xbec3b628 "\005", rlength=42)
    at /home/pi/build/qdmr/lib/hid_libusb.cc:136
#2  0xb6dffd00 in HIDevice::hid_send_recv(unsigned char const*, unsigned int, unsigned char*, unsigned int)
    (this=0x4fc3578, data=0xb6ed9dec <CMD_PRG> "\002PROGRA", nbytes=11, rdata=0xbec3b68b "\266\070Eض ", rlength=1) at /home/pi/build/qdmr/lib/hid_libusb.cc:92
#3  0xb6e00d90 in HID::identifier() (this=0x4fc3578) at /home/pi/build/qdmr/lib/hid_interface.cc:53
#4  0xb6e00a20 in HID::HID(int, int, QObject*) (this=0x4fc3578, vid=5538, pid=115, parent=0x0)
    at /home/pi/build/qdmr/lib/hid_interface.cc:22
#5  0xb6dfc590 in Radio::detect(QString&, QString const&) (errorMessage=..., force=...)
    at /home/pi/build/qdmr/lib/radio.cc:389
#6  0x0005aff4 in Application::uploadCallsignDB() (this=0xbec3c234)
    at /home/pi/build/qdmr/src/application.cc:616
#7  0x000a5e34 in Application::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)
    (_o=0xbec3c234, _c=QMetaObject::InvokeMetaMethod, _id=11, _a=0xbec3b87c)
    at /home/pi/build/qdmr/build/src/moc_application.cpp:362
#8  0xb5f5c244 in QMetaObject::activate(QObject*, int, int, void**) ()
    at /usr/lib/arm-linux-gnueabihf/libQt5Core.so.5
#9  0xb691ad58 in QAction::triggered(bool) () at /usr/lib/arm-linux-gnueabihf/libQt5Widgets.so.5
#10 0xb691d774 in QAction::activate(QAction::ActionEvent) ()
    at /usr/lib/arm-linux-gnueabihf/libQt5Widgets.so.5
(gdb) 
pe1rrr commented 3 years ago

The Got device ID 'MD-760P'. is a bit suspect. This used to be a hexadecimal string in earlier builds. Sadly no improvement/progress with the callsign db upload to the radio with last commit 4f436775013fc01fe4fd211d661026fcada45044

hmatuschek commented 3 years ago

The Got device ID 'MD-760P'. is a bit suspect. This used to be a hexadecimal string in earlier builds. Sadly no improvement/progress with the callsign db upload to the radio with last commit 4f43677

The hex string was the pointer to this string. In fact the GD77 registers itself as a MD-760P.

hmatuschek commented 3 years ago

The weird thing is, that dmrconf works and qdmr doesn't. Both use the same code to communicate with the device. To this end, I can only imagine one way this could happen: For some reason, qdmr leaves the program mode before attempting to write to the device. If this happens, the device will not respond to any select bank or write commands, leading to the observed time outs. I've added a lot of debug messages to check whether this happens.

pe1rrr commented 3 years ago
qt5ct: using qt5ct plugin
Debug in /home/pi/build/qdmr/lib/repeaterdatabase.cc@96: Loaded repeater database with 3997 entries from /home/pi/.local/share/DM3MAT/qdmr/repeater.json.
Debug in /home/pi/build/qdmr/lib/userdatabase.cc@124: Loaded user database with 202251 entries from /home/pi/.local/share/DM3MAT/qdmr/user.json.
Debug in /home/pi/build/qdmr/lib/talkgroupdatabase.cc@140: Loaded talk group database with 1561 entries from /home/pi/.local/share/DM3MAT/qdmr/talkgroups.json.
Debug in /home/pi/build/qdmr/src/application.cc@95: Last known position: 51° 35' 0.0" N, 4° 55' 0.0" E
qt5ct: D-Bus global menu: no
Debug in /home/pi/build/qdmr/src/application.cc@616: Detect radio...
Debug in /home/pi/build/qdmr/lib/dfu_libusb.cc@40: Try to detect USB DFU interface 483:df11.
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@12: Try to detect USB HID interface 15a2:73.
Debug in /home/pi/build/qdmr/lib/hid_interface.cc@52: Radioddity HID interface: Enter program mode.
Debug in /home/pi/build/qdmr/lib/hid_interface.cc@96: Got device ID 'MD-760P'.
Debug in /home/pi/build/qdmr/src/application.cc@625: Found radio Radioddity GD-77.
Debug in /home/pi/build/qdmr/src/application.cc@649: Sort call-signs closest to ID=2040351.
Debug in /home/pi/build/qdmr/lib/gd77.cc@133: Start call-sign DB upload to Radioddity GD-77...
Debug in /home/pi/build/qdmr/lib/gd77.cc@141: Encode call-signs into db.
Debug in /home/pi/build/qdmr/lib/gd77_callsigndb.cc@95: Select first 10920 entries out off 202251.
Debug in /home/pi/build/qdmr/lib/gd77_callsigndb.cc@99: Sort selected w.r.t their ID in ascending order.
Debug in /home/pi/build/qdmr/lib/gd77_callsigndb.cc@105: Allocate 131072bytes for call-sign DB.
Debug in /home/pi/build/qdmr/lib/gd77.cc@152: Upload call-sign DB in separate thread.
Debug in /home/pi/build/qdmr/src/application.cc@670: Start call-sign DB upload...
Debug in /home/pi/build/qdmr/lib/gd77.cc@380: Call-sign DB upload started...
Debug in /home/pi/build/qdmr/lib/hid_interface.cc@238: Selecting memory bank 3...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@169: HID (libusb): timeout. Retry...
ERROR in /home/pi/build/qdmr/lib/gd77.cc@395: In uploadCallsigns(), cannot write block 0:
     Cannot select memory bank 3: Cannot send command: Error -9 transmitting data via control transfer: Pipe error.
Debug in /home/pi/build/qdmr/lib/hid_interface.cc@39: Close HID connection.
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@61: Closing HIDevice.
ERROR in /home/pi/build/qdmr/src/application.cc@689: Upload error: In uploadCallsigns(), cannot write block 0:
     Cannot select memory bank 3: Cannot send command: Error -9 transmitting data via control transfer: Pipe error..
hmatuschek commented 3 years ago

Oh that is not good. Does the normal codeplug read/write work with qdmr? If it does, could you capture the database write using dmrconf and qdmr using wireshark under linux? With this, I can check if there is something different. Otherwise I have no clue right now.

pe1rrr commented 3 years ago

GD77_wireshark_linux.tar.gz

pe1rrr commented 3 years ago

I did a check, uploading DMR-DB to the GD77 Stock, looking to see if the callsigns resolved from the DMR-IDs, but even though I selected a range that were currently talking, no callsigns showed up. Which makes me wonder, maybe, bank 3 is the wrong one? What if putting the radio into the special mode is switching the logical bank with another, i.e bank 1 (codeplug) for bank 1 (dmr ID)?

Just a thought.

hmatuschek commented 3 years ago

Thanks for the captures, I've found an issue with the bank selection which could explain why the uploaded call-sign DB does not work. However, the qdmr issue is still unsolved. The dumps are almost identical (between DMR-ID, dmrconf and qdmr, up to the point of failure).

hmatuschek commented 3 years ago

E.g. DMR-ID

 > Request, len=0x07
 >    | 00000000 02 50 52 4f 47 52 41                            | .PROGRA

 < Response, len=0x01
 <    | ACK

 > Request, len=0x02
 >    | 00000000 4d 02                                           | M.

 < Response, len=0x10
 <    | 00000000 4d 44 2d 37 36 30 50 ff 56 34 33 37 00 04 80 04 | MD-760P.V437....

 > Request, len=0x01
 >    | ACK

 < Response, len=0x01
 <    | ACK

 > Request, len=0x08
 >    | 00000000 43 57 42 04 00 03 00 00                         | CWB.....

 < Response, len=0x01
 <    | ACK

 > Request, len=0x24
 >    | Write addr=0x0000, len=0x20
 >    |    | 00000000 49 44 2d 56 30 30 31 00 a8 2a 00 00 34 60 00 00 | ID-V001..*..4`..
 >    |    | 00000010 47 4a 37 4c 4a 4a 00 00 01 60 10 01 4b 4b 36 59 | GJ7LJJ...`..KK6Y
[...]

dmrconf:

 > Request, len=0x07
 >    | 00000000 02 50 52 4f 47 52 41                            | .PROGRA

 < Response, len=0x01
 <    | ACK

 > Request, len=0x02
 >    | 00000000 4d 02                                           | M.

 < Response, len=0x10
 <    | 00000000 4d 44 2d 37 36 30 50 ff 56 34 33 37 00 04 80 04 | MD-760P.V437....

 > Request, len=0x01
 >    | ACK

 < Response, len=0x01
 <    | ACK

 > Request, len=0x08
 >    | 00000000 43 57 42 04 00 03 00 00                         | CWB.....

 < Response, len=0x01
 <    | ACK

 > Request, len=0x24
 >    | Write addr=0x0000, len=0x20
 >    |    | 00000000 49 44 2d 56 30 30 31 00 a8 2a 00 00 01 00 02 02 | ID-V001..*......
 >    |    | 00000010 53 59 38 43 59 49 00 00 02 00 02 02 53 56 31 53 | SY8CYI......SV1S
[...]

qdmr:

  > Request, len=0x07
 >    | 00000000 02 50 52 4f 47 52 41                            | .PROGRA

 < Response, len=0x01
 <    | ACK

 > Request, len=0x02
 >    | 00000000 4d 02                                           | M.

 < Response, len=0x10
 <    | 00000000 4d 44 2d 37 36 30 50 ff 56 34 33 37 00 04 80 04 | MD-760P.V437....

 > Request, len=0x01
 >    | ACK

 < Response, len=0x01
 <    | ACK

 > Request, len=0x08
 >    | 00000000 43 57 42 04 00 03 00 00                         | CWB.....

 > Request, len=0x08
 >    | 00000000 43 57 42 04 00 03 00 00                         | CWB.....
[...]

The CWB... commands are the bank selections.

pe1rrr commented 3 years ago

Brand new install of Debian Buster (Raspbian):

pi@raspberrypi:~/qdmr/build $ qdmr
qt5ct: using qt5ct plugin
Debug in /home/pi/qdmr/lib/repeaterdatabase.cc@96: Loaded repeater database with 4001 entries from /home/pi/.local/share/DM3MAT/qdmr/repeater.json.
Debug in /home/pi/qdmr/lib/userdatabase.cc@124: Loaded user database with 202383 entries from /home/pi/.local/share/DM3MAT/qdmr/user.json.
Debug in /home/pi/qdmr/lib/talkgroupdatabase.cc@140: Loaded talk group database with 1561 entries from /home/pi/.local/share/DM3MAT/qdmr/talkgroups.json.
Debug in /home/pi/qdmr/src/application.cc@95: Last known position: 
qt5ct: D-Bus global menu: no
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
Debug in /home/pi/qdmr/src/application.cc@372: Load codeplug from '/home/pi/qdmr/build/pe1rrr.conf'.
Debug in /home/pi/qdmr/lib/csvreader.cc@1753: Got 1 IDs...
Debug in /home/pi/qdmr/src/application.cc@616: Detect radio...
Debug in /home/pi/qdmr/lib/dfu_libusb.cc@39: Try to detect USB DFU interface 483:df11.
Debug in /home/pi/qdmr/lib/hid_libusb.cc@12: Try to detect USB HID interface 15a2:73.
Debug in /home/pi/qdmr/lib/hid_interface.cc@53: Radioddity HID interface: Enter program mode.
Debug in /home/pi/qdmr/lib/hid_interface.cc@97: Got device ID 'MD-760P'.
Debug in /home/pi/qdmr/src/application.cc@625: Found radio Radioddity GD-77.
Debug in /home/pi/qdmr/src/application.cc@649: Sort call-signs closest to ID=2040351.
Debug in /home/pi/qdmr/lib/gd77.cc@133: Start call-sign DB upload to Radioddity GD-77...
Debug in /home/pi/qdmr/lib/gd77.cc@141: Encode call-signs into db.
Debug in /home/pi/qdmr/lib/gd77_callsigndb.cc@95: Select first 10920 entries out off 202383.
Debug in /home/pi/qdmr/lib/gd77_callsigndb.cc@99: Sort selected w.r.t their ID in ascending order.
Debug in /home/pi/qdmr/lib/gd77_callsigndb.cc@105: Allocate 0x20000 bytes for call-sign DB.
Debug in /home/pi/qdmr/lib/gd77.cc@152: Upload call-sign DB in separate thread.
Debug in /home/pi/qdmr/src/application.cc@670: Start call-sign DB upload...
Debug in /home/pi/qdmr/lib/gd77.cc@380: Call-sign DB upload started...
Debug in /home/pi/qdmr/lib/hid_interface.cc@240: Selecting memory bank 3...
Debug in /home/pi/qdmr/lib/hid_interface.cc@253: Memory bank 3 selected.
Debug in /home/pi/qdmr/lib/hid_interface.cc@215: Left program mode.
Debug in /home/pi/qdmr/lib/hid_libusb.cc@169: HID (libusb): timeout. Retry...
Debug in /home/pi/qdmr/lib/hid_interface.cc@40: Close HID connection.
Debug in /home/pi/qdmr/lib/hid_libusb.cc@61: Closing HIDevice.
ERROR in /home/pi/qdmr/src/application.cc@704: Upload complete.

(Success)

On the original box:

Debug in /home/pi/build/qdmr/src/application.cc@372: Load codeplug from '/home/pi/gd77/pe1rrr.conf'.
Debug in /home/pi/build/qdmr/lib/csvreader.cc@1753: Got 1 IDs...
Debug in /home/pi/build/qdmr/src/application.cc@616: Detect radio...
Debug in /home/pi/build/qdmr/lib/dfu_libusb.cc@39: Try to detect USB DFU interface 483:df11.
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@12: Try to detect USB HID interface 15a2:73.
Debug in /home/pi/build/qdmr/lib/hid_interface.cc@53: Radioddity HID interface: Enter program mode.
Debug in /home/pi/build/qdmr/lib/hid_interface.cc@97: Got device ID 'MD-760P'.
Debug in /home/pi/build/qdmr/src/application.cc@625: Found radio Radioddity GD-77.
Debug in /home/pi/build/qdmr/src/application.cc@649: Sort call-signs closest to ID=2040351.
Debug in /home/pi/build/qdmr/lib/gd77.cc@133: Start call-sign DB upload to Radioddity GD-77...
Debug in /home/pi/build/qdmr/lib/gd77.cc@141: Encode call-signs into db.
Debug in /home/pi/build/qdmr/lib/gd77_callsigndb.cc@95: Select first 10920 entries out off 202251.
Debug in /home/pi/build/qdmr/lib/gd77_callsigndb.cc@99: Sort selected w.r.t their ID in ascending order.
Debug in /home/pi/build/qdmr/lib/gd77_callsigndb.cc@105: Allocate 0x20000 bytes for call-sign DB.
Debug in /home/pi/build/qdmr/lib/gd77.cc@152: Upload call-sign DB in separate thread.
Debug in /home/pi/build/qdmr/src/application.cc@670: Start call-sign DB upload...
Debug in /home/pi/build/qdmr/lib/gd77.cc@380: Call-sign DB upload started...
Debug in /home/pi/build/qdmr/lib/hid_interface.cc@240: Selecting memory bank 3...
Debug in /home/pi/build/qdmr/lib/hid_libusb.cc@169: HID (libusb): timeout. Retry...

Seems I have found the culprit although I am not at all sure why, perhaps the USB soundcard/CAT control on the other USB ports is interfering somehow? Well anyway, looks like this issue has been resolved by building qdmr on a fresh installation on a different RPI4 (RPI400) that doesn't have other devices connected to the USB system.

hmatuschek commented 3 years ago

Had you installed the libdmrconf library? If so, there might be an issue that qdmr gets linked against the installed (old) version instead of the version build along the application. However, I am happy to hear that it works now. Were you able to test, whether the call-sign DB works on the device. I've fixed a memory bank selection issue earlier. If everything works for you I'll prepare the release of 0.8.1 with all these changes.

pe1rrr commented 3 years ago

Had you installed the libdmrconf library? If so, there might be an issue that qdmr gets linked against the installed (old) version instead of the version build along the application. However, I am happy to hear that it works now. Were you able to test, whether the call-sign DB works on the device. I've fixed a memory bank selection issue earlier. If everything works for you I'll prepare the release of 0.8.1 with all these changes.

I’m trying to figure out why the callsigns aren’t yet showing up in either Stock GD77 or OpenGD77. If my own ID is in the DB then when I key into my hotspot my callsign should be resolving and showing up on the radio shortly after I unkey, normally its my DMR ID showing and I haven’t yet seen that work. I have also not yet seen it resolve anyone else’s calls yet.

I noticed in the commit log a mention of the possibility of specifying more than one ID on the cli for dmrconf to load in a wider selection of callsigns, what is the syntax for this?

To answer about libdmrconf, the only libs installed are the ones specified in the installation instructions, there has been no libdmrconf installed manually or via packages that I am aware of. (I’ve looked in the package list of installed libs apt list —installed etc).

pe1rrr commented 3 years ago

I have now seen what a working DMR ID database should look like, and can confirm that unfortunately the dmrconf/qdmr upload isn't actually working.

hmatuschek commented 3 years ago

To answer about libdmrconf, the only libs installed are the ones specified in the installation instructions, there has been no libdmrconf installed manually or via packages that I am aware of. (I’ve looked in the package list of installed libs apt list —installed etc).

libdmrconf gets installed whenever you run make install. The DEB package then splits it into 4 packages, libdmrconf, libdmrconf-dev, dmrconf and qdmr.

A list can be specified with e.g. --id="262,263,..." (the quotes are optional if there are no spaces in the list.

I have now seen what a working DMR ID database should look like, and can confirm that unfortunately the dmrconf/qdmr upload isn't actually working.

Ok, I'll investigate that further. I've got your wireshark capture of an upload. That will help.

hmatuschek commented 3 years ago

With commit 44ced21f4172268e63f1a7e626fc766bdb2b39e7 I've fixed an issue with the call-sign DB upload that overrides the header whenever there are more than 5461 entries. This should be fixed. You may try to circumvent this issue using the --limit=5000 option. With this, only the first call-sign DB bank will be written including the header. If this works, the bank selection is still buggy.

pe1rrr commented 3 years ago
dmrconf --id=204,234,235,313,312,505,317,318 --limit=5000 write-db
ERROR in /home/pi/build/qdmr/cli/writecallsigndb.cc@33: Please specify a valid DMR ID for --id option.

What am I doing wrong?

hmatuschek commented 3 years ago

Opps, my fault. It is fixed now. The option was only implemented for the 'encode-db' command.

pe1rrr commented 3 years ago

Is encode-db required anywhere in the process of uploading the DMR ID database? I assumed using write-db was the correct and only procedure.

hmatuschek commented 3 years ago

No, encode-db is only used for debugging. It just writes the memory image of the DB into a file.

hmatuschek commented 2 years ago

Got an GD-77 lend by a fellow ham. So I can finally tackle this issue. Although a year old.

hmatuschek commented 2 years ago

Ok, the implementation/encoding is fine. However, it depends on how many entries I write 1k is ok, 10k is not. So it is likely an address issue. Should be fixable.

hmatuschek commented 2 years ago

Ok, it is. The limit is 5460/5461 entries. There is no bank switch from bank 3 to bank 4.