Page 1 of 1

Are you a tinkerer? Looking for beta testers/tinkerers

Posted: Tue Jan 18, 2011 10:42 pm
by romaali
Greetings TC Makers,

I visited the open house on wednesday a few months ago and had a chance to meet some of you. I have since been lurking around here on the forum. Love the hackerspace, idea. Cant have enough of this stuff!!! Only wish I had more time from my real day job.

Anyways, I am wondering if anyone would be interested in beta testing some new projects I have been working on at my new gig, TinkerAct ( TinkerAct is a blog that I have started recently that will chronicle development of my projects, essentially a brain dump of useful and sometimes not so useful ideas of mine and my colleague, Marlyn Anderson's.

After many design cycles and revisions and endless board etchings, I think we are getting close to the final design of the first one. We are working on literally dozens of projects. All in different stages of design. Some are on paper, some are on breadboard, some have been etched...

I am mainly doing this for fun, but haven't excluded the business side of things either. These things cost money as we all know, so if I could pay for it by selling small lab made batches, I won't mind it.

With that said, I would like to debut the first creation/project (product??)

Drum roll please....




Ok I know its not gonna turn any heads, but I think its nifty and useful, nevertheless. Its a USB thermometer. It takes ambient air temperature measurement and outputs the data on the serial port. There's a simple command line interface, which allows it to be called from inside of shell scripts (bash on Linux), and other programming languages (e.g. python on windows). The idea is to be able to query this little guy and get a temperature reading:

All 5 are hand etched and made in the lab over the last week or so, with different configurations, board sizes, PCB layout, and components. Its built using the Arduino platform. We have used different combination of the microcontroller on running at different speeds to refine the design. But they all do the essentially same thing

There could be many cool uses for this thing. You could use it to:

- Email or SMS your office temperature to yourself on a periodic basis or when a certain threshold is met.
- Log the data over a period of time and graph it using cacti or google graphs
- Send data to pachube ( or a similar web aggregator.

etc etc...

(we could throw one in a running pc at hacker space, and graph the data to see how the climate inside varies over the course of a day in different seasons)

I am looking for a 3 people (I've got 3 working units) to tinker and play with these share your experience with all. The idea is that the first three people to get it will keep it for a week. After a week, you will need to give it to the next person on the list. If there isnt anyone else, you get to keep it!

You will get full schematics, and Arduino code so you can modify it to your heart's desire.

Here's what we ask:
- If you change the code, you must restore it back to its original firmware when you are done and are about pass it the next person.
- Post your suggestions/changes/fixes.
- After 1 week or later on request, please give to the next person to tinker with.
- We would like to limit the changes to software for now, but if you want to hack the hardware, please let me know and we will make one for you.

Send an email to if you are interested. I will be at hack factory tomorrow with my colleague Marlyn Anderson. I will bring the goods with me!



Re: Are you a tinkerer? Looking for beta testers/tinkerers

Posted: Wed Jan 19, 2011 9:31 am
by jwb
Hi Asim,

You should swing by and demo your project for us. Our open house is 7pm tonight.

Re: Are you a tinkerer? Looking for beta testers/tinkerers

Posted: Wed Jan 19, 2011 11:09 am
by romaali
romaali wrote:Its a USB thermometer. It takes ambient air temperature measurement and outputs the data on the serial port.

I meant to say USB not serial :-)

@john: I will be there tonight.

Re: Are you a tinkerer? Looking for beta testers/tinkerers

Posted: Thu Jan 20, 2011 10:27 am
by romaali
Here's the sketch to go with it. I will post python code and instructions on how to use it from console in the next post.

Code: Select all

 USB Temperature Measurement Thingy (aka Thermometer)
 Measures the ambient air temperature and outputs it in F and C scales
 Circuit: USBTemp Thingy from
 Jan 20, 2011
 (c) 2011

int analogPin = 0;
float reading=0;
float t=0;
char ch;
int pos;
char buffer[32];

void setup()
  // We are using a precise 2.048 voltage reference for AREF
  pos = 0;
  for (int i = 0; i < sizeof(buffer); i++)
    buffer[i] = 0;

void loop()
  if (Serial.available() > 0)
    ch =;

    if (ch == '\n' || ch == '\r')
      buffer[pos] = 0;
      if (strcmp(buffer, "f") == 0)
      else if (strcmp(buffer, "c") == 0)
      else if (strcmp(buffer, "h") == 0 || strcmp(buffer, "?") == 0)
      pos = 0;
      buffer[pos] = ch;

      if (pos >= sizeof(buffer))
        pos = 0;

void printTemperature(char scale)
    reading = 0;
    for (int n=0; n < 3; n++)
        reading = reading + analogRead(analogPin);
    reading = reading/3;
    t = reading * 2;
    t = t - 500;      //  compensate for ( (10bit=1024) / 2048mV Aref)
    t = t / 10;       // 10mv/deg C
    // Round off to nearest degree 
    //t = (t > (floor(t)+0.5f)) ? ceil(t) : floor(t);
    if (scale == 'c')
        //t = (t > (floor(t)+0.5f)) ? ceil(t) : floor(t);
    else if (scale == 'f')
        t = t * (float)9/5;
        t = t + 32.0;  // C->F
        //t = (t > (floor(t)+0.5f)) ? ceil(t) : floor(t);

void help()
    Serial.println("USB Temperature Measurement Thingy (aka Thermometer) (v 1.0)");
    Serial.println("Measures and outputs ambient air temperature in both Farenheit");
    Serial.println("and Celsius scales.");
    Serial.println("(c) 2011");
    Serial.println("f   - output in Farenheit");
    Serial.println("c   - output in Celsius");
    Serial.println("h/? - help");   

Re: Are you a tinkerer? Looking for beta testers/tinkerers

Posted: Fri Jan 28, 2011 12:00 am
by romaali
Sample Python code to get current temperature:

You will need

On linux:
$ ./ /dev/ttyUSB0

On Mac:
$ ./ /dev/tty.usbserial-A600eGxq

On Windows:


Code: Select all

#!/usr/bin/env python

from serial import *
import string
import time

#PORT = '/dev/tty.usbserial-A600eGxq'

if (len(sys.argv) < 2):
    sys.stderr.write("%s <port>\n" % sys.argv[0])

port = sys.argv[1]

        ser = Serial(port, 9600, timeout=1)
        time.sleep(2) # this is needed
    except SerialException, e:
        sys.stderr.write("%s\n" % e);

    while True:
        data = ser.readline()
        if data == '':
except KeyboardInterrupt: