Readable Project (2020)
A low-cost, replicable, and decentralized library system dimension: 11”x9.8”
medium: RaspberryPi, Arduino, keyboard, RFID-sensor, jailbroken Kindle
I was commissioned to develop an RFID-based library system for an independent research studio to promote workplace reading and communication. Unlike traditional C++ or web-based systems, this version operates entirely on Raspberry Pi, making it accessible and easy to customize. By forgoing administrator-user permission hierarchies, it fosters an open and communicative environment tailored to the studio’s needs, creating a relaxed and enjoyable learning experience.
"I love that there’s no ‘admin’ role here. If I want to add a book or help a friend, I can just do it. It creates such an open and welcoming environment—it truly feels like a library for everyone.”
— one of the participants
System Setup - Hardware
- RFID Reader: it can recognize user cards and stickers on the books.
- VeriNanoC (programmed in Arduino): an Arduino compatible board. It receives RFID data and sends it to the buffer of RaspberryPi.
- Raspberry Pi (programmed in Python): a small single-board computer based on Linux system. It is where the code for the whole system runs.
- Kindle: this jailbroken kindle is used to remotely login into the terminal of Raspberry Pi. It serves as the screen and trackpad of Raspberry Pi.
- Numeric keyboard: it can be used as another way to type something in the command line, other than touching the screen of kindle.
- Thermal printer (not shown on the sketch): it prints out people’s borrowing and returning record in real time. The printouts fade after a few months.
The thermal printer sitting on the bookshelf with a roll of paper showing all the recent borrowing/returning records.
translation: Maggie finished reading the book “How to Win Friends and Influence People” by Dale Carnegie in 9 days.
System Setup - Software
Flow chart showing the user process and the structure and function of python files
Main menu of the system shown on the e-ink screen of kindle
Codes are open-sourced on GitHub repo: Maggie-29/readable_project
Data Storage
Apart from the .py files, I stored all kinds of data produced in SQLite in the file Library.db, with three tables altogether.
Data Storage
Apart from the .py files, I stored all kinds of data produced in SQLite in the file Library.db, with three tables altogether.
- BOOKNAME.db stores all the book info in the system.
- PERSONNAME.db stores all the user info in the system.
- allData.db stores all the returning/borrowing records.