Archive for the 'Networked Objects' Category

Roof-Link / Solar Time update

Tuesday, April 10th, 2007

A simple metering interface to increase awareness of the solar energy available in relation to daily electricity consumption. [some documentation to date]

Sleepy time interlude

Friday, February 2nd, 2007

Just a quick update - ran Tom’s Processing code to check on the mesh network - yay! the battery is still alive. Reading coming in at 1PM today (38 degrees F, cloudy) is 582, so we divide that value by 44.22 to get voltage reading of 13.16, which Gilad confirmed with a multimeter reading off the 12th floor controller. Here’s a screenshot:


Sleepy Time with XBees

Wednesday, January 31st, 2007

Gilad and I continued working on RoofLink, a network of XBee radios for datalogging voltage readings from ITP’s solar panel. The problem we ran into last semester was keeping a steady supply of power to the XBee circuit on the 8th floor. For reference, here’s the original diagram again. But now, with the firmware upgrade to the radios, no PIC chips are necessary, and we’re powering the 12th floor circuit directly off the solar panel’s leads. This way, when the sun goes down, the circuit is turned “off” and the 8th floor XBee can get a good night’s sleep. Perfect, since there’s no data to log then anyway.

XBees consume 3.3V and 10mA (with no LEDs) in their “awake” operational state. With LED indicators for power, sending and receiving, they use 60mA.

MaxStream has a great app for configuring and testing the XBees, X-CTU, which you can download here (Windows only). This made adjusting the settings so much easier than when we were using Terminal/Screen and typing in AT Commands. That was much more tedious, and you’d only have a short window of time to enter new commands after the +++. Here’s a nice screenshot courtesy of Faludi. Also gives you details on commands and settings.

Tom guided us on using X-CTU’s handy features, and how to eliminate the PICs. Here are most of the settings:

Under ‘Modem Configuration’, select Always Update Firmware and Version 10A2.

#0 (12th Floor)
MY 0
DL 1
IR 17 (Sample rate)
IU 1
IT 5

#1 (8th Floor)
MY 1
DL 2
SM 4 (Cyclic sleep mode)
SP 214 (Cyclic sleep period)
ST 30 (Time before sleep)
GT 40 (Guard time)
DP 3E8
IU 1
IT 1

#2 (4th Floor)
MY 2
Will note other settings soon…

During testing, we used a DC Bench Power Supply to act as the solar panel. Got a Processing reading of 446 when feeding circuit 10V, but we’ll test other values to get the most accurate translation for datalogging.

Notes on Sleepy Time:
We tried a few approaches in sleeping the 8th Floor XBee. With Sleep Mode 5? (gotta double check this), we couldn’t wake the sucker up - had to manually reset the radio and exit out of that mode. Then we also tried this example from MaxStream, requiring a Coordinator/Remote relationship, but this wasn’t successful for us either. Eventually, it appeared to be a balance of timing between #0’s IR and #1’s SP and ST settings, with #1 set to Cyclic Sleep Mode. If #0 sent samples too fast, #1 would never have a chance to sleep; but on the other hand, if too slow, #1 wouldn’t catch any packets and keep returning to sleep. With current settings, readings come through every 15-16 seconds.

Amperage Measurements:
XBee #0
regular 6.0 mA
no LEDs 10mA
XBee #1
Cyclic sleep 24.5mA
Cyclic sleep, no LEDs 0.17 mA, with 2.16mA “burst” during sending of data

XPort Notes:
For the XPort on the 4th Floor circuit, updated Connect Mode from D4 to C4 (need to note why here). This was done just by telneting into the XPort’s IP address via Terminal and using port 9999. No need to do any of that hardware setup like when you initially configured these - takes you direct into Setup.


  1. Review incoming values and adjust code
  2. Update PHP script for datalogging, add Cron Job
  3. Measure 9V battery life (new battery placed around 1:30am 1/31/07)

#0 - 12th Floor Circuit. Using Sparkfun FT232 for configuration

Setup with DC Bench Power Supply, and testing packet sending with Processing app from Tom Igoe

#0 - 12th Floor Circuit, with “resistor tree” enclosed in shrinkwrap tubing (just to have less exposed components)

#1 - 8th Floor Circuit. When sleeping, the green LEDs blip periodically. Yellow LED indicates both sleep and receiving of data.

Screenshot of data parsing using Tom’s PHP socky script, with some javascript data viz from David Nolen. Clearly, we’ve still got some tweaking of our readings to take care of. To be continued…

Garden Electric

Sunday, December 31st, 2006

A work in progress, but now provides some organized documentation on the project -

Garden Electric Website

Solar Panel Datalogging: System Diagram

Thursday, December 14th, 2006

(click image for larger view)

The Garden Electric

Thursday, December 7th, 2006

We’ve renamed the project!

For Sunday 12/10:

- prep for Megan’s PcompNoComp presentation
- sketch out display/kiosk needs, email Rob

Stuffs we need:

Circuit Parts List:

  1. 2 more Hitec HS-545BB servos (ordered from Chief Aircraft, should arrive Sat/Mon)
  2. 2 more chokes (McMaster - Megan placed order today)
  3. 8 more IN4002 diodes (I have IN4004 ones, but not sure if these will work the same? Gotta check datasheet)
  4. 2 more TL082 op amps (samples from ST should arrive by Mon, 12/11)
  5. 2 more arduinos/atmel chips - got these

Bellow, Etc. Parts List:

  1. Wood for bellow bases, flowerbox, and individual flower bases?
  2. 4 Kitchen hose sealer neck thingys
  3. 2 T-shaped plumbing piece for mounting to servos
  4. Dowels
  5. Bases for mounting servos (should be same height as bellow base)
  6. Aluminum flashing for top of bellow


  1. Build circuits, get compact and see if possible to share power across 3 different circuits from one 12V DC Supply - otherwise, buy an additional (we have 2). But would be most efficient to run off one! Especially in our case.
  2. Tighten up cord/choke design for presentation? Depends on visibility.
  3. Test flower shape for most dramatic on/off states
  4. Need weight to keep servo stationary - might just mean mounting it to one plank of wood holding together the bellow+arm+servo
  5. “Business” cards from plastic bags
  6. Post info to site before show

Casualties of the Solar Panel Network

Monday, December 4th, 2006

Gilad and I were able to successfully connect our voltage measuring circuit to Barbara (one of the batteries being charged by ITP’s solar panel mounted on the roof of the NYU Tisch building), but not before we fried 1 XBee Pro and a couple of PIC chips. sigh. That’s what happens when you’re excited about working with energy and electricity at 3 in the morning, I guess.

Will post code shortly - Gilad, Ilteris and I setup 3 boards, each with an XBee Pro radio. One circuit is placed on the 12th floor alongside the battery and leads from the solar panel which takes solar energy voltage readings. This is sent to a 2nd circuit around the 7th/8th floor, which relays that to a 3rd circuit on the ITP floor. This last circuit’s also got an XPort, which connects to a database and logs the voltage readings successfully - YAY!

Flickr set

rest in peace, little one…

To reconfigure new, replacement xbee pro:
ATID 8888 (set the PAN ID - more on that from Faludi)
ATMY2 (my address)
ATDL, ATDH (destination address hi/lo)

Ammeter, post turkey & pie

Saturday, November 25th, 2006

We’ve been spending the last week trying to make sense of the readings we’ve been getting off the circuit. Here’s a spreadsheet with readings from the Kill-A-Watt and our ammeter:


Megan figured out a way to extract equations from charts in Excel, but they didn’t solve the problem of getting our readings to make sense with the Kill-A-Watt’s amp readings. But they did touch on logarithmic and exponential equations, which makes me think that when dealing with alternating current, we can’t just plug it into P=V*I (Ohm’s Law). This page of notes on AC seems to support that:

An alternating current is a current that changes direction, going first one way and then the other in a circuit.

If I were to plot the value of the current, as a function of time, I would see that it is changing in a sinusoidal way.

This curve is given by the equation I=Iosin(2pft)

I0 is the maximum height of the current, and f is the frequency, which is how long it takes for the current to make one complete cycle.

The voltage follows the same curve and is given by


where Vo is the maximum voltage.

Suppose I want to tell you what the voltage is for alternating current. What should I use? I can’t really use the average voltage, because that is zero. I could use the maximum voltage. But what is actually done is that when I am describing an alternating circuit I use Root Mean Square (RMS) values. RMS is always related to the maximum for sinusoidal curves by the formula

IRMS = Io/Ö2 or for voltage VRMS = Vo/Ö2

So if I talk about average current or average voltage (or just use the terminology of voltage or current) for an alternating current, I mean RMS values. If I talk about “peak” voltage or current, I mean their maximum values.

In the U.S. f=60 Hz (cycles/second), and VRMS = 120 V.

All the formulas we have learned for dc currents work for ac currents, either their average values or their RMS values. So




I’ll try out plugging in some of the values we’ve gotten from our circuit and see if this gets us any closer to extracting current readings.

I did also try using this awesome piece of equipment from Tom, a 1K Watt resistor, I think - but no luck. It works like a giant potentiometer, and think it’s also called a rheostat. I don’t think I was using it properly…



Sunday, November 19th, 2006

We’re in need of a slightly stronger servo for our Electric Garden bellow mechanism, so I’ve been digging around and learning a bit more about these puppies. A few local hobbyshops have snubbed me for calling them “servo motors” - ask for “servos”. At ITP, you’re introduced to working with these in this basic lab. The more torque you need, the pricier these get, so I figured it best to know a little about them before buying…

Here are a few resources I’ve been using:

  • Hitec Servo basics - overview of materials used for gears, and motor types
  • Hitec Servos, with links to manuals and spec sheets
  • FAQs on servos by Hitec
  • Hobbico Servos
  • Joe from Precision R/C in Bensonhurst, Brooklyn was helpful in explaining the range of servos available, and their prices are pretty good in comparison to online shops
  • Other online retailers: Acroname, Vex (pricey), Jameco (way pricey)

On figuring out the right servo for your application, Hitec says the following:

  1. Servos are rated for Speed and Torque. In many cases, Hitec will create one servo and then gear it for speed and sacrifice torque, then create its twin, geared for torque at the sacrifice of speed, i.e. 525/545, 625/645, 925/945.
  2. If you are not sure, it is better to have more torque than you need, as torque is your friend.
  3. When in doubt ask your peers about servo application questions. Look at what others are using in comparable applications. Usually the kit manufacturer will suggest a servo of a certain physical size and torque value specification in the aircraft, car or boat plans. It is wise to follow their guidelines.
  4. Digital servos provide instantaneous response, finer adjustments, more torque, but consume more power so best to run off NiMH batteries (vs. dry cell batteries)

Ammeter progress…

Wednesday, November 15th, 2006

ammeter_lampOff.gifMet with Tom yesterday on the circuit and made some mods - switched the inverting and noninverting inputs on the op amp from the diode bridge, and also removed the voltage divider. Now, at least, we’re getting a response when we turn a lamp on and off, and with second lamp plugged in, the reading increases around the range of a couple more volts.

Read the output pin of the op amp into a digital pin on Arduino board, but the range is nuts. This screenshot is with lamp off. (See other screenshots and pics)

I caught Greg Shakar for a little bit, and from my basic description of where we were at, he recommended adding capacitors to smooth out readings, and use the higher frequency digital oscilloscope for reading more detail.

Next steps: meeting with Megan and Gilad on this tomorrow. Will try out different capacitors/resistors to see what we can fine tune here and extract. Also need to read up on PulseIn command used to read these values in.