Snappy Donations

You have no doubt heard the line before; technology has invaded most areas of our lives often allowing for higher productivity and convenience. That being said however, there are still some areas where technology is not being leveraged to its’ fullest extent. In order to promote the development of new ideas in such areas Snapper issued a challenge under the Summer of Tech to “demonstrate using Snapper technology to make every day life easier.”

You can read all about Snapper and their technologies on their website but essentially they are the largest contactless payment system in New Zealand. People are issued with a Snapper card (the form factor of which resembles pretty much any other card you have in your wallet) which can then be used to make quick, secure and convenient payments to any third party supporting the technology providing the card has enough funds available to make the transaction.

Myself, along with Brendan Vercoelen, came up with the idea to allow charities to accept donations via the technology. The idea had merit as the method for collecting donations at the time was (and at time of writing, still is) to stand on the side walks with buckets and offer to relieve pedestrians of any change they may have. As time has moved on less and less people carry coins due to a diminishing need as everything moves to plastic (and high bloody parking prices) and this calls for a change! (Horrible pun fully intended). Our solution aims to be that change.


The solution can be broken down into its hardware and software components which will be discussed in more detail in their respective sections but first, the ‘big picture’. A RFID reader is attached to an Android device running the Donations software and when a pedestrian swipes their card on the RFID scanner the unique ID of their card is read and passed through to the software on the device which makes and logs the transaction. Charities can then view statistics in real time to find out where the highest donation density is and so on. More on this later.

The Hardware

The basis of the hardware solution is on the Philips CL RC632 RFID Reader which is a multi-protocol 13.56MHz RFID reader and supports the ISO 14443A/B protocol which the Snapper technology is based on. The RFID reader communicates directly with an Atmel AT91SAM7S256 micro-controller which communicates with the USB controller.

Ideally the circuit would also be powered by the USB connection, removing any need for a separate power supply; however as the USB protocol works on a Host/Device architecture, the Andriod phone is treated as the device, expecting power from the host, and is not able to provide it. Therefore the device requires additional power. This is supplied from a small replaceable battery.

The hardware works by polling the card reader until a card is found. Once a card is detected, some simple validation is done, to confirm the card is a valid Snapper card, and then the card number is sent via the USB connection to the Android phone. If the transaction is successful, the application sends a signal to the card reader to rewrite the new balance on the card. An onboard buzzer plays a tune to indicate the donation was a success.

The Software

The software is designed to run on an Android smartphone, but could theoretically be adapted to run on any smartphone with a USB interface. The program has been structured into three main components:

The first is the home screen. This screen is used to show the status of the application (whether it is ready to receive input from the RFID scanner, any network issues etc). If everything is OK then it will just display the Snapper logo, if not then it will tell the user the current error. This screen is simple by design as it will only inform the user of issues if they exist, otherwise it lets them continue scanning without the chance of accidentally changing settings. The user can push the menu key to bring up a menu to change the amount being charged to the snapper cards. The default value charged to the cards is configurable.

The second screen is the statistics page. This page is used to show information about the various donations that have taken place on that day. Filters can be applied to drill down by any of the individual parameters. These are the transaction id, card id, the amount donated, the location and the time stamp.

The final screen is the map screen. This is used to view donation density. A charity can get real time information on where the hot spots are. Each location is marked on the map, the marker is clickable and will take the user to the statistics page, automatically filtering the donations for that location. A location is not considered a ‘new’ location unless it is further than 50m from any other location.

Social media seems to be the in thing right now there were plans in the pipeline to include some kind of integration with Facebook/ Twitter/ Google+. This would have allowed people who donated to enjoy the ‘I am better than thou’ feeling that comes with being a good samaritan and hopefully guilt their tight ass friends into donating too.


The Wellington City Council allows only a single charity to accept donations on any given day. There are roughly 250 weekdays in the year which means there is the potential for 250 different organisations to use this kit per year. However as each organisation will only need the kit for one day out of the year it doesn’t make sense for them to purchase one for themselves, instead they could be leased out to the charity for the day they intend to use them. The system has been designed to run more or less autonomously bar a few configuration changes which means that it shouldn’t require any formal training to use.

Wrap Up

Our solution was very well received and Snapper awarded us with first prize for our work. With a bit more time and resources it could be developed into a truly awesome system and bring the process of street donating into the digital age.


Submitted by Troy Patrick


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s