Introducing the Freakduino-Chibi, An Arduino-based Board For Wireless Sensor Networking
Written by Akiba   
Sunday, 14 November 2010

I’m happy to announce the release of my latest design, the Freakduino-Chibi.Yes, there has been mixed reviews about the naming. It’s ranged from “seriously?” to outright laughter. I decided to go with it though because it does express two things that I think are important. The first is that it’s an Arduino-compatible board and the second is that it’s related to my original Chibi boards .

Before I get into the actual board, I should probably talk a bit about the background behind the design of the boards. The original Chibi protocol stack and Chibi boards were meant to be an entry level way for people to get involved in wireless sensor networking and data collection. But after observing people in Tokyo Hackerspace and in my microcontroller workshops, I realized that there were still some things missing.

Although people familiar with programming might be comfortable with makefiles and command line compiling, I’ve seen that it causes anxiety in people that are new to programming and the GNU toolchain. After a microcontroller class I taught a few months ago, I was talking to the participants and some of them mentioned that the Arduino environment has only one step to compile and load the code into the boards. That definitely intrigued me and I started investigating the platform.

I spent about a month playing with the Arduino, trying out code on it, downloading code from others and using it, and basically kicking the tires on the platform. After working with it, I found that there were a lot of benefits that weren’t immediately visible to me as a non-Arduino user. The IDE was very simple to use and a lot of usability features were built-in. But more importantly, having a large amount of third party shields , source code, a self-supporting community, and a common base platform were immensely valuable.

After working with it for a while, I discussed it with a few of the electronics and embedded people in the hackerspace and we decided to use the Arduino as the standard platform in the space. This would make it easier to ensure everyone has the same base hardware and software when we collaborate on projects. And since Tokyo Hackerspace has kind of a leaning towards wireless (hee hee hee), I decided to make a version of my Chibi boards compatible with Arduino but still include the 802.15.4 wireless radio. That marked the beginning of this design project.

The Software

Chibi means “midget” in Japanese and I felt that it was an appropriate name for this wireless protocol stack. It wasn’t meant to be a fancy, mesh routing, auto-discovery, standardized device profile type of stack. The main goals were that it was small and easy to use so that people that weren’t experts in communications protocols could still send and receive data wirelessly without dealing with complex setups and technical details.   

For the Freakduino-Chibi board, the Chibi stack was ported to the Arduino platform and named chibiArduino . It comes in the form of an Arduino library and you just unzip the package into the /libraries folder of your Arduino directory. The stack takes up approximately 3.6 kB of flash and about 270 bytes of RAM and allows users to set up star networks where any node can communicate with any other node within listening distance.

The Board

There were a lot of decisions that went into designing this board and I tried to keep my priorities on usability and price.

Usability dictated quite a few design decisions. Although most people will probably not notice them too much, I had a lot of internal debate with myself on things like using a mini-USB connector versus standard, having a printed antenna versus antenna connector, having a power switch, DIP switches to enable or disable LEDs, battery operation, battery case, enclosure, etc.

Interestingly enough, one of my biggest decisions was to maintain 5V operation which is what the original Arduinos use, rather than 3.3V. Although most chips are now 3.3V, most shields are designed with 5V in mind so switching the MCU to 3.3V might jeopardize compatibility with other shields. But using 5V means that logic level converters are required on the board to interface the radio to the MCU.

Another big decision was to have an enclosure option for the board. One of the things I noticed by being in the hackerspace is that many members bring their circuits and parts to the space in Tupperware. Tupperware is interesting because it offers protection, but also easy access to the circuit and parts due to the burp-able lid. I thought that having a way to transport the board safely would be an interesting feature to explore because it makes collaboration easier and also allows people to do prototyping and design at places like coffee shops or on the road. There are a lot of enclosures that offer protection, but finding one that offers easy access to the circuitry is much more difficult to find. Most enclosures have to be screwed down which makes portable prototyping a bit difficult. I finally decided on the Takachi LC135 series enclosures which come with a silicone sleeve in various colors. The silicone sleeve is used to ruggedize the enclosure, but there’s a much more interesting use for it. You don’t need to screw down the enclosure because the sleeve holds the top and bottom halves securely together. To open the enclosure, you just need to remove the sleeve which solves the issue of both protection and easy access.

 

 

Cost was a huge design consideration. A big problem with wireless sensor networks is the cost per node, since most networks have more than one node (duh). If you’re not purchasing in large quantities, it’s very difficult to bring down the cost of a board. One way is to force yourself into slave labor, but this is a bit undesirable. Assembly is a huge headache for a one-man shop so I decided that the best way to bring down the cost of the board without killing myself on assembly time is to offer the board in a partial kit form. If people are willing to spend some time mounting the through-hole components, I’d be perfectly fine with charging less for it. Of course, this makes testing the boards more complicated since the boards are incomplete so I had to experiment with customized test jigs with pogo pin test probes. Luckily, LadyAda had an excellent tutorial on it . It took a bit of trial and error but I finally got a decent test system working so I’m happy that I can offer this as an option.

 

 

Another cost decision was to offer different purchase options for this board. I’m experimenting with the “base model plus upgrade options” pattern. I was initially a bit hesitant because it meant that the purchase of the board would be more complicated since it requires extra decisions about which options, if any, would also be purchased. In the end, I decided that allowing people the option of only paying for the features they need was most important. That way, people that just wanted to try out wireless communications could do so inexpensively and people that required more functionality could add on options.

I think I can say that this is the first board I designed that was inspired by my involvement with and exposure to the hardware hacker community. It’s been about four months since I released my last design and in that time, I’ve gotten the chance to work more with Tokyo Hackerspace and meet many people from other hackerspaces around the world. There are a lot of subtle nuances and requirements that really only come out by hanging out with people in the maker community. The idea for portability came from watching Raphael of NYC Resistor carrying around his designs in cigar boxes, MRE from Tokyo Hackerspace and his infamous Tupperware carrying cases, and the guys from Hackers on a Plane putting together circuits inside the common area of a Tokyo hostel. The idea to go to the Arduino platform came from watching non-programmers in the hackerspace struggle with the GNU toolchain and the many questions and emails I got asking about a simple way to start doing wireless communications. The bottom mounted battery case came from trying to stuff the circuit board into NEMA rated boxes we used in the hackerspace for our rice farm monitoring project . And of course the price sensitivity came about because many of the really creative people in the maker community and in Tokyo Hackerspace are simply broke. So I’d like to thank everyone for all the inspiration and making this design possible.

I’ve started by making a small run of boards available in the shop and I’ll be making more as needed. As a thank you to the community that helped create this design and to kick-start it, the boards will be sold at 20% off through Christmas. And since I’ve been taking pictures of my whole design process over the past few months, I thought I’d include my outtakes which documented some of the stupid mistakes I made in getting this board out.

Link to Freakduino-Chibi Documentation

Link to chibiArduino Project Page

Link to Freakduino-Chibi Shop Page

Updated 2010-11-17: The response to the Freakduino-Chibi board was overwhelming. I was only expecting to sell a few so I made a small initial batch. Unfortunately, it sold out quicker than I expected. I source most of the parts locally so I can re-stock pretty quickly. If it's sold out, check back in a couple of days. It usually takes me a bit of time to assemble and test a batch, but I can probably restock at least once a week. Thanks to everyone for the great reception for these boards. It was totally unexpected :)
Click image to open!
Click image to open!
Click image to open!
Click image to open!
Click image to open!
Click image to open!
Click image to open!
Click image to open!
Click image to open!
Click image to open!
Click image to open!
Click image to open!
Click image to open!
Click image to open!
Click image to open!
Click image to open!
Click image to open!

 

 

Hits: 54429
Trackback(0)
Comments (22)Add Comment
!
written by Anton21, November 16, 2010
You are my hero. Seriously. So much energy you put into those projects....thanks a lot for sharing them!
report abuse
vote down
vote up
Votes: +5
...
written by Akiba, November 16, 2010
Ha ha ha...if you're looking for a hero, check out Mitch Altman. He's a genuinely nice person and an amazing engineer. He tours around different countries teaching people about electronics and how to solder and he's the founder of the Noisebridge, the San Francisco Hackerspace smilies/smiley.gif
report abuse
vote down
vote up
Votes: +4
LED enable switch
written by Len, November 17, 2010
"The LED enable DIP switch is used to enable or disable the main power LED and auxiliary LED."
Terrific! I actually chipped the tiny power LED off an Arduino Pro Mini to reduce the standby power consumption. smilies/smiley.gif
report abuse
vote down
vote up
Votes: +1
...
written by Akiba, November 17, 2010
Yeah, those pesky LEDs suck down quite a bit of power. When you're on batteries, every little bit counts smilies/smiley.gif
report abuse
vote down
vote up
Votes: +0
Sold out already!
written by Tarek, November 17, 2010
These look AMAZING!

Do you know when you'll have them back in stock? Is there any way to sign up to be notified when they are?
report abuse
vote down
vote up
Votes: +0
...
written by Akiba, November 17, 2010
I havent added the "back in stock notification" module for Zencart which is what I'm using. This is actually the first time I ever thought I needed it smilies/smiley.gif

I'm working on a new batch right now and should be available sometime this week. I source most parts locally so its just a matter of me getting the time to assemble and test boards. I didn't expect that these boards would sell so quickly (thank you make magazine) so my first batch was quite small. I'm going to have to do bigger batches in the future...
report abuse
vote down
vote up
Votes: +0
cases
written by stbtrax, November 18, 2010
Those cases seam really nice, could you possibly stock the cases alone as well?
report abuse
vote down
vote up
Votes: +1
...
written by Akiba, November 18, 2010
Yeah, I'll be stocking the cases as well. I suspect that people will be cutting and sawing on them so they might need extras. Just need to add them into the shop.
report abuse
vote down
vote up
Votes: +0
Argh.
written by Ante Vukorepa, January 20, 2011
Nuuuuuuuuuu...
Was just about to finally order one enclosure kit and one enclosureless kit after waiting for it to be stocked again and now the enclosures and battery holders are out of stock >:

Will they ever be in stock at the same time? smilies/smiley.gif
report abuse
vote down
vote up
Votes: +0
...
written by Akiba, January 20, 2011
Ha ha ha...they'll be available on Monday. A large order came through and wiped me out. Gonna make another batch this weekend. Check back then or email me smilies/smiley.gif
report abuse
vote down
vote up
Votes: +0
Yay!
written by Ante Vukorepa, January 21, 2011
Awesome! smilies/smiley.gif

Thanks!
Will check next week.
report abuse
vote down
vote up
Votes: +0
...
written by Akiba, January 22, 2011
Freakduino's back in stock as of 2011/01/22
report abuse
vote down
vote up
Votes: +0
\o/
written by Ante Vukorepa, January 24, 2011
Ordered smilies/grin.gif
report abuse
vote down
vote up
Votes: +0
...
written by Vanessa, February 04, 2011
This is pure genius Mr. Akiba! So this is what you've been working on, I remember you having mentioned it here. What is the range of the radio? More power to Freakduino-Chibi!!!
report abuse
vote down
vote up
Votes: +0
...
written by Akiba, February 04, 2011
It's a fairly low powered radio so I wouldn't recommend it for your project. I should have some products coming out soon that are specially designed for outdoor monitoring. I already have a weatherproof enclosure picked out and need to design the power supply. I'm thinking about whether to add on an amplifier to the front end, but it would decrease the battery life. Tradeoffs, tradeoffs...
report abuse
vote down
vote up
Votes: +1
awesome
written by knife, March 13, 2011
I got one of these boards from a competition I went to today as the badge for indicating which team I am on, and I must say this device is awesome. It was a lot of fun in the game of the competition I went to to be able to use these and send data over the airwaves without much extended effort.
report abuse
vote down
vote up
Votes: +0
...
written by Akiba, March 13, 2011
Ah, okay. I made a special batch for those badges. I'm glad you like it and let me know if you have any questions smilies/smiley.gif
report abuse
vote down
vote up
Votes: +0
awesome indeed
written by Lowlight, March 15, 2011
I also got one this weekend at the competition. I didn't get to play with it much but I'm looking forward to doing so. Once I work out the basics I'll probably have to get a second one so my first one has someone to talk to now that the competition is over.

@knife: Red or blue?
report abuse
vote down
vote up
Votes: +0
How to install the libraries?
written by reid, May 16, 2011
So are there instructions somewhere for installing the Chibi libraries? I'm running OS X and can't get the sample programs to compile. I've made a directory ~/Documents/Arduino/libraries/chibi , and placed all of the files that came with the chibi distribution there. When I try to compile the command line example #4 I get:

In file included from /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Print.h:26,
from /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Stream.h:24,
from /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/HardwareSerial.h:27,
from /Users/me/Documents/Arduino/libraries/chibi/chb_cmd.c:43:
/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/WString.h:28: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'String'


With a lot more errors to follow. I'm not much of an Arduino library expert. I'm using Arduino 022.

Thanks if anyone can help smilies/smiley.gif.
report abuse
vote down
vote up
Votes: +0
Library installation howto?
written by reid, May 16, 2011
So are there instructions somewhere for installing the Chibi libraries? I'm running OS X and can't get the sample programs to compile. I've made a directory ~/Documents/Arduino/libraries/chibi , and placed all of the files that came with the chibi distribution there. When I try to compile the command line example #4 I get:

In file included from /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Print.h:26,
from /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/Stream.h:24,
from /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/HardwareSerial.h:27,
from /Users/me/Documents/Arduino/libraries/chibi/chb_cmd.c:43:
/Applications/Arduino.app/Contents/Resources/Java/hardware/arduino/cores/arduino/WString.h:28: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'String'


With a lot more errors to follow. I'm not much of an Arduino library expert. I'm using Arduino 022.

Thanks if anyone can help smilies/smiley.gif.
report abuse
vote down
vote up
Votes: +0
...
written by Akiba, May 16, 2011
Hi reid.
I just tested it on a Mac OSX using Arduino 022. I took the most recent zip file from the chibiArduino project page and downloaded it into the ~/Documents/Arduino/libraries directory. I then unzipped it and renamed the folder "chibi". My directory structure currently looks like this:

~/Documents/Arduino/libraries/chibi

I then closed and re-opened the Arduino 022 IDE so that it can index the new library. After I did that, I opened example #4 and compiled it. I got a clean compile with no errors.

In your /Documents/Arduino/libraries/chibi directory, are the actual source files: chibi.cpp, chibi.h, and chibiUsrCfg.h in there? I'm asking this because if you unzipped the chibiArduino zip file into the /libraries/chibi directory, then you'll have another folder underneath the chibi directory which will contain the source files. This may be whats causing the problem. Otherwise, its possible there is a file conflict somewhere.

Is it possible to try a clean install of Arduino 022, then installing the chibi library, opening example 4, and then doing a compile? If this is not possible, can you send me a directory listing of the /chibi directory?

Thanks.
report abuse
vote down
vote up
Votes: +0
Arigato!
written by reid, June 12, 2011
Arigato, Akiba-sama. It took me a while but I finally got around to my Chibi boards again. I had placed everything from the src/ directory into my libraries/chibi directory (and also left the same files still in a src/ directory). So my directory structure essentially had two copies of src/: one copy of all of those files was in libraries/chibi/src/, the other in libraries/chibi/ . I guess the Arduino compiler was confused at finding the source files in two places. Removing the duplicates makes the Chibi examples compile now (and now maybe I can sniff the Itron meters attached to my house, assuming that they say anything via Zigbee yet).

So thanks a ton!

Reid
report abuse
vote down
vote up
Votes: +0

Write comment

busy