Differences between revisions 17 and 20 (spanning 3 versions)
Revision 17 as of 2012-10-04 11:49:13
Size: 2372
Editor: MarkTearle
Revision 20 as of 2013-03-18 20:11:50
Size: 2477
Editor: DavidAdam
Deletions are marked like this. Additions are marked like this.
Line 21: Line 21:
 * metroCARD (Adelaide, Australia)
Line 26: Line 27:
 * NFID Tags
Line 30: Line 32:
 * Frenchie's staff card (CRC check fails on card ID)

The snack machine has a Strong Link SL500L MIFARE smartcard reader attached.


Log in to the snack machine using your user ID and PIN and swipe your card on the blinking LED just inside the glass, and your card will be enrolled.

Next time you want to use the machine, just swipe your card and you'll be logged straight in.


Known to Work

  • UWA Staff and Student Cards
  • Smartrider (Perth, Australia)
  • Translink Go Card (Brisbane, Australia)
  • Myki (Melbourne, Australia)
  • MyWay (Canberra, Australia)

  • metroCARD (Adelaide, Australia)
  • Clipper (San Francisco, USA)
  • CharlieCard (Boston, USA)

  • Oyster (London, UK)
  • ov-chipkaart (Netherlands)
  • Reisekort (Oslo, Norway)
  • NFID Tags

Don't appear to Work

  • Octopus (Hong Kong)
  • Frenchie's staff card (CRC check fails on card ID)

Technical Details

It talks 19200 8N1 serial to a driver library written by [DAA] and was integrated into the snack machine server code by [DAG].

LDAP has been expanded to support the storage of MIFARE card serial numbers (objectClass uccDispenseAccount and attribute uccDispenseMIFARE). LDAP schema are in /services/ldap and are editable by wheel members, who can type 'make' to push the schema out to the servers.

Due to bugs in OpenLDAP, ACLs and indexes must be manually maintained in /etc/ldap/slapd.conf on LDAP servers, but failing to keep schema in sync is a good way to corrupt the LDAP database, as I found out last year.

The server code polls the MIFARE reader, looking for card serial numbers. If a card is detected, it looks the serial number up in LDAP, and attempts to log the user in. Card IDs cannot be assigned to more than one person.

If a card is swiped while a user is logged in, and that card ID is not already enrolled in LDAP, the user's LDAP object has an uccDispenseMIFARE attribute added (and the objectClass if required).

Users can edit their own MIFARE card IDs with 'ldapvi -D \(uid=$USER\) uid=$USER'.

  • Generic documentation:



  • Driver distribution: