I started on a new project recently, I'm naming Pi Passport. To give some credit to relevant parties, this was an idea I partially came up with - after a long twitter conversation with Craig and Ryan, we came up with the full idea:


Pi passport is intended to be a card you pick up at your first Raspberry Jam. You can then scan it on the NFC reader on the door, which will allow you to register, and then display how many achievements you've picked up from this scan. It's possible to have multiple NFC points inside the Jam, of which the other machines can then have quizzes which test the user's knowledge on what they've learned in that particular area. It’s also possible if the user would rather use their own NFC to scan their own, for example oyster card or NFC ring/wristband some people now own.



The Jam holders can chose to have a big set up, with a screen showing the console output, raspberry pi, NFC scanner and other necessary bits like wifi connection. It is however possible to set up a config which is simpler, by using NFC, Rpi, WiFi and an LED indicating scan has been successful. Whilst this is cut down a lot, it's also possible to check your own achievements online so showing them isn't always necessary.

This could be extended to have things like achievements based on users number of jams, jams on different continents and put in a competition for say, the number of jams attended in a year.


Here I'm going to cover every step of the way, from the hardware and software on the Pi, to the backend up in the Clouds somewhere.

Technology I'm using:


Client side

  1. Raspberry Pi model B+. You could make this project with any model, so long as with model A you have your wifi properly set up so you don't have to use keyboard/mouse direct input.
  2. Explore NFC addon from Farnell element14
  3. Wifi module
  4. MicroSD card with raspbian preloaded and set up with my WiFi credentials: I find it far easier to SSH than to use screens etc.
  5. Laptop with SSH set up: PuTTy is a good program to do this with on Windows 7


Server side

For the server, I've decided on using windows Azure: this is so that I can explore how it works, and also because I know a few people who've recommended it for ease of use and code stub generation. If this project continues past a month I'll probably have to either port or get some sponsorship on the project, so we'll see how that goes.

I'm intending on sharing this in several steps:

  1. Setting up NFC
  2. Creating an NFC class
  3. Creating an admin interface for Jam makers to add achievements from the machine
  4. Creating the Cloud service
  5. Connecting the two together


As each blog is written I'll connect the links.