About this project
Just finding out about RadioBlocks? Be sure to check the updates for more real-life examples, range testing results, and an overview of all the rewards!
So who's behind RadioBlocks? A group of engineers who have worked on many aspects of low-power radio devices. A group of engineers who time & time again saw customers coming to us with similar requests, but with no way for us to easily fill them. So we created RadioBlocks to allow people to easily drop a radio link into their project, hence "RadioBlocks" - A simple to use radio building block.
Sure there are lots of radio boards out there. Most have two modes: super-simple serial-port replacement mode, and complex full network mode. Neither of those are useful - most people want to send some data between some devices. They need more than serial-port replacement, but the full network mode is too much hassle. Then many of those radio devices are just too expensive - are you really going to drop $30 or $40 on a single radio node, then buy extra hardware so you can attach sensors? Good luck with that!
See update #2 for complete details! If you are located outside the US, you'll need to add $13 to your reward for us to ship to you! For example, if you choose the $44 reward you'll need to bump it to $57 for us to ship it to you!
Do the Monster Mesh
You'll need to understand a few terms to see how this device works. First off - it's using a Mesh network 'behind the scenes'. Mesh just means you can dump a bunch of devices down, and they will figure out how to send data from one device to another.
Why do you care about Mesh? While it helps with one unfortunate truth of all radio devices: their range sucks. Oh sure - we get 300' range outside, or 80' inside, which seems like lots. But this all depends on what your walls are made of, what other devices are there, and a whole lot more. So sometimes you might get 100' inside, but sometimes you might get 20'. Mesh means every device is a repeater as needed. Do you need to get a radio signal out of that room with reinforced concrete walls? Put a device just outside the room, and it will be used as a 'repeater' by the network. Of course that 'repeater' device is all ready configured to forward the data whether or not it "knows" the final destination, and in fact you can use that repeater as just another node (because it is just another node). Mesh network is perfect for applications like security systems or sensor networks, since you are likely to have a bunch of devices distributed around. While your front porch light sensor might not be able to talk to your backyard motion sensor directly, they can both talk to the kitchen motion sensor, which means they can still send messages to each other without you needing to do anything.
RadioBlock with SimpleMesh
So what's different? Well the bones of our hardware is like most other products: we have a radio chip, and we have a microcontroller. The microcontroller handles all the complex stuff for you, so you just send it simple easy commands - Tell it the address to send data to and the network finds a path to to get it there.
The first major difference is we don't hide the software in our microcontroller. It's completely open-source. Most competitors don't give that away - you are stuck with the features they chose. You can modify the software to your heart's content, and we even make it easy to do so (see 'debugging' later). You can even implement your entire project on the RadioBlock device.
Second, we throw away everything we don't need. Most protocols have different addressing modes, because they want you to be able to support networks of millions of nodes. Yeah, sure. We only have one address per node - you want to turn your toaster on? Alright, well just write down a 4-digit number. That is your toasters address. That's it.
SimpleMesh doesn't have a special 'central' node; you just send data to addresses. Sure one of those devices can be a computer that receives all the data, but there is nothing special about it according to SimpleMesh.
SimpleMesh is packed with more features - including security that doesn't rely on sending an encryption key to your radio over the open SPI bus. So you can use SimpleMesh in real commercial products. You can use SimpleMesh on other hardware too, it's not locked down to our product. But we'd really like you to buy our product, because then we can keep supporting SimpleMesh.
RadioBlock HW Features
First off - this product is FCC certified. We aren't selling some fly-by-night product here you can only experiment with. You can install 10000 of these downtown tomorrow for your next great product.
The 4-pin header contains everything you need. Power + two serial lines. The on-board regulator means you can power the RadioBlock from 3V - 6V. The serial lines are 5V tolerant, making it easy to interface to whatever you want. You can plug this into a breadboard if you want. More on that later.
A programming header connects to the LPCLink boards. More on that later.
An expansion header provides I2C. Here you can connect some expansion boards to add in other things, such as accelerometers or extra I/O lines.
On-board LED can be used for blinking, always a hit at parties. Or, to give you a simple visual cue that things are working...
The antenna & Atmel radio chip provide the important RF functionality of the board. This gives it a range of about 100 or so meters and we have just begun testing - We'll publish results soon.
If you want to run code on the RadioBlock, you'll appreciate the LPC1114 microcontroller. It's a 32-bit ARM Cortex M0 device with lots of handy peripherals. Best of all there are great low cost tools available and we've built a handy JTAG cable to make it easy to interface.
The board comes in two versions. One has a battery holder on the back - this version has female headers (so you won't short out anything), and is designed so it can be deployed on it's own.
RadioBlock & Arduino
You don't need to plug this thing into a shield. You can just plug it into any four digital Arduino pins. This magic works because the device can be powered by setting the arduino pins high/low. The current consumption is low enough that it doesn't stress the AVR, and the device has a regulator on-board so it isn't bothered by the fact the voltage won't be reliable this way.
Then the other two pins are the serial link. If you want of course you can just connect up power & the two serial lines in a more 'classic' way, which really means you only need two pins on any arudino to control the radio. You can use it with both 3.3V and 5V arduinos. The RadioBlock internally regulates the external power down to 3V, but the I/O lines can work with 5V logic.
The library leaves the hardware serial port on the Arudino free, so you can still use that to talk to your computer. You can even connect more than one RadioBlock to a single Arduino, if perhaps, you want to run several different networks from one device.
We have a basic library now. The idea is to make it easy - just plug your RadioBlock in, and send data somewhere. We're expanding the library to add more functions, but of course it's all open-source so you can help too.
Really, you don't need a shield. You can just connect up a few wires. But we're making a shield anyway. Not because we're greedy mind you - but because we want to add more features. In particular we've designed a shield that adds a AAA battery pack, which can power the Arduino & RadioBlock. Critically this shield lets the RadioBlock shut down power to the Arduino, and later turn on the system when you receive data, or even just after some delay. Powering an Arudino directly with AAA batteries would only last a few days - with this shield, the batteries could last a year, since the system can be off most of the time. We've got a design & prototype, but need to finish testing and get some production levels. This board is not part of this offering or part of this kickstarter project!
RadioBlock & Computers
Many people aren't into Ardunios. That's fine - you don't need them to use this product. You can directly interface a node to a computer using a serial-to-USB converter. Our example Python app sends data in the proper format & parses the responses.
You can use this sort of connection to add a RadioBlock to your Linux computer too - think about having a Raspberry Pi as one device on your network. This way you could easily connect your wireless network to the internet, and have it send you an e-mail when it detects something amiss. Even if you have a hacked router firmware (DD-WRT) you could interface to this, since most of those routers provide a few serial port lines.
RadioBlock & Other Devices
Most of our lives we've never used Arduinos, we've just used microcontroller development kits. The truth is that the RadioBlock can be connected to basically anything embedded. It works at both 3V, 3.3V, and 5V (common embedded power supplies) and just needs a serial link. The simple pin-out means you might need a few wires at most - sometimes it will plug directly into other boards with existing connectors!
We're working on example C code to talk to the RadioBlock. So you don't really need to implement anything - you just drop down our interface code, point it to your serial port, and you're done. Remember the software in the RadioBlock is open source, so you might even just write code on the RadioBlock itself.
Here it is plugged into a FPGA board for example, the device happens to fit into Digilent Inc PMod connectors. AVRs, PICs, 8051s, ARMs.... "RadioBlock don't care, it'll plug into anything!" It's a bit promiscuous like that.
The RadioBlock has some expansion ports. We've already designed a 3-axis accelerometer board & an IO expansion board to fit in here. The expansion ports will let you run code entirely on the RadioBlock without needing an external microcontroller.
The following shows the 3-axis accelerometer module on the left (yes it's that small), and the I/O expansion module on the right. The I/O expansion includes 6 LEDs and a push-button along with 8 GPIO lines. Note only the 'battery' based boards include the female header that fits these. (But, based on your demand we can supply the headers...)
Debugging and Firmware Upgrades
The microprocessor on this board is a LPC1114. For $30 you can buy a 'LPCXpresso' kit which includes a USB JTAG & a compiler license. With that you can plug the RadioBlock into the JTAG and do full-blown debugging on the board itself:
The LPC1114 even has a hardware bootloader. That means you cannot brick the device - you can always upload a new image to the RadioBlock board itself. So get one now, and you'll always be able to get new features we add to this same hardware.
RadioBlock & IEEE 802.15.4
The radio on the RadioBlock is a real Atmel IEEE 802.15.4 device. This means a few things: for one you can run all sorts of other software on the RadioBlock (you'll want the $30 debugger for this) such as Contiki or TinyOS. The IEEE 802.15.4 standard also means you can use any IEEE 802.15.4 sniffer if you want, or you will be able to use our device as an IEEE 802.15.4 sniffer.
Or you could use the RadioBlock as a way to add an IEEE 802.15.4 device to an embedded Linux computer, think of having a 6LoWPAN router (again the Rasberry Pi comes to mind here). For now you'll need to do some extra coding, because we're focusing on the SimpleMesh software. But the hardware would fully support your endeavours.
Oh and it can directly plug into the Raspberry Pi with the current revision, or in the future may require a wire if 5V pin changes location.
We love documentation. Too many products have poor documentation. So we're writing as much as we can. To give you an idea, here are some links to beta versions. We've got more coming though, so hold onto your seat.
Prototype - Done
As can be seen, we've got a prototype design done. We've built several of them, and have been testing them extensively.
FCC Testing/Approval - Done
FCC approval is completely done. If we get enough Canadian support we'd consider doing IC as well. Right now we can't sell the device into the Canadian market, but we just need to pay enough to get the IC approval. When we had FCC testing done, it was done by a Canadian lab even, so getting that IC approval will be trivial if required.
Mesh Networking Software - Done
The mesh networking software (SimpleMesh) is totally done. We've been expanding it and adding features, but since it's entirely open source it will always be improving.
Go here to get the source! git://git.assembla.com/SimpleMesh.git
More Info here!
Python Library - In Progress
We have the Python app written now. We're improving it and making the whole thing more compartmentalized, so you can just do something like 'import radioblock' and send commands.
If you haven't used Python, it's very quick to pick up. It runs on most computers, so is one of the best choices for cross-platform applications.
Arduino Library - In Progress
As mentioned, this is already in progress and basic functionality works.
C/C++ Library - In Progress
Most embedded work gets done in C, so we are going to provide a complete implementation of the RadioBlock interface. This gives you a simple API, the provided code will deal with creating the proper serial message format, which you send out.
Documentation - In Progress
You can see from the previous links we already have some pretty good documentation. We really want to make sure you aren't left scratching your head though, so are planning a lot more. We especially are targeting writing some tutorials using these boards.
Production Run - Not Done
The final step is getting a production run of devices. We've got some manufactures lined up, but need the capital. If we can get a large first run it will help drive cost way down, making these as affordable as possible.
Support this project
- (30 days)