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
223 stars 46 forks source link

Implement support for BTECH DR-1801UV aka BF-1801 A6 #285

Closed hmatuschek closed 5 months ago

hmatuschek commented 1 year ago

This is a new device in the same chassis as the famous DM-1801. However, the hard and firmware is not related at all with DM-1801. The DR-1801UV is based on the Auctus A6 radio-on-a-chip.

Interface:

Codeplug:

Reverse engineering

Testing

DH1PK commented 11 months ago

Hi! I am testing the devel branch with my DR1801-UV. The cable I use has a "ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port / Mobile Action MA-8910P" chip and I built a second cable with a CH340 Adapter (idVendor=1a86, idProduct=7523). Modified the lib/dr1801uv_interface.cc to match my VID/PID and built from source. Radio starts download but the same error happens with both cables:


Debug in src/application.cc@446: Last device is invalid, search for new one.
Debug in lib/usbserial.cc@117: Search for serial port with matching VID:PID 28e9:18a.
Debug in lib/usbserial.cc@117: Search for serial port with matching VID:PID 1fc9:94.
Debug in lib/hid_libusb.cc@128: Search for HID interfaces matching VID:PID 15a2:73.
Debug in lib/dfu_libusb.cc@157: Search for DFU devices matching VID:PID 483:df11.
Debug in lib/usbserial.cc@117: Search for serial port with matching VID:PID 1a86:7523.
Debug in lib/usbserial.cc@124: Found ttyUSB0 (USB 1a86:7523).
Debug in lib/c7000device.cc@235: Search for C7000 devices matching VID:PID 1206:227.
Debug in lib/usbdevice.cc@253: Check if serial port ttyUSB0 still exisist and has VID:PID 1a86:7523.
Debug in lib/radio.cc@61: Try to detect radio at Serial interface 'ttyUSB0'.
Debug in lib/usbserial.cc@27: Try to open Serial interface 'ttyUSB0'.
Debug in lib/usbserial.cc@72: Opened serial port ttyUSB0 with 9600baud.
Debug in lib/auctus_a6_interface.cc@23: Open interface to Auctus A6 based radio.
Debug in lib/auctus_a6_interface.cc@90: Send aa06010403bb
Debug in lib/auctus_a6_interface.cc@138: Got response aa0781040183bb.
Debug in lib/auctus_a6_interface.cc@90: Send aa06000006bb
Debug in lib/auctus_a6_interface.cc@138: Got response aa3a800001202c4246313830312c41362d303030302d585858582c706f727461626c652c3133364d2d3137344d2c3430304d2d3438304d2cfdbb.
Debug in lib/dr1801uv_interface.cc@341:  ,BF1801,A6-0000-XXXX,portable,136M-174M,400M-480M,
Debug in lib/auctus_a6_interface.cc@90: Send aa0a01000001c200c8bb
Debug in lib/auctus_a6_interface.cc@138: Got response aa158100010001dd90000000680002e69e17d30fbb.
Debug in lib/dr1801uv_interface.cc@409: Set baudrate to 115200.
Debug in lib/auctus_a6_interface.cc@90: Send aa06010106bb
QSocketNotifier: Socket notifiers cannot be enabled or disabled from another thread
QSocketNotifier: Socket notifiers cannot be enabled or disabled from another thread
Debug in lib/dr1801uv_interface.cc@166: Start reading 122256b of codeplug memory.
ERROR in lib/usbserial.cc@100: Serial port error: (9) Die Ressource ist zur Zeit nicht verfügbar.
QSocketNotifier: Socket notifiers cannot be enabled or disabled from another thread
Debug in lib/dr1801uv_interface.cc@182: Reset baudrate to 9600.
QSocketNotifier: Socket notifiers cannot be enabled or disabled from another thread
ERROR in lib/dr1801uv_codeplug.cc@60: Cannot decode invalid channel at index 0, got promissed 41 valid channels.
ERROR in lib/dr1801uv_codeplug.cc@3277: Cannot decode channel elements.
ERROR in lib/dr1801uv_codeplug.cc@3262: Cannot decode elements.
Debug in lib/usbserial.cc@105: Serial port will close now.
ERROR in lib/dr1801uv_codeplug.cc@60: Cannot decode invalid channel at index 0, got promissed 41 valid channels.
ERROR in lib/dr1801uv_codeplug.cc@3277: Cannot decode channel elements.
ERROR in lib/dr1801uv_codeplug.cc@3262: Cannot decode elements.
Speicherzugriffsfehler (Speicherabzug geschrieben)

Shall I open a new issue or does this belong here?

Regards, Patrick (DH1PK)

DH1PK commented 11 months ago

dmrconf verbose output:

~/qdmr/2023-12/qdmr-devel$ dmrconf -D ttyUSB0 -R dr1801uv -V read test.yaml
Debug in cli/autodetect.cc@40: Autodetect radios.
Debug in lib/usbserial.cc@117: Search for serial port with matching VID:PID 28e9:18a.                                                                                       
Debug in lib/usbserial.cc@117: Search for serial port with matching VID:PID 1fc9:94.                                                                                        
Debug in lib/hid_libusb.cc@128: Search for HID interfaces matching VID:PID 15a2:73.                                                                                         
Debug in lib/dfu_libusb.cc@157: Search for DFU devices matching VID:PID 483:df11.                                                                                           
Debug in lib/usbserial.cc@117: Search for serial port with matching VID:PID 1a86:7523.                                                                                      
Debug in lib/usbserial.cc@124: Found ttyUSB0 (USB 1a86:7523).                                                                                                               
Debug in lib/c7000device.cc@235: Search for C7000 devices matching VID:PID 1206:227.                                                                                        
Info in cli/autodetect.cc@48: Found 1 device(s):                                                                                                                            
Info in cli/autodetect.cc@50:   Serial interface 'ttyUSB0'.
Debug in lib/usbdevice.cc@253: Check if serial port ttyUSB0 still exisist and has VID:PID 1a86:7523.
Debug in cli/autodetect.cc@87: Using device ttyUSB0.                                                                                                                        
Debug in lib/usbdevice.cc@253: Check if serial port ttyUSB0 still exisist and has VID:PID 1a86:7523.                                                                        
Debug in lib/radio.cc@61: Try to detect radio at Serial interface 'ttyUSB0'.                                                                                                
Debug in lib/usbserial.cc@27: Try to open Serial interface 'ttyUSB0'.                                                                                                       
Debug in lib/usbserial.cc@72: Opened serial port ttyUSB0 with 9600baud.                                                                                                     
Debug in lib/auctus_a6_interface.cc@23: Open interface to Auctus A6 based radio.                                                                                            
Debug in lib/auctus_a6_interface.cc@90: Send aa06010403bb                                                                                                                   
Debug in lib/auctus_a6_interface.cc@138: Got response aa0781040183bb.                                                                                                       
Debug in lib/auctus_a6_interface.cc@90: Send aa06000006bb                                                                                                                   
Debug in lib/auctus_a6_interface.cc@138: Got response aa3a800001202c4246313830312c41362d303030302d585858582c706f727461626c652c3133364d2d3137344d2c3430304d2d3438304d2cfdbb. 
Debug in lib/dr1801uv_interface.cc@341:  ,BF1801,A6-0000-XXXX,portable,136M-174M,400M-480M,                                                                                 
[                                                  ] 0%                                                                                                                     
Debug in lib/auctus_a6_interface.cc@90: Send aa0a01000001c200c8bb
Debug in lib/auctus_a6_interface.cc@138: Got response aa158100010001dd90000000680002e69e17d30fbb.                                                                           
Debug in lib/dr1801uv_interface.cc@409: Set baudrate to 115200.                                                                                                             
[                                                  ] 0%
[==================================================] 100%
Debug in lib/dr1801uv_interface.cc@182: Reset baudrate to 9600.                                                                                                             
Debug in lib/usbserial.cc@105: Serial port will close now.                                                                                                                  
Debug in cli/readcodeplug.cc@48: Save codeplug at 'test.yaml'.                                                                                                              
ERROR in lib/dr1801uv_codeplug.cc@60: Cannot decode invalid channel at index 0, got promissed 41 valid channels.                                                            
ERROR in lib/dr1801uv_codeplug.cc@3277: Cannot decode channel elements.                                                                                                     
ERROR in lib/dr1801uv_codeplug.cc@3262: Cannot decode elements.                                                                                                             
ERROR in cli/readcodeplug.cc@57: Cannot decode codeplug:   In dr1801uv_codeplug.cc:3262: Cannot decode elements.                                                            
  In dr1801uv_codeplug.cc:3277: Cannot decode channel elements.                                                                                                             
  In dr1801uv_codeplug.cc:60: Cannot decode invalid channel at index 0, got promissed 41 valid channels.          

test.yaml is NOT written.

Regards, Patrick

DH1PK commented 11 months ago

Downloading codeplug as bin works, so the cable seems OK:


Debug in lib/usbserial.cc@124: Found ttyUSB0 (USB 1a86:7523).                                                                                                               
Debug in lib/c7000device.cc@235: Search for C7000 devices matching VID:PID 1206:227.                                                                                        
Info in cli/autodetect.cc@48: Found 1 device(s):                                                                                                                            
Info in cli/autodetect.cc@50:   Serial interface 'ttyUSB0'.
Debug in lib/usbdevice.cc@253: Check if serial port ttyUSB0 still exisist and has VID:PID 1a86:7523.
Debug in cli/autodetect.cc@87: Using device ttyUSB0.                                                                                                                        
Debug in lib/usbdevice.cc@253: Check if serial port ttyUSB0 still exisist and has VID:PID 1a86:7523.                                                                        
Debug in lib/radio.cc@61: Try to detect radio at Serial interface 'ttyUSB0'.                                                                                                
Debug in lib/usbserial.cc@27: Try to open Serial interface 'ttyUSB0'.                                                                                                       
Debug in lib/usbserial.cc@72: Opened serial port ttyUSB0 with 9600baud.                                                                                                     
Debug in lib/auctus_a6_interface.cc@23: Open interface to Auctus A6 based radio.                                                                                            
Debug in lib/auctus_a6_interface.cc@90: Send aa06010403bb                                                                                                                   
Debug in lib/auctus_a6_interface.cc@138: Got response aa0781040183bb.                                                                                                       
Debug in lib/auctus_a6_interface.cc@90: Send aa06000006bb                                                                                                                   
Debug in lib/auctus_a6_interface.cc@138: Got response aa3a800001202c4246313830312c41362d303030302d585858582c706f727461626c652c3133364d2d3137344d2c3430304d2d3438304d2cfdbb. 
Debug in lib/dr1801uv_interface.cc@341:  ,BF1801,A6-0000-XXXX,portable,136M-174M,400M-480M,                                                                                 
[                                                  ] 0%                                                                                                                     
Debug in lib/auctus_a6_interface.cc@90: Send aa0a01000001c200c8bb
Debug in lib/auctus_a6_interface.cc@138: Got response aa158100010001dd90000000680002e69e17d30fbb.                                                                           
Debug in lib/dr1801uv_interface.cc@409: Set baudrate to 115200.                                                                                                             
[                                                  ] 0%
[==================================================] 100%
Debug in lib/dr1801uv_interface.cc@182: Reset baudrate to 9600.                                                                                                             
Debug in lib/usbserial.cc@105: Serial port will close now.                                                                                                                  
Debug in cli/readcodeplug.cc@48: Save codeplug at 'test.bin'.     
DH1PK commented 11 months ago

Hi! Here is the requested test.bin file. Programming was done with the factory software. Regards, Patrick test.bin.gz

DH1PK commented 11 months ago

Hi! Today I received a new DR1801UV. Tried downloading the codeplug and got a similar error:

Debug in lib/usbserial.cc@117: Search for serial port with matching VID:PID 1a86:7523.
Debug in lib/usbserial.cc@124: Found ttyUSB0 (USB 1a86:7523).
Debug in lib/c7000device.cc@235: Search for C7000 devices matching VID:PID 1206:227.
Debug in lib/usbdevice.cc@253: Check if serial port ttyUSB0 still exisist and has VID:PID 1a86:7523.
Debug in lib/radio.cc@61: Try to detect radio at Serial interface 'ttyUSB0'.
Debug in lib/usbserial.cc@27: Try to open Serial interface 'ttyUSB0'.
Debug in lib/usbserial.cc@72: Opened serial port ttyUSB0 with 9600baud.
Debug in lib/auctus_a6_interface.cc@23: Open interface to Auctus A6 based radio.
Debug in lib/auctus_a6_interface.cc@90: Send aa06010403bb
Debug in lib/auctus_a6_interface.cc@138: Got response aa0781040183bb.
Debug in lib/auctus_a6_interface.cc@90: Send aa06000006bb
Debug in lib/auctus_a6_interface.cc@138: Got response aa3a800001202c4246313830312c41362d303030302d585858582c706f727461626c652c3133364d2d3137344d2c3430304d2d3438304d2cfdbb.
Debug in lib/dr1801uv_interface.cc@341:  ,BF1801,A6-0000-XXXX,portable,136M-174M,400M-480M,
Debug in lib/auctus_a6_interface.cc@90: Send aa0a01000001c200c8bb
Debug in lib/auctus_a6_interface.cc@138: Got response aa158100010001dd90000000680002e69eb193e9bb.
Debug in lib/dr1801uv_interface.cc@409: Set baudrate to 115200.
Debug in lib/auctus_a6_interface.cc@90: Send aa06010106bb
QSocketNotifier: Socket notifiers cannot be enabled or disabled from another thread
QSocketNotifier: Socket notifiers cannot be enabled or disabled from another thread
Debug in lib/dr1801uv_interface.cc@166: Start reading 122256b of codeplug memory.
ERROR in lib/usbserial.cc@100: Serial port error: (9) Die Ressource ist zur Zeit nicht verfügbar.
QSocketNotifier: Socket notifiers cannot be enabled or disabled from another thread
Debug in lib/dr1801uv_interface.cc@182: Reset baudrate to 9600.
QSocketNotifier: Socket notifiers cannot be enabled or disabled from another thread
ERROR in lib/dr1801uv_codeplug.cc@1058: Unexpected invalid zone at index 0, was promissed 1 zones.
ERROR in lib/dr1801uv_codeplug.cc@3292: Cannot decode zone elements.
ERROR in lib/dr1801uv_codeplug.cc@3262: Cannot decode elements.
Debug in lib/usbserial.cc@105: Serial port will close now.
ERROR in lib/dr1801uv_codeplug.cc@1058: Unexpected invalid zone at index 0, was promissed 1 zones.
ERROR in lib/dr1801uv_codeplug.cc@3292: Cannot decode zone elements.
ERROR in lib/dr1801uv_codeplug.cc@3262: Cannot decode elements.

The error "Die Ressource ist zur Zeit nicht verfügbar." appears about 1/3 into the downlaod process. Download continues (progress bar moves on, LED flashes).

Later I downloaded the factory-new codeplug as binary with dmrconf. See attached file.

Regards, Patrick 2023-12-07-test.bin.gz

DH1PK commented 11 months ago

Tried uploading a slightly modified codeplug from my D868UV to the new DR1801UV - no luck:

Debug in lib/usbdevice.cc@253: Check if serial port ttyUSB1 still exisist and has VID:PID 1a86:7523.
Debug in lib/usbdevice.cc@253: Check if serial port ttyUSB1 still exisist and has VID:PID 1a86:7523.
Debug in lib/radio.cc@61: Try to detect radio at Serial interface 'ttyUSB1'.
Debug in lib/usbserial.cc@27: Try to open Serial interface 'ttyUSB1'.
Debug in lib/usbserial.cc@72: Opened serial port ttyUSB1 with 9600baud.
Debug in lib/auctus_a6_interface.cc@23: Open interface to Auctus A6 based radio.
Debug in lib/auctus_a6_interface.cc@90: Send aa06010403bb
Debug in lib/auctus_a6_interface.cc@138: Got response aa0781040183bb.
Debug in lib/auctus_a6_interface.cc@90: Send aa06000006bb
Debug in lib/auctus_a6_interface.cc@138: Got response aa3a800001202c4246313830312c41362d303030302d585858582c706f727461626c652c3133364d2d3137344d2c3430304d2d3438304d2cfdbb.
Debug in lib/dr1801uv_interface.cc@341:  ,BF1801,A6-0000-XXXX,portable,136M-174M,400M-480M,
Debug in lib/auctus_a6_interface.cc@90: Send aa0a01000001c200c8bb
Debug in lib/auctus_a6_interface.cc@138: Got response aa158100010001dd90000000680002e69eb193e9bb.
Debug in lib/dr1801uv_interface.cc@409: Set baudrate to 115200.
Debug in lib/auctus_a6_interface.cc@90: Send aa06010106bb
QSocketNotifier: Socket notifiers cannot be enabled or disabled from another thread
QSocketNotifier: Socket notifiers cannot be enabled or disabled from another thread
Debug in lib/dr1801uv_interface.cc@166: Start reading 122256b of codeplug memory.
ERROR in lib/usbserial.cc@100: Serial port error: (9) Die Ressource ist zur Zeit nicht verfügbar.
QSocketNotifier: Socket notifiers cannot be enabled or disabled from another thread
Debug in lib/dr1801uv_interface.cc@182: Reset baudrate to 9600.
Debug in lib/auctus_a6_interface.cc@90: Send aa06010403bb
QSocketNotifier: Socket notifiers cannot be enabled or disabled from another thread
Debug in lib/auctus_a6_interface.cc@138: Got response aa0781040183bb.
Debug in lib/auctus_a6_interface.cc@90: Send aa12010200010001da8c9ad700002580afbb
Debug in lib/auctus_a6_interface.cc@138: Got response aa08810201008abb.
Debug in lib/dr1801uv_interface.cc@435: Set baudrate to 9600.
Debug in lib/dr1801uv_interface.cc@232: Write codeplug...
Debug in lib/dr1801uv_interface.cc@259: Receive write-ACK.
ERROR in lib/auctus_a6_interface.cc@120: Unexpected start-of-packet byte: Expected aah, got 0h.
ERROR in lib/dr1801uv_interface.cc@453: Cannot complete codeplug write.
ERROR in lib/dr1801uv_interface.cc@261: Cannot finish write operation properly. Partial write?
ERROR in lib/dr1801uv.cc@174: Cannot write codeplug to the device.
QSocketNotifier: Socket notifiers cannot be enabled or disabled from another thread
QSocketNotifier: Socket notifiers cannot be enabled or disabled from another thread
Debug in lib/usbserial.cc@105: Serial port will close now.
Debug in src/application.cc@762: Write complete.
DH1PK commented 11 months ago

Hi!

Received a new "8 in 1 programming cable" from china with a CH341 converter. Downloading still fails.

ID 1a86:7523 QinHeng Electronics CH340 serial converter

Regards, Patrick

galagithub commented 8 months ago

It's not the cable! The software logic is at fault.

I also needed to modify the USB VID/PID combination to get qdmr to attempt radio detection, why such stupid logic, a select serial port window is a million times more inteligent.

I had to modify the serial write and add 150ms of delay between each character to get it to work, it then fails with "Permission error while locking the device".

Debug in src/application.cc@446: Last device is invalid, search for new one. Debug in lib/usbserial.cc@117: Search for serial port with matching VID:PID 28e9:18a. Debug in lib/usbserial.cc@117: Search for serial port with matching VID:PID 1fc9:94. Debug in lib/hid_libusb.cc@128: Search for HID interfaces matching VID:PID 15a2:73. Debug in lib/dfu_libusb.cc@157: Search for DFU devices matching VID:PID 483:df11. Debug in lib/usbserial.cc@117: Search for serial port with matching VID:PID 67b:2303. Debug in lib/usbserial.cc@124: Found ttyUSB0 (USB 67b:2303). Debug in lib/c7000device.cc@235: Search for C7000 devices matching VID:PID 1206:227. Debug in lib/usbdevice.cc@253: Check if serial port ttyUSB0 still exisist and has VID:PID 67b:2303. Debug in lib/radio.cc@61: Try to detect radio at Serial interface 'ttyUSB0'. Debug in lib/usbserial.cc@27: Try to open Serial interface 'ttyUSB0'. Debug in lib/usbserial.cc@72: Opened serial port ttyUSB0 with 9600baud. Debug in lib/auctus_a6_interface.cc@23: Open interface to Auctus A6 based radio. Debug in lib/auctus_a6_interface.cc@41: communication attempt 1 Debug in lib/auctus_a6_interface.cc@102: Send aa06010403bb Debug in lib/auctus_a6_interface.cc@162: Got response aa0781040183bb. Debug in lib/auctus_a6_interface.cc@41: communication attempt 1 Debug in lib/auctus_a6_interface.cc@102: Send aa06000006bb Debug in lib/auctus_a6_interface.cc@162: Got response aa3a800001202c4246313830312c41362d303030302d585858582c706f727461626c652c3133364d2d3137344d2c3430304d2d3438304d2cfdbb. Debug in lib/dr1801uv_interface.cc@335: ,BF1801,A6-0000-XXXX,portable,136M-174M,400M-480M, Debug in lib/usbdevice.cc@253: Check if serial port ttyUSB0 still exisist and has VID:PID 67b:2303. Debug in lib/usbdevice.cc@253: Check if serial port ttyUSB0 still exisist and has VID:PID 67b:2303. Debug in lib/radio.cc@61: Try to detect radio at Serial interface 'ttyUSB0'. Debug in lib/usbserial.cc@27: Try to open Serial interface 'ttyUSB0'. ERROR in lib/usbserial.cc@67: Cannot open serial port 'ttyUSB0': Permission error while locking the device. ERROR in lib/auctus_a6_interface.cc@16: Cannot construct Auctus A6 interface. Debug in lib/auctus_a6_interface.cc@41: communication attempt 1 Debug in lib/auctus_a6_interface.cc@102: Send aa06010403bb QIODevice::write (DR1801UVInterface): device not open

This had to be inserted into "send" function in "auctus_a6_interface.cc" to get the communication working:

if 0

if (total_length != QSerialPort::write((const char*)buffer, total_length)) { errMsg(err) << "QSerialPort: " << errorString(); errMsg(err) << "Cannot send request " << QString::number(command, 16) << "h."; return false; }

endif

for(uint32_t i = 0; i < total_length; i++) { QSerialPort::write((const char*)&buffer[i], 1); if(!QSerialPort::waitForBytesWritten()) { logDebug() << "Failed to write on serial port!"; errMsg(err) << "QSerialPort: " << errorString(); errMsg(err) << "Cannot send request " << QString::number(command, 16) << "h."; return false; } QThread::msleep(150); }

allesand commented 7 months ago

@galagithub : do you think calling someones work "stupid" gives the discussion a good direction?

galagithub commented 7 months ago

Calling the logic stupid gives a definitive pointer toward a direction.

There is no logical connection between an USB chip and a serial port, else all those official CPS software would use the same logic, but they don't.

You have several bug reports for the same root cause: stupid detection logic.

Of course, you can either fix it or not, it's you choice after all, but these bugs will keep on coming.

Now make a PHD thesis about how USB chips are always linked to a certain radio with a serial data interface, I dare you.

allesand commented 7 months ago

@galagithub : to clarify: I am just a qdmr user who is happy to have a working CPS for Linux. Thus, end of discussion for me here, as stated in #389, no point in continuing.

DH1PK commented 7 months ago

Is there anything I can do to help? galagithub tried to modify the code, but as far as I know without success. Is there a new version to test? Regards, Patrick

galagithub commented 7 months ago

@DH1PK it seems to me that this is a multithread problem, somehow the serial port is opened by another thread and never closed.

DH1PK commented 6 months ago

Hi! I tried the current "devel" code, but the error is still there:

Debug in lib/radio.cc@61: Try to detect radio at Serial interface 'ttyUSB0'. Debug in lib/usbserial.cc@27: Try to open Serial interface 'ttyUSB0'. ERROR in lib/usbserial.cc@67: Cannot open serial port 'ttyUSB0': Permission error while locking the device. ERROR in lib/auctus_a6_interface.cc@16: Cannot construct Auctus A6 interface. Debug in lib/auctus_a6_interface.cc@90: Send aa06010403bb QIODevice::write (DR1801UVInterface): device not open ERROR in lib/auctus_a6_interface.cc@92: QSerialPort: Permission error while locking the device

(yes, i am in group "dialout" and chirp etc do work)

Regards, Patrick

hmatuschek commented 6 months ago

The line

ERROR in lib/usbserial.cc@67: Cannot open serial port 'ttyUSB0': Permission error while locking the device.

gives a hint. Another process has locked the device. This is not qdmr. There is only one thread, that accesses the device. Under Debian derivatives, there is the modem-manager, that is a bit greedy concerning serial ports. I've added a line to the udev rules, installed along with qdmr. This should fix it, if the modem-manager is the culprit. Note, you need to reload the udev rules after install with

> udevadm control --reload-rules && udevadm trigger
DH1PK commented 6 months ago

Hi!

I compiled the current devel version and gave it a try. Remember I had to patch for my VID/PID.

Download now "runs further" but still fails. This is a brand new radio with factory configuration.

Debug in lib/usbserial.cc@124: Found ttyUSB0 (USB 1a86:7523). Debug in lib/c7000device.cc@235: Search for C7000 devices matching VID:PID 1206:227. Debug in lib/usbdevice.cc@253: Check if serial port ttyUSB0 still exisist and has VID:PID 1a86:7523. Debug in lib/radio.cc@61: Try to detect radio at Serial interface 'ttyUSB0'. Debug in lib/usbserial.cc@27: Try to open Serial interface 'ttyUSB0'. Debug in lib/usbserial.cc@72: Opened serial port ttyUSB0 with 9600baud. Debug in lib/auctus_a6_interface.cc@23: Open interface to Auctus A6 based radio. Debug in lib/auctus_a6_interface.cc@90: Send aa06010403bb Debug in lib/auctus_a6_interface.cc@138: Got response aa0781040183bb. Debug in lib/auctus_a6_interface.cc@90: Send aa06000006bb Debug in lib/auctus_a6_interface.cc@138: Got response aa3a800001202c4246313830312c41362d303030302d585858582c706f727461626c652c3133364d2d3137344d2c3430304d2d3438304d2cfdbb. Debug in lib/dr1801uv_interface.cc@334: ,BF1801,A6-0000-XXXX,portable,136M-174M,400M-480M, Debug in lib/auctus_a6_interface.cc@90: Send aa0a01000001c200c8bb Debug in lib/auctus_a6_interface.cc@138: Got response aa158100010001dd90000000680002e69eb193e9bb. Debug in lib/dr1801uv_interface.cc@402: Set baudrate to 115200. Debug in lib/auctus_a6_interface.cc@90: Send aa06010106bb QSocketNotifier: Socket notifiers cannot be enabled or disabled from another thread QSocketNotifier: Socket notifiers cannot be enabled or disabled from another thread Debug in lib/dr1801uv_interface.cc@159: Start reading 122256b of codeplug memory. ERROR in lib/usbserial.cc@100: Serial port error: (9) Die Ressource ist zur Zeit nicht verfügbar. QSocketNotifier: Socket notifiers cannot be enabled or disabled from another thread Debug in lib/dr1801uv_interface.cc@175: Reset baudrate to 9600. QSocketNotifier: Socket notifiers cannot be enabled or disabled from another thread ERROR in lib/dr1801uv_codeplug.cc@1058: Unexpected invalid zone at index 0, was promissed 1 zones. ERROR in lib/dr1801uv_codeplug.cc@3292: Cannot decode zone elements.
ERROR in lib/dr1801uv_codeplug.cc@3262: Cannot decode elements.
Debug in lib/usbserial.cc@105: Serial port will close now.
ERROR in lib/dr1801uv_codeplug.cc@1058: Unexpected invalid zone at index 0, was promissed 1 zones. ERROR in lib/dr1801uv_codeplug.cc@3292: Cannot decode zone elements. ERROR in lib/dr1801uv_codeplug.cc@3262: Cannot decode elements. Speicherzugriffsfehler (Speicherabzug geschrieben)

Will try to find my other radio which has some initial programming,

Regrads, Patrick

hmatuschek commented 6 months ago

Concerning patching the VID/PID. The last commit in the 435-implement-manual-device-interface-selection fixes the 1801 interface to accept any serial port.

Concerning the crash: the error message appears to be weird but somehow, the entire codeplug is read. Is that the binary codeplug, you attached above? It appears to be a decoding error.

hmatuschek commented 5 months ago

Okay, I'll close that one here. This issue tracks the implementation of the interface. That is technically done. So open a new issue, if there is a specific problem with this radio. E.g., #437.