Category Archives: Arduino

Getting Started with nRF24L01+ on Arduino

RF24 Getting Started - Finished Product

Nordic’s nRF24L01+ 2.4GHz RF radios are a great way to communicate wirelessly between Arduino’s. They’re cheap, and powerful. Unfortunately, they can be a little daunting to beginners to get started. Today, I want to make it easy for total beginners to get up and running on nRF24L01+ radios quickly and easily.

Stuff we need

First, we have to go shopping. A great place to start is the iTeadStudio store. Here’s what you need. Obviously, you’ll want to buy two of the radios and protoboards because what good is a radio that can only talk to itself?

Reasonable substitutes for this stuff can also be found at Sparkfun if you like spending a lot more money. Also the radios are at MDfly.com.

Continue reading

238 Comments

Filed under Arduino, RF Radio

Low-Power Wireless Sensor Node

RF Duinode V3 (2V4)

My goal today is to create a sensor node which can be used in a wireless sensor network, to capture environmental information and send it back to the base. My main goals are for the nodes to: Be cheap, and last for a year.

How cheap and how low-power can we go? In the end, I got down under $12 for a very capable Arduino-compatible node with a 2.4GHz radio running ~2.6V that should last a year and a half on 2 AA’s, or 5 months on a coin cell.

Continue reading

70 Comments

Filed under Arduino, RF Radio

125Khz RFID Module RDM630

RFID Test Photo

Parts

I picked these up with my last iTeadStudio order to experiment with:

Connections

Connecting to the Arduino is brain-dead simple. Note that I am not connecting the module to the Arduino’s RX/TX pins, because I want to leave that open for the Serial Monitor.

Arduino RFID
2 LED
6 TX
+5V +5V
GND GND

Continue reading

16 Comments

Filed under Arduino

Nanode

Nanode

Ken Boak at the London Hackerspace recently sent over a Nanode to try out. This is a handy combination of Arduino and ENC28J60 Ethernet in one package. My mission is to try it out with Jee Labs’ EtherCard library. This code is by far the most mature, stable, and easiest to use ENC28J60 driver for Arduino.

I’m happy to report that the 7752 revision of EtherCard works perfectly out of the box with NO changes. Even the SPI chip select pin is right, because Jee Labs’ EtherCard hardware uses pin 8, just like Nanode.

Continue reading

8 Comments

Filed under Arduino, Ethernet

Zigduino and ZMAC

Zigduino pair

This week, I got my hands on a pair of Zigduino units. This is Pierce Nichols’ creation of a Arduino on steroids plus a Zigbee-compatible RF radio, all in one unit. From a hardware perspective, this replaces an Arduino, Xbee Shield and Xbee all at once. On top of that, there are a few more advantages: It’s compatable with further shields, unlike normal Xbee shields which don’t allow you to stack. And best of all, it uses the Atmega128RFA1 chip instead of the Atmega328p found on the Uno. This MCU brings 128KB of flash and 16KB of RAM to the party, plus a bunch of other great features for the power user (onboard AES, among others).

The biggest thing it lacks is a ready software stack. Xbee is easy for even the most non-technical user to bring up, which explains its popularity in the Internet community. So this what I’ve been working on, at least the beginnings of it. The most straightforward way to use Zigduino today is to get Atmel’s IEEE 802.15.4 MAC stack implementation of the IEEE 802.15.4 MAC standard. This is an extensible multi-layer stack that makes available the full power of this SoC. The source is available, it’s well-documented, and it comes with exhaustive examples.

What’s the problem? First, the licensing. While the source is available, it includes no redistribution rights, so it’s not something you can hack on and go share your changes. Second, the build system. For someone comfortable with GCC and Gnu Make, all is well. For folks who take comfort in the simplicity of the Arduino IDE, it’s a problem.

ZMAC

ZMAC is my solution to this problem, available at github.com/maniacbug/ZMAC. First, you download the Atmel MAC distribution yourself, sign up with Atmel, agree to the license, etc. Then you get ZMAC, and run the fileprep script. This will copy and modify the files as needed to organize them so the Arduino library can pick them up. It will even translate some of the examples into a form that will load and compile and run using the Arduino IDE.

Continue reading

5 Comments

Filed under Arduino, RF Radio, Zigduino

Arduino Ethernet Using ENC28J60

RF Ethernet Maniac V1 Photo

Today’s goal is to get my Arduino on the wired Ethernet for cheap. There are basically two options in Arduino-land for Ethernet, Wiznet 5100 or ENC28J60. The Wiznet solution is the easiest and consequently it’s the standard for Arduino Ethernet. It’s also expensive. $45! I bet we can do better.

Electronics Kits Zone sells an ENC28J60-based Ethernet Shield Kit for $19. Stand-alone modules can be found cheaper still such as this $17 module from mdfly.com, but you still have to interface it with the Arduino and convert the voltage down.

Of course, all cheap hardware comes with a price. It requires a TCP/IP stack in software, as opposed to the Wiznet which implements it in hardware. This is not a trivial problem! We expect a full working TCP/IP stack on our PCs, but on a memory-constrained microcontroller, it’s another story entirely. None of the available stacks implement it fully, they all take some shortcuts. Worse, I could never find one that has been ‘tested by fire’ as much as a PC (or Mac or Linux) stack. They seem to still be fairly immature. This translates into a serious pain to use. You have been warned!

Continue reading

16 Comments

Filed under Arduino, Ethernet

Arduino Clone V1

Full Arduino Clone V1 Photo

It seems like it’s a rite of passage for folks to build out their own Arduino compatible boards once reaching a certain level of proficiency. Indeed, for me I wanted to learn the Arduino platform more deeply by building it myself out of component parts. Also I am curious to see how cheaply I can make them.

On the cost front, the total comparable cost of this set of boards is $12.50 each, as compared to $19.95 for an equivalent-functional Arduino Pro from Sparkfun. Not bad! I figure if I did it using the iTeadStudio PCB service, these can be made for $7.80 each in quantity 10.

Continue reading

2 Comments

Filed under Arduino

Arduino Box Header Platform

Box Header Platform Photo

By far one of the most annoying things about prototyping with Arduino has been connecting and disconnecting projects to and from the board. I would connect up a breadboard to the various pins using individual wires. That worked fine until I wanted to disconnect it, which would happen all the time. Perhaps I had to wait on a part to arrive. Or maybe I got stuck, or just bored, and wanted to work on something else. Just disconnecting a project from Arduino would disrupt the whole thing, and then I’d have to remember how to wire it up again. This was painful.

Then I was inspired by the Amani 64 CPLD Shield. It uses a pair of 12-position right-angle female headers on the platform, and then right-angle male headers on the app boards. Likewise, the Centipede Shield takes connections using 2×20 headers.

So I set out to design a set of standard connections I could use on all of my projects. It would be easy to connect and disconnect a project at any time. I settled on four different connections:

  • ONE 4-pin I2C connector
  • TWO 10-pin (2×5) box headers for 4 digital pins, 2 analog pins, and power
  • ONE 20-pin (2×10) box header for most digital pins, most analog pins, and power

Continue reading

4 Comments

Filed under Arduino

2.4GHz RF Radio Transceivers and Library

nRF24L01 Test Pair Photo

I really want to communicate wirelessly between Arduinos for cheap. I love the idea of “The Internet of Things”, with everything I can look, see, touch all connected together. The problem is the cost. Zigbee modules seem to be the standard, but they are just too much to be a reasonable solution for putting everything on the Internet.

The Nordic nRF24L01, built into a small module and sold by mdfly.com for $6.50 is an excellent solution. It’s cheap, fast (2 Mbps), easy, reliable, and low-power. It entirely implements the Data Link Layer in hardware, handling addressing, collisions, and retry, saving us lots of work on the software side. Zigbee has the brand recognition, but this little guy puts it to shame.

Continue reading

28 Comments

Filed under Arduino, RF Radio

Four-Digit 7-Segment LED

Four Seven LED Test V1 Photo

Now that we can drive a single 7-Segment LED, and we can use an I/O Expander to drive a Double 7-Segment LED, what’s the obvious next step? A Four-segment model! In the picture above, I’m driving it with an Arduino Pro Mini sitting on a little connector board I made, though anything that can supply power and I2C will work.

Parts

List

Qty Vendor Part# Description Price Comment
1 Mouser 638-MSQC6912C LED Displays 0.56in Hi Eff Red 4Digit Clock Ca $4.24 Datasheet
1 Mouser 579-MCP23018-E/SP 16B I/O Expander I2C interface $1.58 Datasheet
1 Mouser 652-4116R-1LF-100 16pin 100ohms Isolated Low Profile Resistor Network $0.60 Datasheet
4 Mouser 512-2N3904BU Bipolar Small Signal NPN Transistor General Purpose $0.10 Datasheet

Details

The way this part is wired, only a single digit can be on at any time. The trick is to set one digit, and then quickly move on to the next digit. Each digit is on for 1/4 of the time, but that’s enough to imprint it on your mind and so you see them all. They call that ‘Multiplexing’. Fancy!

As with my other LED’s, I have chosen a ‘Common Anode’ part for consistency.

Continue reading

Leave a comment

Filed under 7-Segment, Arduino