Meet the ChainDuino, the Daisy-Chainable Arduino-Compatible board
The ChainDuino is a daisy-chainable, Arduino™ compatible development board that allows you to easily connect multiple boards together with standard Cat5 cable. The boards communicate using built-in RS-485 circuitry, and share power using passive PoE+ over the same Cat5 cable! Adding boards to the chain is as simple as programming them with the Arduino™ IDE, and plugging them in. And yes, the entire ChainDuino platform will be open hardware and open source.
Where did the idea for the ChainDuino come from?
After stumbling upon the incredible world of Arduino™, and its global community of creative geniuses, I knew I would never look at technology the same way again. I started to think about everything differently, and quickly realized the unlimited potential of using sensors to monitor changes and events. I kept finding myself wishing there was a way to easily connect Arduino™ boards, usually for the purpose of collecting sensor data from multiple places at the same time. While I do find wireless gadgets fascinating, I have always been more of a hardwired fan when it comes to permanent installations. I'm also a huge proponent of powering remote devices over Cat5, also known as Power over Ethernet, or PoE.
I needed a simple way to connect microcontrollers together to focus on the functions of each node, instead of wasting time solving how to connect the nodes to each other.
Multiple Arduinos + Cat5 = ChainDuino.
How many boards can be connected?
The original design goal was to support 10 boards in a chain over 500ft in length, while keeping the board cost very reasonable. After several board revisions, chains of 25+ boards are possible thanks to an efficient switching regulator used instead of the standard linear regulator found on the many of the official Arduino™ boards. The more efficient DC regulator effectively doubles the maximum number of nodes that can be used without exceeding 25 watts total, which is the maximum recommended over 2-pairs of Cat5. Using a 24v power supply also allows cable runs up to 3 times as long compared to using a 12v supply; which pushes the capabilities well past the 1000ft mark. Update: The ChainDuino was tested to a distance of 1,610 feet on 8/15!
Will there be a ChainDuino Mega?
Yes, Several backers have asked about a version of the ChainDuino based on the Arduino Mega 2560, and I think it's a great idea. I have roughly designed the board, and I am looking for input on additional features. It will have all features of the original ChainDuino, but may also have some optional extra bells and whistles.
There are now several reward options that include 1 or more Mega versions as a combo pack with several original ChainDuino boards.
Why not just use wireless?
These days, it seems like everything is going wireless, but sometimes there is no good substitute for a physical wired connection. Some things just need to work without being subject to RF interference. There are many development boards available that utilize wireless radios for prototyping, but there aren't too many options for hardwired networks, at least none quite like this. Plus, establishing wireless links can be a daunting task for the beginner, and the end result can be unpredictable at best for even experienced users. And don't forget power, which is something even all wireless radios need whether it's from a battery or some other means. By using a wired link instead of wireless, you also solve the issue of powering the remote devices. And, if something does require a battery backup, you could use 1 battery for the whole network of sensors.
Isn't RS-485 old technology?
If by old, you mean "has 3 decades of bullet-proof reliability", then yes. Despite being invented over 30 years ago, RS-485 has been proven very reliable and is still used globally in industrial automation today. Keep in mind that RS-485 can support bus lengths up to 4,000 feet, data rates up to 10 Mbps at shorter distances, and now supports over 250 devices on a single bus. Not to mention, it's also perfectly suited for one of the most popular cables found on earth, twisted pair Cat5. Those specs are good enough for industrial manufacturing all over the world, so unless your planning on trying to send 4K video, they should be sufficient for most Arduino-style projects you can throw it.
Multiple Connection Options
You can use standard patch cables for smaller numbers of boards, but it will make more sense to use a continuous (uncut) Cat5 cable for larger projects with lots of boards. For this reason, each ChainDuino board has a set of dual RJ45 ports in addition to a 6 pin header and included 6 conductor IDC connector. When using the IDC connector, you won't need to cut the cat5 pairs to add more devices to the middle of the chain, and that's a good thing when you're sending power. To connect another board, just line up the correct pairs, push them down into the IDC header, and the connections are made for you. (you will of course have to carefully open the outer jacket to access the pairs, but you won't have to strip off any of the insulation on the individual wires themselves)
The board layout is loosely based on the Arduino™ UNO (without the USB)
- Micro controller: ATMEGA328p
- Operating voltage: 5v
- Input voltage: 7-28v DC
- Digital I/O:14 pins (6 pwm)
- Analog Inputs: 6
- DC each I/O: 40ma
- DC for 3.3v: 150ma
- DC 5v onboard: 500ma
- Clock speed: 16 MHz
- RS-485 half-duplex MAX485 chip onboard (pins 0,1,2)
- RS-485 terminating & bias resistors selectable with dip switches
- 28v DC switching regulator supplies 5V up to 500ma
- VIN pin on Arduino header disconnected by default to protect some shields from > 12v (enable with simple solder joint)
- PoE+ support for 24v DC power over Cat5
passive PoE pins (+) 4,5 and (-) 7,8
- I2C pullups onboard, disabled by default (enable with solder joints)
- FTDI headers onboard
- ICSP header onboard
- Daisy-chainable via RJ45 ports or IDC connectors
(insulation displacement of 24-26 awg wire)
- WS2812b RGB LED onboard (pin 13)
Programming the ChainDuino
The Chainduino does not have USB connectivity, so we recommend using the FTDI header or the ICSP programming header, or just swap the ATMEGA328p onto an official Arduino™ if you need to. It ships with the Arduino™ Uno bootloader.
Libraries for the Arduino™ IDE
While there are many protocols that can be used over RS-485, the ChainDuino was partly inspired by libraries that make interfacing with RS-485 easier for the common hobbyist. My favorite one is called the Arduino Inter-Chip Serial Communication library by Majenko. This powerful library allows for simple and easy communication between two Arduino™ boards using RS-232 or multiple Arduino™ boards using RS-485. There are many libraries to choose from, but this one is highly recommended to get started with the ChainDuino. I would be happy to kick-back a portion of proceeds to expand on libraries like this.
Master & Slave Info
Several people have asked about which device needs to be the master, and the answer is actually none! This is a half duplex network, so the same pipe is shared for both sending and receiving. In fact, all nodes are "listening" to the pipe at all times. If you use the Arduino ICSC library, any device on the chain can send a message to ANY other device, or it can send a broadcast message to entire chain. It's easy to run procedures on other nodes, and just as easy to have them report back. Each node is assigned an address (1-256) in the sketch, and messages can simply be addressed using that same number. You can however use one node as a master that does the heavy lifting, but this is different than a "master" on some full-duplex networks.
Why no Wi-fi or Ethernet connectivity?
Built-in Wi-Fi or Ethernet may seem like the standard these days, but giving each ChainDuino its own built-in network connectivity would (in most cases) only add unneeded cost, since the whole chain can easily share a single connection to the TCP-IP network. It's for this same reason that the ChainDuino lacks USB connectivity, it's costly and would be very redundant. Since the ChainDuino boards are already connected to each other, a single Ethernet or Wi-Fi shield would be better served for adding network connectivity since it can be shared by the entire chain. There is also a chainduino shield available to connect the chain to a computer via an Arduino Uno, or you can also use an FTDI breakout.
Why use an RS-485 chip that only supports 32 devices instead of one that supports 128 or 256 devices?
The software still supports 256 nodes, but the hardware design (of the ChainDuino) is purposely limited to 32 nodes (without the use of repeaters) to discourage configurations that would almost certainly draw too much power over the Cat5 cable. However, in the works is an inexpensive repeater shield that allows the bus to be extended (from the end or the middle of the bus) with its own separate power supply for the new segment; in theory allowing for up to 256 addressable devices on the same bus. There are some concerns with grounding and Isolation I won't cover in detail here that need to be finalized before a 2nd power source can be introduced.
Does the current prototype work?
Yes, the ChainDuino works exactly as intended! So far we have tested a chain 1,610ft long, which longer than 1/4 mile.
What will the money be used for?
First and foremost, finalizing the design and fulfilling the kickstarter orders is top priority. Being able to order them in bulk is especially important with this device since projects will normally require multiple boards, so making them affordable allows more people to get their hands on them. I also can't sink anymore time and funds into this project without some help and reassurance that others will actually benefit from the countless hours already invested. The ChainDuino still needs an enclosure, and some other accessories. Prototyping is not cheap, and having them made usually takes a few attempts to get it perfect.
Are there plans for future development?
Absolutely, assuming there is interest in this project. This is not my first attempt at making a PCB, but since it's the first that I think others will find incredibly useful, it is my first open-source piece of hardware. If the project is successful, I will continue to improve the design, and almost immediately begin designing enclosures for the ChainDuino, as well as a smaller version based on the Arduino™ pro mini. Since this device can be used to make powerful networks of many sensors, I would like to create affordable sensor shields for both the full-size and mini size, complete with enclosures.
What other features and improvements may be added to the current board?
There have already been a few board revisions since many of the photos shown here were taken, such as the one above showing the FTDI header. The 6 pin header for the IDC connector is also now a right-angle header (instead of vertical) so it can be accessed from the same side and orientation as the RJ45 ports. Already in the works are break-away mounting tabs (shown above) that would be very useful to mount these during prototyping. If the mounting tabs somehow get in the way for a specific application, they are perforated and can simply be snapped off the board.
Several Board Versions
All 3 versions in the photo above are the same PCB, with slightly different components. The shield is simply a shield version of the ChainDuino, it lacks the ATMEGA328p and oscillator, but still has the PoE capability and linear regulator, etc. The shield version can be used to connect an Arduino™ UNO or similar board. The pro version is a possible version that lacks RJ45 ports and headers for applications that will not use those connectors. This might be useful for the longer chains and custom housings. (coming soon)
If you have suggestions, please drop me a note.
Risks and challenges
Having 5 years of experience as an eBay power-seller with over 6,000 successful transactions, managing inventory, tracking orders, packaging & shipping, following up with customer concerns, and finally distributing the rewards to the backers (once I receive them) will be less of a challenge for me. None of my orders were drop-shipped, they were all procured in-house.
The main challenges are going to revolve around choosing the right assembly service, and getting the larger batches of assembled boards completed and delivered. Even though I can re-flow quality boards in small quantities, fulfilling larger quantities is a task best served for a business setup to do so efficiently. There is great info out there on choosing a reliable vendor, and I am open to suggestions and advice from anyone with experience.
I believe I have planned for ample time to fulfill the orders, and built in some leeway for anything unexpected for the outsourcing portion. Hopefully, I can under-promise and over-deliver on the expected ship dates. In the event significant delays do arise, I will keep everyone informed and stay on track to get the rewards in the hands of the backers ASAP.
Thank you for checking out the project.
- (36 days)