Project:Nanode/scratch

From London Hackspace Wiki

< Project:Nanode

Revision as of 09:16, 18 September 2011 by Robert (talk | contribs) (Reverted edits by 201.253.106.218 (talk) to last revision by Samthetechie)

Quick Links

Nanode 5 - available in red from September 10th!


Discover Nanode - This new Discovery page gives all the background information you need to know about Nanode - under construction

Building It - this shortcut takes you to the Pictorial Building Guide This is the definitive assembly guide in photos - which replaces more traditional parts lists, schematics and component insertion lists - please read this before you start soldering!

Applications - Here's a list of Applications currently under development on the Nanode

Nanode News - the latest happenings on the Nanode Project here

Buy One - In the UK buy direct from Earthshine Electronics In the USA/Canada/Mexico contact Wicked Device or @dswart on Twitter.

Nanode IRC Channel - Follow the Nanode Project on #nanode IRC on Freenode.

IRC Archive - An archive of the #nanode IRC is maintained here Nanode back-log courtesy of Peitolm

Homepage - The Nanode homepage is at nanode.eu.

Special Nanode Users Group - Keep up to date with what other users are doing SNUG

FAQ Here's a list of Frequently Asked Questions about the Nanode

QSG A Quick Start Guide to get you up and running quickly with Nanode

Registration - Add your newly built Nanode to the Registrar of Nanodes and Users

Bitlash - Porting a simple interpreted language to configure and control Nanodes remotely online Bitlash

Suggestions - Got an idea that needs help or hardware? Skunk Works page.

Documentation PCB Files, schematics and other useful pdf Documents

Please Note In the interests of keeping the price down Nanode does not have the FTDI serial/USB chip on board - and in this respect it is like the Arduino Pro and Pro Mini. You will need a FTDI cable or adaptor board in order to get full functionality from Nanode. These can be bought cheaply from Ebay Make sure you buy the 5V version.

Alternatively - here are the instructions on how to build your own cable for under £3

Nanode 5 available soon in Red - 10th September!
Latest Nanode 5 on red boards from September 10th!


Latest Announcements

Bad News - Nanode is sold out in the UK - except for 30 reserved for the Brighton Mini-Maker Faire on September 3rd.

Good News - New red Nanodes on sale from 10th September from Earthshine Electronics.

Upcoming Pachube & Nanode event at the London Hackspace. For details see the invitation: Pachube/Nanode evening at London Hackspace, Thursday 1 Sept.

Earthshine Electronics now appointed as UK Reseller.

"Having kitted over 480 Nanodes in the last 3 months, I'm very happy to have Mike McRoberts and Earthshine on board to handle UK sales" - Ken Boak

New Video Nanode - An Open Hardware Success Story recorded at OggCamp 13th August 2011 (28 mins approx)

Building It


Follow this link to the Pictorial Building Guide This is the definitive assembly guide in photos - which replaces more traditional parts lists, schematics and component insertion lists - please read this before you start soldering!

Here's a cool time-lapse video from Nick O'Leary showing Nanode #349 being assembled in 55 seconds!

Once you receive your kit - register it here on The Complete List


Mission Statement


“To produce a very low cost, open source, internet connected platform on which others can develop their ideas”


Initial Goal - 100 units in conjunction with the London Hackspace and Pachube.com

Updated Goal – a total of 550 units with UK, EU and US partners.

Final Goal - global production and distribution of up to 1000 units per month involving Hackspaces, UK, EU, US distributors and Far Eastern Manufacturers.




Recent Past Events


Nanode was presented at OggCamp, at Farnham Maltings on 13th and 14th of August. Here is the video Nanode - An Open Hardware Success Story (28 mins approx)


Now you can send a new sketch to a remote Nanode using TFTP and reprogram it online. Andrew D Lindsay, explained at Nanode Applcations weekend exactly how he achieved this!

Nanode programming weekend - 6th/7th August at Centre For Creative Collaborations

Highlights

6-8-11 At Nanode Applications Weekend - Andrew Lindsay talks about online reprogramming of sketches using TFTP

Remote Upload


7-8-2011 At Nanode Applications Weekend - Trystan Lea and Glyn Hudson of OpenEnergyMonitor.org talk about their end-to-end wireless energy monitoring system - using emonTx, Nanode (with RFM12 wireless modules) and emoncms open-source logging and energy visualisation web-application.

OpenEnergyMonitor presentation apologies for poor quality of the video

OpenEnergyMonitor's blog entry where presentation slides can be downloaded


7-8-2011 At Nanode Applications Weekend - Ken Boak talks about Nanode developments - past, current and future plans

Nanode Developments


August 4th: A new batch of approxinately 200 Nanode pcbs have arrived and are currently being kitted. These will be on sale from 8th August and throughout August and September both from the UK and from our US reseller Wicked Device




A simple one board solution to getting projects on the web, build it as a DIY kit for about £20

London Hackspace - Home of the 'Nanode Project'

A collaborative venture in open source hardware and firmware.


Version 5 Nanode - Component side of pcb


Newly-built Nanode 5

Nanode Applications

Nanode uses a Ethernet code library developed by Andrew Lindsay. Andrew has provided examples for a Twitter Client (using supertweet.net), a Pachube Publisher and Pachube Subscriber. Andrew has also developed code to allow DNS Client queries and sending UDP packet to a local network.

Nanode can be used as a micro web-server for simple home automation and control, be used to build web connected sensor networks and many other web connected applications.

For those wanting to tinker with M2M applications, two Nanodes can communicate data or commands via a web data service such as Pachube.

Another unique feature is that several Nanodes can be connected together on a multidrop serial bus and used for distributed control tasks, such as energy montoring or home automation.

The wired network supplies communications and power and can be made from low cost 4 core telephone cable. 12V power can be distributed around this network and used to drive relays and actuators such as door locks.

Nanode provides between 10 and 12 input/output lines of which 6 can be analogue inputs for sensors such as thermistors or used for voltage and current measurement. Three of the outputs can be used for PWM control of motors, RGB lamps etc. Radio control servos are easily interfaced to the Nanode.

Individual Nanodes can communicate via this network back to an ethernet connected "Master" unit. With RS485 driver ICs, the Nanode can be adapted as a DMX lighting controller, MIDI network or other serial control system.

Nanode fitted to a breadboard

Nanode features an extra row of I/O pins - compared to the standard Arduino. This row of pins can be plugged directly into a breadboard and brings all of the ATmega I/O pins and power onto the breadboard. This greatly simplifies prototyping new applications on breadboard.

By removing the ethernet controller and Magjack, it becomes a very low cost Arduino "work-alike".

Nanode was inspired by the work of several key contributors.

Tuxgraphics - who wrote the original ENC28J60 code library

JeeNodes - for all things small and node like and routines for the RFM12 wireless

Ciseco - for the idea of stringing nodes together with a simple protocol

And many others, whose work has contributed to this project.


Nanode is an Open Source Project.

Open Source Collaborative Projects

The Nanode is possibly the first open source collaborative hardware design project at the London Hackspace- conceived, designed, manufactured and coded by Hackspace members - for Hackspace members. As an exercise in the design and building of a simple but useful microcontroller product, Nanode will introduce minimum cost web connectivity.


London Hackspace Custom Nanode

Here's a first draft of the proposed custom Nanode for the Hackspace. The Big H logo is a bit wonky, but we should be able to correct that with a bitmap import. Roger Light is working on this and other minor layout tweaks.

A Customised Nanode for the Hackspace

This new board offers several improvements over the first prototype.

The reset switch is vertically mounted on the edge of the board - so it can be pressed even though there may be a shield fitted.

The LED - again on the board edge, is visible with a shield fitted.

The local serial bus is now a 4 way screw terminal block for very easy hooking up with 4 way telephone cable which supplies 12V power and the Rx/Tx and ground lines. Remote nodes could draw up to 500mA total at 12V for powering actuators, motors etc.

Auto reset now added from serial interface - this uses Pin 6 of the FTDI cable and works with Arduino IDE.

Virtual USB Added. Vusb USB is done in firmware negating the need for a £15 FTDI cable. We then use the same programming tool as Metaboard uses - cool.


News

Moved to Project:Nanode/News.


How to Build a Nanode

Building a Nanode

The complete step by step build sequence is here Building a Nanode.

An older version for a previous design can be found on my blog

Parts List

Board Layout and Connectors

 
Nanode Connections Guide

File:Nanode Connections.pdf

The nanode is, in essence, an Arduino, with a hardwired ethernet chip, and several extra connectors / footprints for other useful bits and bobs.

It can do virtually anything an Arduino can do - in fact a part populated board is virtually half the cost of a cheap Arduino.


Understanding the Various Nanode Connections


Firstly, Nanode has the same four connectors as an Arduino to accept shields. These are shown in light grey on the File:Nanode Connections.pdf diagram.

As these shield connectors are effectively lost when a shield is fitted, there are further outer rows of connectors, which to a large extent allow you to access the shield connection points in parallel.

These are shown colour codes as:

Analogue - light blue Power - Yellow Digitals - Orange Additionally there is a group of 8 in pink labelled "Wireless".


This group allows a Jeelabs RFM12B breakout board to be plugged directly into the Nanode to gain wireless connectivity. This group contains the SPI signals (Dig 10 - Dig13), an interrupt line (INT0 or Dig 2) 5V power, 3V3 power and 0V. This group could be used to support any SPI device, such as an SD card, Real Time Clock, 74HC595 expansion shift register/latch - with the device being selected by Digital 10 - SS or slave_select

Screw Terminals

On the end of the Nanode are 4 screw terminals in an olive green coloured connector block. These allow dc power to be connected to the board, and allow the Nanode to be wired into a master/slave topology wired serial network. This connector provides external Tx (Ext_Tx) and external Rx (Ext_Rx) signals which are buffered by the on board 74HC125 device.

The voltage regulator is shown in light purple colour. Though not strictly a connector, the power supply to the board could be accessed from these points. The 12V (reg) pin is the Vin after it has passed through the 1N4001 reverse polarity protection diode.

Servo/Display/Serial

Below the voltage regulator are 6 connection points coloured in green. This can be used to connect any external device - including a serial slave Nanode which requires 5V power and access to serial comms. Digital 4 is brought out on this connector, and can be used as a servo drive signal, or with software serial, it can be used to drive a serial device - such as the Modern Device Serial LCD Controller Board. This allows an LCD display to be fitted using just 5V, 0V and serial output. There are further connections to the serial bus here.

Extra Analogues

The Analogue connections are shown in light blue. On the left side of the board they are just a duplication of the 6 way analogue connections on the shield socket. However to increase the usefulness, these 6 analogue lines are brought across to the top of the right hand edge of the board, and have 5V power and 0V added to make a self contained group of 8 connections. Remembering that the ATmega328 uses Analogue 4 and Analogue 5 for SDA and SCL of its I2C bus, means that this connector could be used with 5V an 0V to connect to various I2C devices or analogue sensors. All of the analogue inputs may be re-mapped as digital pins Dig 14 to Dig 19, if further digital connections are required.


Pin Outs

atmega328 pin arduino name other connections
2 D0 ftdi rx, (ExtRx - only if tristate buffer is enabled by jumpered Dig 4 LOW)
3 D1 ftdi tx, (ExtTx - only if tristate buffer is enabled by Dig 6 LOW)
4 D2 ethernet and wireless RFM12B interrupt (INT 0) via trisate buffer/level shifter
5 D3 USB D+ (And INT 1 from Vusb)
6 D4 USB D-
11 D5 (free)
12 D6 etx enable / red LED LED comes on when LOW and this 'node is accessing the local bus
13 D7 MAC address SCIO
14 D8 effectively, slave select for the ethernet (ENC28J60 /CS)
15 D9 IC7 slave select (if installed)
16 D10 external wireless slave select
17 D11 MOSI for all peripherals
18 D12 MISO for all peripherals
19 D13 SCK for all peripherals


Other Main Features


Ethernet Connection The two single-colour LEDs on the ethernet connector aren't connected directly to the Nanode; they are controlled from the ENC28J60 ethernet chip. However, you can set them to any arbitrary values you wish using the ethernet controller's registers.

(The schematic shows a single-colour LED and a dual-colour LED; this is a terribly minor bug in the schematic; the actual jack has two single-colour LEDs.)

Local Bus

The "local bus" communications are on the etx and erx screw terminals in the lower-left corner of the board. The lower terminal is etx (the labels are invisible once the board has been soldered together). When D9 is *low*, the output from D1 goes to both the FTDI cable connector and the etx terminal. Similarly, the input from both the ftdi cable and the erx pin comes in on D1 if the /RXEN pin is *low*. (Obviously, using both at once will be very confusing.) Note that /RXEN is not wired to the Nanode; it's recommended that you put a jumper between D4 and the /RXEN pin if you want to use the local bus. Contrarywise, you could just jumper it to GND if you don't want to use the FTDI connector, or if you can handle bus arbitration on a higher level... there's more then one way to do it.

The screw terminal connector can be used to connect Nanodes to the local wired serial bus. Using cheap 4 core phone cable, carry +12V, 0V, ExtTx, ExtRx, and connect many Nanodes together in a wired network. Standard phone cable will easily carry 500mA at 12V, so this bus can be used to power actuators such as relays, servos, door latches, displays and any other stuff that needs low power DC.

A slave Nanode does not need its Magjack or ethernet controller - so this saves about £4 in build cost and frees up the SPI bus as useful digital I/O.

Wireless Port

This version 5 Nanode has been designed to take a low cost RFM12 wireless transceiver breakout board from JeeLabs, which plugs directly into an 8 pin SIL socket in the middle of the top edge of the pcb. This can either be 433 or 868MHz. It runs on 3V3 and all code is compatible with the JeeLabs code. See Applications


Vusb Port

Vusb was devised by Metalab in Vienna to make a very low cost way of programming Arduino like devices and AVR processors. It runs a virtual USB client in the bootloader firmware allowing you to program the board with just a USB lead and no FTDI device. This is now working and can be used to load arduino sketches (Artag). Some additional polish is needed. See Applications

MAC Chip

The Microchip 11AA02E42 is a 256 byte EEprom which contains a unique MAC address and the rest of the array is free for user storage - such as configuration data. These chips are available up to 4K byte - and could be used for holding web pages, or bitlash scripts as a non-volatile extension to the internal EEprom. Needs special driver code to access - still under development (as of 7/6/11)

SPI Memory

An uncommitted SPI memory which can be SRAM, FRAM or dataflash/EEprom. I have used a 23K256 32K x 8 SRAM here - and can read it at approximately 100,000 bytes per second. Using this particular SRAM needs the whole board to be powered at 3V3 - which is a minor modification involving invasive surgery.

Servo Port

+5V, 0V and Digital 4 brought out on 3 adjacent pins for conveniently driving a single model servo.

Can also drive the "Modern Device" serial LCD display controller boards via a 3 wire servo cable.


Arduino Shield Connectors

Perversely Pitched to accecpt most Arduino shields. Watch out what you/they do with digital 8 and digital 10 or your ethernet may not work. Also you may have to use "extended headers" to raise the shield clear of the magjack and 7805 regulator metal work


Board Layout

 
Placeholder for new Nanode 5 Graphic


Matt Gaffen has offered to do another really nice Nanode graphic to go here to show where all these connections are.

Connectors

Nanode is not short of connectors. As well as the Arduino shield connectors it has its own set aimed at different features


With the magjack on the left, these ports are along the top edge of the pcb. You can fit a single 0.1" header (or extended headers) and insert all of the useful Nanode I/O directly into a bread board.

Analogue 2 Connector (from left to right)

Pin Name

  • +5V
  • Analog Input 5
  • Analog Input 4
  • Analog Input 3 | This is the same analogue port lines brought to the top edge of board with +5V and 0V for convenience
  • Analog Input 2
  • Analog Input 1
  • Analog Input 0
  • OV


Wireless& SPI Connector - accepts a Jeelabs RFM12 breakout board directly. (from left to right)

Pin Name

  • +5V
  • 0V
  • SCK
  • MISO
  • MOSI
  • SS (digital 10 in this case)
  • INT
  • 3V3


Digital 7- 0 Connector (from left to right)

Pin Name

  • Digital 7 |
  • Digital 6 |
  • Digital 5 |
  • Digital 4 | Just Like Arduino "Digitals"
  • Digital 3 |
  • Digital 2 |
  • Digital 1 |
  • Digital 0 |


Then for the bottom row of connections - starting at the 7805 regulator and working left to right


  • 0V
  • +5V
  • Digital 4 (Use this and 0V, +5V (above) to plug a 3 pin servo cable straight in
  • /RxEN - jumper this to Digital 4 if you want to use the local serial bus instead of FTDI cable
  • ETx - External Tx - buffered by 74125 tristate buffer and only enabled if Digital 6 is LOW
  • ERx - External Rx - buffered by 74125 tristate buffer and only enabled if /RxEN (jumper it to Digital 4) is LOW
  • /RESET |
  • +3V3 |
  • +5V | These 6 are just like Arduino "Power" connector
  • 0V |
  • 0V |
  • Vin (+12V to 7805 regulator) |
  • (Then there is a gap here)
  • Analogue Input 0 |
  • Analogue Input 1 |
  • Analogue Input 2 | These 6 are just like Arduino "Analogs" connector
  • Analogue Input 3 |
  • Analogue Input 4 |
  • Analogue Input 5 |


Power

The +ve is the screwterm closest to the magjack, and the 0V is next to it.

The 5V reg is rated at 1A so should be enough for small motors.


FTDI Connector (Pin 1 is closest to USB connector)

  • Wire__ Pin - Function
  • Black___ 1 - Power Ground
  • Brown__ 2 - Input CTS (Clear to Send - Device is ready to receive)
  • Red____ 3 - Output VCC (+5v)
  • Orange_ 4 - Output PC serial Tx (TTL Rx)
  • Yellow__ 5 - Input PC serial Rx (TTL Tx)
  • Green__ 6 - Output RTS (Request to Send - PC has data to send)


Current Build Files

The latest Nanode 5 build files have been put up on Thingiverse .

Earlier versions on Thingiverse are really for reference only and should not be treated as current.

Example Applications

Nanode Applications

Now moved to the Nanode Applications page.

Projects "In the Wild"

  • Nanode controlled RGB LED Lamp, with simple serial command interpreter - see my blog here.
  • 6 channel temperature monitoring using Pachube - email Ken via LHS list for code.
  • Nanodes and MQTT will from the back bone of the Hackspace Instrumentation at Nottingham Hackspace. The first part of the system will be Gatekeeper our RFID door acces control system. (Sorry the wiki docs need a lot of work)
  • Wireless Sensor Nanode as wireless receiver updating Pachube, a JeeNode as the transmitter (Dallas 1-wire sensors and a voltage divider for battery status)

Add links to your own projects...

Brainstorming - Have your Ideas Adopted into Future Nanodes

June 11th - an all new Skunk Works page.

This is your chance to influence the evolution of the Nanode Project.

There will be a small budget available to support the best ideas and a prize competition for the best improvements upgrades and applications.

The aim is to continually upgrade and improve the basic Nanode - perhaps every 3 months or so with a new pcb.

We want to enhance the feature set and yet keep the price down to below the magic £20.

Put all your ideas on the Skunk Works page and we will make sure some of them become a reality.

Help and Further Documentation

Questions & Answers, Feedback

If you have any queries - please put them here under the relevant section heading.

Recent Q&A

Hardware

How to use the mac adress eeprom? In the etherShield examples, I need to set the mac address in the code...

Hint: http://wiki.hackspace.org.uk/wiki/Project:Nanode/Applications#MAC_address

Before I wade through the wiki page, how come the nanode doesn't have an ftdi chip? solexious

Adding a FT23RL to the design would have added at least £3.25 to the cost (100 off) and as has been stated it is a surface mount device which the majority of assemblers would lack confidence in fitting to the board. One of the key features of the Nanode design is that anyone can put it together without specialist solderiing skills, moving to SMT devices would make it non-viable for DIY assembly.

As the board is fairly tight for real-estate it would have been difficult to find room for one.

It was assumed that the Nanode would be deployed into control and monitoring systems into which only occasional access to the UART would be required from a laptop - so a FTDI lead was deemed to be sufficient.

The FTDI lead is way over-priced, so the intention is to produce a ready built FTDI programming dongle for about half the cost of a FTDI lead.


Is the local bandwidth between two nanodes enough to create an ethernet bridge in software? -- Answer to myself: the multidrop bus is in the range of 9600 baud.

The ATmega328 is not limited to 9600 baud serial. If the distance between nodes is short then 115,200 baud may be possible. You could also connect nodes together with I2C or SPI over short distances. Ken

PCBs & Kits

Where can I order the Nanode? Can non-members join the PCB batch?

The first batch of 100 Nanodes has been sold out, we're currently preparing another batch for late June 2011. Bare boards may be available at a later date, but for now the £18 kit is the only option being offered. A small donation to the Hackspace from non-members would be appreciated. Ken

Bootloader Features

Will the Vusb code fit in the bootloader to allow its use for programming the board ?

By all accounts, adding Vusb will make the Nanode appear like a Metaboard - which can be programmed by adding their programmer to the toolsuite in the Arduino IDE. Programming should then be a case of picking the Metaboard option. Metaboard Ken.

Today's build of the loader is 1994 bytes long out of a possible 2048. It may be possible to add a few minor features.--Artag 22:47, 8 June 2011 (UTC)

Code Examples

There's a 'readpachube' example in Andrew's 1.6 software release, which I presume is the Pachube subscriber. I can't see a publisher though - is that available from somewhere else ? Trystan: I've created a load of client/publisher examples here: github

I have developed a Pachube Publisher and matching Subscriber which allows serial CSV text strings to be sent from one Nanode to another via my Pachube Feeds 9675. If you put a request email to the Hackspace mailing list,I will send you the files. You will need to add your own Pachube API Key. I've more detail on my blog here. Ken