How I Fried my Raspberry Pi
Symptoms: No lights regardless of which power adapter I use and how it is connected. Oh and the instant temperature change when you plug it in. The micro-usb immediately heats up enough to cause burns.
Solution: I have no idea. Definitely past my skill set. If I don’t find anything online by the end of the weekend, I plan on putting it in a glass baking plan and leaving it plugged in until it melts or has glorious flames.
How it happened: My own stupidity and lack of patience. I write these blogs so I remember what to do in the future. The purpose of this blog is to serve as a reminder of what not to do.
The Story: I made a late trip to RadioShack one night over the weekend for some connects for a solar panel Ali is building (DIY solar panels are ridiculously hard for someone like me but that is another story). During the trip I saw an Arduino Motor Shield on sale for $10 bucks and figured why not, I like motors and know nothing about controlling them. Like everything you purchase from stores like RadioShack or ToysRus, the packaging looked like it had been gnawed and the instructions were missing. I should note that I don’t blame lacking instructions for the fried Raspberry Pi because I would have foolishly skipped over them anyway as I did with the product sheet I found online. (Here is some example code)
Fast forward to last night, I have two Roomba motors and a couple old UPC 12v batteries which I have been charging with Alison’s homemade solar panels. I attached the two motors (really wheel sets) to an old internal hard drive cage and decided it was time to make them go fast. I remembered reading that the board could handle something like 20vdc so I am money. My 12v battery charged to 13ish volts should be perfect. I plug in the motors and the battery to the motor shield. It doesn’t make much of a difference but I was using one of the AdaFruit voltage regulators. It is nice to put in-line to control the voltage. In this test, I was just using it for the on / off switch. I noticed that the Arduino lights came on and I didn’t think much of it.
When working with the motor shield, you have to initialize the direction, brake, and power so I put together a quick sketch that did exactly that and pushed it to the Arduino. All was well – wheels were spinning – I was feeling like a genius ready to go on to the next step. I want my buggy to be controlled by a serial connection from a Raspberry Pi, that I can control via wireless from a desktop or tablet (I don’t have a wireless shield, Bluetooth, or Zigbee). I put a little bit of code together for the Arduino to check the serial connection and perform an action based on the result. Worked perfectly from the serial console within Arduino. It was now time to plug it in to the Pi. Grabbed the Pi and plugged the usb from the Arduino hooked to the motor shield with the 12v battery still on from my last test and it was officially cooking Pi time. My first though was that the micro usb connection had the problem but immediately after burning my figure touching the housing I knew it was good game. I still didn’t know why. I try another plug, nothing. Was this just coincidence or did it have to do with the Arduino Motor Shield and my need to start testing with the highest voltage possible? I decided to shove probes to read the voltage from the usb plugged into the Arduino board. It was fluctuating all over the place… Damn it was my fault. After doing the research I should have done before starting, I learned that while you can power your Arduino from the Motor Shield Rev 3, it is not recommended to do so with more than 9 volts. Oops. I also learned that there is a disconnect on the back of the shield exactly to prevent the situation I had experienced. All you have to do is physically separate (scratch off) the two pads of solder.
For the benefit of anyone else that might stumble onto this blog and is only reading the bold text: IF YOU OWN THE ARDUINO MOTOR SHIELD REV3 AND YOU WANT TO POWER +9v – SEPARATE THE POWER DISCONNECT ON THE BACK OF THE ARDUINO MOTOR SHIELD REV3.
From the official documentation that I read too late:
To avoid possible damage to the Arduino board on which the shield is mounted, we reccomend using an external power supply that provides a voltage between 7 and 12V. If your motor require more than 9V we recommend that you separate the power lines of the shield and the Arduino board on which the shield is mounted. This is possible by cutting the “Vin Connect” jumper placed on the back side of the shield. The absolute limit for the Vin at the screw terminals is 18V.
I cannot get too upset because I could have easily fried the laptop I was using too.
UPDATE: I wanted to see what would happen if I left the broken Raspberry Pi plugged in (I was hoping for a flame). I left it for about a hour and only hit 135 degrees Fahrenheit.