Nurduino

From NURDspace
Nurduino
Nurduino.jpg
Participants
Skills Electronics
Status Active
Niche Electronics
Purpose Use in other project
Tool
Location
Cost
Tool category

Nurduino

Nurduino.jpg {{#if:{{{Tool}}} | [[Tool Owner::{{{ProjectParticipants}}} | }} {{#if:{{{Tool}}} | [[Tool Cost::{{{Cost}}} | }}


Nurduino is our very own arduino clone. It is the evolution of the Arduino Radio Spectrum Analyzer prototype on a breadboard project. In that project I built a prototype of the Nurduino, and tried to share the how's and why's. In this page I will make a shorted description of how to build the Nurduino kit, and use it as a 2.4GHz Radio Analyzer.

Attention (errata)

  • At the LED1 location on the PCB the wrong hole is marked with a + sign. This is actually the GND hole. The other hole should contain the + leg of the LED.
  • In the PCB design, a mistake has been made by forgetting a resistor for the LED. We therefore soldered a 1k resistor to the + leg of the LED. For those who buy the kit complete, you receive a pre-assembled LED, so you don't need to worry. Others: please attach the resistor to the LED or you could burn out not only your LED but also your Atmega328 IC!

What do I need

  • A soldering iron (including sponge and stand). Use one that is accurate with a good tip. Although the pcb is setup with a lot of space there are a few spots where accuracy is required. Under €50 there are good options available.
  • Solder. I use 0.7mm (more accurate then 1mm) with a resin core, containing lead (wash your hands and try not to breathe the fumes).
  • FTDI cable or FTDI friend (and micro usb cable) to connect the board to the usb port.

Software

  • To program the atmega chip, you need this sketch.
  • The arsa software which reads the data from the nurduino from usb and displays it on a computer. See below for installation details.
  • java jre
  • librxtx-java
  • The full schematic and pcb design of the Nurduino can be found in this zipfile.

Kit components

amount Name Location Picture
1x Atmega328PU IC push it in the socket IC3. No soldering needed. Align the notch at the top of the IC with the notch of the socket. Atmega328.jpg
1x CYWM6935 breakout board in JP1, orientation inside board (see picture above) Cywm6935.jpg
1x LD1117V33 Voltage regulater from 5 (and more) to 3.3V LD1117V LD1117v33.jpg
1x push button (always off) S2 Pushbutton.jpg
2x 5 pin female header SV4 5pin header.jpg
1x 6 pin female header SV3 6pin header.jpg
1x 12 pin female header JP1 12pin header.jpg
1x A six pin header (or actually, two 3pin jumpers) J1
1x A four pin header JP2
1x 28pin socket for ATmega328 IC3 Align the notch of the socket, with the notch drawn on the board. Ic socket.jpg
2x 18pF ceramic disc capacitor C1&C2 18pF.jpg
2x 100nF ceramic capacitor C3&C5 100nF.jpg
2x 10uF electrolytic capacitor (elco) The elco places (circles). The oriëntation is important. The short leg of the elco is the minus, and the elco on the pcb has a minus sign at one hole 10uF.jpg
2x 10KOhm resistor R15&R16 10k.jpg
3x 1KOhm resistor R12&R13&R14 1k.jpg
3x 2.2KOhm resistor R9&R10&R11 2k2.jpg
1x 5mm red LED with integrated 1KOhm resistor LED1. The oriëntation is important. The long leg on the LED is the + leg. ATTENTION!!! On the PCB the wrong hole is marked with a +. The other hole should contain the + leg of the LED. Led.jpg
1x 16MHz crystal oscillator Y1 Crystal.jpg

Putting it together

If this is your first time soldering: don't worry, it is actually not hard. I learnt it from Mitch Altman, who is a great teacher and the co-author of Soldering is easy.

The PCB has markings for each specific component. The component table above contains these locations. The order in which you solder is not really important, apart from making it as easy as possible to reach each component while soldering. I suggest you start with the smaller resistors, capacitors and crystal. Then the headers and socket, larger capacitors and voltage regulator. The LED and pushbutton you can do whenever you feel like it. Use the picture above as a guide.

Programming the IC

If you soldered everything correctly, it is time to program the ic. Hook up the FTDI cable or FTDI friend and usb cable. It is important you have the oriëntation of the FTDI cable/friend correct. The pins on the board are marked. The GND pin should connect to the black wire on the FTDI cable. The VCC pin should connect to the red wire. This is really important, else you might fry the whole pcb.

A good tutorial on arduino programming can be found with Lady Ada. Use the following settings instead of what is listed there. For the board choose "Arduino Duemilanove w/ATmega328". For the port on linux you might probably use /dev/ttyUSB0 on Ubuntu/Debian, or equivalent on other distributions. For Windows, see Lady Ada's tutorial for installing the drivers.

When you installed the arduino programming environment, and configured (maybe even loaded a standard blink sketch to test if uploading works) you can load the correct program to the board. The sketch (program) is listed at the top under [#Software]. Download the file to your sketchbook folder in your documents folder. After that you can find it back in the Arduino programming environment under file->Sketchbook.

Push and hold the reset button on the Nurduino, klik the upload button on the arduino IDE (arrow to the right) and release the reset button after a fraction of a second (before the arduino IDE says uploading). After that, the software should be loaded on the chip. The LED should now start flashing regularly.

You can now connect the nurduino to your computer using the FTDI friend or FTDI cable (make sure you connect it correctly, black wire at the GND pin) to the board and your computer, and start the Arsa software (see below). The Arsa software should now show the signal strength like in the picture.

Nurduino working with software.jpg

The Arsa software

The Arsa (arduino radio spectrum analyser) is a java application that reads the usb port data from the Nurduino and displays a bar graph with the signal strenght. It displays both the maximum since you started it, and the current signal.

You can download the most recent version on [1]. Download the arsa-<version>-jar-with-dependencies.jar file. You can start it with java. Currently it only works on Linux and assumes the Nurduino is available as /dev/ttyUSB0 (default on Debian and it's derivatives like Ubuntu). It also requires the librxtxSerial.so. You can start the file (assuming you have java and librxtx-java installed) with:

LD_LIBRARY_PATH=/usr/lib/jni/ java -jar arsa-<version>-jar-with-dependencies.jar