An e-mail counting t-shirt

I’ve been wanting to get into electronics for a while now (it seems like a sensible thing for someone who works for a laptop manufacturer to do) but haven’t known where to start. Back in January, the fine people at Sparkfun Electronics helped out with that by running a Free Day where they gave away electronics worth USD $100k: $100 free, to 1000 people. I was lucky to be one of the 1000 people, which put some electronics ideas within my reach that I otherwise would have found it hard to justify spending money on.

And, here’s the result — Madeleine and I made a t-shirt together that displays how much unread e-mail I have using an Arduino Lilypad and Bluetooth dongle, and an Android phone to send the number of unread mails to the shirt. Here’s an image of the center of the shirt, and a video showing it in action:

Lilypad t-shirt (youtube, download in Ogg Theora)

I’ve uploaded the source code that runs on the Lilypad and the python script that I’m running on the Android phone to my github account.


  1. Hey Chris,
    What an innovation…Incredible…I will so love to have it. Can it work with iPhone? Can you please contact me? I loved this T-shirt…

  2. Hey Chris,
    Great lilypad project! And a great use of your freeday swag!

    I question the decision to have the Lilypad & Power so conspicuously located, but conceptually, this thing is so wonderfully geeky, that maybe it’s appropriate.

  3. I was wondering how you made this work, because the serial library seems to missing in the Python implementation for Android.
    Or did you only test it on a pc?



  4. Improved bluetooth code:

    import sys
    import android
    import time
    import feedparser
    droid = android.Android()
    droid.dialogCreateAlert('Be a server?')
    result = droid.dialogGetResponse()
    is_server = result.result['which'] == 'positive'
    if is_server:
    # Settings -- change these to match your account details
    print "Checking for new mails...n"
    while True:
      ns = int(feedparser.parse(PROTO + USERNAME + ":" + PASSWORD + "@" + SERVER + PATH)["feed"]["fullcount"])
      print "nNew mails: %sn" % ns
            droid.bluetoothWrite("new mails: " + str(ns))
            print "Could not open Bluetooth port"
  5. Seems like there is a problem with the python script.

    File “build/bdist.macosx-10.6-universal/egg/”, line 200, in __getitem__
    KeyError: ‘fullcount’

    There is no fullcount in the stardard feedparser. Are you using another one?

  6. Can I have a few more lights on my?
    Currently I have > 50.000 unread emails

    I thought that was the hole idea about virtually unlimited mailstorage at Gmail and others.

    I sign up to a lot of newsletters, and if the headline doesn’t sound to interesting, – there another unread mail for me.
    The best thing – I can still find stuff from the read and unread mails with the search option.

  7. I had a problem with setting the serial port to 115200 and using a USB cable for testing. I don’t have the bluetooth module yet but there was an error on the 2nd and 3 digit coming out as garbage, first thought it was logic issue with any number over 1 digit but turned out to be the port settings.

  8. Pingback: half-girl, half-robot

  9. Pingback: Wear your unread email on your sleeve .. err .. chest [VIDEO]

  10. Pingback: T-Shirt zählt Emails via Arduino | WE wear SMART wear

  11. This is very cool! Great idea. I have questions regarding the e-textile its self. I am doing EKG device and I am working now in the E – textile to attach my circuits there. It would be great if you can share the idea with me or articles useful to read! thanks

  12. Pingback: Design Trends 3-10 Creative Product / Concept Designs –

  13. Pingback: It’s t-shirt time! | Bits & Pieces from the Embedded Design World

Leave a Reply

Your email address will not be published. Required fields are marked *