Category Archives: Arduino

Adventures in Greenwire

Adventures in Greenwire

Usually I like to write up on my blog the things that go well. Today, I’ll write about a mistake–one that meant my latest iTeadStudio PCB order was totally wasted. Sad for me, but hopefully you can learn from it!

Continue reading



Filed under Arduino, RF Radio

RF24Network for Wireless Sensor Networking

17-Node Party

RF24Network is a network layer for Nordic nRF24L01+ radios running on Arduino-compatible hardware. It’s goal is to have an alternative to Xbee radios for communication between Arduino units. It provides a host address space and message routing for up to 6,000 nodes. The layer forms the background of a capable and scalable Wireless Sensor Network system. At the same time, it makes communication between even two nodes very simple.

Today, I managed to get 17 nodes running on a single network. Now I need to build some more nodes, because the system worked great with 17, and could likely handle thousands of nodes.

Continue reading


Filed under Arduino, RF Radio

Controlling a Sony A100 DSLR using Arduino

Arduino controlling Sony A100 camera using 2x 4N25's

Sony DSLR cameras have a 3-pin remote port for use with a wired remote. Today, I’ll explore how we can use it to control the camera using our Arduino.

Continue reading


Filed under Arduino, Camera

Skycam Controller for The Last Shuttle Project

rcfisher Skycam Controller

This week, while visiting Los Angeles, I took the opportunity to have breakfast with Robert C. Fisher from The Last Shuttle Project. One neat thing I got to see is pictured above, the hardware used to control the ‘Skycam’ for capturing some cool video footage of the final space shuttle launch last year. Check out the video!

The hardware is a stock Arduino, with a protoshield on top. It features an RTC, status lights, a test switch, a piezo to detect the sound of the launch, and an opto-isolator to trigger focus and shutter lines. All that is protected by a sturdy little Pelican case. Quite a nice compact setup.

To handle the unique timing requirements of this shoot, the board is running an Arduino sketch I wrote, the Camera Controller.

This sketch was my first attempt to write a clock-based camera controller. I learned a bunch of lessons along the way that I’ve since incorporated into the next version.

Continue reading

Leave a comment

Filed under Arduino, Camera

FreeRTOS on Arduino

pingpair_freertos dataflow

As I’ve started to dig into [FreeRTOS], I have found too few useful compilable examples on how to get started. The FreeRTOS tutorial is complicated and theoretical. It doesn’t leave you with any working running code. The Officially Supported demo for STM32 works, but it’s way too complicated, and assumes you have lots of hardware. Not a great way to get started. Maple comes with a tragically simple freertos-blinky.cpp, but all it does is show you how to blink the LED. What’s next?? Fortunately, I came across a page of FreeRTOS examples for WSN430 that helped a lot.

In this blog post, I wanted to share my own experience with porting real code to FreeRTOS, which does something more useful than blink a light, but not something unfathomably complicated. Along the way, this will explain how to exploit many of the features of FreeRTOS

Get the code from github:

Continue reading


Filed under Arduino

Getting Started with nRF24L01+ using a Protoshield

RF24 Getting Started ProtoShield

This post follows the Getting Started with nRF24L01+ on Arduino. If the resulting board from that is a little too rough around the edges, it can be built instead on a proper prototype shield for a few more dollars.

Continue reading


Filed under Arduino, RF Radio

Control and Monitor Arduino Over the Web Using ENC28J60

NanodeUIP Webserver Screens

The NanodeUIP web server provides a mobile-optimized web page to control and monitor your Ethernet-connected Arduino. All you need is an Arduino and an ENC28J60-based Ethernet shield, or get a Nanode which combines the two together.

The home page shows the three functions the webserver can handle:

  • Monitor Buttons
  • Control Lights
  • Monitor Sensors

Continue reading


Filed under Arduino, Ethernet

Nordic FOB and nRF24L01+

Nordic FOB and nRF24L01+

Sparkfun sells a nifty little gadget to control your project remotely using nRF24L01+ radios. It’s a small key fob with 5 buttons, which transmits codes when you press each button. Today we’re going to explore how to receive those signals using the RF24 library. This is all thanks to Kirk Mower who sent me these units for Christmas. Thanks, Kirk! 🙂
Continue reading


Filed under Arduino, RF Radio

Arduino on Ice: Internet Radio via Shoutcast

Nanode streaming Internet Radio (close-up)

I’ve seen plenty Internet Radio examples out there on various platforms, but none on Arduino. Is 2K memory just too little to stream radio effectively? Thought it was time to find out. Turns out it’s no problem at all. Using uIP on ENC28J60 for networking and VS1053 for playback, a stock ATmega328p-based Arduino can stream Internet Radio no problem with plenty RAM to spare.

The example sketch discussed here is something of a “Hello, world.” of Internet Radio. It starts up, connects to a single hard-coded stream, and plays it forever. This makes it simple! Plug and listen. For this example, I’ll use the stream from, “Seattle’s Hottest Music” 🙂

Continue reading


Filed under Arduino, Audio, Ethernet

Arduino on ATmega1284P

ATmega1284P on a breadboard

Sooner or later, the Arduino starts to feel a little claustrophobic. Your sketches start running out of memory, so you need more RAM. You want to talk serial to another peripheral (like an RFID Module) AND watch the action in the Serial Monitor at the same time, so you need more UARTS. You want to use SPI and control a motor and read a few sensors, and pretty soon you’re out of pins, so you need more I/O pins. You’re logging data, and running out of 1k EEPROM fast, so a bit more EEPROM would sure be handy.

The obvious solution to this problem is an Arduino Mega 2560. Oh yeah, this thing is powerful! 54 pins! 4 UARTS! 8k RAM! You add it to your cart, and then realize it’s almost $50.

Now maybe you’re wondering, isn’t there anything in-between that might be a bit less cash? Indeed there is, it’s call the ATmega1284P and today I’m going to explore getting Arduino to run on it, on a breadboard.

Continue reading


Filed under Arduino