I had one free weekend after arriving at Dharamsala. I contacted Mikey
from Air Jaldi, one of the workshop organizers, and he took Jacinta and I
around for a site survey and also to discuss the workshop agenda.
The workshop consisted of three major parts. The first part was the
actual workshop to teach the participants about sensor networks using
Arduino. The second and third parts were actual sensor network
deployments at the Tibetan Childrens Village (TCV) and Sarah Tibetan
Center for Higher Learning. In both deployments, we’d deploy sonar water
level sensors to measure the water level in storage tanks fed by nearby
streams, then upload the levels to Cosm servers.
For some reason, when the original deployment was described to me via email, I imagined small rain barrels that we’d be measuring. When I saw the actual tanks, they were gigantic. The TCV tank was an underground storage tank that could hold something like 65,000 liters of water. The tanks at Sarah were of similar magnitude but there were three of them. One of the storage tanks was at the top of a 40m (5 story) tower. Apparently, my sense of scale was a bit off.
After the site survey, we went back to the Air Jaldi office and discussed the agenda. I learned that the IPv6 talk was canceled since the speaker couldn’t make it to Dharamsala. That pretty much left me and Mikey to run the weeklong workshop. I was also surprised to learn that the workshop had 24 participants signed up. The original information I got was that I should be preparing for around 5 participants. When I heard 24, my mind started racing and I had a bit of a panic, although I think I was able to hide it quite well.
The following Monday was the official start of the workshop. I had just spent most of Sunday readjusting the presentations, learning materials, and code based on what I learned over the weekend. I was more nervous about the workshop than the deployment since I wasn’t sure how varied the skill sets would be. It turned out I had nothing to worry about.
On Monday, Mikey started off by talking about Air Jaldi an their push to provide rural broadband over long distance WiFi links. He then talked a bit about radio physics and how to actually implement those links. The talk lasted until lunch after which, I would take over and begin the more technical portion of the workshop.
I started off my portion of the workshop by giving an overview of the Arduino, open source hardware, open source software, and why the Arduino is a great learning tool for embedded. A brief poll showed that about 2 out of 24 people have ever heard of Arduino and about 4 out of 24 have ever programmed a computer. 1 person had experience doing embedded programming. I also discussed sensor networks, the challenges, and why Arduino simplified things greatly. Basically, I was just trying to get all the talking out of the way so we could get our hands dirty with actual implementation.
Once the formalities were finished, the first order of business was to get the Arduino IDE loaded on everyone’s laptop and properly working. It was slightly more involved than a normal Arduino installation since I was using a non-standard microcontroller, the ATMega1284P, but eventually we got everyone up and running. That pretty much ended the first day and many people were asking me if we’d actually be doing programming in the coming days. Apparently, it’s difficult to get experience with real implementation at many engineering institutions in India so there was a lot of hunger to dive in and work with real hardware.
The 2nd day of the workshop was when people would actually get their hands dirty. I had 12 nodes total (luckily) so it was two people to an Arduino. They started off with a simple hello world and quickly progressed from there. There were 10 hands on labs in total and I expected that it’d take about a day and a half to complete. They finished everything within one day though which surprised me. It was like everyone had a voracious appetite to learn. By the end of the day, everyone was blinking LEDs, reading temperature sensors, and toggling relays, and of course reading the sonar water level sensors.
Because we finished the Arduino work on the 2nd day, we moved straight into communications on the third day. The labs were kind of rehashes of the Arduino labs but with a wireless twist. Things become much more interesting when you throw wireless in so a simple hello world becomes an involved affair because now, you’re transmitting the hello world message to a receiver which prints it out. That first lab was chaotic since everyone was having fun with the wireless. I initially told everyone not to use the broadcast address which meant that various naughty participants would be using the broadcast address. There were all kinds of strange messages going around like "Let’s have coffee" and "Free Tibet" and others were yelling to stop broadcasting messages. I ended up teaching how to read the source address of messages too so they could locate the broadcasters and chastise them. It was all in good fun though and everyone enjoyed their first wireless experience.
From there, it was all business and they proceeded with the rest of the labs. I liked the wireless temperature sensor lab because everyone went to the kitchen to check a thermometer there and compare against the value they got. It was accurate. As people became more comfortable with the electronics, they would get all kinds of ideas. One person wanted to interface wireless to their RC helicopter, another was thinking to use wireless temperature sensors to monitor server rooms. Of course, they were also able to interface the water level sensors wirelessly which was one of the deployment tasks.
The last part of the lab was to use a cabled connection to interface sensors to the internet. They had to read data from the available sensors (easy by now) and send the data to the Cosm servers on the internet. I provided the Cosm interface code which was basically a rehash of the Arduino Ethernet examples. The final lab which they accomplished was transmitting the sensor data wirelessly to the gateway node and then taking that data and sending it to the internet. Everyone was able to do this successfully. Not bad for a group that had mostly never programmed two days ago.
By this time, everyone was mentally exhausted but excited about working with electronics. I think the best comment I heard about the workshop was that technology didn’t seem so mysterious anymore. Some of the university student participants said they would never forget this workshop in their life. Ha ha ha. I think that was a bit over the top, but I’m happy there were a lot of good sentiments and pretty much everyone came out excited about both the Arduino environment and also sensor networks.