Perhaps the most serious of all hardware issues that we are facing right now is the problem of malfunction of the AVR ports. Although it is still unknown how many of the reported issues are caused by this problem, recently many teams have noticed strange behaviors that match the symptoms of malfunctioning AVR ports.
Typically either or both wheels stop completely or show very jerky movements as if its spinning velocity was disturbed by some kind of noise. This is the only noticeable symptom under normal usage conditions. The diagnostic of the problem is clear if the output of the pins are examined with the aid of an oscilloscope while the controller board attached to the programmer/debugger board executes some commanded motion (e.g. fw,14 for fast foward motion). See
this YouTube video.
Robots with AVR port malfunction, despite the obviously noticeable wheel spinning problem might pass all of the following tests -- note that not passing any of the tests below does not mean the robot does not have AVR port malfunction, it might just mean it has a more complex combination of different problems:
- ARM programming is OK, program checks and runs smoothly and console debug shows no problem at all.
- AVR programming is also OK, program checks and runs smoothly, with console debug also fine.
- ARM might listen fine to infrared commands, and respond appropriately.
- AVR and ARM communicate just find with each other through the SPI port.
- Connectors show no mechanical problem, there are no short-circuits in the boards, the solders are fine.
My guess is that reverse current from the motors is traveling back to the processor and damaging it. This means that in order to fix the
robots we would need to:
- Replace the AVR processor -- difficult and delicate work, but possible
- Re-design the bottom board adding some diodes in series to each motor connector in order to avoid reverse flow of current.
For your reference, if you look at the row of 8 LEDs in the programmer/debugger board, from left to right their corresponding jumpers are connected to the following pins of the AVR, respectively: PA0 (left-most),PA1,PA2,PA3,PA7,PB0,PB1,PB2 (right-most). The pins PA0,PA1,PA2,PA3 drive the left motor while the pins PA7,PB0,PB1,PB2 drive the right motor. See attached images. The AVR schematic diagram shows the name of the pins as observed in the bottom of the controller board if held with the IR sensor facing down.