It’s been a heck of a week for IOTOPE last week. After years of being only attending Devoxx, the biggest European community driven Java conference, I finally got the chance to work behind the scene of this great conference. About four months ago Stephan Janssen asked me if we could do something with NFC Rock & Roll wristband at Devoxx. Of course I was happy to help. A real target, like say a conference, could bring a bit of focus to the development of IOTOPE. And it did, although it brought the development of IOTOPE:node for Java to an halt, it did got the android version and the server kick-started.
So what did we do the last four months. We started out searching for the right wristbands and tag technology. It was harder then expected because the cost needed to be reasonable. Getting the tags and the wristbands from different suppliers would be to expensive because then they still needed to be assembled by yet another firm. Eventually we found a firm that had the complete package. Then the type of tag needed to be decided. Would we go for the new type of ICODE tags or go the more classic MIFARE tags. The MIFARE classic tags came out as the winner because they were cheap and it’s technology that is supported by all NFC readers. If we chose ICODE, we could forget the Arduino voting system because they have a fairly old chip in them that doesn’t support the new tags.
Although it was well know that the MIFARE classic has a weak crypto engine I had read the spec carefully and found something in the spec I could use to destroy a sector so it’s not usable anymore. By doing this I could redeem the virtual coupons on the tag and the ID is in a non writable space anyway, so we where fairly safe on what the tag was concerned. The worst thing that could happen was that someone hacked and wrote something else in the tag. Reusing the free space in the tag is even encourage for people wanting to play with their tag.
Now that the tags where chosen we could concentrate on the terminal software. Stephan had good contacts at Google and he could lend a few Nexus phones and tablets (20 Nexus 7’s, 10 Galaxy Nexus), so an Android app was an obvious choice. With only three months left the app was build from the ground up to facilitate all the use cases for the conference needed:
- Attendee got a QR code > Scan QA > Verify validity > Write tag
- Partners can scan tag > Get information about the attendee
- Redeem bag, party and meal vouchers
These use-cases could easily be packed into one application and had the added benefit that we could easily switch the phone or tablet to a different mode: A phone that in the morning was a ticket scanner could be a meal scanner at lunchtime.
We had the luxury that we had Nexus devices so they were guaranteed that they had the latest version of the Android OS and we didn’t need to make any compromise of what we could use. We used the build-in database to cache the data and used a sync provider to keep all the devices up to date, even in the turbulent wifi network. All devices and it’s OS proved to be rock solid and survived the all day hammering of the NFC stack. The only real scary moment I had was that Google announced the new Android SDK at Devoxx and immediately started to push Jelly Bean 4.2 to our devices. Luckily there where no problems but I had preferred to had tested it first.
Looking back this was a successful NFC Devoxx and we learned a lot. I’m certain we will continue next year with new and improved software and hardware. I want to especially thank Stephan to give me the opportunity to help with Devoxx this year and “Alexis Moussine-Pouchkine” from Google to give use all the support. See you all next year @ Devoxx.