The Simple Player of Coded Cards
Description
Many years ago Viktor and Einida wanted a way to play media that brought back the tactile sensations of flipping through vinyl albums or CDs.
Everything about the project evolved over the years.
There are two main versions. The SPOCC (Simple Player of Coded Cards) which is kinda obsolete.
The EPOCC (Extended Player of Coded Cards). This one is based on using VLC and something to convert the RFID into USB Serial UART.

History
The original version.
Back in 2014 the first version we made used QR codes and a RasPI camera to decode them. We would usually stick the code to something tactile like a business card or discarded floppy disk.

SPOCC
Bill Of Materials BOM
Raspberry Pi - any one will do. Or a normal desktop computer capable of running VLC for EPOCC.
RFID Card Reader 13.56MHz Mifare: UID Reader/Writer & Programmer - This device shows up as a keyboard and is for the SPOCC not for the EPOCC. Alternative Link
RFID Sticker tag 13.56mhz Round 25mm Adhesive Back 50pcs and here is an alternative link
Vinyl Sticker paper
SPOCC Software
- The Bare Minimum version.
- The Slightly More Advanced version.
To make everything work on a RasPi it is necessary to use the legacy version 32bit of the Raspberry Pi OS. This version still has omxplayer which is needed to get things to work. "New" old functionality with Raspberry Pi OS Legacy - Raspberry Pi
EPOCC - Extended Player of Coded Cards.
A more advanced version that is meant to control VLC in the background.
With the demise of omxplayer in the normal RasPI os, this is the way to go.
It uses a device to read RFID codes and send them over USB UART Serial. A python program sits in the background and controls a running instance of VLC.
Trinket M0 Version
Trinket M0 Arduino Version software

Software
- epocc_vlc.py - This version shells out to qdbus. (It was ported from php long ago.)
- spocc_vlc_pydbus.py - this version was rewritten to use pydbus instead of shelling out.
- an example database.txt
python3 ./spocc_vlc.py -q=False -s=/dev/ttyACM0 -b=115200
If -q=True is set the scanned code will be added to the VLC playlist.
Without -q or with -q=False whatever is playing will be immediately stopped and the new media will be played.
-s should be set to the serial port that the RFID reader appears on with -b being the baud rate.
Artwork Files
Coaster printables
Notes:
I intend to add special cards to do various actions.
Examples: * Scan a special card to stop VLC. * Scan a card to Pause VLC. * Scan a card to go to next. * Scan a special card to cause the system to reboot or shutdown. (On a raspi of course.)
Manual for Orange Card Reader
It is possible to get the RFID-RC522 to talk to uart. See this arduino forum thread. RC522 RFID-RC522 Switching SPI to UART interface or i2c ! POSSIBLE ! - Projects / Networking, Protocols, and Devices - Arduino Forum Archive of the Drawing by N37 in that thread. It is probably not necessary since to hook to a computer one still needs to convert the UART to usb serial.
Similar Projects
Our goal was to make an offline player. But many people have had the same general idea. Many went with using cards or tokens as a front end to online services.
https://github.com/brendandawes/PlasticPlayer
https://hicks.design/journal/moo-card-player
Use Android Phone And NFC Album Tag To Automatically Play Music – Siliconsphere
MoodPlay – MoodBlocks There was a short lived one for sonos.
