Building a Wi-Node Backpack - in Words and Pictures
Guide created and maintained by: Ian Chilton - please direct any suggestions or corrections to: ian [at] ichilton [dot] co [dot] uk.
If you get stuck, there is a Nanode Mailing List and an IRC channe
l - #nanode on irc.freenode.net.
The Wi-Node can be used in two modes - either as a shield (or backpack) for an existing Arduino/Nanode or as a standalone node.
It's the backpack we are building here - to build the Wi-Node as a standalone node, refer to the separate build guide.
If you are not familar with the Nanode, see my blog post introducing the Nanode and my blog post introducing the Nanode RF & Wi-Node.
To sumarise, the Wi-Node is an Arduino compatible board with RFM12B wireless, SRAM, Micro-SD card and a motor driver.
I am maintaining a a page of useful Nanode links which are worth keeping an eye on as there is information like pin usage and pointers to useful code and libraries.
Some other useful information:
Layout and identify the components from the kit.
The exact kit contents will vary depending on which kit you bought and any optional extras purchased.
Here are the components required to build the basic backpack with wireless:
Pictured above is:
On top of those, additional components can be added to provide additional functions - here are all the parts required to build a full backpack with all the options:
These are the optional functions and the components required for each:
It's worth noting the operation of the 3 resistor networks:
If you are using the backpack with a Nanode 5 board, you need to make a small and simple modification for the RFM12B on the backpack to work.
The problem is that the INT0 line (Digital 2) on the Nanode 5 is being held by the 74HCT125 buffer, preventing it from being signalled by the INT from the RFM12 on the backpack.,br />
The solution is straightforward - just bend out Pin 6 of the 74HCT125 so that it does not go in the socket.
On the standard Arduino, there is no 74HCT125 and you have direct access to Digital 2 so there is no problem.
Ok, we're ready to start. Here is the PCB ready:
A Nanode 5 or Arduino board will be useful later for aligning and holding the pins:
Fit the 10k resistor network marked 103G in it's slot to the right of the Micro SD Card slot. Ensure that the spot marking pin 1 goes to the top (nearest the RFM12B)
Add the 100nF ceramic capacitor in the bottom slot to the right of the 23K256. It's blue and marked 104.
Add the MCP1702 3.3v voltage regulator - it's at the bottom left next to the reset switch. The flat edge goes towards the bottom of the board. You should just need to bend the middle pin outwards slightly and insert it into the holes.
Fit the 10uF Electrolytic capacitor just above the MCP1702 on the left hand side of the board. Ensure it is fitted the correct way round. The long leg needs to go to the + symbol on the legend and you will be able to see the white side on the photo (which goes towards the left of the board).
Add the reset switch at the bottom left of the board..
Add the 100R resistor - it's colour code is: Brown, Black, Black, Black. It's at the right hand side of the board at the top of the row of resistors.
Add the green LED - it's at the top right hand side of the board, next to pin 8 of the L293D. The long leg should go to the top of the board and the shot leg and flat edge should go towards the bottom of the board.
Add five 4k7 resistors instead of the resistor network RN4 at the top of the board. Their colour code is: Yellow, Purple, Black, Brown.
Add the header pins to be able to connect this into a Nanode or Arduino board. The easiest way to do this is to use an existing board to hold the pins in place, with the board on top, while soldering. Insert the pins part way into the Arduino/Nanode board and place the Wi-Node PCB on top (components upwards) and solder when you are sure they are pushed in fully and straight.
While the backpack is on top of the existing Nanode or Arduino board, power the board up in the usual way (programming header, USB or external power). If you use a multimeter to measure the voltage between the RFM12B pads labelled GND and VCC, you should see very close to 3.3v.
Now we know that the voltage is correct, we can fit the RFM12B radio module. Place the module on the pads (observe the orientation - crystal to the inside) and solder each pad onto the board from above. It's worth doing opposite corners first to hold it in place, before doing the remaining pads..
You now need to add an antenna for the RFM12B - this is a piece of wire of approx 82mm, which will act as a quarter wave for the 868Mhz RF.
Congratulations, you have completed the base backpack board to add the RFM12B to a Nanode 5 or Arduino board.
We'll now look at the different optional steps you may wish to consider.
Refer to the information in Step 1 about the options available for the Analogue inputs.
For 3V3 analogue inputs (connecting straight to the ATMega328), Replace R8, R9, R2 and R4 (bottom right of the board behind the screw terminals, marked 10k) with wire links. Do not fit RN1 or C12 or C13.
10.25V Inputs (almost exaxtly 10mV increments per count) - R8, R9, R2 and R4 (bottom right of the board behind the screw terminals, marked 10k) are to be fitted with 10k resistors and RN1 (to the left of those resistors) to be fitted with a 4K7 resistor network.
PLEASE NOTE: There is a mistake in this photo (and therefore the the photos following it) - the four resistors added need to be moved down 2 slots so they are in the bottom 4 spaces, with 2 spaces above it for the RTC resistors. This will be fixed in a future re-build.
36V Inputs (in roughly 35mV increments per count) - R8, R9, R2 and R4 (bottom right of the board behind the screw terminals, marked 10k) are to be fitted with 10k resistors and RN1 (to the left of those resistors) to be fitted with a 1K resistor network (marked 102G).
If you are using the options 2 or 3 above, you can also fit 2x optional 100nF Ceramic Capacitors - C12, C13 to make a low pass filter on A0 and A1 with the 10K resistor which filters out any noise above about 1600Hz.
Screw terminals can be added for ease of access to the analogue inputs: A0, A1, A2 and A3.
Refer to the information in Step 1 for more information about the 23K256 SRAM.
Fit the 100k Resistor (Brown, Black, Black, Orange) at the bottom left of the board, behind the programming header.
Fit the 8-pin DIL socket in the bottom left corner of the board, above the reset switch. Note that the notce (pin 1) should be facing towards the bottom of the board.
Fit the 23K256 IC, ensuring that the notch lines up with the notce on the socket.
If you wish to keep the memory contents of the 23K256 and RTC when the power is removed, fit a 0.22F super capacitor. This goes in the bottom middle of the board, under the DS1307 DIL socket (to the right of the ATMega328). It is supplied unpolarised and can be fitted either way. I usually put the flat side to negative and have the arrows pointing to positive.
I'm going to fit this after the RTC components - see step 16e for photo if you are not doing the RTC and want to fit the super capacitor now.
Refer to the information in Step 1 for more about the RTC.
There are two options here - a DIP socket on the top of the board or SOIC pads on the bottom of the board. Both Dallas DS1307 and Microchip MCP7941x IC's are supported. I'll cover adding an MPC7941x in the SOIC slot here as that's what's included in the Wi-Node kits if your choose kit includes the RTC option. Either a MCP79410 or an MPC79411 may be used - the only difference is the latter has it's unique id area pre-programmed with a unique ethernet MAC address.
First locate the SOIC pads - they are on the bottom of the board, to the right of the ATMega328. They are labelled DS1307SO8.
You should apply a small amount of solder to each pad (on the back of the board). Place the IC over the pads using some tweezers (ensure you note pin 1 to get it the corredct way). Use your soldering iron to heat one of the pins and melt the solder, affixing the IC to the board. If you tack opposite corners first, ensure it's placed correctly and then you can leisurely solder the remaining pins without fear of it moving.
Add the 2x 10k resistors (Brown, Black, Black, Red), R3 and R5. They are located at the right hand side of the board, are labelled 10k and are the two directly under the 100R fitted in step 3. There should be 4x 10k labelled spaces left below them.
Add the 1N4148 Diode, D2. This is to the right of the space for the DIP version. Ensure it goes the correct way round as per the markings. The black bar on the diode should be facing to the bottom of the board.
Add the very small, cylindrical 32.768k RTC crystal. This is under the space for the DIP version and can go either way round.
If you wish to keep the memory contents of the 23K256 and RTC when the power is removed, fit a 0.22F super capacitor. This goes in the bottom middle of the board, under the DS1307 DIL socket (to the right of the ATMega328). It is supplied unpolarised and can be fitted either way. I usually put the flat side to negative and have the arrows pointing to positive.
It has recently been found that if you use an MCP7941x chip you need to fit 2x 22pF capacitors, otherwise the clock loses around a minute a day. Fitting a 22pF between each leg of the 32.768khz crystal and ground fixes this problem. This is not required if you use a DS1307. Fortunately, the Wi-Node PCB contains space for either a DIL or an SOIC RTC chip, so you can do the other one to access the require d pins. You should fit a 22pf capacitor between Pin 1 and Pin 4 (GND) and another between Pin 2 and Pin 4 (GND).
Refer to the information in Step 1 for more about the L293D.
Fit the 16-pin DIL socket. It goes to the right of the 16Mhz crystal with the notch (indicating pin 1) downwards.
Fit the 5x 100nF ceramic capacitors, C6, C7, C8, C9 and C11.
Fit the 100uF Electrolytic, C17.
Fit the 7805 Voltage Regulator.
The enable pin for outputs 3&4 can be changed between digital 9 so it will be enabled at the same time as outputs 1&2 and digital 3 where outputs 3&4 can be controlled separately at the expensve of the interrupt / wake up alarm from the RTC.
Photo to follow.
2x 3-way screw terminals can be fitted to provide easy access to GND, VIN and the four LS293D outputs.
Fit the L293D IC into the socket.
To Follow.
Congratulations, you have completed the build of your Wi-Node Backpack
We can now see if you have done it successfully!
If you have two boards with RFM12B modules, you can test them by using my RFM12B Test code.
If you have fitted the optional MCP7941x Real Time Clock, you can test that out by using my Arduino MCP7941x Library and running the example sketches.
I'm also aiming to provide code to test other aspects of the board and some working examples of Nanode/Wi-Node usage, but in the meantime i'm collecting useful code snippets and links on my Nanode Information Page.