Reader Drivers
Reader drivers are software components that enable Zaparoo Core to communicate with different types of reader hardware. Each driver implements the specific protocol and communication method required for a particular reader type.
How Drivers Work
When Zaparoo Core starts, it:
- Loads all enabled reader drivers
- Attempts to auto-detect connected readers (if enabled)
- Establishes connections to detected or manually configured readers
- Begins listening for token scans
Most users don't need to worry about drivers - they work automatically! Auto-detection is enabled by default and works for most hardware.
Available Drivers
NFC Readers
NFC readers are the most common type, supporting NFC tags, cards, and compatible toys (Amiibo, Lego Dimensions, etc.).
| Driver ID | Hardware | Platforms | Documentation |
|---|---|---|---|
pn532, pn532_uart | PN532 USB modules | All platforms | PN532 USB |
pn532_i2c, pn532_spi | PN532 bare modules | All platforms | PN532 Module |
acr122_usb | ACR122U reader | Linux, MiSTer | ACR122U |
acr122_pcsc | ACR122U reader | Windows | ACR122U |
Optical Readers
| Driver ID | Hardware | Platforms | Documentation |
|---|---|---|---|
optical_drive | CD/DVD/Blu-ray drives | Linux-based platforms | Optical Drive |
Display Devices
| Driver ID | Hardware | Platforms | Documentation |
|---|---|---|---|
tty2oled | TTY2OLED serial displays | All platforms | TTY2OLED |
Protocol & Virtual Readers
These drivers enable custom hardware integration and automation:
| Driver ID | Purpose | Platforms | Documentation |
|---|---|---|---|
simple_serial | Custom microcontroller readers | All platforms | Simple Serial |
file | File-based virtual reader | All platforms | File Reader |
Configuration
Auto-Detection
By default, Zaparoo Core automatically detects most readers:
[readers]
auto_detect = true # Default setting
Manual Reader Configuration
To manually specify a reader, add a readers.connect section to your config.toml:
[[readers.connect]]
driver = 'pn532_uart'
path = '/dev/ttyUSB0'
See individual hardware documentation for driver-specific configuration options.
Driver-Specific Settings
You can control individual drivers with readers.drivers sections:
[readers.drivers.tty2oled]
enabled = true # Enable disabled-by-default drivers
[readers.drivers.simple_serial]
enabled = false # Disable problematic drivers
auto_detect = false # Disable auto-detect for specific drivers
Troubleshooting
Reader Not Detected
- Check auto-detect is enabled - Set
auto_detect = truein config.toml - Enable debug logging - Set
debug_logging = truein config.toml - Check hardware connection - Verify USB cable, power, etc. and make sure the cable is a data cable, not power-only
- Review driver documentation - See hardware-specific troubleshooting
- Try manual configuration - Explicitly configure the reader
Multiple Readers
You can connect multiple readers simultaneously:
[[readers.connect]]
driver = 'pn532_uart'
path = '/dev/ttyUSB0'
[[readers.connect]]
driver = 'pn532_uart'
path = '/dev/ttyUSB1'
[[readers.connect]]
driver = 'optical_drive'
path = '/dev/sr0'
Each reader operates independently and can scan tokens.
See Also
- Readers Overview - Hardware reader information and recommendations
- Configuration - Complete reader configuration reference
- Tokens - Physical tokens that readers can scan
- Platforms - Platform-specific reader support