Arduino - Troubleshooting

Arduino

Guide

Tutorials

Reference

Hardware

Software

Forum

Playground

Exhibition

Hacking

FAQ

Buy

Introduction | How To: Windows, Mac OS X, Linux; Arduino Mini, Arduino BT | Troubleshooting | Board | Environment

## Arduino Troubleshooting

What if my board doesn't turn on (the green power LED doesn't light up)?

If you're using a USB board, make sure that the jumper (little plastic piece near the USB plug) is on the correct pins. If you're powering the board with an external power supply (plugged into the power plug), the jumper should be on the two pins closest to the power plug. If you're powering the board through the USB, the jumper should be on the two pins closest to the USB plug. This picture shows the arrangment for powering the board from the USB port.

Attach:jumper.jpg Δ

(thanks to mrbbp for report and picture)

What do to if I get the following error when launching arduino.exe on Windows?

`Arduino has encountered a problem and needs to close.`

You'll need to launch Arduino using the run.bat file. Please be patient, the Arduino IDE may take some time to open.

Why won't Arduino run on old versions of Mac OS X?

If you get an error like this:

    Link (dyld) error:

    dyld: /Applications/arduino-0004/Arduino 04.app/Contents/MacOS/Arduino Undefined symbols:
    /Applications/arduino-0004/librxtxSerial.jnilib undefined reference to _printf$LDBL128 expected to be defined in /usr/lib/libSystem.B.dylib

you probably need to upgrade to Max OS X 10.3.9 or later. Older versions have incompatible versions of some system libraries.

Thanks to Gabe462 for the report.

What do I do if I get the following error when launching Arduino?

`Uncaught exception in main method: java.lang.UnsatisfiedLinkError: Native Library /Users/anu/Desktop/arduino-0002/librxtxSerial.jnilib already loaded in another classloader`

You probably have an old version of the communications library lying around. Search for comm.jar or jcl.jar in /System/Library/Frameworks/JavaVM.framework/ or in directories in your CLASSPATH or PATH environment variables. (reported by Anurag Sehgal)

What about this error?

`Java Virtual Machine Launcher: Could not find the main class. Program will exit.`

Make sure that you correctly extracted the contents of the Arduino .zip file - in particular that the lib directory is directly inside of the Arduino directory and contains the file pde.jar.

What can I do about cygwin conflicts on Windows?

If you already have cygwin installed on your machine, you might get an error like this when you try to compile a sketch in Arduino:

`6 [main] ? (3512) C:\Dev\arduino-0006\tools\avr\bin\avr-gcc.exe: *** fatal error - C:\Dev\arduino-0006\tools\avr\bin\avr-gcc.exe: *** system shared memory version mismatch detected - 0x75BE0084/0x75BE009C.`

`This problem is probably due to using incompatible versions of the cygwin DLL.`

`Search for cygwin1.dll using the Windows Start->Find/Search facility and delete all but the most recent version. The most recent version *should* reside in x:\cygwin\bin, where 'x' is the drive on which you have installed the cygwin distribution. Rebooting is also suggested if you are unable to find another cygwin DLL.`

If so, first make sure that you don't have cygwin running when you use Arduino. If that doesn't help, you can try deleting cygwin1.dll from the Arduino directory and replacing it with the cygwin1.dll from your existing cygwin install (probably in c:\cygwin\bin).

Thanks to karlcswanson for the suggestion.

Why doesn't my board show in the Tools | Serial Port menu ?

If you're using a USB Arduino board, make sure you installed the FTDI drivers (see the Howto for directions). If you're using a USB-to-Serial adapter with a serial board, make sure you installed its drivers.

Make sure that the board is plugged in: the serial port menu refreshes whenever you open the Tools menu, so if you just unplugged the board, it won't be in the menu.

Check that you're not running any programs that scan all serial ports, like PDA sync applications, Bluetooth-USB drivers (e.g. BlueSoleil), virtual daemon tools, etc.

On Windows, the COM port assigned to the board may be too high. From zeveland:

"One little note if you aren't able to export and your USB board is trying to use a high COM port number: try changing the FTDI chip's COM port assignment to a lower one.

"I had a bunch of virtual COM ports set up for Bluetooth so the board was set to use COM17. The IDE wasn't able to find the board so I deleted the other virtual ports in Control Panel (on XP) and moved the FTDI's assignment down to COM2. Make sure to set Arduino to use the new port and good luck."

On the Mac, if you have an old version of the FTDI drivers, you may need to remove them and reinstall the latest version. See this forum thread for directions (thanks to gck).

Why I can't upload my programs to the Arduino board?

There are a few things that could be wrong.

- First make sure your board is on (the green LED is on) and connected to the computer (if it's not, see "what if my board doesn't turn on" above).

- Then, check that the proper port is selected in the "Tools | Serial Port" menu (if your port doesn't appear, restart the IDE with the board connected to the computer).

- Make sure there's a bootloader burned on the Atmega8 on your Arduino board. To check, connect an LED to pin 13 and reset the board. The LED should blink. If it doesn't, see the Bootloader page for instructions on burning a bootloader to the board.

- Be sure that you are resetting the board a couple of seconds before uploading.

- However, on some computers, you may need to press the reset button on the board after you hit the upload button in the Arduino environment. Try different intervals of time between the two, up to 10 seconds or more.

- Disconnect digital pins 0 and 1 while uploading (they can connected and used after the code has been uploaded).

- If you get this error: `[VP 1] Device is not responding correctly.` try uploading again (i.e. reset the board and press the download button a second time).

- Check that you're not running any programs that scan all serial ports, like PDA sync applications, Bluetooth-USB drivers (e.g. BlueSoleil), virtual daemon tools, etc.

- Make sure you don't have firewall software that blocks access to the serial port (e.g. ZoneAlarm).

- You may need to quit Processing, PD, vvvv, etc. if you're using them to read data over the USB or serial connection to the Arduino board.

- If you have a really ancient Arduino board, you may need to change the baud rate at which sketches are uploaded to 9600 (from the normal 19200). You will have to change the speed in the preferences file directly. See the preferences page for instructions on finding the file. Look for the file in your computer and change the serial.download_rate property to match the one in your board. If you have such a board, it's recommended that you burn the latest bootloader (which works at 19200 baud). This can be done with the 'Tools | Burn Bootloader menu item.

What if I get this error when uploading code or using the serial monitor (on the Mac)?

    Error inside Serial.<init>()
    gnu.io.PortInUseException: Unknown Application
         at gnu.io.CommPortIdentifier.open(CommPortIdentifier.java:354)
         at processing.app.Serial.<init>(Serial.java:127)
         at processing.app.Serial.<init>(Serial.java:72)

You need to run the `macosx_setup.command` in the Arduino directory, and then restart your computer. Arduino 0004 includes a modified version of this script that all users need to run (even those who ran the one that came with Arduino 0003). You may also need to delete the contents of the /var/spool/uucp directory.

I'm having trouble with the FTDI USB drivers.

Try installing the latest drivers from FTDI or contacting their support at support1@ftdichip.com.

Why doesn't my sketch start when I'm powering the board with an external power supply?

Because the RX pin is unconnected, the bootloader on the board may be seeing garbage data coming in, meaning that it never times out and starts your sketch. Try tying the RX pin to ground with a 10K resistor (or connecting it to the TX pin).

Why doesn't my sketch start when I power up or reset the Arduino board?

Most likely because you are sending serial data to the board when it firsts turns on. During the first few seconds, the bootloader (a program pre-burned onto the chip on the board) listens for the computer to send it a new sketch to be uploaded to the board. After a few seconds without communication, the bootloader will time out and start the sketch that's already on the board. If you continue to send data to the bootloader, it will never time out and your sketch will never start. You'll either need to find a way to stop serial data from arriving for the first few seconds when the board powers (e.g. by enabling the chip that sends the data from within your setup() function) or burn your sketch onto the board with an external programmer, replacing the bootloader.

Why does my sketch appear to upload successfully but not do anything?

The sketch may be too big for the board. When uploading your sketch, Arduino 0004 checks if it's too big for the ATmega8, but it bases its calculation on a 1 Kb bootloader. You may have a older bootloader that takes up 2 Kb of the 8 Kb of program space (flash) on the ATmega8 instead of the 1 Kb used by the current bootloader. If yours is bigger, only part of the sketch will be uploaded, but the software won't know, and your board will continually reset, pause, reset.

If you have access to an AVR-ISP or parallel port programmer, you can burn the latest version of the bootloader to your board with the Tools | Burn Bootloader menu item. Otherwise, you can tell the Arduino environment the amount of space available for sketches by editing the upload.maximum_size variable in your preferences file (see: instructions on finding the file). Change 7168 to 6144, and the environment should correctly warn you when your sketch is too big.

How can I reduce the size of my sketch?

The ATmega8 chip on the Arduino board is cheap, but it has only 8 Kb of program code, which isn't very much (and 1 Kb is used by the bootloader).

If you're using floating point, try to rewrite your code with integer math, which should save you about 2 Kb. Delete any #include statements at the top of your sketch for libraries that you're not using.

Otherwise, see if you can make your program shorter.

We're always working to reduce the size of the Arduino core to leave more room for your sketches.

Why don't I get a PWM (an analog output) when I call analogWrite() on pins other than 9, 10, or 11?

The microcontroller on the Arduino board (the atmega8) only supports PWM/analogWrite() on certain pins. Calling analogWrite() on any other pins will give high (5 volts) for values greater than 128 and low (0 volts) for values less than 128.

### Troubleshooting Old Versions of the Arduino Software

These questions are for reference only, as older versions of the Arduino software are no longer supported. Please download the latest version from the software page?.

Arduino 0005 won't start on Mac OS X.

Check your console log (Applications > Utilities > Console). If you see a message like "unsupported major.minor version 49.0", your Java is too old. Run Software Update to upgrade to the latest version.

Guide Home

Edit Page | Page History | Printable View | Recent Site Changes