Introduction: Arudino- No Blinky
So you just bought this Arduino kit or Arduino-clone kit. You spent hours inserting parts and soldering components. You connect everything up and turn it on and stare at the little LED. You wait a second and nothing happens. You wait a minute and still nothing happens.
So what do you do?
Well, I have the answer for you! You pack it up and send it to the Lazy Old Geek. No charge, no questions asked, no suspicious stares!
Plan B is you can try to fix it. This is plan B.
The first tool you’ll need is a good set of eyes. Now, my eyes aren’t so good. I used a magnifying lamp.
1. Look through the documentation. Arduino clones come in all sorts and sizes. Now I’m assuming that yours has an ATmega chip. And most kits use the Blink sketch to test the board. So read through the documentation and make sure that you have everything connected right. That means any jumpers, USB or other power source and any switches set. Correct anything you need to.
Also, make sure the ATmega in the kit is preprogrammed with a blink sketch. If not, the instructions should tell you how to load it.
2. Still no blinky. Use those eyes to look over the Printed Circuit Board (PCB).
Look for missing components (sometimes a kit may not require all the components marked on a PCB, check documentation)
Look for components installed backwards:
Diodes are the little black or glass cylinders with a single band on one end. Diodes allow current (electricity) to flow in only one direction so if they’re installed backwards, current won’t flow. The band should be shown on the PCB.
Electrolytic capacitors are the bigger black cylinders. They are designed for current to go only one way through them. If installed backwards, they could blow up. All these capacitors have a grey stripe on one side. This is the negative side and should be shown on the PCB. The smaller caps aren’t polarized and can be put in either way.
LEDs are Light Emitting Diodes. Since they are diodes, they allow current to go only in one direction.
TIP: All of the assembly instructions tell you that the longer lead on an LED is positive and then they tell you to install and cut off the leads! If you look closely at the LED at the base where the leads come out, you will see a flat spot on one side of the circle. See picture. This is the negative side. The PCB is usually marked with a + on one side often with a flattened circle on the other.
ICs are Integrated Circuits, those little black chips with lots of pins coming out. Most Arduino kits use the ATmega168 or ATmega328. Make sure the notch at one end matches the notch on the PCB (and the socket). While you are at it, make sure none of the ATmega pins are bent underneath the IC rather than going into the socket. See picture.
TIP: Most new ICs have their pins flayed out and won’t go into a socket very easily. I like to roll the IC (see picture) on both sides so the pins line up easier.
You’re not done looking yet. Flip the PCB over and look for the following:
Cold or missing solder joints (see pictures). The second one might work but should be resoldered. All solder joints should be shiny and silver not grainy and grey.
TIP: If you have trouble fixing a cold solder joint, sometimes the component lead is contaminated. Try to remove the component or at least the component lead and clean it with isopropyl alcohol. Now you should be able to solder it.
Make sure all of the pins on the 28 pin socket are sticking out. (You might have a pin on the socket bent under.
Solder bridges (see picture). Remove them.
Non-essential Info: I actually found a solder bridge on my Freeduino. It was on some pins that I hadn’t used yet.
Fix any problems and try again.
Step 1: More Troubleshooting
So it’s still not working. We’re going to dig a little deeper.
Tools: DMM (Digital MultiMeter). There are ways to troubleshoot without one but I don’t know them. I’ve included a separate step on how to use a DMM.
The first picture is a schematic. This is taken from an Anarduino (Arduino) clone and shows everything that is needed to make it blink. The same requirements apply for any Arduino. The second picture is the Anarduino itself. Everything in the schematic is on the Anarduino. (I did remove some of the components from the schematic to simplify it)
Schematic: is an electrical representation of an electronic system usually using symbols. The symbols represent the components on the PCB. The lines connecting the symbols (components) are the metal traces (wires) on the PCB.
INFO: The ATmega chip microcontroller is the ‘brain’ of the Arduino. See picture.
Blink requirements are:
+5V on pin 7 of the ATmega
Ground on pin 8 of the ATmega
+5V on pin 1 of the ATmega (Reset pin. If it is low, the microcontroller won’t work)
16MHz oscillation on pins 9,10 of the ATmega
Blink sketch in the ATmega
The resistor/LED connected to pin 19 of the ATmega.
INFO: 16MHz crystal oscillator/ceramic resonator generates the ‘heartbeat’ of the ATmega. Basically, it tells the ATmega to go from one step to the next in an Arduino sketch. Without it, the ATmega would just sit there.
TIP: Some of you may have noticed that the Blink sketch refers to Digital pin 13 but the LED is connected to ATmega pin 19. Well, the Arduino team decided to number their Analog and Digital connections in sequence and call them pins. For old timers like me, I think of pins as IC pins so I wish they would have called them something else.
INFO: In the schematic, the ATmega pin 19 is labeled SCK. If you go to the top of the schematic, you will also see an SCK label connected to a resistor and an LED. When 5V is on pin 19, the LED should light.
INFO: Whenever you see a line on a schematic with a label, that means it is connected somewhere else with the same label. Some labels, like GND may have several connections. Labels make schematics easier to read. Just imagine even this simple schematic with all the labels connected.
3.1 The first step is to connect the Arduino up to power and make sure it is getting to the ATmega.
Set your DMM to DC Volts with range of greater than 5V.
Carefully measure the voltage from pin 8 to pin 7 on the chip. It should be around 5 volts. If not, then go to the next Instructable step. In my particular setup using USB, my 5V is only 4.85V. This is okay.
3.2 Check the voltage on pin 1 of the chip. It should also be around 5 volts. If it’s 0 volts, check all of the components around pin 1. The most likely problems would be the reset switch installed 90 degrees off or a defective switch.
3.3 It’s harder to tell if the oscillator circuit is working. If your DMM has a frequency (Hz) setting you might be able to measure the frequency (16MHz). My DMM has a frequency setting but apparently doesn’t go that high.
I am fairly certain the following will work. Measure the DC voltage from pin 8 or any ground to pin 9, then 10. Both of them should be greater than 0 but less than 5V. I have an Arduino with a crystal that measured 0.14V and 1.25V and one with a resonator that measured 0.79V and 0.58V. If one or both sides are at 0V or 5V then it’s probably not oscillating. If all the connections are okay, then it’s probably a bad crystal or resonator as those little capacitors rarely fail.
3.4 Here’s a little trick to see if the Blink program is running. Connect your DMM to ground and ATmega pin 19. The voltage should go from 0V to 5V and back every second. If this isn’t working, then your ATmega probably isn’t programmed or is damaged. Reprogram it or if you have another one, try it.
3.5 If this is working, check the top of the resistor (in this case R2). It should also be changing for 0 to 5V. If it stays at 0V then you have an open connection between pin 19 and the resistor.
3.6 Check the voltage on the other side of the resistor. If it is changing from 0V to 5V, then either the LED is backwards or it is open. If it is 0V then your LED is probably shorted. In a working circuit, it should be changing for 0V to about 1.5V.
You should have found your problem by now and fixed it or ordered parts.
Step 2: No 5 V
Unfortunately, this is one of the more difficult problems to solve. No 5V can have two different causes. One is the 5V isn’t getting to the ATmega. The second is the 5V is being shorted to ground.
4.1 Disconnect power to the Arduino. Set your DMM to measure resistance (Ohms). Connect your DMM between pins 8 & 7 of the ATmega. See picture. If it reads around 30K to 80K, then continue, you’re probably not getting 5V to the ATmega. If it reads, less than 200 ohms, then go to the Short section below.
4.2 So you’re not getting 5V to the ATmega. Every board is going to be a little different so find the schematic for yours.
The drawing below is the power supply section for a Boardino (Adafruit). It is typical of many.
4.3a If you are using USB power and you have a USB Arduino PCB, the 5V comes in on pin 1&4 of the USB connector. Plug the PCB into USB from your computer and find the USB connector on your schematic. Your PCB will probably have a Power Selector connector like the one below. Check to see if you have 5V on the connector (pin3). If you don’t, make sure your USB cable is good and it has 5V on it. You can try the cable on some other USB device.
If you do have 5V on the selector then follow it through to pin 2. If it’s still okay, then probably the best way to check it is to disconnect power and set your DMM to measure resistance. Put one lead on pin 2 and follow the schematic and the circuit to pin 7 on the ATmega. You may have to follow the traces on the PCB to find out where it isn’t connected.
4.3b If you are using an external power source, your schematic will probably be similar to this one. Plug in your power source. Measure the +9V to ground. It should be between 7 and 12 V. If it is not then the diode is probably backwards or open. Other possibilities are C3 backwards or IC2 backwards.
4.4 If the +9V is okay, then check the Out (put) side of IC2. It should read 5V. If it doesn’t then C4 could be backwards or IC2 installed incorrectly or bad. Otherwise follow the 5V out through the Pwr Sel to the ATmega, pin 7 and determine where it isn’t getting through.
A 5V short to ground is one of the hardest problems to solve.
Redo the visual inspection. Look for any solder splashes touching where they shouldn’t be. On the top of the PCB, look for any bent connector pins touching. Look for any metal shield touching a component lead. Try removing all the jumpers and the ATmega to see if that makes a difference. Try to look underneath the socket to see if there’s a stray piece of metal shorting something out. If any of the electrolytic capacitors go from 5V to ground, try unsoldering one side to see if that makes a difference. That’s about all I can think of.
Hopefully, this information is enough to solve your problem.
Step 3: Using DMM
The second best tool next to your eyes is probably a DMM.
DMM (Digital MultiMeter) is an instrument that measures voltage, resistance and current. The first picture is a Fluke. Although I don’t own one, they’re one of the best DMMs. Besides Fluke is such an interesting name.
Here are some tips on using a DMM.
The next DMM is mine. Overview:
The four holes near the bottom are for probes. The second one marked COM is for the black probe.
The first hole is marked V (Omega). This is for measuring Volts and Ohms. The red probe goes here.
The mA and 10A holes are for measuring current. The red probe has to be moved into one of these when measuring current. Don’t forget to move it back!!!
Below the display on the left side there is a section labeled ‘V’ for volts. In this section, the switch let’s you select between DC and AC. You can see that the rotary selector can choose several different positions under Volts. These are different ranges. If the meter shows an Overvoltage, move the selector to the next higher range.
To the left of V, there’s two sections labeled Hz for frequency and F for Farads (capacitance). Many DMMs won’t have these.
Below V is the section marked ‘A’ for Amps.
Below A is another section for measuring transistors. Not available on all DMMs.
Across from these is the section with a Omega symbol for Ohms or resistance. On the range selector towards the bottom is a selection with a diode symbol, specifically designed for checking diodes.
This Fluke DMM has some differences. There is a V and an A with a solid line and a dashed line over it. This means DC. The wave line is AC. There are no range selections on the selector switch. This DMM is autoranging which means the DMM will automatically select the best range.
Most everything I will talk about in the Arduino world is DC. So set your DMM to DC, DC Volts or DC Amps.
When measuring DC voltage, sometimes you will get a negative voltage, e.g., -5V. What this means is that from the black DMM lead to the red the voltage is negative. You can verify this with a battery that has a positive and a negative. Now all Arduino boards that I know of have only positive voltages referenced to ground, so for most voltage measurements you can connect the black lead to a GND point and the red lead will read positive or zero. Some DMMs come with probe attachments like a miniclip in the second picture or you can use a miniclip lead like the one shown. Clip one side to the black probe and the other side to the ground side of a capacitor or to a wire stuck in the ground of pin 4 or 5 of the power connector.
See picture. Notice voltage is only 4.84 V for the Arduino with USB power (passing through an unpowered USB hub).
Measuring DC current is harder. For Arduinos, you will rarely need to measure current. For most DMMs, you actually have to take the red probe out of the V-Ohm connector and put it into another connector. You can see a separate connector marked ‘A’ in the DMM picture. Also, you have to break the circuit you want to test and put the meter in between. E.g., disconnect a wire and put the two meter leads where the wires were connected.
TIP: It is very easy to connect a DMM measuring current wrong, so most manufacturers put a fuse in to protect from this. If your DMM doesn’t seem to be working, look for a fuse. It’s often underneath the ‘A’ connector.
When writing this Instructable, my Ammeter didn’t work. My fuse is in the battery compartment and it was open.
ANOTHER TIP: Before measuring current make sure the DMM is set to the highest range likely. Excess current will blow the fuse.
Arduino Tip: If you want to measure how much current your Arduino is drawing, most Arduinos have a jumper that selects between USB power and external power. Remove the jumper and connect the two little jumper pins with two separate little miniclips like in the picture and connect your DMM to the clips. See picture. Since my fuse is blown, I had to use the 10A connector. By the way it is probably unfused.
Resistance isn’t AC or DC. To measure resistance, the DMM uses its own internal battery so this battery, the DMM and a resistor makes a complete circuit.
CAUTION: Do not try to measure resistance with power on an Arduino.
It adds a complete circuit where it shouldn’t be and could damage the Arduino and/or your DMM.
To correctly measure a resistor, you need to turn off power to the circuit and disconnect one side of the resistor from the circuit. Resistors can fail open, short or even change resistance. Now if you’re an expert and/or LAZY and don’t want to disconnect a resistor, you can measure across it in an unpowered circuit. Just be aware that any other connected components can affect your reading. Sometimes this can tell you if a component is open or shorted, though.
Measuring resistance: Notice the DMM in the picture has a little omega symbol for resistance. When you select ohms on a DMM without anything connected to the probes, the display will show OL or mine shows a 1 all the way to the left. What this means is that it is open (or infinite resistance). See picture. This is normal.
For a test, It is a good idea to short the two test leads together. The DMM should read less than an ohm, called short. See picture. Test probes are wire, wire has resistance and so do the probe connectors. As probes are used, they wear out and the resistance can increase. If the probe resistance fluctuates or is more than a few ohms, then you should get some new probes. Otherwise just take note of the resistance and add it to your reading if it is significant.
The better DMMs are usually autoranging but mine isn’t. Autoranging means, it will automatically change to the correct range for what you are measuring. So if yours isn’t and you get an ‘open’ indication when reading something, then you should go to the next higher range until you get a reading or your at the highest range. When resistors fail, they usually open up.
The resistance setting is also good for checking continuity and switches. If you connect your probes to both sides of a button or switch and close it, the DMM should read just a few ohms. In most electronic circuits, the highest failure items are mechanical such as switches and buttons.
If you’ve assembled a kit and it isn’t working correctly, you can test continuity across solder joints. They should read close to 0. Also, if you designed and wired up a protoboard circuit, a DMM ohmmeter is a good way to troubleshoot wiring. What I like to do first is measure from 5V to Ground to make sure there aren’t any major miswirings or shorts that will try to drain the power source. Now you will measure some resistance but it shouldn’t be too low. My Freeduino measures about 56K ohms.
Most DMMs can test diodes. Most have a separate diode setting or some have a diode setting under resistance. Even without a separate selection, you can measure diodes with a low ohm range. The trick about diodes is that they will conduct and read resistance with the leads one way but when you swap the leads, they will read open or very high resistance. Diodes can fail open or short.
I just realized that LEDs can also be tested with a DMM with the diode setting. They read like a diode and may even light up. I don’t know if this will work with all DMMs and all LEDs.
So I hope this Instructable helped you get your Arduino operational.