Inventory Tracking System for Storerooms
Prepared by Andrew | Last Updated: May 27, 2025, 04:23 AM CAT
This Fab Academy project automates tool and item management in storerooms, addressing inefficiencies and loss due to misplaced or untracked tools.
Problem
Tools in storerooms are often misplaced or untracked, leading to inefficiencies and loss. Manual tracking is error-prone and time-consuming.



Solution
The Inventory Tracking System automates tool management by:
- Scanning RFID tags using an RF Ideas RDR-7081AKU USB RFID reader to identify up to 20 tools.
- Registering borrowers via a second RFID scan (RFID-RC522) or manual UID entry as a redundancy plan.
- Displaying real-time status, inventory, and transaction logs via a Tkinter GUI on a Raspberry Pi.
- Logging transactions (tool UID, borrower UID, timestamp, action) in a CSV file.
- Allowing quantity adjustments through GUI buttons.





This system enhances efficiency, reduces loss, and ensures reliability with a manual fallback if the RFID reader fails.
Prior Work
- Coding Techroom: Using RFID for Inventory Management with Java on Raspberry Pi.
CodingTechroom
- Medium: Building an RFID Reader and Display System with Raspberry Pi Zero W 2.
Medium
- EAL: RFID Inventory Management.
EAL_Inventory_Management
- My Prior Work: Implemented Tkinter GUI with serial communication and transitioned to RDR-7081AKU.
FabAcademy_Rwanda
Fab Academy Skills
- Electronics Design: Designed a custom PCB in KiCAD to integrate Raspberry Pi, RDR-7081AKU, and optional I2C LCD.
- Embedded Programming: Programmed Raspberry Pi with Python for RFID processing, Tkinter GUI, and CSV logging.
- Digital Fabrication: Fabricated 3D-printed PLA enclosure (OpenSCAD) and laser-cut acrylic RFID tags.
- System Integration: Combined hardware (PCB, enclosure) and software (Python) for a standalone system.
Objectives
Individual Assignment
- Designed and built a system with an RF Ideas RDR-7081AKU RFID reader and Tkinter GUI on Raspberry Pi.
- Programmed to read tool UIDs, register borrowers, and log transactions in CSV.
- Fabricated a 150x100x50 mm PLA enclosure and 20x20 mm acrylic RFID tags.
Group Assignment (Optional)
- Characterized RDR-7081AKU vs. RFID-RC522 for speed and reliability (RDR-7081AKU selected for robustness).
Final Project Integration
The system is a complete Fab Academy final project, integrating electronics, programming, and fabrication.
Hardware Design
- Microcontroller: Raspberry Pi 3B+ for processing and GUI management.
- Input Device: RF Ideas RDR-7081AKU USB RFID reader and RFID-RC522 for redundancy.
- Output Device: Tkinter GUI on Raspberry Pi; optional 16x2 I2C LCD for redundancy.
- Storage: MicroSD card (8 GB+) for CSV logging.
- PCB Design: Custom PCB in KiCAD for power distribution and connections.

Fabrication
- Tool Tags: Laser-cut 20x20 mm acrylic RFID tags (13.56 MHz MIFARE Classic 1K).
- Enclosure: 3D-printed 150x100x50 mm PLA enclosure (OpenSCAD) for Raspberry Pi and RDR-7081AKU.
- PCB: Milled or ordered from JLCPCB for power and I2C connections.
Software Development
- Tool and Borrower Registration: Python script on Raspberry Pi reads RFID UIDs, logs borrower IDs, and stores data in CSV (tool_id, borrower_id, timestamp, action).
- Tracking Logic:
- Check-out: Scan tool → Scan borrower ID or manual entry → Log “checked out”.
- Check-in: Scan tool → Log “returned”.
- Display status on Tkinter GUI and optional LCD.
- Error Handling: Validates UIDs, alerts via GUI for invalid scans.
Implementation Steps
- Step 1: Set Up the Raspberry Pi 3 Environment
Time: 06:50 AM CAT, May 27, 2025
- Set up RealVNC Viewer on a host computer to access the Raspberry Pi 3 desktop remotely, ensuring keyboard and mouse connectivity.
- Update the system and install Python 3.13.3.
- Install required Python libraries (pyserial for serial communication, keyboard for USB HID input).
- Verify installations to confirm Python version and library presence.
- Duration: ~15-20 minutes.
- Step 2: Prepare the Hardware Connections
Time: 07:10 AM CAT, May 27, 2025
- Connect the RDR-7081AKU USB RFID reader to a USB port on the Raspberry Pi 3.
- Connect the RP2040 to the Raspberry Pi 3 via USB (serial port).
- Wire the RFID-RC522 to the RP2040 with SPI pins.
- Connect the 16x2 I2C LCD to the RP2040 with I2C pins.
- Test the serial connection to confirm RP2040 detection.
- Duration: ~10-15 minutes.
- Step 3: Set Up the CSV File and Initial Data
Time: 07:25 AM CAT, May 27, 2025
- Create a transactions.csv file in the working directory.
- Add header and initial data (e.g., sample tool transactions).
- Create an initial inventory dictionary with sample tools (e.g., Hammer: 5, Screwdriver: 10).
- Duration: ~10 minutes.
- Step 4: Write the Tkinter GUI Code
Time: 07:35 AM CAT, May 27, 2025
- Use Visual Studio Code to edit and test the Python Tkinter GUI code, confirming successful display of the GUI.
- Paste the Python Tkinter GUI code into the Raspberry Pi terminal to create or run the inventory tracking script.
- Duration: ~30-40 minutes.
- Step 5: Program the RP2040
Time: 08:15 AM CAT, May 27, 2025
- Install the Arduino IDE on the Raspberry Pi 3 or use a separate computer configured for RP2040.
- Use Arduino IDE to program the RP2040 with sketches for controlling the RFID-RC522 and displaying data on the 16x2 I2C LCD.
- Verify the RP2040 initializes the LCD and responds to serial commands.
- Duration: ~20-30 minutes.
- Step 6: Test the Integration
Time: 08:45 AM CAT, May 27, 2025
- Run the Tkinter GUI script with root privileges.
- Scan an RFID tag with the RDR-7081AKU and verify UID display and LCD output.
- Test RFID-RC522 scanning as a fallback.
- Send a manual message via the GUI to test LCD display.
- Check the transactions.csv file for updated entries.
- Duration: ~20-30 minutes.
- Step 7: Enhance and Finalize (Optional)
Time: 09:15 AM CAT, May 27, 2025
- Add a GUI button to trigger RFID-RC522 scans.
- Add a text entry and button for borrower registration.
- Style the GUI with blue accents for visual consistency.
- Test enhancements by re-running the script.
- Duration: ~30-60 minutes.
- Step 8: Deploy and Monitor
Time: 10:00 AM CAT, May 27, 2025
- Copy the script and CSV to a final directory and configure to run on boot (optional).
- Test the system in a staging environment (e.g., workshop).
- Monitor logs and LCD output, scheduling weekly CSV backups.
- Duration: ~15-20 minutes.
Bill of Materials (BOM)
Component | Quantity | Source | Approx. Cost |
---|---|---|---|
Raspberry Pi 3B+ | 1 | Reused/Local Fab Lab | $0 |
RF Ideas RDR-7081AKU | 1 | Amazon/RF Ideas | $150 |
RFID-RC522 | 1 | Amazon/Electronics shop | $3 |
RFID Tags (13.56 MHz) | 20 | Amazon | $10 |
16x2 I2C LCD (Optional) | 1 | Local Electronics shop | $5 |
MicroSD Card (8 GB) | 1 | Local Electronics shop | $5 |
Custom PCB | 1 | JLCPCB/In-house | $5–10 |
PLA Filament (~100g) | 1 | Local Fab Lab | $5–10 |
Acrylic Sheet (30x30 cm) | 1 | Local Fab Lab | $5 |
Misc (wires, headers) | Lot | Local Fab Lab | $2 |
Total | ~$185–195 |
Timeline (Completed)
- Day 1–2: Researched RFID readers, finalized BOM with RDR-7081AKU.
- Day 3–4: Designed PCB in KiCAD, fabricated via JLCPCB.
- Day 5–6: Modeled enclosure in OpenSCAD, 3D-printed PLA, laser-cut acrylic tags.
- Day 7–8: Programmed Raspberry Pi with Python for RFID, GUI, and CSV logging.
- Day 9–10: Assembled hardware, tested with 10 tools and 5 borrowers.
- Day 11–12: Documented process, created webpage, and recorded demo video.
Deliverables
- Hardware: Custom PCB with Raspberry Pi, RDR-7081AKU, RFID-RC522, and optional LCD.
- Fabrication: 3D-printed PLA enclosure (150x100x50 mm), 20 laser-cut acrylic RFID tags.
- Software: Python code for RFID scanning, Tkinter GUI, and CSV logging.
- Documentation: HTML webpage with schematics, code, photos, and video.
- Demo: Video showing tool check-out/check-in with borrower registration.
Questions to be Answered
- Will the RDR-7081AKU reliably scan all 20 tags in a busy storeroom?
- Is the 150x100x50 mm enclosure sufficient for the Raspberry Pi and RDR-7081AKU?
- Can the optional LCD enhance redundancy without complicating the design?
- Will the manual entry redundancy handle all edge cases (e.g., typos)?
- How durable are the laser-cut acrylic tags under workshop conditions?
Evaluation
- Functionality:
- RDR-7081AKU scans and logs transactions correctly (tested with 10 tools, 5 borrowers).
- Manual entry updates inventory and logs transactions.
- GUI reflects real-time changes.
- Design Quality:
- Enclosure fits all components with accessible USB ports.
- PCB routes power cleanly, tested with multimeter.
- Performance:
- RFID scan speed <2 seconds.
- GUI updates within 2 seconds of actions.
- Documentation:
- Submitted schematics (KiCAD), code (Python), 3D/STL files, photos/videos.
- Included lessons learned (e.g., RFID range, manual entry usability).