Yet Another "Nano Won't Connect" Cry for Help (Ubuntu/Linux) [SOLVED]

I have three of these (EDIT: With the USB-C port, not USB-A.) They do have the Mega328P chip and the CH34OC USB chip so they are clones. I have spent three days trying to get these to work and been to about a hundred articles (most from the fine folks here on the Arduino forum) so I'm just going to give you the cliff notes below.

image

  • Ubuntu 22.04
  • Clone with Mega328P chip, CH34OC chip for USB-C
  • Using Old Bootloader for processor (tried multiple ones)
  • Have an Arduino Uno R3 as well, works fine, used for burning bootloader
  • Uno is on /dev/ttyACMO
  • Nano is on /dev/ttyS0
  • I am in dialout group and all ports have permissions
  • I have a bazillion cables, two of which were advertised as data cables: USB-A -> USB-C, USB-C both ends . . .
  • Tried USB 3.0, 2.0, and USB-C ports
  • Verbose on upload enabled
  • USB Viewer installed, doesn't tell me much (also below)
  • Mentions of upload are the example Blink sketch

Any upload (except one! see below) the error you all know about,

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00

The Gory Details

At first I thought being a clone, needed the bootloader burned. A couple of articles later and still not working I found the official doc and using method 1 I successfully burned the bootloader. (To those reading, this one did not work for me.) I know it worked because the "Blink" program was nuked from it, which tells me it was flashed and the bootloader installed.

Still fail on upload except ONE TIME. It was connected USB-C to USB-C and failing to communicate, on a whim I turned the Nano end of the cable over and plugged it back in, it uploaded. Ignored the chaos in my head that kept telling me this doesn't matter, USB-C is supposed to be reversible, it was working so I was goin' with it . . . .

Until it wasn't. Next upload attempt, fail.

Noted a mention on this forum about drivers, probably in a Windows context but the point is moot, looks like Elegoo has gone full ahead on their 3D printers, no Arduino info anywhere.

USB Viewer - can't tell what it's telling me, I can post output if it will bring this nightmare to an end, but what I DO know is an entry appears/disappears when I plug the Nano in.

Which leads me to cables. I've read conflicting info, most indicate the data wires are always present in USB-C, some say they're not and potentially charge only, others say the ones with the USB trident will always be a data cable (this info is also on Wikipedia.) No way to tell without cutting them up, which I'm on the verge of doing. I don't have small enough leads to accurately test as this guy says in the post dated Nov 25, 2014 at 20:45 (yes, 9 years ago. Desperate times, desperate measures.)

I re-burned the bootloader, after that I got it to work once, then failed afterward. I'm missing something.

So what have I overlooked? Why was I able to get it work once, has anyone got any ideas what I could do? I know the boards are good, it's the USB/connection that's killing me.

Edit: The verbose output isn't very helpful, but thought MAYBE the output on the bootloader burn might give us a glimmer of hope, so here it is.

"/home/bill/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/bin/avrdude" "-C/home/bill/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf" -v -patmega328p -cstk500v1 -P/dev/ttyACM0 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xDE:m -Ulfuse:w:0xFF:m

avrdude: Version 6.3-20190619
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/home/bill/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf"
         User configuration file is "/home/bill/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyACM0
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: erasing chip
avrdude: reading input file "0x3F"
avrdude: writing lock (1 bytes):

Writing | ################################################## | 100% 0.01s

avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x3F:
avrdude: load data lock data from input file 0x3F:
avrdude: input file 0x3F contains 1 bytes
avrdude: reading on-chip lock data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: 1 bytes of lock verified
avrdude: reading input file "0xFD"
avrdude: writing efuse (1 bytes):

Writing | ################################################## | 100% 0.01s

avrdude: 1 bytes of efuse written
avrdude: verifying efuse memory against 0xFD:
avrdude: load data efuse data from input file 0xFD:
avrdude: input file 0xFD contains 1 bytes
avrdude: reading on-chip efuse data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: 1 bytes of efuse verified
avrdude: reading input file "0xDE"
avrdude: writing hfuse (1 bytes):

Writing | ################################################## | 100% 0.01s

avrdude: 1 bytes of hfuse written
avrdude: verifying hfuse memory against 0xDE:
avrdude: load data hfuse data from input file 0xDE:
avrdude: input file 0xDE contains 1 bytes
avrdude: reading on-chip hfuse data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: 1 bytes of hfuse verified
avrdude: reading input file "0xFF"
avrdude: writing lfuse (1 bytes):

Writing | ################################################## | 100% 0.01s

avrdude: 1 bytes of lfuse written
avrdude: verifying lfuse memory against 0xFF:
avrdude: load data lfuse data from input file 0xFF:
avrdude: input file 0xFF contains 1 bytes
avrdude: reading on-chip lfuse data:

Reading | "/home/bill/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/bin/avrdude" "-C/home/bill/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf" -v -patmega328p -cstk500v1 -P/dev/ttyACM0 -b19200 "-Uflash:w:/home/bill/.arduino15/packages/arduino/hardware/avr/1.8.6/bootloaders/optiboot/optiboot_atmega328.hex:i" -Ulock:w:0x0F:m
################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: 1 bytes of lfuse verified

avrdude done.  Thank you.


avrdude: Version 6.3-20190619
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/home/bill/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf"
         User configuration file is "/home/bill/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyACM0
         Using Programmer              : stk500v1
         Overriding Baud Rate          : 19200
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : STK500
         Description     : Atmel STK500 Version 1.x firmware
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
         To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "/home/bill/.arduino15/packages/arduino/hardware/avr/1.8.6/bootloaders/optiboot/optiboot_atmega328.hex"
avrdude: writing flash (32768 bytes):

Writing | ################################################## | 100% 0.00s

avrdude: 32768 bytes of flash written
avrdude: verifying flash memory against /home/bill/.arduino15/packages/arduino/hardware/avr/1.8.6/bootloaders/optiboot/optiboot_atmega328.hex:
avrdude: load data flash data from input file /home/bill/.arduino15/packages/arduino/hardware/avr/1.8.6/bootloaders/optiboot/optiboot_atmega328.hex:
avrdude: input file /home/bill/.arduino15/packages/arduino/hardware/avr/1.8.6/bootloaders/optiboot/optiboot_atmega328.hex contains 32768 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.00s

avrdude: verifying ...
avrdude: 32768 bytes of flash verified
avrdude: reading input file "0x0F"
avrdude: writing lock (1 bytes):

Writing | ################################################## | 100% 0.02s

avrdude: 1 bytes of lock written
avrdude: verifying lock memory against 0x0F:
avrdude: load data lock data from input file 0x0F:
avrdude: input file 0x0F contains 1 bytes
avrdude: reading on-chip lock data:

Reading | ################################################## | 100% 0.01s

avrdude: verifying ...
avrdude: 1 bytes of lock verified

avrdude done.  Thank you.

The image that you show does not seem to have a USB-C connector.

  1. Run lsusb to see if your device is properly recognised.
  2. Run dmesg and check for odd stuff. E.g check for BRLTTY after connecting the board. It might be easiest to
    • disconnect the board
    • run dmesg -w,
    • connect the board and do this check

Note that dmesg -w does not close after running; use <ctrl>C.

If BRLTTY is indeed the culprit, remove it or disable it.

2 Likes

That tells me a needed configuration file was not found. I will guess and say it has needed information for programing the chip. Also I have not had much luck with USB-C and use USB2 or USB3. My experience with USB-C was that it was flaky and sometimes maybe it would work some times not, that was consistent with 6 different cables. You might try one of the legacy USB ports on your computer. I am also assuming it is like shown in the picture nothing but the USB cable connected.

1 Like

HAHA thank you, I saw that just seconds before you posted, it is that same board with a USB-C. :smiley:

lsusb with Nano board connected, note it's seeing the CH340 (** is my attempted bold, doesn't work in in code blocks:)

Bus 002 Device 002: ID 174c:3074 ASMedia Technology Inc. ASM1074 SuperSpeed hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 011: ID 058f:6362 Alcor Micro Corp. Flash Card Reader/Writer
Bus 001 Device 009: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 007: ID 0556:0001 Asahi Kasei Microsystems Co., Ltd AK5370 I/F A/D Converter
Bus 001 Device 005: ID 057e:030a Nintendo Co., Ltd USB Camera
Bus 001 Device 008: ID 046d:c52b Logitech, Inc. Unifying Receiver
**Bus 001 Device 037: ID 1a86:7523 QinHeng Electronics CH340 serial converter**
Bus 001 Device 004: ID 174c:2074 ASMedia Technology Inc. ASM1074 High-Speed hub
Bus 001 Device 029: ID 2341:0043 Arduino SA Uno R3 (CDC ACM)
Bus 001 Device 002: ID 046d:c408 Logitech, Inc. Marble Mouse (4-button)
Bus 001 Device 010: ID 1462:7d18 Micro Star International MYSTIC LIGHT 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

lsusb with Nano disconnected:

Bus 002 Device 002: ID 174c:3074 ASMedia Technology Inc. ASM1074 SuperSpeed hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 011: ID 058f:6362 Alcor Micro Corp. Flash Card Reader/Writer
Bus 001 Device 009: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 007: ID 0556:0001 Asahi Kasei Microsystems Co., Ltd AK5370 I/F A/D Converter
Bus 001 Device 005: ID 057e:030a Nintendo Co., Ltd USB Camera
Bus 001 Device 008: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 004: ID 174c:2074 ASMedia Technology Inc. ASM1074 High-Speed hub
Bus 001 Device 029: ID 2341:0043 Arduino SA Uno R3 (CDC ACM)
Bus 001 Device 002: ID 046d:c408 Logitech, Inc. Marble Mouse (4-button)
Bus 001 Device 010: ID 1462:7d18 Micro Star International MYSTIC LIGHT 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

I will have to pore through the output of dmesg, it's huge, at first glance not seeing what you mentioned. Thanks again!

What I gathered from that is the user config file overrides or alters the main config, like most Linux config files, see previous line:

System wide configuration file is "/home/bill/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf"

This dump is from the bootloader burn which worked, so I think we're good on that part.

True, I keep going back to cables . . . if everything else is in order then it could be cables, but I don't know. see previous reply, the computer is definitely seeing the CH340 chip so I don't know.

Hi @rocknbil

I'm going to ask you to post the full verbose output from an upload attempt.


:exclamation: This procedure is not intended to solve the problem. The purpose is to gather more information.


Please do this:

  1. Select File > Preferences... (or Arduino > Preferences... for macOS users) from the Arduino IDE menus.
    The "Preferences" dialog will open.
  2. Uncheck the box next to "Show verbose output during: compilation" in the "Preferences" dialog.
  3. Check the box next to "Show verbose output during: ☐ upload".
  4. Click the "OK" button.
  5. Attempt an upload, as you did before.
  6. After the upload fails, you'll see a button on the right side of the orange bar in Arduino IDE: Copy error messages. Click that button.
    This copies the full output to the clipboard.
  7. Open a forum reply here by clicking the "Reply" button.
  8. Click the <CODE/> icon on the post composer toolbar.
    This will add the forum's code block markup (```) to your reply to make sure the error messages are correctly formatted.
    Code block icon on toolbar
  9. Press the Ctrl+V keyboard shortcut (Command+V for macOS users).
    This will paste the error output from the upload into the code block.
  10. Move the cursor outside of the code block markup before you add any additional text to your reply.
  11. Click the "Reply" button to post the output.

No, this message is normal and expected. The AVRDUDE uploader tool has support for providing configuration files via multiple mechanisms:

The avrdude commands generated by Arduino IDE always use the -C flag approach, which points to the configuration file provided by the Arduino boards platform developer, which is guaranteed to provide the necessary configurations. This means having a "user" configuration file is completely unnecessary. AVRDUDE is simply communicating that no such file exists (but note that it is also communicating the "system wide" file being used):

No problem and thanks! I've been doing that most of the day. :-\ As mentioned, it doesn't "say" much.

Sketch uses 924 bytes (3%) of program storage space. Maximum is 30720 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 2039 bytes for local variables. Maximum is 2048 bytes.
"/home/bill/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/bin/avrdude" "-C/home/bill/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf" -v -V -patmega328p -carduino "-P/dev/ttyS0" -b57600 -D "-Uflash:w:/tmp/arduino/sketches/C48A82356E0C36E32204A656BEC46C3F/Blink.ino.hex:i"

avrdude: Version 6.3-20190619
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/home/bill/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf"
         User configuration file is "/home/bill/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyS0
         Using Programmer              : arduino
         Overriding Baud Rate          : 57600
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00

avrdude done.  Thank you.

Failed uploading: uploading error: exit status 1

I don't know for certain that it would matter, but seeing a USB-C connector, the first question that comes to mind is "are you sure you have a ATmega328P and not a ATmega328PB on that board?"

Had a look and only understood part of it . . . so I did this, does that help? Looks like the Nano USB chip is claiming the port. This is with the board connected.

sudo dmesg| grep tty
[    0.209437] printk: console [tty0] enabled
[    0.486999] 00:01: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[   16.080657] cdc_acm 1-5:1.0: ttyACM0: USB ACM device
[   16.176117] usb 1-6.3: ch341-uart converter now attached to ttyUSB0
[   52.219329] usb 1-6.3: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[   52.220005] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[  680.836295] usb 1-6.3: ch341-uart converter now attached to ttyUSB0
[  681.408357] usb 1-6.3: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[  681.408834] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[  884.863335] usb 1-6.3: ch341-uart converter now attached to ttyUSB0
[  885.427207] usb 1-6.3: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[  885.427674] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[72534.330035] cdc_acm 1-5:1.0: ttyACM0: USB ACM device
[72696.448738] usb 1-6.3: ch341-uart converter now attached to ttyUSB0
[72697.013431] usb 1-6.3: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[72697.014287] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[76910.209258] cdc_acm 1-6.3:1.0: ttyACM0: USB ACM device
[77827.201636] usb 1-6.2: ch341-uart converter now attached to ttyUSB0
[77827.771451] usb 1-6.2: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[77827.772499] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[78705.024774] usb 1-6.2: ch341-uart converter now attached to ttyUSB0
[78828.724159] ch341-uart ttyUSB0: usb_serial_generic_read_bulk_callback - urb stopped: -32
[78828.724358] ch341-uart ttyUSB0: usb_serial_generic_read_bulk_callback - urb stopped: -32
[78828.821082] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[78833.023700] usb 1-6.2: ch341-uart converter now attached to ttyUSB0
[78833.596442] usb 1-6.2: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[78833.601279] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[78911.615728] usb 1-6.2: ch341-uart converter now attached to ttyUSB0
[78932.236205] ch341-uart ttyUSB0: usb_serial_generic_read_bulk_callback - urb stopped: -32
[78932.236403] ch341-uart ttyUSB0: usb_serial_generic_read_bulk_callback - urb stopped: -32
[78932.245061] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[78963.588100] usb 1-6.2: ch341-uart converter now attached to ttyUSB0
[78964.156568] usb 1-6.2: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[78964.161597] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[79065.109909] usb 1-5: ch341-uart converter now attached to ttyUSB0
[79065.664589] usb 1-5: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[79065.665684] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[79112.569711] usb 1-5: ch341-uart converter now attached to ttyUSB0
[79113.125505] usb 1-5: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[79113.125891] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[79297.923682] usb 1-6.2: ch341-uart converter now attached to ttyUSB0
[79298.482287] usb 1-6.2: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[79298.483175] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[79537.022908] usb 1-6.2: ch341-uart converter now attached to ttyUSB0
[79550.482844] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[79553.406564] usb 1-6.2: ch341-uart converter now attached to ttyUSB0
[79553.980002] usb 1-6.2: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[79553.980738] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[79595.907114] usb 1-6.2: ch341-uart converter now attached to ttyUSB0
[79618.530798] cdc_acm 1-5:1.0: ttyACM0: USB ACM device
[80786.195143] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[81019.867898] cdc_acm 1-5:1.0: ttyACM0: USB ACM device
[81212.287712] usb 1-6.2: ch341-uart converter now attached to ttyUSB0
[81212.857701] usb 1-6.2: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[81212.858228] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[81320.834436] usb 1-6.2: ch341-uart converter now attached to ttyUSB0
[81425.171006] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[81445.984019] usb 1-9.1: ch341-uart converter now attached to ttyUSB0
[81446.550646] usb 1-9.1: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[81446.551435] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[81789.074540] usb 1-6.2: ch341-uart converter now attached to ttyUSB0
[81789.655627] usb 1-6.2: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[81789.656529] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[81856.382526] usb 1-6.1: ch341-uart converter now attached to ttyUSB0
[81856.967998] usb 1-6.1: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[81856.968952] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[82009.985774] usb 1-6.3: ch341-uart converter now attached to ttyUSB0
[82010.556469] usb 1-6.3: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[82010.557068] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[82978.432003] usb 1-6.3: ch341-uart converter now attached to ttyUSB0
[82978.997791] usb 1-6.3: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[82978.998283] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[83083.647202] usb 1-6.3: ch341-uart converter now attached to ttyUSB0
[83084.217160] usb 1-6.3: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[83084.217639] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[87083.909641] usb 1-6.3: ch341-uart converter now attached to ttyUSB0
[87084.474274] usb 1-6.3: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[87084.474837] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0

Ah, I think there's your issue. Uninstall brltty.

2 Likes

Thanks, the pic won't show it but with my loupe I see

ATMEL (logo)
MEGA328P
U-KR
354A3P
2238K3R

Done, still broken, but I did gain another serial port, ttyUSB0. Tried both, still not working.

What's odd is even after uninstall, sudo dmesg | grep tty still gives the same output as above:

[87083.909641] usb 1-6.3: ch341-uart converter now attached to ttyUSB0
[87084.474274] usb 1-6.3: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[87084.474837] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0

Those timestamps look the same as the tail end of the previous dmesg output. Unplug your Nano, do a sudo dmesg --clear, plug it back in and run dmesg again.

if you still see mentions of brltty, do a ps ax|grep brltty to see if an old process is still running. If you see one, you could try sudo killall brltty or, simpler, reboot.

1 Like

Right? :smiley:

sudo dmesg| grep tty
[ 1053.552060] usb 1-6.2: ch341-uart converter now attached to ttyUSB0

Or longer. :smiley: Just returning from reboot, also fail, "not responding" message.

It says attached to ttyUSB0, but also tried ttyS0.

That's saner. ttyUSB0 is the right one. Now that you've got a port you can talk to, you can start trying things like old bootloader vs new.

Unfortunately none of that worked and to avoid these three boards following the same path as some windows machines I've worked with (e.g., literally out the window) I went to bed. :smiley:

Today I blew $20 each for Insignia C to C and C to A USB data cables, beefier than what I've got. 4 times the cost of the boards LOL . . .

The first board I that burned the bootloader to failed with old bootloader, success with ATMega328P.

The second board which I did not burn a bootloader to failed with ATMega328P, success with old bootloader.

The third board which I'd never plugged in, same thing, requires selection of old bootloader to upload the Blink sketch.

Rinsed and repeated a couple times with consistent results. It appears my initial instinct was correct, with everything else working the problem was a solid and reliable cable. The charge cables will still have a use, to power the Nano's in my projects. Aside, I didn't think of it last night, but if I connect the C to A cable to one of the nano's, or a Nano to each end of the C to C cable, I should be able to read the pins of the USB adapter right off the board to see if it's a true data cable or not.

Anyone coming here wrestling with these little buggers: first make sure you have a good data cable, and unless you have a reason not to, go ahead and burn the bootloader so you don't have to select old bootloader.

Now if I can just remember where I was in the actual projects I'm golden! :smiley: Many thanks to everyone contributing to this issue, we got it solved.

Edit: success with verbose output, something I thought I'd never see. :smiley: This is the third untouched board using old bootloader.

Sketch uses 924 bytes (3%) of program storage space. Maximum is 30720 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 2039 bytes for local variables. Maximum is 2048 bytes.
"/home/bill/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/bin/avrdude" "-C/home/bill/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf" -v -V -patmega328p -carduino "-P/dev/ttyUSB0" -b57600 -D "-Uflash:w:/tmp/arduino/sketches/FA679FEFDE6579EEF87D259B97139B64/Blink.ino.hex:i"

avrdude: Version 6.3-20190619
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/home/bill/.arduino15/packages/arduino/tools/avrdude/6.3.0-arduino17/etc/avrdude.conf"
         User configuration file is "/home/bill/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyUSB0
         Using Programmer              : arduino
         Overriding Baud Rate          : 57600
         AVR Part                      : ATmega328P
         Chip Erase delay              : 9000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom        65    20     4    0 no       1024    4      0  3600  3600 0xff 0xff
           flash         65     6   128    0 yes     32768  128    256  4500  4500 0xff 0xff
           lfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           efuse          0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           lock           0     0     0    0 no          1    0      0  4500  4500 0x00 0x00
           calibration    0     0     0    0 no          1    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : Arduino
         Description     : Arduino
         Hardware Version: 2
         Firmware Version: 1.16
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: reading input file "/tmp/arduino/sketches/FA679FEFDE6579EEF87D259B97139B64/Blink.ino.hex"
avrdude: writing flash (924 bytes):

Writing | ################################################## | 100% 0.30s

avrdude: 924 bytes of flash written

avrdude done.  Thank you.
1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.