Wow! Things have been unbelievably busy recently. Along with the part-time consulting, things have been heating up at the Tokyo Hackerspace recently.
I started a group with another member called "Wireless Wednesdays" that meets two Wednesdays a month. In it, we discuss and try out different things going on with wireless. The first meeting, we actually flashed an 802.11 router with DD-WRT and then demonstrated how to boost the transmission power, partition the networks between public and private, go into repeater mode, and do other fun things with the firmware. We also have a two group projects going on in a rural area outside of Tokyo. One of them is to instrument rice paddies with wireless sensors to help out the elderly farmers so they don't have to climb up the hillside terraces every day to check on the crops. The other project is to help take a census on wild monkeys and boars that keep feeding on the farmer's crops. If we can get a good estimation of the animal count, we can help them plant lower quality side crops outside of the main farm area so that the animals won't need to forage from the farmer's main crops. Not sure if that second one will be successful, but it sounds fun and we might be able to save some animal lives as well as help out the farmers.
I'm also hoping to set up a test bed managed by the group to test out some of the WSN work going on inside the IETF. There's been a lot of exciting things recently with the release of RPL (the 6LoWPAN Routing Protocol) by ROLL and an upcoming CoAP plugfest by CoRE (6LoWPAN application layer protocol).
I also taught my microcontroller class again at the hackerspace and updated a lot of my lessons. I've been meaning to post the lessons for a few months now, but have been so busy with new designs and other work that it kept on falling through the cracks. However I've been giving out the lesson notes to a few people and have gotten good reviews on them so I think they're ready to be published. Those should be going up soon, once I get a little bit of breathing space.
I've been working hard to get the ATXMega boards out the door. The first batch are fully assembled and tested and I actually finished writing the documentation last weekend. However I realized that just throwing the ATXMega's out into the wild may not be the best thing to do since they're quite different from the AVR ATMega chips. The number of new features are really amazing, and just as amazing is the amount of documentation you have to go through to figure out what you're doing. Because of that, I decided to postpone the release a bit and put together a software package that shows how to do some fundamental things on the new chips.
As an example of why the test code was needed, you can just take a look at the GPIO configuration. In the ATXMega, you can now configure each pin to be internally pulled down, pulled-up, wired-or, wired-and, or as a buskeeper. Each IO can also be configured as an interrupt and the interrupt can have three different priority levels. There's also slew rate control to increase the rise/fall times of the IO. There are now individual set, clear, and toggle registers for the direction and port registers which get rid of the need for read/modify/writes. And you can batch disparate GPIO pins from different ports together into a "virtual port" which can be accessed just like a normal GPIO port. Damn! The flexibility is great, but the options can make your head spin!
Anyways, so I put together a very simple test code package that hopefully can help make kicking the tires on the ATXMega a little bit easier. It's nothing comprehensive, mind you, but it should show how to get the basics going on the chip. You can find a tutorial I wrote on it here:
I also finished a Chibi port to the ATXMega and should be uploading that soon.
And finally, the boards will be released after I post the Chibi code and check over the documentation. Stay tuned...