Wow. It's already September. Progress feels so slow on the Zigbee project, but if I look back, I can see that I'm light years ahead of where I was one year ago.

At the moment, there is a lull in the software development because I'm putting together the webshop and hardware. As I mentioned previously, the PCBs for the initial WSN dev platform have already been sent out, and I'm waiting to get them back for assembly and testing.

I've also been stocking up on supplies for the webshop. The focus of the webshop, if you can't guess, will be wireless sensor network development. It's mostly targeted at people that are developing their own implementations for wireless sensor networks, which includes protocols other than Zigbee, although I'm mostly using the hardware for Zigbee dev.

The problem is that there are a lot of different protocols and requirements out there for many different applications, but nobody is really making development platforms for them. Many WSN developers are still using hardware developed years ago and are already end-of-life'd like the TMote Sky by Moteiv (now called Sentilla). Other development kits are usually targeted at specific applications by the chip manufacturers, ie: Zigbee, RF4CE, etc or are just distributed to showcase the electronics. The problem is that WSNs are really about the entire system including power supply, antenna, radio, MCU, and sensors. I figure that it's time to make an attempt to put together a system that will try and address this, or at least be something that I can use for my own development. Anyways, its fun developing the platform and I'm looking forward to the time when I can set up a kickass WSN.

Anyways, I've already bought a couple of different sensors that I'll be making boards for, as well as some nice sensor modules for humidity, temperature, pressure, acceleration, etc. I'm also stocking different types of external antennas which are very directional and provide high gain within the transmission area. It's pretty fun because some of them are really manly antennas that get mounted on poles and my wife is already asking me why the balcony is starting to look like a radio station :)

I've also been spending time trying to improve my board assembly flow so that I don't need to spend as much time on it. One of the things I was experimenting with was the solder paste stencil. Most people use plastic mylar ones, however I've found that they're hard to cut on my CNC due to the heating from the CNC bit. It leads to imperfect stencils and they're hard to work with. I purchased some solid copper sheet metal from the local store (yes, the local stores carry them in Japan), and was able to succesfully cut the stencils with very good precision. Even the QFN leads came out well on the mask which was surprising. I also tested out the amount of solder paste dispensed by the mask by reflowing a bunch of the Tokyo Hackerspace boards. It worked out pretty well, but I need to adjust the size of the stencil openings to deposit less solder paste. Overall, its possible to tweak the mask to get perfect results so I'm quite satisfied.

On a less serious note, I've been having a lot of fun on Twitter recently. A bunch of the software geeks including many WSN researchers like Adam Dunkels, Joakim Ericcson, and Raluca Musaloiu have been participating in #twitcode sessions. The goal is to come up with a functioning program within one twitter post which contains 140 characters. It's actually 131 characters usually because you attach the search tag "#twitcode" at the end to make it easily searchable. Some of the featured twitcodes are:

  •  Linked list library by Adam Dunkels  - A generic linked list library that can be used as a building block for data structures
  •  twIP IP stack by Adam Dunkels - A very constrained IP stack that can respond to pings. This actually made it on to Slashdot .
  •  Tiny Webserver by Raluca Musaloiu - A 128 character webserver written in Python
  •  CPU Emulator by Joakim Ericcson - A CPU emulator capable of 8 operations: a +/- b, a=b/b=a, jump, jump if a=0, break, two gp registers (a,b), 99 words RAM

I was also having fun playing and came up with some twitcodes of my own:

  •  Twitter post buffer stack - LIFO buffer stack for holding twitter posts, ie: in case you want to queue a batch of twitter posts for transmission. It was built using Adam Dunkel's linked list library twitcode :)

Probably most are wondering what the purpose of this is. There really is no purpose other than playing around and seeing what you can squeeze in a Twitter post. If I could summarize it, I'd say it's like sudoku for geeks. There's also a nice twist because you get to break every rule in software coding style. Most of us are always trying to write clean, readable code so it's nice when you can just get down and throw caution to the wind. A lot of the code relies on inferring behavior from the ANSI C spec and compilers which is a huge no-no in software design. That's probably why it's so fun. Anyways, I'm starting to see the real benefit of Twitter now, like how a bunch of wireless sensor network researchers can spontaneously get together and write code that fits into twitter posts. Totally useless and beautiful in its uselessness :)

Well that's basically it for what I've been doing lately. Attached are some pics of my current prototype WSN dev platform and some of the antennas that I'll be using and putting in the shop:

Updated 2009-09-02: Mistakenly said that Moteiv became Sensinode. I meant to say Sentilla. That's the problem with being stupid.