[Solved - thanks everyone!] Did I 'brick' my Arduino?

Hiya folks!

I’ve been programming my Arduino using a Macintosh. I am familiar with the ‘Port Problem’ which I have encountered previously with stand alone Arduino boards. The Port Problem is when an Arduino is connected through a USB connector, and the connection port fails to show up in the Port… menu of the Arduino IDE (I use version1.6.0).

Usually quitting the IDE, unplugging the Arduino board (or bit), then restarting and replugging everything fixes the problem and the port is restored.

Recently I was reprogramming my Arduino bit for the World Time project, and encountered the Port Problem. My fix did not work. I tried everything from this thread, I shut down and restarted everything, and even shorted the RESET to the GND lines from the ISP connection momentarily to try to reset the Arduino. None of it worked, so in a panic, I burned the bootloader using a Pocket Programmer, and uploaded my sketch to the ICSP pins using the programmer. This worked, but the DX and RX lights are now always on. And the USB ports remain invisible - I can only program this bit using the programmer now.

I bought another Arduino bit, and it works perfectly, so I know the computer’s USB ports and software are fine. (Note, I have made the USB power modification on both my fully-functional and broken Arduinos. This problem is probably unrelated, as it appeared long after making the modification. I feel it broke when I used the programmer on it.)

Is there anything I can do to restore the malfunctioning Arduino bit? Thank you for any ideas and assistance!

Attn, Arduino mavens:
@syedBits @JackANDJude @alexpikkert @codewizard58 @Matt_littleBits @sean_littleBits

Hi Chris,

I may be wrong, but doesn’t uploading your sketch over ICSP blow away the bootloader? If that’s true, then the reason the USB doesn’t work AFTER you uploaded your sketch over ICSP might be unrelated to the reason it didn’t work before. (I think TX and RX lights being solid on might be another indication of the bootloader being gone…)

I’m not sure about the original problem, but for troubleshooting going forward you might want to just burn the bootloader and try to make it show up as a port.

1 Like

Thanks Sam (@skearney),

I’m pretty sure I had tried that before, but I just did it again, and no dice. The behavior of this particular bit is unchanged. The RX and TX lights are, I believe due to the sketch I’m running, because they don’t come on until I load and run the sketch. In particular, I call pinMode(0, INPUT_PULLUP); where pin 0 is also RX, and pin 1 is an output pin, which gets HIGH written to it during the course of the program. I don’t think that should adversely affect the bit, but I usually avoid pins 0 and 1 on boards with more pins.

Well, this particular Arduino has been built semi-permanently into a project (World Time), and I can always reprogram it through the ICSP, so it’s not a total loss. But I surely want to understand the route of it’s failure, so I can avoid that path in the future!

Thanks again for your help, and if you have any further thoughts, I’d like to hear them.

1 Like

Hi Chris @chris101,
I suppose an Arduino W6 cannot be bricked…
I hope one of the Littlebits engineers can explain what happened inside the W6…
I experienced another funny USB and port problem.
I have an original Arduino Duemillenova and the little Littlebits Arduino, which is a leonardo.
When using the old due first and then changing in the IDE to the leonardo the port starts acting strange.
Starting a program works, but after debugging the next start fails because the port assignment has disappeared into nirvana.
I must fix the port setting each time when restarting a program which is extremely annoying. :alien:

Hi Chris @chris101,

Sure, that makes sense. Well, the only other things I can think of are:

  1. If you haven’t already, with just the bootloader loaded on the chip, check to see if the USB is recognized at all by your operating system (this would be Device Manager on Windows, or its equivalent on other OS). If it shows up as a COM port but you can’t get at it from the IDE (unlikely), it’s an IDE problem. If it shows up as an “unknown device” or something similar, that may be an indication of a weird software or hardware issue on the Arduino. If it doesn’t show up at all, it may be a hardware/connections issue, which leads me to step 2:

  2. If you have the tools, check the hardware connections on the board itself, referring to the schematic and EAGLE files. Likely culprits would be the pins on the USB connector, W6R12, W6R13 and W6L1. Use a magnifier of some kind if you have it and check for cold/broken solder joints.

If all else fails and you are able to swap it out in your project with your other good Arduino, LB customer service is very very good about replacing bits and they’ll send it to the engineers for FA.

The port does not show up, and I don’t see the proverbial ‘broken wire’ either (it’s the problem I always look for, cause I know how to fix that one! I think the USB interface may be dead - it acts like it.

USB support with Arduino seems tenuous to me. When I use the programmer, it never fails. I have had usb problems with every Arduino board I’ve ever used (about 7 different brands.)

ps, hey, welcome back @alexpikkert! I hope you had a good summer vacation!

1 Like

Hello,

I’ve a similiar situation. I’ve uploaded a sketch to my LittleBits Arduino. But after that, I can not modify the device. There is no serial port anymore. I’ve tried it on Linux and OS X. I have Arduino Nano, which I can use. There is no problem with IDE, PC or Cable. Do I have brick my w6 arduino?

@Chris101: you wrote, that you’ve tried to reset your Arduino shorted RESET and GND. Where is RESET or the ISP connection?

I’ve found the pinout at Arduino Bit SPI Connections?

No I’ve shorted RESET and GND and in the syslog (Linux) I can see

[ 2356.705518] usb 1-2: new full-speed USB device number 3 using xhci_hcd
[ 2356.835480] usb 1-2: New USB device found, idVendor=2341, idProduct=0036
[ 2356.835486] usb 1-2: New USB device strings: Mfr=2, Product=1, SerialNumber=0
[ 2356.835490] usb 1-2: Product: Arduino Leonardo
[ 2356.835492] usb 1-2: Manufacturer: Arduino LLC
[ 2356.835804] usb 1-2: ep 0x82 - rounding interval to 1024 microframes, ep desc says 2040 microframes
[ 2356.836191] cdc_acm 1-2:1.0: ttyACM3: USB ACM device

it means, the device itself is visible in general. The serial device /dev/ttyACM3 is visible for a short time, but I’m not able to upload a sketch via the IDE :frowning:

any helpful ideas are very welcome

Hello @mibo,
the issue is the USB port. The Nano, if your using the official one or at least a compatible clone, has a separate device ( FTDI ) for the USB port.

The Arduino Leonardo, which is basically the same as the LB Arduino, uses the integrated USB device controller of the microcontroller. In case of a reset, the USB port will be enumerated and shortly disappears from the list. Furthermore, Arduino uses a concept of programming port, which is typically the enumerated USB COM port, plus 1. On Linux this is quite similar, the typical serial port naming is /dev/ttyACMx, with x varying.

The ISP is a standard one. So RESET is on pin 5, GND opposite to it on pin 6.
best regards
7th Dwarf

it was a time based problem or solution. I’ve pressed upload sketch in the IDE and after that I’ve shortend RESET and GND (and a loop was setting the correct permission on /dev/ttyACM on my Linux machine).

No the Arduino module is working fine. There should be a problem during the last upload, but my module was not bricked :smile:

1 Like

Hi @mibo,
ok you solved it by yourself. That’s great!

Maybe this part of the Arduino Leonardo Hardware description will give you further insights:
https://www.arduino.cc/en/Main/ArduinoBoardLeonardo the chapter about “Automatic (Software) Reset and Bootloader Initiation”.

BTW: my board always shows up as /dev/ttyACM0 in the IDE.

best regards
7th Dwarf

1 Like

How time flies!

My first solution to the problem of my unprogrammable Arduino bit was to purchase a new Arduino bit - and that certainly worked! But it’s not a cost effective solution, so I have followed every thread here and elsewhere about ‘disappearing ports’. Lots of ideas, however none ever solved the problem with my bit. Until now!

I found a solution, described in reply #1 of this thread on the arduino.cc forum.

I have been able to rescue all of my locked-up 32u4 boards using the method described: reset-upload, reset-upload, … repeating until the upload catches. Do not wait for the port to appear, if you do, it will be gone before the uploading actually begins. The way to catch the short time the port is available (a few hundred milliseconds maybe?) is to just keep resetting and immediately uploading from the IDE. Use a short program that uses few resources, such as a modified Blink sketch, where pin 13 is replaced with pin 9, and one of the LED bits (led, brite led, long led, uv led, rgb led, bargraph, or a number bit) is attached to the middle output connector.

Then you’ll need to attach a switch - a bare component or even just a wire, not the button or other switch bit - to the appropriate holes in the ICSP connector on the board. See this recent post of mine about how to do that.

Next, open or create your simple sketch in the IDE. Use the version 1.6.11 or later. Notice that the Board Manager (in the Tools > Boards > … menu) now has a littleBits Arduino Module option. Select that as your board. Compile (ie Verify) your sketch, and be sure that it compiles correctly. Then poise your mouse over the Upload button. Contact and release the reset button you made, and click the Upload button.

If the program uploads - Great! The Arduino is freed and will now function normally. If you get an avrdude error that there is no port, or no device, or other hardware error, wait a second or two and do it again. I needed to repeat the process 9 times to get my Blink sketch to upload to my previously ‘bricked’ Arduino bit. After that sketches uploaded the first time, and the port appeared in the Port menu

2 Likes