Archive for category Technology
Another Maker Faire, my 5th, the 10th in the Bay Area. It is done, it was fun, and I am exhausted. Now the post Maker Faire ennui has set in so I will let it go for a few days and relax as my voice recuperates.
My booth, The Sense of Things, had an extra side show this year. In addition to my home automation demo, I included a small table of LED strands triggered through Arduino Micros by various sensors. I first built this set for the East Bay Mini-Maker Faire at the Park Day School in Oakland. Because it’s a middle school, I tried to create an experience for middle-schoolers where LEDs respond directly to interactively programmed sensors.
The 5 sensors were:
- an alcohol gas sensor (MQ-3) that responded to the ethyl alcohol in hand sanitizer
- a pressure/force sensitive resistor (FSR) that responded to the touch of a finger
- an IR distance sensor which responded to the raising and lowering of a waving hand
- an anemometer (wind sensor) that responded to some lung power
- a color sensor that responded to colored construction paper
It was a hit. Children of all ages were drawn to the LEDs like moths to a flame and seemed delighted at what they experienced. Occasionally I would intervene to challenge the participants to think of what they might do with the sensors. The source code for the sensor demo is available on github.
I have two very generous friends, Terence Shek and Larry Quantz who stood-in when I needed a break and who would graciously engage the curious attendees.
On Sunday I was presented with an Editors Choice Award from Jordan Bunker, technical editor at Maker Media, for my IoT (Internet of Things) demo. I never really thought about receiving an award at Maker Faire but I was surprised by it and surprised at how it made me feel like all my research, technical struggles, and late nights were appreciated. Thanks to Jordan and Maker Media team members, and the other Makers that put their heart and soul into the Greatest Show and Tell on Earth.
Here’s a really beautiful assembly of a DIY laptop with Raspberry Pi at its core from Instructables. It requires some woodworking skills as well as computer assembly.
Notes about Raspberry Pi, an ARM based pc about the size of a deck of cards which costs $35. I might use it as a replacement for the Asus WL520 GU wifi modems I’ve been using as an Xbee WSN Gateway.
- Home Page: http://www.raspberrypi.org/
- Wiki: http://elinux.org/RaspberryPiBoard
- Quick Start: http://www.raspberrypi.org/quick-start-guide
- Verified Peripherals: http://elinux.org/RPi_VerifiedPeripherals#USB_WiFi_Adapters
- OpenWRT for the Raspberry Pi– probably won’t use this as OpenWRT is focused on WiFi functionality.
- Raspberry Pi OS Downloads
I started out with the 4G SD Card from Newark that was pre-loaded with wheezy-debian. Now I’m using the distro from Adafruit called Occidentalis v0.2. It includes ssh and other features that makes it easier to confugure.
Copy the image to a 4G SD Card using Win32DiskImager. Basically you download an OS image to a windows machine and copy it to an SD Card. When using WinDiskImager, pay close attention to your read/write actions because it’s possible to overwite the wrong drive.
Before selecting an SD Card, look at the list in Verified Peripherals. Not all SD Cards work the same, and I spent a lot of time trying to launch the OS even though the image copy was successful. If you get to the point where you’ve successfully copied the image but it won’t boot up, cut your losses and try another SD Card.
- login as: pi, password: raspberry
- I set up a root account and did most of the installation as root
Expanding the partition on the sccard
Once installed, expand the SD Card partition to fill the 4G memory space. The image on the 4G sdcard is 1.8G. This describes how to expand the partition to fill the entire 4G.
Set up SSH so you can access the Raspberry Pi from a terminal program of via Putty and/or WinSCP.
ssh-keygen -t rsa -C "firstname.lastname@example.org"
I used the CISECO daughter board kit which costs about $6 which has a GPIO connector and a place to hook up an xbee to the serial port on the GPIO. It derives the 3.3V from the GPIO and it includes an array of through holes for misc prototyping.
- XBee Radio PCB daughter board– by CISECO – basically a breakout board for the GPIO connections with access to the serial port and 3.3V.
- Getting started with GPIO and PythonThis is the first of two articles showing basic GPIO on the Raspberry-Pi using the prototype area of the Slice of Pi. This covers basic details on the GPIO pins, setting up a Python library to allow access to the GPIO. There is an example circuit to build on the Slice and some code to get the outputs working. This was originally a blog post on Matts blog at http://lwk.mjhosting.co.uk
- Serial port on the GPIO connector accessed as: /dev/ttyAMA0
- More notes on serial Interfacing: http://lavalink.com/2012/03/raspberry-pi-serial-interfacing/
On the Adafruit distro, Occidentalis v0.2, I was having some issues with reading the serial port in my python code. I kept getting erros related to the serial port being in use. Some research got me to this article on the RaspberryPi.org site and this article from Clayton’s Domain. I edited a file, /boot/cmdline.txt, and this is what it came down to (all on one line):
/boot/cmdline.txt dwc_otg.lpm_enable=0 rpitestmode=1 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait
Install Apache on Raspberry Pi
Eventually I will want to set up a web interface to allow users to edit the gateway config items, like the network protocol and to manage the various sensors, python scripts, etc. For now, I’m just going to manage it it by ssh command line.
- Webmin– “Webmin is a web-based interface for system administration for Unix. Using any modern web browser, you can setup user accounts, Apache, DNS, file sharing and much more. Webmin removes the need to manually edit Unix configuration files like /etc/passwd, and lets you manage a system from the console or remotely.”
- Raspcontrol– PHP based Dashboard application. More about status then configuring.
Installing Python components
Rasberry Pi, default linux install, has python already installed.
I needed these modules to allow me to access various web services like Cosm (pachube), Thing Speak, Open.Sen.se, and my own SOAP based service that I wrote in C#.
We need some extra libs to run the sensor programs.
Check if python is installed and what version is installed
WGet the file then unpack it:
wget http://sourceforge.net/projects/pyserial/files/pyserial/2.5/pyserial-2.5.tar.gz/download tar -zxvf pyserial-2.5.tar.gz cd pyserial-2.5 python setup.py install
simplejson 2.6.1 is compatible with python 2.5.
WGet the file then unpack it:
wget http://pypi.python.org/packages/source/s/simplejson/simplejson-2.6.1.tar.gz tar -zxvf simplejson-2.6.1.tar.gz cd simplejson-2.6.1 python setup.py install
The suds libs provide services for SOAP calls.
Need to install python’s setup tools:
apt-get install python-setuptools
cd /home/tinaja/downloads/ wget https://fedorahosted.org/releases/s/u/suds/python-suds-0.4.tar.gz tar -zxvf python-suds-0.4.tar.gz cd python-suds-0.4/ python setup.py install
Used by Cosm (pachube)
http://pypi.python.org/pypi/python-eeml/1.1.0 ? git clone git://github.com/petervizi/python-eeml.git # cd /home/tinaja/downloads/ # wget http://pypi.python.org/packages/source/p/python-eeml/python-eeml-1.2.0.tar.gz # older version - wget http://pypi.python.org/packages/any/p/python-eeml/python-eeml-1.1.0.linux-i686.tar.gz # tar python-eeml-1.2.0.tar.gz # python setup.py install
- Source code: https://github.com/petervizi/python-eeml/
I’ve loaded the python code I’m using on GitHub:
The Raspberry Pi can be wifi enabled with a USB based wifi device. The main concern would be with power consumption; the raspberry pi runs off of a 5V (currently 700mA) supply (like a cell phone charger) and a wifi device might strain the load.
For now (8.26.2012) the wired ethernet configuration works great. It can just plug into a IP provider modem.
To change the boot-up text
Did this to brand the OS as one I set up. Only for show…
The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Type 'startx' to launch a graphical session This version, from Adafruit's Occidentalis v0.2, set up by: _____ _ _ _ _ |_ _(_)_ __ __ _ (_) __ _ | | __ _| |__ ___ | | | | '_ \ / _` || |/ _` | | | / _` | '_ \/ __| | | | | | | | (_| || | (_| | | |__| (_| | |_) \__ \ |_| |_|_| |_|\__,_|/ |\__,_| |_____\__,_|_.__/|___/ |__/ TinajaLabs.com, Summer 2012 -----------------------------------------------------
To set a program to start at boot-up
To automatically run the main python script, allsensors.py, when the computer starts…
Edit /etc/rc.local and add the python line shown below:
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # Print the IP address _IP=$(hostname -I) || true if [ "$_IP" ]; then printf "My IP address is %s\n" "$_IP" fi # add this for Tinaja Labs sensor tracking python /home/tinaja/allsensors.py & exit 0
To set up Tomcat Server
At some point I might want to set up a Tomcat server and use it with some Java apps. Later.
- JDK for Linux ARM, JRE for Mac OS X: http://www.raspberrypi.org/phpBB3/viewtopic.php?f=34&t=14635
To watch the message log file
This allows you to see the system messages generated by the script as it sends various sensor readings to the web services.
cd /var/log/ tail -f messages
To kill the Tinaja python script
Look for the process id of the python script with this command:
ps aux # for a full list ps aux | grep python # to see only python processes
Take note of the process id number and issue this command:
kill 9999 # where 9999 is the process id number
That’s all I have for now, hope you found something useful here.
$250? Why does cool have to cost so much?
I have been building my own home wireless sensor network for the last 2 years. Temperature, light, hall effect, gas detection, FSRs, the Tweet-a-watt, etc. using XBee modules and a wifi gateway that uses an open source OS (OpenWRT) and Python scripts to send data to web services (like Pachube.com, ThingSpeak, Open.Sen.se). I’ve been studying home energy automation for a couple of years now and I’m beginning to understand the various aspects of what it takes to put together components to collect and communicate meaningful, actionable information.
The Nest Learning Thermostat has some cool features. It learns… and that’s fantastic. As I understand it, you can set the thermostat up or down at different times and it will remember what you set and build a schedule that repeats your preferences. That’s very cool. It has a motion detector to sense the presence of people in the house and turns the system down/off. That’s cool, too. But there are some serious issues that I see over and over in this field.
First off this device costs too much. It should be priced at somewhere below $50 for the thermostat. That would put it at a price point to get it into the homes of many more people. The more consumers use it, the more we can reduce our dependence, as a nation, on foreign sources of energy. That’s a national, heck, a global goal, right?
Next, I don’t see any way to help consumers understand meaningful and detailed results of the savings they create by using the thermostat. They might see an overall drop in their gas or electric bill, but how much can be attributed to the thermostat as opposed to the incandescent bulbs they replaced with CFLs, or by the shading of a porch, or by being more diligent in turning off the entertainment system (including the STB) and vampire loads.
Also, the designers have created a thermostat in a very traditional form. IOW, they’re not “thinking different”. The learning aspect is interesting, but I’d rather just go to my android app, or the web site and just start with a default profile for my region, house size, etc, and adjust to taste. Otherwise, I’ll not look at it again unless there is an exception to the rules, like going on a long weekend vacation.
Similarly, the designers are stuck with the concept that we need a thermostat on the wall and that we would ever want to get up off the couch and go look at it. Why spend the effort in a device that shouldn’t even require a UI. IOW, the phone app or web page should be the preferred UI.
A “think different” approach might have a temperature sensor and a motion detector in each room and these very cheap components can inform the HVAC controls how to adjust for optimum comfort vs cost. The display and controls don’t need to be on a wall in the hallway… That’s as old as the the round Honeywell thermostats people were referencing in the comments on the Wired Magazine article.
I also believe that the display devices that you get with most home automation system, perhaps in the style of elaborate refrigerator magnets with displays, are destined, too soon, for garage sales and Goodwill stores. Let’s extend the devices that we already have for control surfaces, like tablets, smart phones, game consoles. For those who don’t have smart phones in their homes, how about something like a cheap android phone form (w/o the phone functions), music players, remote controls, wifi tether devices; any devices that can support apps.
I believe profit is deserved by all who work but how much is enough? If you look at Chris Anderson’s approach describing how to make a profit on your products (), you would sell at 2.3 times the cost of parts; and that’s a good profit margin. If I did my math right, it looks like the BOM costs about $108.
I suppose they might be adding in some of the costs of running a free web service that stores all the data so clients can see the ongoing history of their thermostat settings correlated to the temperature of their house and the local weather.
Lastly, my impression is that the design isn’t finished. Design doesn’t stop until you’ve optimized the functionality, the design, and the cost. In this era of programmable microcontrollers, arduino shields, MEMS sensors, surface mount components, standard protocols, inexpensive cloud based web services, the Internet of Things… we need to delight consumers by making the products attractive, pervasive, and affiordable… for everybody.
On the drive to Maker Faire on Friday, I had a few dark moments wondering if anyone would really care about the work I’ve been doing on wireless sensor networks. I imagine that there are all these sensors struggling to be heard and I’ve been constructing a platform to help facilitate that. But would anyone share that vision? On I drove…
My friend, Terence, helped get us set up with the booth and finally with no hope of getting any internet access (seems it was over-taxed most of the time), we retired to the Friday evening’s beer and paella dinner. We met a lot of wonderfully creative Makers. The Maker Faire is such a wonderful collection of creativity in all it’s myriad forms. It is inspirational and gives me hope. Terence made a good point that Obama should have come to the Maker Faire to see an example of what makes America great.
Well I have to say I was very surprised to see how many people came to our booth to learn about wireless sensor networks. I’m exhausted and my voice is shot but I feel very satisfied to see so much interest in what we have built. Thanks to all who came by the booth. I hope that this experience can be the beginning of an exchange of ideas to make more robust sensor networks that can provide meaning to those who seek to extend what we can know about the world around us. I heard so many great ideas and I hope we can keep the them coming.
Now that the Maker Faire is over, I plan to focus on this web site for the next couple of weeks and get the tutorials in order. I’ve started some of them and have not yet published some others. I promised everyone who I spoke with at the Maker Faire to get these completed and that’s where I’ll be focused. If anyone wants info about any particular part of the platform, sooner than later, please let me know and I’ll be happy to move that to the front of the line.
Thanks to all who came by the booth, to Terence, to my friends who’ve been supporting my efforts to Make my vision, to Aurora for putting up with my project clutter, and thanks to the folks at Maker Faire for putting on a great show.
A few weeks ago we had a serious storm here in the SF Bay area and the power went out for about 5 hours. It took a few days for me to realize that the internet connection was running pretty slow, so I started trying to trace it.
I’m using Comcast IP service and right out of the cable modem I was getting 21Mbps (using the Speakeasy speed test). After the first Netgear gigabit switch the bandwidth dropped to about 3.g Mbps and after the second, it dropped less than 1.0 Mbps. Killin’ me!
So after some Google searching I found that the Netgear GS605 v2 was susceptible to power surges which often happen during or after power outages. The problem is apparently in the poor quality capacitors used. Once replaced, they are back to full force with less than $10 worth of parts and about 20 minutes. Here’s how I replaced the capacitors.
- Soldering Iron
- Solder Sucker
- Torx Screwdriver (T8)
- 2 x 1000 uF 10V, 1 x 470 uF 25V capacitors
Open it up:
On the bottom there are some rubber feet that can be peeled back to reveal tiny torx head screws (from my set I used a T8). Unscrew the 4 screws. The PC board is not secured further, so when you remove the back, you can jiggle the PCB and it will come out as a single unit.
Removing the capacitors:
On the PCB you can see 4 capacitors:
- 2 x 1000 uF, 10V
- 1 x 470 uF, 25V
- 1 x 100uF, 16V (looks like part of the power regulator, I did not replace)
To remove the capacitors, I first tried using one of those solder sucker tools but I think my soldering iron it not getting hot enough. I basically put some side pressure on the exposed post oposite the capacitor side of the PCB and when the solder melted, the capacitor slipped out at an angle. Doing the same on the other post released the capacitor. I removed the 2 1000 uF caps and the 470 uF cap.
I went to Radio Shack and purchased:
- 2 x 1000 uF, 35V – $1.79 ea.
- 1 x 470 uF, 35V – $1.49 ea
The replacements from Radio Shack were their generic versions, bigger in size and higher in rated voltage but I wanted to get it done and not wait a few days for an online order.
Because the new capacitors were so large, I had to mount them sideways. on the PCB. This is generally straight forward if you pre-bend the leads. Put the cap in place and with needle nose pliers, pre-bend at the appropriate lengths. The 1000 uF cap closest to the edge needed to be bent with the leads in a slightly overlapping form, but once you get in there it should be obvious. Here’s what it looked like.
According to this article by Katie Fehrenbacher at Gigaom, the developers of home energy management systems have figured it out that there’s no future in dedicated dashboard devices when you have a marketplace full of iPhones, Android phones, iPads and other tablet devices.
The dedicated dashboard devices would be able to display various conditions of your home energy system, your local weather, etc., and to control devices in the home. But now that we have Android phones and iPads, these new devices can access the web and use either native web pages or specialized apps.
It’s a no brainer. Have a web based system as the default UI and provide specialized apps for hand held controls.
It will be interesting to watch the progress on artificial photosynthesis.
“The Joint Center for Artificial Photosynthesis (JCAP), to be led by the California Institute of Technology (Caltech) in partnership with the U.S. Department of Energy’s Lawrence Berkeley National Laboratory (Berkeley Lab), will bring together leading researchers in an ambitious effort aimed at simulating nature’s photosynthetic apparatus for practical energy production. The goal of the Hub is to develop an integrated solar energy-to-chemical fuel conversion system and move this system from the bench-top discovery phase to a scale where it can be commercialized.”