Saturday, July 31, 2010

Started development of the Wifi Speaker Project PC Client Application

Now that the server part of the software is practically complete with streaming capabilities working, it's time to take a look at what is going on with the client side (i.e. the speaker side).

The ultimate goal of this project is to develop not only the SW but also the HW on the client side, including amplifier, decoder, wifi receiver. I already have some ideas of how i'm going to do that on the HW side, but I thought it's probably a better idea to start with a client PC application that behaves much like the future HW on the speakers without having to force me to go ahead just yet on the HW side.

I have just uploaded to the google repository of the project the first mock-up of the GUI for the client side. Actually there's really no GUI, just a debugging form where I can see all the messages sent by the client, the messages received and the stream decoder messages.\

Take a look at the upcoming client SW here and stay tuned as I expect to have it ready until the end of this week.

Monday, July 26, 2010

Weather Station - pics and software

As mentioned the other day on my last weather station blog entry, here's some pics of my weather station installation:

The weather station sensors at the top of my roof: wind vane, anemometer and rain gauge. LCD placed inside the house reporting current weather (temperature, relative humidity, wind direction, wind speed and precipitation (yeah it does get that hot and humid around here and that's actually quite low humidity for July...)

Just a detail of the mounting of the weather station with a bit of rust on it which is quite surprising considering that it has been up for only 2 months. The arduino box and, just below, the temperature and humidity sensor box. The shade from the upper, larger box shields the sensor from the sun (this is not entirely successful but it works most of the time...

The inside of the box. The sensors come to the box that houses, power, the arduino and the arduino ethernet shield. Everything is housed on an IP65 box with a bit of silicone to provide extra water protection.

Regarding the software, visit my pages on, it's still undocumented and simply a software repository but if you have patience you can make it work! A word of caution about the PHP software as it still is not completely ready.

Next steps on this project are:

- Finish the PHP code
- Implement the crontab scheduled database save of data and chart image upload to server
- Show real-time weather data from my station on this page
- Clean up the code (it's a bit chaotic now)
- Document the project
- Get help to improve the code

Saturday, July 24, 2010

Network Sniffer

Today for work I had the need to use a network sniffer to check packets on our control network (quite critical since it involves moving people around). I quickly search the internet for something light that could be run from a flash drive since one of the requirements we have is no installations on the production machines.

So I came across the very light but quite powerful smsniffer. It's just a simple executable that runs from wherever it is located (on a flash drive for example).

Recommended if you need something like this.

Thursday, July 22, 2010


A while ago I talk to my friend Konstantin about working on one of his sculptures called "the accuser". The accuser is a man sitting on a chair with one arm up pointing towards the observer.

The task was to automate the pointing arm so that it would move upon detection of an observer.

Below is a section of the instruction manual I prepared when I delivered the automated arm:
The accuser arm is a robotic arm with two DOF (shoulder and elbow) that moves between two positions (arm down and arm raised) triggered by the readings of an ultrasonic sensor. The following parameters are adjustable (see point 3 for instructions on how to adjust the values):

  • Independent setting of rest position for each motor

  • Independent setting of raised position for each motor

  • Distance at which the movement is triggered

  • Amount of time the arm is raised

  • Amount of time the arm waits to be activated again after returning from a raised position (avoids repeated activations)

  • Speed at which the assembly moves

  • If arm is raised randomly or not upon detection of a person (useful to accuse only some people).

  • The likelihood of raising the arm if the option to raise the arm randomly is selected (e.g. 25% of the detections, 33% of detections, etc).
I installed 2 high torque/ high speed futaba servos, controlled by an arduino board which in turn is connected to an ultrasonic sensor. I made simple arm with two pieces of aluminium (see the attached document) with a servo on each joint. The movement is quite realistic!

The project is described in more detailed on the users manual (including program configuration and arduino interface to the Ultrasonic Range Finder - XL-Maxsonar EZ0 and the arduino programming file is also below:

HP Pavilion DV2

One of the best things I did on my recent life (ok, maybe I'm exaggerating...) was to buy a HP pavilion dv2 laptop computer. This is the computer I use for everything that I do and I do a lot with computers. I carry it everywhere I go, sometimes without the luxury of a bag and it works like a charm.

I run a dual boot system with ubuntu linux (not a partition install but a file install with wubi, more about that later on another post because I think that experience is cool and I wat to share) and windows 7 ( a great operating system IMHO).

HP pavilion DV2 good stuff:

1. Low price
2. Small but not so small you need a magnifying glass
3. Works great with ubuntu 9.1 (maybe even better with the latest version)
4. Very light
5. Fast Processor (at least for anything I need - no crazy 3D gaming though)
6. Cool looks
7. Comes with external DVD burner (I seldom use it, so why do I need to carry it everywhere? but I still want to have one, so this is the very best option!)
8. HDMI port
9. Absolutely great keyboard in terms of size and feel

HP pavilion DV2 not so good stuff:

1. Construction and material feels a bit weak and low quality
2. VERY LOW battery life (2.5 hours)
3. Mousepad is very usable but not to my liking (I use an external USB mouse anytime I can)

My very old Robosapiens Robot dissection

Ever since I can remember I would buy all the toy robots I could find and pay for. More often then not they wouldn't last long because I would open them up and see what was inside.

About 8 years ago I published a rather famous post in the amateur robotics community about the internals of the the then very popular robosapiens robot from wowwee (now a quite famous toy robot company).

I think I bought it the day it came out and I was one of the first that took pictures of the internals and documented them. I have lost the post a long time ago but I recently found this link to the article and it made me think about. I still have the robot. It's my daughter's toy and it still works!

Wifi Speaker Project

Today I release the first semi-working v0.0 ALPHA ALPHA ALPHA version of the server software for the wifi speakers project. It's developed in DELPHI, runs on windows and I publish the binaries only although this is obviously an open source application [EDIT: source is now available also]. Here's a screenshot:

limitaions of this version:

- only streams in HTTP
- cannot manage spakers yet, so it multicasts everything
- play locally button doesn't work
- find speakers doesn't work
- managing groups button doesn't work yet
- mic vol adjustment button doesn't work yet

---- You need to install VLC 1.1 to run this application. Then on a remote computer, use VLC1.1 again and open a network stream with URL: http://IP_shown_in_server_app(local_IP):8080. You should hear the stream of your line in or the file that you decided to stream out.

Of course this is only the start, but I think that having managed to stream stuff out is the hardest step. The rest is fairly simple (well, except for the client side but that's another story).

Thanks Gerald to point me to VLC. As always, good call!

Download application and source from the project page on (dont' forget you need VLC1.1). Remeber this is the very basic release, I will spend the rest of this week making everything else work.

Wednesday, July 21, 2010

Weather Station Project

A while ago I bought the weather station sensors from sparkfun electronics. I installed them on my roof the other day and connected everything to an arduino microcontroller board which in turn is connected to a wired ethernet shield, all bought on sparkfun. I also got the humidity and temperature sensor SHT15 breakout board. I had an Hitachi-compatible LCD laying around that I connected to the arduino and installed on a box inside my house, giving me instant data information.

The weather information I can collect is:

Temperature (SHT15)
Relative Humidity (SHT15)
Wind Direction (weather sensor assembly)Wind Speed (weather sensor assembly)
Precipitation (weather sensor assembly)

I put everything on a IP65 box that I installed outside on the wall up close to the roof and brought cables in to my house (power, data for LCD and ethernet). I hope that I can take some pictures of the hardware someday and post them here.

The ethernet shield reports all the available data upon request from a client computer. I have until now developed all the code on the arduino including:

Interface with weather sensors (Wind speed, direction, rain gauge)
Interface to the SHT15 Temperature and Humidity Meter
Interface with the Ethernet shield and transfer of data through http
Interface with the LCD screen

This is the complete wiring connections that I did (excluding LCD):

I know the schematics are kind of terrible but they are good for guidelines in case you would like to do something like this. I've got larger versions, email me in case you need them.

In my next post, I will upload the arduino code that makes all of this possible. After that I will post the PHP code I wrote to update a mySQL database with weather data so that I can see the history and, for example, see the evolution of relative humidity throughout the year.

Sunday, July 18, 2010

Save your Internet Explorer Session

I always wanted to do like I can easily do with firefox and save the session I currently have open on my browser. That means saving all the tabs and reopen them next time I feel like.

I solved that problem just now: On internet explorer, close the window and next time you open and would like to go back to the previous session, simply do 'tools' -> 'Reopen Last Browsing Session' and, guess what? It does just that!!

What about if you don't want to open your last session? but still want to save it?hum... still working on that one!