Power to the People of Iran

..and welcome to eeeGadgets! This blog is dedicated to everything associated with the wide (and interesting) field of mobile computing. The main focus is on presenting all the various hardware modifications I made to my eeePC, but I will also give short reviews of other interesting Mobile Internet Devices I come across. Further I want to share some tips and tricks I found out to be helpful in getting the most performance out of Ubuntu linux...
On the right side under "LABELS" you can navigate between various assorted article categories. Also, on the very bottom of the site you will find some useful weblinks, as well as a small broadband connection speed test (which can be very useful sometimes).
If you want to, you can subscribe to my RSS news feed too, to be always up to date about my latest articles - simply click on "subscribe now!" in the little box on the right side. Alternatively, you can subscribe to my simple email newsletter by clicking here.
For questions, feedback, suggestions, criticism and everything else, don't hesitate to contact me:

....have fun reading!

If you like my site and want to support me , you can always donate to my personal "coffee funds" using the PayPal "donate" button further down on the right! :)

Wednesday, July 1, 2009

USB mail notifier - final hardware and software revision

Over the past few weeks I've refined the design of my LED message notifier device that has been the topic of my last few articles. For those of you who aren't familiar with how it works or what is meant: the notifier device inquestion is capable of lighting up a multi-color LED in the corresponding color when/if messages are received. It indicates several types of messages: instant messages received via Pidgin (green LED/purple LED), emails and RSS/Atom feeds received via Mozilla Thunderbird (red LED), and it also informs about new tweets on my Twitter account (turquoise LED).

Thanks to the help of forum.eeeuser.com member justblair (from justblair.co.uk / ayetea.com) who was kind enough to donate all necessary parts for making a prototype, I am now using a USB notifier dongle based on the ATtiny45 microcontroller, running firmware written by Dave Hillier (from Linden Labs / Dave's Blog) - who built a notifier too (Dave in turn says he got his idea from the blog www.j4mie.org, so its fair to say that this is really a kind of some pass-on open-source project).
In fact this firmware from Dave implements a free virtual hardware USB driver for AVR microcontrollers called V-USB (based on libusb which is available for all major operating systems incl. Win32 and MacOS and, of course, linux too) and works by emulating some sort of generic "Human Interface Device", which is controlled by a small command line tool called "set-led", written in C (also courtesy of Dave Hillier!), which in turn is called by my "dBird Notifier" scripts as appropriately - which is when new messages do arrive.

For this purpose I've rewritten the scripts to support the new USB hardware and have released a new version "dBird-notify-usb-1.5" which can be found here at its sourceforge page for download. To install it, just extract the .tar.gz archive into your home folder, navigate to the newly created subfolder /LEDnotifier", run "sudo ./install.sh" and edit the file "config.conf" to fit your needs (more instructions can be found in the file HowTo.txt).

So far for the software part...

The hardware has been further developed too and has become significantly smaller thanks to omitting the now useless USB->serial adapter circuit, through consequent use of the Attiny45 in SOIC package and all SMD 0805 parts, and by etching an own PCB for the purpose. Only thing that is still the same compared to my initial design of a serial device are the 5mm common cathode rgb LED, and the USB plug.

I've found a very nice light diffuser in form of a tiny keychain lavalamp (filled with viscous liquid and some glitter stuff) which I managed to fit to my notifier and which, although just "a little bit" flashy, looks mighty cool (in my opinion at least).

The final PCB layout Blair and I designed:

A few pics of the hardware building process (from left to right: partially assembled unit, etched PCB, cardboard prototype made using through-hole parts):

Here you can see how the final external USB notifier (and attached lava lamp) look like:

If you want someting like this but feel not skilled enough with the soldering iron, or simply don't have the time for building one yourself, you can contact me for a pre-assembled board (fully functional), or if you like to solder things yourself you can contact me for a DIY kit consisting of a PCB with pre-soldered and programmed microcontroller, and solder the SMD resistors and diodes, LED and usb plug by yourself - I've still got a few PCBs and attinys left over... ;)

By the way: firmware and source-code of Dave Hillier's AVR-USB-LED software as well as the PCB layout and wiring schematic can be found in the subfolders "/AVR-USB-LED" and "/hardware" of dBird-notify-usb-1.5.tar.gz, which can be downloaded from my sourceforge project page
Support the dBird notifier Project over at Sourceforge.net - donate now!
Support the dBird notifier Project over at Sourceforge.net -
donate now by clicking the button above.

As it turns out people do like this gadget! In the meantime Dave Hillier has obviously been impressed with the lavalamp I added, and has written a short report about it on his blog, as well as JustBlair from justblair.co.uk - who has built a notifier device too - and JustBlair even managed to fit it inside his eeePC 901, despite him using the through-hole DIP variety of the attiny45! To accomplish this he omitted the PCB alltogether, and decided to wire up the chip and resistors "dead bug" style, which enabled him to hide the circuit in the base of his netbook, while the LED itself sits on the top left corner of his LCD bezel, where it is apparently very visible - even from across the room. He admits he has already become addicted to reading email as soon as it arrives, due to his new "netbook-notifier". :)


Big Guy said...

I didn't get. Is it a DIP or other package you use? I'd like to repeat your project, however, my tiny85 is not in DIP, but in a smaller package.

Dennis said...

I used SOIC. You can use all kind of IC packages for this; just make sure you wire the right pins for the package you're using (DIP for example has not the same pinout as SOIC).

Big Guy said...

what about programming the chip? if it were dip, it seems, it would be much easier... Did you flash the firmware when the chip was soldered? (Do you have to resolder it in order to update the firmware?)

Dennis said...

I flashed the IC after it was soldered in place. If you use DIP, you could of course use something like a programming socket, but its ok to flash the FW after soldering the IC in place too.

Big Guy said...

I mean how did you make the joints? just soldered those five wires for SPI?

Big Guy said...

so you soldered ISP wires just to the pins of avr? (could you please post the photos - i just have no idea of convenient methods of flashing firmware on non-DIP packages...

Dennis said...

Yes, just wire the ISP pins to the respective AtTiny's pins after soldering the SOIC to your PCB.

Here's the pinout of common ISP connectors and Atmel ICs:


Dennis said...

ISP = In-system Programming
(also known as in-circuit serial programming, ICSP)



Broadband Connection Test:

Just click on "Speedtest starten" to evaluate your actual downlink in MBit/sec (takes 10 seconds approx.)

(c) dsl-speed-messung.de - DSL Speed Test