BridgeDuino: A Wireless Arduino HUB and Shield
INTRODUCTION
BridgeDuino (R 0.11) is a Swiss army knife PCB for rapid networking of inexpensive wireless communication modules. Breadboards are super for one-off experiments. But after prototyping half a dozen wireless prototypes involving more than just two Arduinos, the wiring mistakes and associated debugging grew more time consuming.
BridgeDuino facilitates rapid multi-node prototyping & testing of networks based on popular, cheap wireless modules and the Arduino platform. I did not wish to make a separate PCB for each of the various wireless components, so I figured why not one PCB to rule them all.
I also wanted a PCB that can act as a shield to Arduino Uno as well as work with the inexpensive and low-power Arduino ProMini.
As of this release, BridgeDuino supports the following wireless technologies/modules:
BRIDGEDUINO IS OPEN HARDWARE AND OPEN SOURCE.
Bridging
An unintended but welcome consequence of this combo controller is the ability to bridge between wireless protocols within limits imposed by interrupt conflicts, power consumption, interferences, etc. Some of these limitations might be overcome by modifying the libraries, others may require a change in the PCB layout. But the possibilities are endless.
Testing
Please remember this is the 1st iteration of the PCB. I have done limited testing using two BridgeDuinos. The first was a shield paired with an Arduino Uno while the second with an Arduino Pro Mini 328/5V. Each wireless component with no visible issues. But as far as bridging from one wireless technology/module to another different one, I have done very little in this regard and the results were mixed for reasons I have outlined before. I also have not yet tested the BridgeDuino in low power configuration. In upcoming weeks, I will try some of the advanced configurations possible with the BridgeDuino.
BridgeDuino facilitates rapid multi-node prototyping & testing of networks based on popular, cheap wireless modules and the Arduino platform. I did not wish to make a separate PCB for each of the various wireless components, so I figured why not one PCB to rule them all.
I also wanted a PCB that can act as a shield to Arduino Uno as well as work with the inexpensive and low-power Arduino ProMini.
As of this release, BridgeDuino supports the following wireless technologies/modules:
- IR Transmiter LED 940nm
- IR Receive 38Khz
- RF433Mhz Receiver
- RF433Mhz FS1000A Transmitter
- Bluetooth HC-06 & HC-05
- Nrf24L01+
BRIDGEDUINO IS OPEN HARDWARE AND OPEN SOURCE.
Bridging
An unintended but welcome consequence of this combo controller is the ability to bridge between wireless protocols within limits imposed by interrupt conflicts, power consumption, interferences, etc. Some of these limitations might be overcome by modifying the libraries, others may require a change in the PCB layout. But the possibilities are endless.
Testing
Please remember this is the 1st iteration of the PCB. I have done limited testing using two BridgeDuinos. The first was a shield paired with an Arduino Uno while the second with an Arduino Pro Mini 328/5V. Each wireless component with no visible issues. But as far as bridging from one wireless technology/module to another different one, I have done very little in this regard and the results were mixed for reasons I have outlined before. I also have not yet tested the BridgeDuino in low power configuration. In upcoming weeks, I will try some of the advanced configurations possible with the BridgeDuino.
FEATURES
Supported Wireless Technologies
Supported Platforms
Misc. Features
- IR Transmiter LED 940nm
- IR Receive 38Khz
- RF433Mhz Receiver
- RF433Mhz FS1000A Transmitter
- Bluetooth HC-06 & HC-05
- Nrf24L01+
Supported Platforms
- Arduino Uno.
- Arduino Pro Mini + FTDI programmer.
Misc. Features
- LM1117-3.3 3.3V Power Supply (0.8 Amp) to power the Nrf24L01+
- Battery powered with protection Schottky diode.
- Jumper for selectable 5V or 3.3V power to power Bluetooth.
- Jumper to enable HC-05 programming.
- Jumper to enable Nrf24L01+ low energy.
- Multiple 4-pin I2C headers.
- Multiple 3-pin ADC headers.
PCB Schematics & Board Layout
UPDATE AUGUST 17, 2014: The schematics in the photos are for the R0.10 PCB. I have made some updates to the layouts. The latest release as of August 17, 2014 will have a different layout to fix a problem with the location of the Bluetooth headers and nearby I2C and analog headers. They were too close to the Arduino USB connector requiring in insulation tape to protect from potential shorts. This is no longer the case in the attached Eagle PCB design files for BridgeDuino R0.11. You can view the Eagle files in PDF and you can download the ZIP file containing the Eagle layout and schematic files for editing.
bridgeduino_r0.11_layout.pdf | |
File Size: | 120 kb |
File Type: |
bridgeduino_r0.11_schematic.pdf | |
File Size: | 23 kb |
File Type: |
bridgeduino-r0.11.zip | |
File Size: | 102 kb |
File Type: | zip |
ARDUINO LIBRARIES
BridgeDuino utilizes popular open source Arduino libraries. In most cases, all you have to do is set the right pin value in the example code provided by the library and you are good to go. I have listed the hardwired pin values for each wireless module to help you update the example codes.
You can use the examples in these libraries as is but you have to match the wireless modules' pins with their equivalent library variables.
RF433Mhz VirtualWire Library by Mike McCauley
http://www.pjrc.com/teensy/td_libs_VirtualWire.html
Nrf24L01+ Library by Maniacbug
https://github.com/maniacbug/RF24
IR Remote Library by Ken Shirriff
https://github.com/shirriff/Arduino-IRremote
SoftSerial Library by Arduino (Tom Igoe)
This library is bundled with the Arduino IDE. It's used with BridgeDuino in conjunction with the Bluetooth serial module to free Arduino pins 0 and 1.
You can use the examples in these libraries as is but you have to match the wireless modules' pins with their equivalent library variables.
RF433Mhz VirtualWire Library by Mike McCauley
http://www.pjrc.com/teensy/td_libs_VirtualWire.html
- Transmitter DATA pin -- > Arduino D6
- Receiver DATA pin --> Arduino D7
Nrf24L01+ Library by Maniacbug
https://github.com/maniacbug/RF24
- IRQ --> Arduino D2
- CE --> Arduino D9
- CSN --> Arduino D10
- MOSI --> Arduino D11
- MISO --> Arduino D12
- SCK --> Arduino D13
IR Remote Library by Ken Shirriff
https://github.com/shirriff/Arduino-IRremote
- IR Receiver Pin3 --> Arduino D8
- IR Transmitter LED Anode (+) --> Arduino D3
SoftSerial Library by Arduino (Tom Igoe)
This library is bundled with the Arduino IDE. It's used with BridgeDuino in conjunction with the Bluetooth serial module to free Arduino pins 0 and 1.
- Btooth RX --> Arduino D5
- Btooth TX Arduino D4
COMPONENTS
The central components are obviously the inexpensive wireless modules and parts.
Wireless Components
I buy most of my components from eBay but you can find these parts from most electronics stores. I have posted links below to eBay sellers with good ratings but feel free to buy from other ebay sellers you trust.
Microcontrollers
Support Components
Not all these parts are needed but depending on what you want out of the BridgeDuino you can mix and match:
Wireless Components
I buy most of my components from eBay but you can find these parts from most electronics stores. I have posted links below to eBay sellers with good ratings but feel free to buy from other ebay sellers you trust.
- Bluetooth Serial module HC-05 - $6 (ebay)
- 433Mhz RF transmitter and receiver - $1.60 (ebay)
- IR LED transmitter 940nm 5mm - $1 (ebay)
- IR Receiver 38Khz - $1 (ebay)
- NRF24L01+ 2.4GHz Wireless Transceiver - $1 (ebay)
Microcontrollers
- Arduino Uno R3 (arduino.cc)
- Arduino ProMini 328/5V (arduino.cc)
- FTDI USB-Serial programmer for the ProMini
Support Components
Not all these parts are needed but depending on what you want out of the BridgeDuino you can mix and match:
- Red LED 5MM (power LED)
- Resistor 300 Ohm (current limiting for power LED)
- 2 X Resistor 100 Ohm (IR LED current limiting)
- LM1117-3.3V regulator (optional if using Arduino Uno which supplies 3.3V)
- 2 X 10uF 16V SMD Capacitor - Package 3216/1206 (for 3.3V regulator)
- 0.1uf ceramic capacitor (optional)
- Schottky Diode 1N4001
HEADERS
Female Headers
You will need female 2.54mm (0.1 in) headers if you don't intend to solder your Arduino ProMini or wireless components onto the BridgeDuino PCB. You can break these 40 pin headers into smaller headers then solder them into the PCB and plug your components into them.
- 40Pin 2.54mm Single Row Straight Female Pin Header Strip - $1.60 (ebay)
Male Headers
You will need male headers to turn the BridgeDuino into an Arduino Uno shield as well as for the 2-pin jumpers. These headers can be easily broken to the desired size.
- 40Pin 2.54mm Single Row Straight Male Pin Header Strip - $1 (ebay)
You will need female 2.54mm (0.1 in) headers if you don't intend to solder your Arduino ProMini or wireless components onto the BridgeDuino PCB. You can break these 40 pin headers into smaller headers then solder them into the PCB and plug your components into them.
- 40Pin 2.54mm Single Row Straight Female Pin Header Strip - $1.60 (ebay)
Male Headers
You will need male headers to turn the BridgeDuino into an Arduino Uno shield as well as for the 2-pin jumpers. These headers can be easily broken to the desired size.
- 40Pin 2.54mm Single Row Straight Male Pin Header Strip - $1 (ebay)