Archive | May, 2018

Meetup Pocket Sign

08 Mar13

Meetup Pocket Sign

My brother is thinking about going back into the signage business and as he would start up his own company, he'll need to build himself a network. My favorite way to connect with people and communities these days is - a website that help you host meetings with ease. So - I set out on a mission to help people remember my brother and what his company delivers.

I've long wanted to do something with the neat little 1.8" LCD screen I picked up from Adafruit some months back and looking through their site I found that they also have this neat Lipo charger as well as slim, matching batteries. What if I made a small LCD-sign that he could drop in his pocket? I ordered the components and started modeling.

About a week later, the parts arrived and I modified Adafruit's example file a bit to load images one by one from the SD card beneath the screen. That gave me a simple, but effective slideshow. All my brother needs to do is to to change the contents is to make some BMP images and dump them onto the SD card. Easy!

After a few iterations I came up with this case. The part containing the battery is not the slimmest, but it's also meant to go inside your shirt pocket. I could have made it slimmer, but then I would have to sacrifice battery time. With it's 1300mhA battery pack, it lasts 2 hours on one charge and charging it takes a little less than an hour. I could have saved a little space by skipping the proto-board that lies in between the electronics and the battery, but it made mounting things and getting the USB-port right for charging. I might remove that if I do a next iteration.

The part that is visible on the outside of the pocket is much slimmer and it looks like the red and white logo. It took quite a bit of fiddling to get the case right. I learned that by slanting the print 28 degrees while printing, a lot less cleanup was required.

The supports came off really easy and printing the parts like this actually made them much stronger and easier to glue together in the end. I usually use PLA plastic for all my 3D printing, but for this I used ABS since it can be grinded and polished (PLA can't). Towards the end of the project I didn't quite get the time required, but it was a fairly polished thing I gave away. It took me 4-5 evenings to make this project and I think it was worth it. I could of course have bought a CD or something from a shop, but this was a personal gift that (as far as I know) nobody has. Much more fun!

Here's a shot of junior showing off the final sign and if you want to make your own - grab the files on Thingiverse and components from Adafruit.


A two dollar programmable FM radio

07 Jan13

A two dollar programmable FM radio

It's been ages since I posted anything on electronics, even though I keep playing to learn more. I also frequent quite a bit and a fun little thing I picked up was a $2 radio-curcuit-board. It's a fully programmable FM radio that is 11 x 11 x 4 mm in size. As usual with electronics from China, the website barely says anything about the product. You just have to buy one and see if you can make it work.

The circuit came without any documentation, but Google is your best friend. The datasheet was all in Chinese, but thanks to Google Translate I figured out that this circuit was very similar to many other implementations of the TEA5767 radio chip. These chips all have the same pin-density as ZigBee modules, so I soldered on some ZigBee-headers to make connecting it easier. As you can see from the picture above, my cables were all over the place. Below is a cleaned up sketch of how to connect the TEA5767 radio module from (click to view full size). The audio amp obviously goes in between the speaker and the TEA5767 output.

The TEA5767 can be controlled using either Serial or I2C, so it's really flexible. It's not very powerful, so you'll need an audio amplifier to hear anything. I used an Adafruit MAX98306 amp breakout that I had from a former project. I won't get any style-points for this setup, but I'm glad I got it to work almost right away. This instructable made the code part really easy. Using a 10k pot to control the frequency also highlighted that more than 10-bit resolution would be nice (for better precision) or maybe one should rather use an encoder? Good learning fun anyway. Here's a vid of it working.


Tutorial: making Gravitech’s MP3 Player add-on work

08 Dec12

Tutorial: making Gravitech’s MP3 Player add-on work

Gravitech is the company that created the Arduino Nano, one of my favorite Arduino's for prototyping. These are really tiny, but fully breadboard compatible. Just pop it into a breadboard and you're ready to start making things.

The obvious drawback of this size is that it can't use standard Arduino Shields, but Gravitech has made their own line of "shields" for the Nano form factor. For a recent project I'm evaluating the MP3-shield and I quickly discovered that Gravitech needs to update the links on the product page as this board can no longer use the code suggested (they've done it now).

Making it work

The reason it could use the Sparkfun example, is that it's using the same decoding chip (VS1053) as Sparkfun's MP3 Player Shield does. This is a great chip that can not only decode MP3, but also play back Ogg Vorbis, AAC, WMA and MIDI. It can even encode audio if connected correctly. 

The problem with the Sparkfun example is that the required SdFat-library has changed. There is no longer a file called "Sd2PinMap.h", so you can't do the crucial setting for selecting the SD card. To make the Gravitech MP3 Player add-on for Arduino Nano work, you have to do a few things.

Step 1: Do not download the SdFat-library

The Sparkfun example starts off by saying that you should download and install this from the official URL. Do not do this. We have an easier way.

Step 2: Do not use the Sparkfun example

Instead, use the MUCH better SFEMP3Shield library maintained by Bill Porter (and others). Click the ZIP-download button on the GitHub page (or use GIT if you know how). Unzip the files and place the two folders named "SdFat" and "SFEMP3Shield" in the "libraries" subfolder in your Arduino sketches folder. If this folder is missing, just create it yourself.

The "libraries" folder should be in the following location:

OSX: /Users/username/Documents/Arduino/libraries/

Windows: C:\Users\yourname\Documents\Arduino\libraries\

If you are using the Sparkfun MP3 shield, you can skip the next step. If you are using the Gravitech shield, we need to edit a file for it to work. Do not start your Arduino software yet.

Step 3: Edit SFEMP3ShieldConfig.h

This file is in the "SFEMP3Shield"-folder that you just copied. Open it in a text editor (NOT a word processor!) like TextMate/Textwrangler on Mac or Notepad on Windows. Locate the lines that says "#define GRAVITECH". This macro was added after I first posted this, so now it's really easy to set it up. Change this:

#define GRAVITECH 0

into this:

#define GRAVITECH 1

and save the file. That'll set up the library for the Gravitech MP3 player. What this changes is what the SD_SEL variable (for selecting the SD card) is set to a little further down the same file.

Step 4: Declare the required pins as OUTPUTs

Unless your code explicitly declares the pins of this shield as outputs, you'll get problems with "floating grounding". Some pins will flickr between 1 and 0 and this will prevent the SD card from initializing. Sometimes you'll be able to make it work by just holding the pins, but this'll be random and not repeatable.

The error you will get is something along the lines of this:

Can't access SD card. Do not reformat.
No card, wrong chip select pin, or SPI problem?
SD errorCode: 0X1,0X0

To fix it, just add these lines at the top of your code (at the start of void setup() )

  pinMode( 2, OUTPUT);
  pinMode( 3, OUTPUT);
  pinMode( 4, OUTPUT);
  pinMode( 6, OUTPUT);
  pinMode( 7, OUTPUT);
  pinMode( 8, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);

Pin 10 isn't used in the shield, but since the shield is using SPI, it should always be declared as an output.

Step 5: Play audio!

Start the Arduino software and click the Open-button. Locate the SFEMP3Shield-menu and open the example  "SMP3Shield_Library_Demo". Make sure your Board/port settings are correct and compile. Open the Serial Monitor for instructions on how to use the example. When you've got the grip on this, study the example to understand how you can implement this into your own app.

Why use SFEMP3Shield rather than the old lib?

As long as you remember to use the old fashioned 8+3 character naming convention (ABCDEFHG.ABC) this library is really good. Many of the Arduino-libraries out there are written by people that don't understand the general Arduino audience. They are overly complex in both implementation and use. The SFEMP3Shield-library is MUCH better written than the original libraries from Sparkfun. All the complex options are hidden and you're left with easy to use commands such as setVolume, playTrack, setPlaySpeed and much more. You can also access the ID3 tags of the MP3's you're using such as trackTitle, trackArtist and trackAlbum.

If you for some reason run into problems, you can find a good description of Error Codes and other troubleshooting on this page




How to update the official Arduino Wifi Shield

02 Nov12

How to update the official Arduino Wifi Shield

I spent most of yesterday eve at Bitraf trying to make the official Arduino Wifi Shield behave properly as there is a bug in the firmware that it comes with. One of the Bitraf members has a cool project that involves remote control of servos. He planned to use the Wifi Shield, but it kept loosing it's connection at random intervals - no pattern to it.

As I have the same shield, I tried to figure out how to download and install the new firmware from GitHub. I couldn't find any good description on how to do it, so here's how I did it on OSX. It'll be quite similar on Windows and Linux.

1st Download the files from GitHub

Go to and either download the ZIP, or use GIT if you're familiar with that. If you're using git, open terminal and navigate to the folder you want the repository in. Here's how I did it:

mkdir wifishield
cd wifishield/
git init
git remote add wifishield
git pull wifishield
git checkout master

The installer expects the files to be inside the Arduino-app folder. Copy wifiHD.hex, wifiHD.elf and the other files from the wifishield/firmware/binary folder into /Applications/ (or where you have your Arduino app).


2nd Grab the Device Firmware Updater

Next is getting the software we'll be using since AVRDUDE does not work with the 32UC3-chip in the wifi-shield. Check out this page for details on installing this on your specific platform. For OSX, it should have been easy like this:

sudo port install dfu-programmer

However, instead we got this:

Error: The installed version of Xcode (2.0orlower) is too old to use on the installed OS version. Version 4.1 or later is recommended on Mac OS X 10.8. So off we went to Apple to get the new version.

Apparently Apple thinks that minutes after releasing XCode 4.6 was a great time for maintenance. Yay… Some hours later, the download commenced and we got it installed. Next we had to install the XCode command line tools we were finally ready to go…

3rd Set the jumper

Plug the USB Mini cable into the shield. You should not upgrade the shield while it's mounted on an Arduino.

To program the shield, you'll need to enable a jumper. This puts the chip in DFU-mode that enables reprogramming it. There is no "J3" marking (mentioned in documentation) on the shield, but there is also only one jumper there so you can't go wrong. Just place it across the two pins and you're ready to go. If you fail to set this jumper, you'll see an error "dfu-programmer: no device present" since there is no programable device connected.


4th Upload!

You'll use a script from the GitHub download to do the actual uploading: Move to the correct folder and then run the script as below:

cd /Fra PC/arduino/wifishield/firmware/scripts/
sudo sh -a /Applications/ -f shield

Explanation: "sudo" means run as the computers registered superuser to avoid any permission-related problems. Your Mac will ask for your admin password when you run this. "sh" is short for "shell" and means that the following file-name should be executed as a script. "-a" and what comes after sets the path to the Arduino app and finally -> "-f" tells if you want to upgrade the shield-software or the main CPU it runs on. Unless something goes wrong, you'll see a message saying that says "Validating" and that it's no less than 101.44% finished :-)


5th Remove the jumper

Once the upgrade goes through, remove the jumper and set it on just a single pin. That's it. Not hard once you know how to do it and have all the required software installed. It's however a far cry from the simplicity we're used to with Arduino. Maybe they'll find a smoother way to solve this? Also something VERY interesting we discovered that isn't documented - if you have connection problems with this shield, make sure you don't use/set PIN 9! It's not documented as being in use, but something definitely goes on with this pin. The PIN also has it's own LED (marked L9) on the shield and it flickers weakly during use of the shield so something undocumented is going on there.

I have to say that while it's fantastic to have an officially supported Wifi shield, I don't really appreciate that it takes up the PWM pins 10, 11 and apparently 9 as well. I'd much prefer I2C or a more configurable solution like for instance the Adafruit Wave Shield offers. Marking what pins are used directly on the PCB is also a great help for users.

We also figured that the Atmega 32UC3 chips are not too expensive, but the WiFi chip on this shield is $20 even in fairly big quantities. While this makes the shield quite expensive, it's probably worth it's steep EUR 69 price. Keep in mind though - with an Arduino UNO, the total setup is 89 EUR ($115). A Raspberry PI and a wifi dongle is much cheaper. In fact - you can even get Adafruit's complete PI-kit for only $105! Have a look at the picture above comparing both solutions and you'll see that they're both small in size, so depending on your need - maybe it's not an Arduino you need?

Here's some useful links I found while researching this: (good info on the DFU programmer) (Official page on installing DFU for other platforms)

UPDATE: here's a link to Massimo's writeup



JY-MCU Pro Mini (made in china)

21 Oct12

JY-MCU Pro Mini (made in china)

Some time ago I bought a dirt cheap Arduino Pro Mini clone from just to see if it worked. I didn't use it until today, but it works pretty well. It has one major drawback - it uses a non standard FTDI-connector in that it does not use the CTS-pin. It took a little time to figure out how to map this, so above is an image (click to enlarge) of the cable I made and below is the table of the pin mappings:

Adafruit FTDI Friend pin JY-MCU pin

I have a Sparkfun FTDI adapter as well and this one is marked DTR instead of RTS, but it's otherwise similar. One thing to note - while the board itself is 3.3V there is no problem to use a 5V FTDI programmer with it. The board itself can run on anything from 3.3V to 12V so it's quite a flexible board. Earlier you could access the website of the makers of this board to access technical documentation, but now it's gone (or hard to find).

Now - about the ethics of buying china-made Arduino's. I feel that I can't post this without discussing it with myself a bit. I really don't like buying stuff like this from China and the reasons are:

  • You don't get any support if something fails
  • Documentation is non-existant
  • Nothing is given back to the Arduino project (like Adafruit and Sparkfun does)
  • I really should buy locally and not from Asia if possible

Buying this board was just a test, but would I buy more of these? Yes and it really comes down to price and how Open Hardware works. I recently delivered the first part of my first commercial project based on Arduino and electronics. For this project, I'll need to make something like 50 similar units that respond to a sensor.

The prototypes were based on Arduino Uno's and if I buy these locally I'll pay $43 per microcontroller. The Uno's are rather big so I'll certainly use something smaller for the production phase. If I do the project based on Arduino Pro Mini's, I'll pay $26 per MCU if bought here in Norway. I could also buy them direct from Sparkfun and with shipping, VAT and customs handling they'd be $22 apiece. Not shabby.

However, for such projects I wouldn't use off-the-shelf solutions. It's better to make custom boards specifically for the purpose and these would be something like $10 for the PCB and components - not including the soldering. I've done this several times now for personal projects, using only through-hole parts and soldering them by hand. In other words - a project like this wouldn't really be of any benefit to the Arduino project anyway, because it would simply not be the right way to solve such a project.

I really love working with through-hole and DIL parts, but of course SMD is even cheaper than that. Here's the crux - with the low price, free shipping and how the customs limit in Norway works, I can get the chinese clone-boards for less than $9 apiece. I can't even buy the SMD parts for that price, let alone solder them. Maybe the answer to this project would be to make a custom board with Arduino Pro Mini header-inserts?

Update: I'm not entirely sure, but I think this may be the website of JY-MCU? It is crazy slow so it's definitely a chinese website… If you just wait 5-10 minutes, you'll actually find what I made above at the bottom of this page.


Arduino Serial - a real retro-arduino

26 Apr12

Arduino Serial - a real retro-arduino

One of the worst (and best things) about learning about electronics and microprocessors is that you get obsessed with buying components. I maintain a full list of what I've ordered/received and it's quite a collection. These days I'll be up late at night scouring online electronic shops and ebay for things I need (or might need, are nice to have or even things that I really don't need at all...). It's turned out to be a fascinating hobby, but it's not really expensive either if you compare it to things like Golf, cycling, cars or other things the guys my age start buying :-)

Those that know me well, will know that I have a desire to know as much as possible about things and Arduino is no exception. One evening I was browsing around for things to buy, I stumbled onto this site called Emartee. It's a well updated site that also has some of those obscure things such as really well put together Arduino starter kits. These would be great for both a workshop as well as further explorations. These base components cover what most people need while exploring and just add a servo, a display or the sensors of your choice to get a full kit.

A retro Arduino

Some months ago, I found a Portugese shop that still offered the random colored PCB versions of the Duemilanove (2009). The Duemilanove is great to have around for burning bootloaders as this can be hard to do with the newer Uno boards. However - while browsing Emartee I found something that looked older - it said that it was a Arduino Diecimila Kit but it looked a little different. According to the Arduino overview of older boards - the Diecemilia (means 10k in Italian) was supposed to have a USB connector but this package had a good old Serial cable with it? I bought it on impulse - just to see what it was.

Today the gear I ordered arrived and boy was I surprised! In an antistatic bag there was a PCB that said "Arduino 1.0"? In the bag was no ATmega168 chip as it said on the Emartee site, but rather a Atmega8? This was fun! After some googling I now know that what I bought is a kit to build the first version of the Arduino Serial - designed in 2005. I had initially planned to relax and solder this up tonight, but I think I'll just keep it as a bit of Arduino history. I don't have a PC with the required Serial port around the house so I couldn't use it even if I wanted.

However - it's hard to find pictures of this and it's a little bit of computer history so I took some pictures of the kit and PCB and posted it on my Flickr account. Feel free to re-use! (CC)


Updated ADXL345 library for Arduino 1.0

13 Apr12

Updated ADXL345 library for Arduino 1.0

Today I've been playing around with SMD soldering using a tiny little touch-sensor called IQS158. I got hold of a soldering kit from Proto Advantage for MSOP-10 and started soldering away. When it came time to test it, I realized that I had never really used I2C before, only SPI. Aw bummer... How to figure out if my soldering actually works? Then I remembered that I picked up a triple axis accelerometer breakout from Sparkfun some weeks ago. I could test with that one and then base my code for the touch sensor on that?

The breakout is based on the ADXL345 chip and supports both SPI and I2C. Sparkfun only had SPI examples, but I found a link to on the product page that had a the perfect I2C tutorial for my breakout. It was based upon a library that wasn't updated for Arduino 1.0. They have a patched version in the article, but I did my own patch to learn and posted it to a new Arduino repository on GitHub. I'll place all my code in this one from now on.

In the repository, you can also find a "bare bones" example file that is using the breakout/ADXL345, but without the entire library. This file only prints the x/y/z coordinates to Serial, but it also makes it really easy to see how much value the library adds such as detecting taps, freefall and lots of adjustment options. 

Now it's time for dinner and then I can write some code to test if the tiny IQS158 survived my SMD soldering attempt (it's next to the breakout in the picture - just 3mm wide!)


Using your Arduino as an ISP

26 Mar12

Using your Arduino as an ISP

ISP is short for In-System Programmer and is one of several ways to turn a blank Atmel chip into an Arduino. The basic chip is just a microcontroller, but with the right bootloader, you can load your Arduino-based programs onto it. It all seems so easy, doesn't it? You just buy this shield from Adafruit and follow the tutorial.

That would be much too easy! The Adafruit shield probably works, but since there's no real listing of what hardware it's actually compatible/tested with it's sort of useless. By browsing the forums I realized that while it can be used to BURN an UNO, it can't be used with an UNO. I have a Duemilanove 328 but the didn't work either. I gave up on the shield and I also tried this the official ArduinoISP tutorial to no vain.

Today I tried this tutorial and it's very much the same, but explains an option to not use a crystal. I had a bunch of problems that I eventually solved, so am posting the results for others to find. 

To use the Minimal Circuit setup (without the crystal/capacitors) you'll try to follow the instructions listed only to get the first problem.

"pins_arduino.h: No such file or directory"

Copy the contents from the downloaded boards.txt in your src/hardware folder to the boards.txt in App folder instead. On OSX: right click the Arduino app and browse Contents/Resources/Java/hardware/arduino/boards.txt.

You may also need to add the line below after the other text you pasted as it's missing in the downloadable example file:

After this, the ArduinoISP example compiled fine and uploaded to the Duemilanove board that I'm using for burning the bootloader. The next problem I bumped into was that when I selected Tools -> Burn Bootloader, avrdude couldn't communicate with my board.

stk500_getsync(): not in sync: resp=0x00
You can also get other hex numbers like resp=0x15 and resp=0xf0

Add either a 120 Ohm resistor (didn't work for me) or a 10uF Capacitor (worked like a charm) between the Reset and 5V Pin:

I had to fiddle a bit to get this right and once it worked I ran straight into the next problem…

Avrdude dislikes your lovely 328-PU chips and says "avrdude: Yikes!  Invalid device signature." or "avrdude: Expected signature for ATMEGA328P is 1E 95 0F"

Unfortunately the 328-pu and 328p-pu are not the the same. They're very similar though so all you need to do is to tweak a setting in your avrdude.conf file as described here.

Also remember to set this back and then restart the Arduino IDE, or you'll get the error "avrdude: Expected signature for ATMEGA328P is 1E 95 14" the next time you try to upload. Below is the final setup where I added capacitors and crystal as well (click to view the full size version on Flickr)

Take 2

So while I had this working nicely, it all of a sudden stopped working on my MacBook Pro. Really? yeah! First I got a bunch of "avrdude: Yikes!  Invalid device signature" and later the dreaded "avrdude: stk500_recv(): programmer is not responding". I have absolutely no idea why it stopped working.

What to do… I had come this far and I had 10 chips that needed a bootloader. I had read somewhere that the power supplied via USB varies and that to burn a chip you're using more juice than normally. I downloaded the Arduino IDE on my gaming PC and plugged the same setup in there and lo and behold - it worked? I tried again and it failed. I then removed the 10uF capacitor that was temporarily inserted between Reset and 5V and now it was burning chips with no problems again. It would work like a charm until I turned off the power to the Arduino. To get it working again I just added the capacitor back in for the first burn cycle and then removed it again.

Is it really as easy as adding a little more USB-power? The MacBook Pro USB ports are spec'ed to deliver to the normal 500mA but maybe they don't? My gaming PC has a massive 1100watt PSU so it definitely has enough. I really don't know, but if you get this issue, try using a different machine as well. It did wonders for me and the burnt chips work as intended when programmed with the FTDI Friend!


Making a Blinky cube

17 Feb12

Making a Blinky cube

Inspired by various LED cube projects, I wanted to see how long it would take to prototype a small interactive toy. The basic idea is to make a plastic cube that displays beautifully diffused light and uses a simple way to turn on and off. Tapping the cube with a finger could be a good way to do this and it also makes it possible to start different "color cycle programs".

Making the cube

My friend Jim at VariousArchitects (VA) has this really nice Makerbot standing around in our office. It would be a shame not to play with it a little? Maybe I could even find a complete cube on Thingiverse?

Turns out that nobody had done something similar, so I had to make the model myself. Through the years I've played with different 3D programs and lately I've used Modo a lot. After fiddling a while in both Modo and Sketchup, Kyrre @ VA suggested that I try Rhino. My friends @ have always been big Rhino proponents and after some initial fiddling, I really started to like the software! Poor Kyrre had me pestering him with noob questions all eve, but the result turned out quite nicely?

Breadboarding the prototype circuit

Next I needed to make a small test circuit to see that I could fit the electronics. The final version will use some sort of ATMEL chip, but since the hardware is still on it's way (switch from Sparkfun and RGB LED's from Evil Mad Science) I had to just throw something simple together that would show me how the LEDs worked with the materials.

Using my newly aquired knowledge about the 555 timer, I set up a small breadboard circuit that toggles two LEDs. I added a couple of 10k pot's so I could change the blink speed. Looks like this would work fine?

Making it smaller

I can't fit a breadboard in the cube, so I made a copy of the circuit on a little piece of perf-board that I thought would fit inside the cube. It took a couple hours to fit it all, but I only had one incorrect solder (the 555 was the wrong way, duhh) so it wasn't all that bad. It also turned out quite small.

The blue dials are the pot's that'll adjust the blink-rate and the black tube on the top is a tiny switch that'll turn the circuit on/off based on the physical orientation.

Putting the pieces together!

Kyrre had printed the bottom of the box that evening so when I came to the office the next day - all that was missing was the lid and some batteries for the circuit. While the lid printed, I mounted two 3V coin cell batteries together (the 555 needs at least 4.5 volts to run) using some Gaffa-tape and wait for the lid to finish printing. The lid required that the Makerbot made some "supports" - extra plastic that you remove when the print is finished. I'm amazed by how easily these supports came off and the pieces looked really good! Now it was time to fit it all together.

The result

Below you can see a video of the completed bits. The LEDs are not very visible inside the box while it's daylight but they look lovely when it's dark. The video is a little blurry since I just used my iPhone, but it shows the result quite well. Very happy with it given that it's only taken about 1.5 days to get this far! Makes me feel comfortable taking the project to it's next step - using RGB LEDs that can run different programs and turn on/off with just a tap.

Thanks a bunch to Kyrre for helping me with Rhino and the printing and to Jim for letting me play with his toy! I've also uploaded the 3D model to Thingiverse in case anyone needs something similar. I've also posted some more pictures of this on Flickr for anyone curious to see more.



Back to electronics and Arduino

31 Jan12

Back to electronics and Arduino

After a great week filled with snowboarding, fun and software, it's time to get back into hardware again!

Waiting for me at the postoffice was a package from Hong Kong and the crazy site DealExtreme. 3 weeks ago I randomly browsed around the site and figured that I'd check to see if there were any Arduino stuff on sale and indeed it was. I found an Ardunio Nano 3.0 for only $17 and an Arduino Mini for only $13. I had to order for more than $30, so I threw in a bag of super-bright white LEDs as well. The Mini is still on backorder, but check the image above to see how small the Nano is? Including FTDI/USB it's still less than one fourth the size of a Uno! It plugs straight into a breadboard and it's a fantastic deal at only $17.

This is one of the things that facinate me with the Arduino community. The Arduino Nano was originally conceived by the California company Gravitech. True to the idea of the platform, Gravitech publishes the Nano with a Open Source/Hardware license that enables others to produce competing products. If you buy from the originator in the US it's $35 per Nano, but from Hong Kong it's only $17. According to what I learned at business school many years ago, this is bad for any company, but that was before we learned about the App Store Economy where volume/exposure matters the most. The Nano platform is also very tied to Gravitech as they update it and they also produce several very nice shields to go with the device. I'm pretty sure that the more companies that sell Nano compatible controllers - the more exposure this form factor will get and Gravitech will benefit.

The Arduino Mini from Asia is still on backorder, but the LEDs were crazy bright. Should fit well for an idea I have, but now it's back to app-making. Almost there…!