Friday, September 16, 2011

September 2011 Competition

Hello readers!

Another month – another competition! This month the method of entry will be slightly different. First of all, let’s have a look at the prizes:

*** First prize is TWO demonstration Zigduinos – courtesy of Logos Electromechanical ***

What’s a Zigduino? It is an Arduino-compatible microcontroller platform that integrates an 802.15.4 radio on the board. The radio can be configured to support any 802.15.4-based protocol, including ZigBeeRoute Under MAC/6LoWPAN, and RF4CE. It uses a reverse polarity SMA connector (RP-SMA) for an external antenna. This allows the user to use nearly any existing 2.4 GHz antenna with it. The Zigduino runs on 3.3V, but all I/O pins are 5V compatible.

Pictured below is a production Zigduino kit with all components:

Thankfully all that SMD word is done for you. The prize units will have the headers and sockets already soldered (by me!). The Zigduino specifications include (from the website):

Microcontroller Atmega128RFA1
Operating Voltage 3.3V
Input Voltage (recommended) 7-18V
Input Voltage (maximum) 6-30V (transients to -20V and +60V)
Digital I/O Pins 14 + 3 auxiliary
PWM Output Pins 6
Analog Input Pins 6 (0-1.8V)
I/O Protection ±30V transient
  -2.5V to +5.8V continuous
DC Current per I/O Pin 20 mA
DC Current for 5V Pin 250 mA
DC Current for 3.3V Pin 200 mA
Flash Memory 128 KB of which 2 KB is used by the bootloader
SRAM 16 KB
EEPROM 4 KB
Clock Speed 16 MHz
RF transmit power +3.5 dBm
Receiver sensitivity -100 dB
Antenna gain 2 dBi
Current Draw 30 mA (transmitting, USB, no I/O connections)
  15 mA (transmitting, no USB, no I/O connections)
  6 mA (radio off, no USB, no I/O connections)
  250 μA (sleep)

Compatibility

  • Compatible with any shield that supports 3.3V logic
  • Compatible with existing Arduino libraries that do not use hard-coded pin definitions
  • Compatible with Arduino IDE with updated compiler, avr-gcc-4.3.3 or later.

Software

Power

The Zigduino can be powered through the USB connection or with an external power supply. The power source with the highest voltage is selected automatically.

External power can be supplied via a wall wart or a battery. It can be connected with a 2.1mm center-positive plug inserted into the power jack. Alternately, external power can be connected through the GND and VIN pins of the POWER header.

The board will operate correctly on an input voltage between 6V and 30V. It will survive transients as large as -20V or +60V. However, higher supply voltages may cause excessive heat dissipation at higher current draws. The input voltage regulator has integral overtemperature protection, so you can’t permanently damage the board this way. However, the board may not work correctly under these circumstances.

The power pins are as follows:

  • VIN – The input voltage to the Arduino board when it is running from external power, i.e. not USB bus power.
  • 5V – The regulated 5V used to power 5V components on the board and external 5V shields. It comes either from the USB or from the VIN via the 5V regulator. Maximum current draw is 250 mA.
  • 3V3 – The regulated 3.3V supply that powers the microcontroller. It is derived from the 5V bus via a second regulator. Maximum current draw is 200 mA.
  • GND – Ground pins.

Memory

The ATmega128RFA1 has 128 KB of flash memory, of which 2 KB is occupied by the bootloader. It also has 16 KB of SRAM (the most of any Arduino-compatible board) and 4 KB of EEPROM, which can be accessed through the EEPROM library.

Input and Output

Each of the 14 digital pins of the Zigduino can be used as an input or output, using pinMode(), digitalWrite(), and digitalRead(). Each pin operates at 3.3V and can source or sink 10 mA. Each also has an internal pullup, which is disabled by default. Each pin is protected against ±30V spikes and can tolerate continuous 5V input.

The six analog input pins, labeled A0 – A5, are likewise protected against ±30V spikes and can tolerate continuous 5V input. Each provides 10 bits of resolution and measures 0 – 1.8V. It is possible to change to a lower top voltage through use of the AREF pin and the analogReference() function.

A key design goal of the Zigduino is maintaining compatibility with existing shields to the greatest extent possible. The ATmega128RFA1′s peripherals are arranged slightly differently than the corresponding peripherals on the ATmega328 used in the stock Arduino. Therefore, in order to provide the desired shield compatibility, there are three solder jumpers provided on the back of the board. They function as follows:

  • Digital pin 11 can be set as either SPI MOSI or a PWM output. Neither option is selected as shipped. SPI MOSI is also available on the SPI connector at all times along with SCK and MISO.
  • Analog pin 4 can be set as either A4 or I2C SDA. Neither option is selected as shipped. Both I2C pins are available on the I2C connector.
  • Analog pin 5 can be set as either A4 or I2C SCL. Neither option is selected as shipped. Both I2C pins are available on the I2C connector.

The following additional special functions are available:

  • Serial: 0 (RX) and 1 (TX) – Used to transmit and receive TTL serial data. These pins are connected to the corresponding pins on the FTDI USB interface chip.
  • PWM: 3, 5, 6, 9, 10, and 11 – Provides 8-bit PWM output with the analogWrite() function. Pin 11 must be selected for PWM operation with the solder jumper on the back of the board.
  • SPI: 11 (MOSI), 12 (MISO), 13 (SCK) – These pins support SPI communications using the SPI library. Pin 11 must be selected for SPI operation with the solder jumper on the back, or SPI must be accessed with the SPI connector.
  • LED: 13 – This is the built-in LED on digital pin 13. When the pin is high, the LED is on.
  • External Interrupts: 2, 3, 6, and 7 – These pins can be configured to trigger and interrupt on a low value, high value, or an edge. See the attachInterrupt() function for details. The two I2C pins can also be used as interrupts.
  • I2C: A4 (SDA) and A5 (SCL) – These pins support I2C communications using the Wire library. They must be selected for I2C operation with the jumpers on the back or I2C must be accessed through the I2C connector. They can also be configured as interrupts.

This is one very capable Arduino-compatible board and sure to find many uses. For updates and new ideas consider following the Logos Electromechanical blog page.  Furthermore associated Zigduino files can be found on Github.

*** Second prize is the assembled demonstration LoL Shield! from Little Bird Electronics ***

When too many LEDs just aren’t enough – the LoL Shield comes to the rescue. As recently reviewed, the Lol Shield allows all sorts of animations from a single blinking LED to complete animations, your imagination will run wild with this baby:

*** How to Enter ***

This month the method of entry will be different to the usual treasure hunt of questions and answers. Instead, in thirty words or less explain what you would do with the Zigduinos if you received them. Email your submission along with your name, email address and postal address tocompetition at tronixstuff dot com with the subject heading September. Entries will be accepted until 01/10/2011 0005h GMT.

As with any other competition, there needs to be some rules:

  • The winners’ entry, first name and country will be announced publicly;
  • Entries that contain text not suitable for minors or insulting to the competition will be rejected;
  • Prizes will be delivered via Australia Post domestic or regular international air mail;
  • Winners outside of Australia will be responsible for any taxes, fees or levies imposed by your local Governments (such as import levies, excise, VAT, etc.) upon importation of purchased goods;
  • Prizes may take up to 45 days to be received;
  • If you have met John Boxall in person, or you have won a previous tronixstuff.com competition you cannot enter;
  • No disputes will be entered in to;
  • Prizes carry no warranty nor guarantee – and are to be used or abused at entirely your own risk;
  • Entries will be accepted until 0005h GMT on 1st October 2011.

So have fun and keep checking into tronixstuff.com. Why not follow things on twitterGoogle+, subscribe  for email updates or RSS using the links on the right-hand column, or join our Google Group – dedicated to the projects and related items on this website. Sign up – it’s free, helpful to each other –  and we can all learn something.

Tuesday, September 6, 2011

Kit Review – the LoL Shield

Hello readers

Another month, so time for another kit review. In this article we exame the LoL Shield by Jimmie P. Rodgers. So what’s all this about? Simple – the Lol Shield is a shield with nine rows of fourteen 3mm diameter LEDs, available in red or green. The shield has many uses, from being another form of hypnotising blinking LEDs, to displaying messages, artwork, data in visual form, or perhaps the basis for a simple computer game. More on that later – first, let’s see how it goes together.

As is becoming the norm lately, the kit arrives in a resealable anti-static bag:

The contents are few in type but huge in number, the PCB:

… at which point you start to think – “Oh, there goes the evening”. And the LEDs confirm it:

You will need 126 LEDs. There was a surplus of seven in my bag, a nice thought by the kit assemblers. There isn’t too much to worry about to start off with, just remember the anodes for the LEDs are on the left-hand side, and start soldering. The greatest of shields starts with a single LED:

However after a while you get into the swing of it:

At this point, one wonders if there is a better way to solder all these in. If you diagonally stagger the LEDs as such:

the legs stay well apart making soldering a little easier:

… however one still needs to take care to keep the LEDs flush with the PCB. I wouldn’t want to do this for a living… Still, many more to solder in:

And – we’re done!

Phew – that’s a lot of LEDs. An inspection of the other side of the PCB to check for shorts in the soldering is a prudent activity during the soldering process. The final step was to now solder in the shield header pins:

And – we’re done! This example took me just over one hour, includind a couple of stretch and breathe breaks. When soldering a large amount, always try to have good ventilation and hopefully a solder fume extractor as well. Furthermore, pause to check your work every now and then, you don’t want to install the lot and find one LED is in the wrong way. To control the 126 LEDs the LoL Shield uses a technique called CharlieplexingFurthermore, the creator has documented his design process and how this works very well on his website located here.

From a software perspective – there is a library to download and install, it can be found in the downloads section of this site. This will also introduce some demonstration sketches in the File>examples section of the Arduino IDE. The first one to try is basic test, as it fires up every LED. Here is a short video of this example:

Now that we have seen some blinking action, how do we control the shield? As mentioned earlier, you will need the library installed. Now consider the following basic sketch – it shows how we can individually control each LED (download sketch):

/* Basic demonstration of LoL shield http://tronixstuff.wordpress.com/kitreviews > LoL Shield Needs library from http://code.google.com/p/lolshield/ */  #include    int ad=20; // used for arbitrary delay  void setup() { LedSign::Init();  // initializes the screen }  void loop() { for (int x=0; x<14; x++) { for (int y=0; y<9; y++) { LedSign::Set(x,y,1); // turns on LED at x,y delay(ad); } } delay(500); for (int x=0; x<14; x++) { for (int y=0; y<9; y++) { LedSign::Set(x,y,0); // turns on LED at x,y delay(ad); } } delay(500); }

As you can see in the sketch above we need to include the “Charlieplexing” library, and create an instance of LedSign in void setup().  Then each LED can be easily controlled with the function LedSign::Set(x,y,z) - where x is 1~14, y is 1~9 and z is 1 for on, or 0 for off. Here is a short video of the example above in action:

If you want to display animations of some sort – there is a tool to help minimise the work required to create each frame. Consider the example sketch Basic_Test that is included with the LoL Shield library – take note of the large array described before void setup();. This array contains data to describe each frame of the animation in the demonstration sketch. One can create the variables required for each frame by using the spreadsheet found here. Open the spreadsheet (Using OpenOffice.org or Libre Office), then go to the “Test Animation” tab as such:

You can define the frame on the left hand side, and the numbers required for the Arduino sketch are provided on the right. Easy. So for a final example, here is my demonstration animation. You can download the sketch, and the spreadsheet file used to create the variables to insert into the sketch.

However, thanks to an interesting website – there is a much, much easier way to create the animations. Head over to the LoL Shield Theatreweb site. There you can graphically create each slide of your animation, then download the Arduino sketch to make it work. You can even test your animations on the screen just for fun. For example, here is something I knocked out in a few minutes – and the matching sketch. And the animation in real life:

So there you have it – another fun and interesting Arduino shield that won’t break the bank. For further questions about the Digit Shield visit the website. My LoL Shield came from Little Bird Electronics and is also available from the usual resellers.

As always, thank you for reading and I look forward to your comments and so on. Furthermore, don’t be shy in pointing out errors or places that could use improvement. Please subscribe using one of the methods at the top-right of this web page to receive updates on new posts, follow me on twitter,  facebook or Google+, or join our Google Group for further discussion. No pre-teen girls were used in this kit review.

High resolution images are available on flickr.

[Note - The kit was ordered by myself and reviewed without notifying the manufacturer]

Otherwise, have fun, be good to each other – and make something! 

Monday, September 5, 2011

August 2011 Competition Results

Hello Readers

The month of August is now over and hence another competition. There were six questions hidden among the August articles, and for the curious the questions and answers were:

  1. In which country is the Gravitech Nano MP3 board assembled? – United States;
  2. If you had six pushwheel switches, how many numbers greater than zero can be displayed? – 999999;
  3. Which SMD package type is the SAA1064 used on the Gravitech 7-segment shield? – SOIC (also accepted SO-24, SOT-137 1 etc.)
  4. How many LEDs are on the Snootlab Rotoshield when constructed? Five – there are four bi-colour SMD LEDs on the PCB and the user solders in the power LED. Some people count the bi-colours as two LEDs, so I also accepted an answer of nine;
  5. What does I²C stand for? – Inter-integrated Circuit;
  6. What was the CPU speed of the original MITS Altair 8800 computer? – A scorching 2 MHz.
As always we had many entrants, however there can only be two winners. Thank you to all those who took part and kudos to those who answered all the questions correctly. And now …. *drum roll* winner of the first prize is:

Craig from Western Australia who has won a brand-new  Freetronics EtherTen!

This is the mother of all Arduino-compatible boards. Designed in Australia and manufactured to the highest quality standards the EtherTen replaces three boards – consider having an Arduino Uno SMD, Ethernet shield with PoE, and a microSD shield – all on the one board. From the Freetronics website:

The EtherTen is a 100% Arduino compatible board that can talk to the world. Do Twitter updates automatically, serve web pages, connect to web services, display sensor data online, and control devices using a web browser. The Freetronics EtherTen uses the same ATmega328P as the Duemilanove and the same Wiznet W5100 chip used by the official Arduino Ethernet Shield, so it’s 100% compatible with the Ethernet library and sketches. Any project you would previously have built with an Arduino and an Ethernet shield stacked together, you can now do all in a single, integrated board.

We’ve even added a micro SD card slot so you can store web content on the card, or log data to it.

All the good things about the Eleven and the Ethernet Shield have been combined into this one device so please see those pages for all the specific details, but the highlights include:

  • Gold-plated PCB.
  • Top and bottom parts overlays.
  • Top-spec ATmega328P MCU.
  • Mini-USB connector: no more shorts against shields!
  • D13 pin isolated with a MOSFET so you can use it as an input.
  • Power-over-Ethernet support, both cheapie DIY or full 802.3af standards-compliant.
  • Ethernet activity indicators on the PCB and the jack.
  • 10/100base-T auto-selection.
  • Fully compatible with standard Ethernet library.
  • Reset management chip.
  • Fixed SPI behavior on Ethernet chipset.
  • Robust power filtering.
  • Sexy rounded corners.

Note that just like our Ethernet Shield with PoE support, the EtherTen provides a number of options for different Power over Ethernet. You can use the supplied jumpers and feed 7-12Vdc down the wire for cheap DIY version, or you can fit our PoE Regulator 24V and feed a bit more voltage down the wire, or you can use our PoE Regulator 802.3AF along with a proper commercial PoE injector or switch. It’s up to you.

And the second winner is Uday K-A – who has won a brand-new Freetronics LCD & Keypad shield

This LCD and Keypad Shield gives you a handy 16-character by 2-line display, 5 buttons and a controllable backlight, plug it straight in on top of your Arduino board or other project shields.
The display is set behind the shield for a low profile fitment and nice look and we’ve included panel mounting screw holes in the corners.

It’s great when you want to build a stand-alone project with its own user interface that doesn’t require a computer attached to send commands to your Arduino.

Works perfectly in 4-bit mode with the “LiquidCrystal” library included with the Arduino IDE, allowing you to control the LCD with a total of just 6 digital I/O lines. We’ve deliberately picked D4-D9 so that it doesn’t interfere with pins required by other popular products such as the Ethernet Shield and EtherTen, so you can stack this on top of other shields to give you a local display.

The buttons provide “left”, “right”, “up”, “down”, and “select” while using just one analog input. That leaves the other analog inputs free for you to use in your projects.

The LCD backlight is connected to D3 and can be controlled for on/off, brightness and flashing effects.

Features:

  • 16×2 LCD using HD44780-compatible display module (white characters on blue background).
  • 5 buttons on one analog input (A0).
  • LCD backlight with current limiting, brightness and on/off controllable by D3, can be moved to D2, D10, A1, A2, A3, A4 or A5 for easy project pin compatibility.
  • Recessed LCD, panel mount screw holes and button layout suitable for panel or cabinet mounting if desired.
  • Reset button.
  • Power supply smoothing capacitor.
  • Gold-plated PCB for maximum durability.
  • Overlay printed on both the top and the bottom.
  • Pins used by shield clearly marked, LiquidCrystal library setup reference is on the bottom of the pcb for convenience.

So another month – another competition. The next competition will be announced soon with another group of great prizes.

And of course thanks to our generous competition sponsor Freetronics!

Visit the Freetronics website or resellers to see their full range of quality Arduino-related products.

So have fun and keep checking into tronixstuff.com. Why not follow things on twitter, subscribe  for email updates or RSS using the links on the right-hand column, or join our Google Group – dedicated to the projects and related items on this website. Sign up – it’s free, helpful to each other –  and we can all learn something.

Friday, September 2, 2011

Product Announcement: The Zigduino

Hello readers

Recently the people at Logos Electromechanical have announced their new product – the Zigduino.

The Zigduino is an Arduino-compatible microcontroller platform that integrates an802.15.4 radio on the board. The radio can be configured to support any 802.15.4-based protocol, including ZigBeeRoute Under MAC/6LoWPAN, and RF4CE. It uses a reverse polarity SMA connector (RP-SMA) for an external antenna. This allows the user to use nearly any existing 2.4 GHz antenna with it. The Zigduino runs on 3.3V, but all I/O pins are 5V compatible.

Pictured below is a production Zigduino kit with all components:

Thankfully all that SMD word is done for you. The only soldering required is the aerial socket, Arduino headers and the DC socket. All the components shown in the image above are included with purchase. The Zigduino specifications include (from the website):

Microcontroller Atmega128RFA1
Operating Voltage 3.3V
Input Voltage (recommended) 7-18V
Input Voltage (maximum) 6-30V (transients to -20V and +60V)
Digital I/O Pins 14 + 3 auxiliary
PWM Output Pins 6
Analog Input Pins 6 (0-1.8V)
I/O Protection ±30V transient
  -2.5V to +5.8V continuous
DC Current per I/O Pin 20 mA
DC Current for 5V Pin 250 mA
DC Current for 3.3V Pin 200 mA
Flash Memory 128 KB of which 2 KB is used by the bootloader
SRAM 16 KB
EEPROM 4 KB
Clock Speed 16 MHz
RF transmit power +3.5 dBm
Receiver sensitivity -100 dB
Antenna gain 2 dBi
Current Draw 30 mA (transmitting, USB, no I/O connections)
  15 mA (transmitting, no USB, no I/O connections)
  6 mA (radio off, no USB, no I/O connections)
  250 μA (sleep)

Compatibility

  • Compatible with any shield that supports 3.3V logic
  • Compatible with existing Arduino libraries that do not use hard-coded pin definitions
  • Compatible with Arduino IDE with updated compiler, avr-gcc-4.3.3 or later.

Software

Power

The Zigduino can be powered through the USB connection or with an external power supply. The power source with the highest voltage is selected automatically.

External power can be supplied via a wall wart or a battery. It can be connected with a 2.1mm center-positive plug inserted into the power jack. Alternately, external power can be connected through the GND and VIN pins of the POWER header.

The board will operate correctly on an input voltage between 6V and 30V. It will survive transients as large as -20V or +60V. However, higher supply voltages may cause excessive heat dissipation at higher current draws. The input voltage regulator has integral overtemperature protection, so you can’t permanently damage the board this way. However, the board may not work correctly under these circumstances.

The power pins are as follows:

  • VIN – The input voltage to the Arduino board when it is running from external power, i.e. not USB bus power.
  • 5V – The regulated 5V used to power 5V components on the board and external 5V shields. It comes either from the USB or from the VIN via the 5V regulator. Maximum current draw is 250 mA.
  • 3V3 – The regulated 3.3V supply that powers the microcontroller. It is derived from the 5V bus via a second regulator. Maximum current draw is 200 mA.
  • GND – Ground pins.

Memory

The ATmega128RFA1 has 128 KB of flash memory, of which 2 KB is occupied by the bootloader. It also has 16 KB of SRAM (the most of any Arduino-compatible board) and 4 KB of EEPROM, which can be accessed through the EEPROM library.

Input and Output

Each of the 14 digital pins of the Zigduino can be used as an input or output, using pinMode(), digitalWrite(), and digitalRead(). Each pin operates at 3.3V and can source or sink 10 mA. Each also has an internal pullup, which is disabled by default. Each pin is protected against ±30V spikes and can tolerate continuous 5V input.

The six analog input pins, labeled A0 – A5, are likewise protected against ±30V spikes and can tolerate continuous 5V input. Each provides 10 bits of resolution and measures 0 – 1.8V. It is possible to change to a lower top voltage through use of the AREF pin and the analogReference() function.

A key design goal of the Zigduino is maintaining compatibility with existing shields to the greatest extent possible. The ATmega128RFA1′s peripherals are arranged slightly differently than the corresponding peripherals on the ATmega328 used in the stock Arduino. Therefore, in order to provide the desired shield compatibility, there are three solder jumpers provided on the back of the board. They function as follows:

  • Digital pin 11 can be set as either SPI MOSI or a PWM output. Neither option is selected as shipped. SPI MOSI is also available on the SPI connector at all times along with SCK and MISO.
  • Analog pin 4 can be set as either A4 or I2C SDA. Neither option is selected as shipped. Both I2C pins are available on the I2C connector.
  • Analog pin 5 can be set as either A4 or I2C SCL. Neither option is selected as shipped. Both I2C pins are available on the I2C connector.

The following additional special functions are available:

  • Serial: 0 (RX) and 1 (TX) – Used to transmit and receive TTL serial data. These pins are connected to the corresponding pins on the FTDI USB interface chip.
  • PWM: 3, 5, 6, 9, 10, and 11 – Provides 8-bit PWM output with the analogWrite() function. Pin 11 must be selected for PWM operation with the solder jumper on the back of the board.
  • SPI: 11 (MOSI), 12 (MISO), 13 (SCK) – These pins support SPI communications using the SPI library. Pin 11 must be selected for SPI operation with the solder jumper on the back, or SPI must be accessed with the SPI connector.
  • LED: 13 – This is the built-in LED on digital pin 13. When the pin is high, the LED is on.
  • External Interrupts: 2, 3, 6, and 7 – These pins can be configured to trigger and interrupt on a low value, high value, or an edge. See the attachInterrupt() function for details. The two I2C pins can also be used as interrupts.
  • I2C: A4 (SDA) and A5 (SCL) – These pins support I2C communications using the Wire library. They must be selected for I2C operation with the jumpers on the back or I2C must be accessed through the I2C connector. They can also be configured as interrupts.

This is one very capable Arduino-compatible board and sure to find many uses. For updates and new ideas consider following theLogos Electromechanical blog page.  Furthermore associated Zigduino files can be found on Github.

So if you are looking to expand into the world of personal-area networks, Zigbee wireless and so on –  you could do very well by considering a Zigduino or two. For more information, questions, support, and to purchase visit the product websiteSeeed Studio or lipoly.de