2026-04-11 22:36:14 +01:00
2026-02-19 17:45:10 +00:00
2026-02-19 17:45:10 +00:00
2026-02-19 17:45:10 +00:00
2026-04-11 22:36:14 +01:00
2026-04-11 22:36:14 +01:00

desk-reminder

Simple C program that listens for events from the Alcor Micro AU9540 USB smartcard reader.

  • USB device: 058f:9540 (Alcor Micro Corp. AU9540 Smartcard Reader)
  • Implementation: raw USB using libusb-1.0

The program opens the reader by VID/PID, locates the first interrupt IN endpoint, and prints any data received (typically slot change / card insertion or removal notifications). It does not implement full CCID or smartcard protocols, but is useful for observing low-level traffic.

Build

On Debian/Ubuntu and similar, install the development package:

sudo apt-get update
sudo apt-get install libusb-1.0-0-dev

Then build the program:

cd desk-reminder
make

This produces a desk_reminder binary.

Run

You may need root or appropriate udev rules to access USB devices directly:

cd desk-reminder
sudo ./desk_reminder

Expected behavior:

  • The program prints which bus/device it opened.
  • It reports which interrupt IN endpoint it is listening on.
  • When the AU9540 reports an event (for example, card insertion/removal), the program prints the raw bytes received.

Press Ctrl+C to stop the program.

Notes

For higher-level smartcard operations (APDU exchange, PIN verification, etc.), you would typically use PC/SC (pcscd, libpcsclite) instead of talking to the reader via raw USB. This example focuses on listening to the USB interrupt endpoint.

Description
Intermittently reminds the user to alternate their desk position between standing and sitting.
Readme GPL-3.0 378 KiB
Languages
C 95.2%
Makefile 4.8%