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
  • ANZ Access Debit Card With Visa Paywave (Perth, Australia)
  • Shandong City Card (Shandong, China)
  • GetMeThere (Manchester, UK)

  • Stagecoach (Manchester, UK)
  • Translink Daylink (Belfast, Northern Ireland)
  • CitySmart (Edinburgh, UK)

  • ScotRail (UK)

  • Leap visitor (Dublin, Ireland)
  • University of Manchester staff card (Manchester, UK)

Don't appear to Work

  • Octopus (Hong Kong)
  • Frenchie's staff card (CRC check fails on card ID)
  • Single-use ov-chipkaart (Netherlands)
  • Single-use SPT Subway (Glasgow, UK)
  • Tesco loyalty card (UK)

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: