Red light does not stop blinking: servotor bricked?

Hello,

I tried to upload the 2.0 firmware using the Arduino interface a few times without success. Every time, the upload failed without any indication of the real reason. I had set the board type and the USB serial port was detected. Sometime it just never started, other times avrdude never finished. it seems that one of the attempts failed harder than the other ones…

I’m not sure what happened there. Now, the red light on the servotor is blinking red and never stops. I can see that there is some kind of cycle but it never stops. Moreover, the computer is not able to communicate with the board. It seems like the serial port is recognized, but can’t negotiate capabilities. Of course, I can’t connect PoCoMo or do anything interesting with it.

What does the red led blinking means? Is there a way to recover from this?

I’m using the Arduino interface V1.0.1 that is included in Fedora 17. Arduino was launched as root to avoid any rights issue. This is my first experience with Arduino, microcontroler or servo, but I’m quite a seasoned Linux Sysadmin/user with some dev background.

Thanks for your help and feel free to ask for more details.

Tom.

edit: simplified problem and question after some analysis

A never-ending blinking light means that the controller is stuck in bootloader mode because there is no loaded program for it to run. The bootloader is the program that runs at boot that either loads a new program from the arduino software, or runs the currently loaded program. Your computer bootloader, for example, is the screens your computer shows before it boots the operating system.

Here’s how the Arduino software usually loads a program:
1.) Send a signal to the board to reset to the bootloader
2.) Arduino software waits for the USB connection to reset because the board switched to bootloader
3.) Board is now in bootloader
4.) Arduino software sees new USB connection, sends what it supposes is the bootloader a new program
5.) Bootloader re-writes the program space with the program the Arduino software just sent it, then runs what it just wrote

Because your board is already in bootloader, it never resets, and so the Arduino software is stuck waiting forever for the board to reset.

Here’s how you should be able to fix it:
1.) Hold the reset button down, don’t unpress it yet
2.) Press upload on the Arduino software, and wait for a second after it shows "uploading code"
3.) Unpress the reset button, this acts as the “reset” the Arduino software is waiting for
4.) The Arduino software should now load a new program, and the bootloader should run it.

Let me know how this works for you!

I have the same thing going on with my hexy as well. I created the problem though and fixed it…sort of.

As the story goes, I have been having a heck of a time getting any code to upload to the servotor board.

I keep on receiving this:

Connecting to programmer: .avrdude: Send: . [1b]
avrdude: Send: S [53]
avrdude: ser_recv(): programmer is not responding
avrdude: butterfly_recv(): programmer is not responding

This was seen on Linux, Windows, and Mac. Head scratching commences.
I pulled out a leonardo arduino just to test my setup…it works as expected.

Getting desperate…

I pulled out the AVR ISP MKII and proceeded to re-burn the bootloader onto it. I found the bootloader code on github, but I could not compile it correctly. It is missing the LUFA Library and some of the Makefile needs attention.

I ended up flashing the bootloader with this command:

The bootloader was burned onto the avr successfully

Now all I get is the blinking light…but

I do see this showing up in dmesg:

[ 4387.520786] usb 1-1.4: >new full-speed USB device number 19 using ehci_hcd [ 4387.614114] usb 1-1.4: >New USB device found, idVendor=27c2, idProduct=0001 [ 4387.614119] usb 1-1.4: >New USB device strings: Mfr=2, Product=1, SerialNumber=0 [ 4387.614121] usb 1-1.4: >Product: Servotor32 [ 4387.614124] usb 1-1.4: >Manufacturer: ArcBotics LLC [ 4387.614565] cdc_acm 1-1.4:1.0: >ttyACM0: USB ACM device

However, this is very different than what I have seen before. Before I burned the boot loader I saw hexy enumerating as Leonardo. Testing out the new bootloader has also been probelmatic. The servos are extremely jittery and hexy does not perform like before.

I am able to finally upload code to hexy though, but even this comes as a catch. I have to re-burn the boot loader everytime before I am able to get the arduino environment to accept a new sketch.

So my question(s) are, where is the up to date boot loader for the servotor board?

and

How do I get the servotor board to continuously accept a sketch from the arduino environment with out encountering “programmer is not responding” related messages? I wonder if the serial communication is happening at the time that the arduino environment is trying to communicate with the avr.

whooooah, I feel you’re making this WAY too complicated. There really wasn’t a need to re-flash the bootloader, just put it into bootloader to send it new arduino code, like the above message states.

If you really wanted to reflash the bootloader, we have pre-compiled hex files here:
github.com/ArcBotics/Servotor32 … Bootloader

If you want, here’s the hex file we use to flash new boards. It comes pre-loaded with the 2.0 firmware:
arcbotics.com/hosting/Servotor%2 … 20v2.0.hex

If all this STILL fails, you can check the fuse settings:
github.com/ArcBotics/Servotor32 … ttings.txt

No need to recompile anything here…