Arduino
Do you want to learn more about Arduino in New Zealand?
My projects
- Flashduino -- Adobe Flash interface to Arduino via HTTP REST API
- Learning About Arduino and VNC -- Arduino Ethernet VNC server
- (first ever) Bluetooth Car: video longer video
My notes
- Learning About Arduino MCP23S08 -- interfacing 8-Bit I/O Expander with SPI Interface
- Learning About Arduino WIZ810MJ -- interfacing WIZnet SPI Ethernet Module
Shields
Answers
- If you get an error java.lang.NullPointerException at processing.app.Serial.setDTR on Ubuntu when you're trying to upload a sketch it might be because you unplugged and re-plugged the USB cable too quickly. Try re-plugging again more slowly. (If you re-plug it too quickly it seems to create a second serial device rather than reusing the original one.) (Actually, the real reason might be if you leave the serial monitor open it doesn't remove the device.)
- If you want to add the ability (in 0012 onwards) to use the IDE to upload a sketch via a USB TinyISP you want to add the following to the boards.txt file (reference):
############################################################## direct168.name=direct168 direct168.upload.protocol=stk500 direct168.upload.maximum_size=14336 direct168.upload.speed=19200 direct168.upload.using=usbtinyisp direct168.bootloader.low_fuses=0xff direct168.bootloader.high_fuses=0xdd direct168.bootloader.extended_fuses=0x00 direct168.bootloader.path=atmega168 direct168.bootloader.file=ATmegaBOOT_168_diecimila.hex direct168.bootloader.unlock_bits=0x3F direct168.bootloader.lock_bits=0x0F direct168.build.mcu=atmega168 direct168.build.f_cpu=16000000L direct168.build.core=arduino
- If you are trying to run Arduino 13.app (arduino-0013) on Mac OS X 10.5 and you get a dialog like this:
and you see a message in your syslog output like this:
java.lang.UnsatisfiedLinkError: ...Applications/arduino-0013/Arduino 13.app/Contents/Resources/Java/librxtxSerial.jnilib: thrown while loading gnu.io.RXTXCommDriver [LaunchRunner Error] processing.app.Base.main(String[]) threw an exception: java.lang.UnsatisfiedLinkError: ...Applications/arduino-0013/Arduino 13.app/Contents/Resources/Java/librxtxSerial.jnilib:
Here's a new fix to this issue:
Arduino 13.app has an option for "Open in 32 Bit Mode" when viewed with Get Info from the Finder, if you select it then you will no longer receive this error.
Here's a old fix to this issue:
then you probably need to replace the librxtxSerial.jnilib in:
arduino-0013/Arduino\ 13.app/Contents/Resources/Java/
with the librxtxSerial.jnilib version here.
To do so (I would suggest making a backup copy of the application first):
# Run Terminal.app # Type this (assumes you have installed Arduino into your home Applications directory.): curl -o ~/Applications/arduino-0013/Arduino\ 13.app/Contents/Resources/Java/librxtxSerial.jnilib http://iharder.sourceforge.net/current/java/librxtxSerial.jnilib
Update: To get the IDE to upload successfully over USB you will also need to do the following in the terminal:
sudo mkdir /var/lock sudo chmod 777 /var/lock
I do not know what the security implications—if any—are of this.
Bootloader
I discovered today that what's referred to as "the Arduino bootloader" isn't actually Arduino-specific (well, it is, and it isn't) but, the key point is that you can upload any .hex file you produce (whether it's by the IDE, C, asm or whatever). The "Arduino-ness" is provided entirely by the libraries included when your sketch is compiled. This is significant because if you have a hardware/software project you're wanting to make usable within Arduino-land you can start by testing it works on the Arduino board. Something like... Learning About Arduino AVRUSB perhaps. :-)
- ADABOOT -- Alternative bootloader
- Bootloader on the official wiki ( @@ TODO: Add comment regarding universal nature of the the bootloader)
- "...apparently we screwed up and put the old NG bootloader on some of the Diecimila boards..." see also: Why does my Diecimila take such a long time (6-8 seconds) to start my sketch?
As an "In System Programmer"
- mega-isp -- In System Programmer using the AVR Mega8
- Burning the Bootloader without external AVR-Writer (Related forum post: Burning the Arduino Bootloader without AVR-Writer)
Distributor
- Australian Arduino supplier -- Disclaimer: I'm not really sure I can recommend them my experience was mixed and others have had poor experiences. Check the linked thread for other options.
Alternative forms
- Arduino Prototype Shield design -- includes files that can be used as a template for other shields.
References / Links
- Index of Arduino Knowledge "An evolving index of subjects covered in the main Arduino site, the Playground and the Arduino forum."
- Generating PAL Video -- code and schematic (forum post)
- uIP-AVR -- port of Free Small TCP/IP Stack to the Atmel AVR series of microcontrollers.
- Lady Ada's Arduino Tutorial -- "Learn Electronics using Arduino!"
- LED light sensing with Arduino -- Note that there's an easy way to set the pullup resistors afaict: writing 1 to one of the registers (can't remember exactly how). @@ TODO: Fix this.
- FAT File System Module -- "experimental project to implement the FAT file system to small embedded systems."
- "the switches in the above schematic don’t need pull-up resistors" -- How to avoid using external pull-up resistors for switches by using the Arduino's pull-up resistors.
- Writing your first AVR program in GCC (404 - Not Found?)
- "Why you need a Clock Source" -- Options for clock sources for AVR chips
Notebook
. 18 August 2007 .
1. Received Arduino Decimilia board from Little Bird Electronics. Definitely worth waiting a couple of weeks to get the new revision of the board. Useful revised features:
- Automatic Software Reset—I'm so glad I mostly missed the "press the physical button to upload" stage. :-)
- Lower Input Voltage—input voltage can now range from 6-12V due to a new "low-dropout power regulator". I've got the board flashing away its onboard LED with it all running from a bulky 6V battery I had lying around. (Of more use is the prospect of using fewer AA batteries.) Positive battery terminal connects to Vin on the Power connector along the bottom while negative battery terminal connects to Gnd in same connector.
2. For future reference: Example blink without delay, Low power Arduino discussion
3. Forum posts: Bad URL on warning sticker, Update needed for Mac OS X tutorial (fixed)
. 21 August 2007 .
1. Successfully created optocoupler-controlled LED circuit (without Arduino). Started documenting learning about using optocouplers.