Differences between revisions 17 and 18
Revision 17 as of 2012-10-04 11:49:13
Size: 2372
Editor: MarkTearle
Revision 18 as of 2013-01-21 17:03:58
Size: 2408
Editor: MarkTearle
Deletions are marked like this. Additions are marked like this.
Line 21: Line 21:
 * metroCARD (Adelaide, Australia)

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)

Don't appear to Work

  • Octopus (Hong Kong)

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: