System Integration Design Document

Inventory Tracking System for Storerooms

Prepared by Tshepho | Last Updated: June 15, 2025, 03:15 PM CAT

1. Introduction

1.1 Purpose

This document outlines the system integration design for the Inventory Tracking System, reflecting the implemented solution using a Raspberry Pi 3 GUI, RF Ideas RDR-7081AKU USB RFID reader, RP2040 microcontroller with RFID-RC522 for manual redundancy, 16x2 I2C LCD display, and CSV database. The system enables efficient inventory management, with the RP2040 processing manual RFID scans and updating the LCD, while the Raspberry Pi 3 handles CSV logging, GUI updates, and internal verification of scanned data.

1.2 Scope

The scope includes integrating the Tkinter GUI on Raspberry Pi 3, RDR-7081AKU for primary RFID scanning, RP2040 with RFID-RC522 for manual redundancy, a 16x2 I2C LCD for standalone data output, and CSV file system for tool tracking, borrower registration, and quantity management. Verification is handled internally on the Pi 3, with no external confirmation to RP2040. External network connectivity and hardware fabrication are excluded.

1.3 Definitions and Acronyms

2. System Overview

2.1 System Description

The Inventory Tracking System is a Raspberry Pi 3-based solution designed to track up to 20 tools in a storeroom. It primarily uses the RF Ideas RDR-7081AKU USB RFID reader to scan tags via USB HID, with the RP2040 and RFID-RC522 as a manual redundancy mechanism. The RP2040 processes RFID scans when triggered and updates a 16x2 I2C LCD with scan results and Tkinter GUI messages. The Raspberry Pi 3 manages the Tkinter GUI, logs transactions to a CSV file, and verifies scanned data internally. The system ensures reliability through dual-RFID capability and dual-display output.

2.2 System Architecture

2.3 Integration Objectives

3. Integration Requirements

3.1 Functional Requirements

3.2 Non-Functional Requirements

3.3 Constraints

4. Integration Design

4.1 System Components

4.2 Integration Points

4.3 Data Flow

Data flows from the RDR-7081AKU to the Raspberry Pi 3 as USB HID keyboard input, updating the Tkinter GUI and logging to CSV after internal verification. The Raspberry Pi 3 sends TEXT: commands to the RP2040 for LCD updates. For manual scans, the user triggers the RP2040 via the GUI button; the RP2040 reads the RFID-RC522, sends RFID: to the Pi 3, which processes it, updates the GUI, logs to CSV, and sends a TEXT: message for LCD display.

4.4 Interface Specifications

4.5 Integration Workflow

  1. User scans an RFID tag with the RDR-7081AKU → UID is captured as USB HID input via Tkinter Entry widget.
  2. Raspberry Pi 3 updates the Tkinter GUI, verifies the UID internally against the CSV file, and logs to CSV.
  3. User manually triggers RP2040/RC522 scan via the “Scan with RP2040/RC522” GUI button → RP2040 reads UID with RFID-RC522, sends RFID: to Raspberry Pi 3.
  4. Raspberry Pi 3 processes the RFID: message, verifies it internally, updates the GUI, and logs to CSV.
  5. Raspberry Pi 3 sends TEXT: (e.g., “CHECKOUT ”) to RP2040 for LCD update after logging.
  6. If RDR-7081AKU fails, user initiates failover by clicking “Scan with RP2040/RC522” → RP2040 reads UID, sends RFID:, and Pi 3 processes it.
  7. User registers a borrower with a second scan via the “Register Borrower” button; verification and updates occur on both GUI and LCD based on Pi 3 logic.

5. Integration Strategy

5.1 Integration Approach

Primary integration via USB HID with RDR-7081AKU, with serial integration for RP2040/RFID-RC522 as a manual redundancy mechanism and for LCD updates, using a phased approach to test each component.

5.2 Tools and Technologies

5.3 Phased Integration
  • Ghant Chart
  • 6. Testing and Validation

    6.1 Testing Strategy

    Conduct unit tests for RDR-7081AKU (USB HID input), RP2040/RFID-RC522 (manual RFID scan, serial), and LCD (I2C output), integration tests for data flow and internal verification on Raspberry Pi 3, and end-to-end tests with 10 tools and 5 borrowers.

    6.2 Test Cases

    6.3 Validation Criteria

    7. Deployment and Maintenance

    7.1 Deployment Plan

    Deploy on Raspberry Pi 3 with MicroSD card, with the LCD powered via the RP2040. Test in a staging environment (local workshop) before storeroom use, ongoing as of June 15, 2025.

    7.2 Monitoring and Maintenance

    Use Pi’s terminal logs and LCD output for debugging. Schedule weekly CSV backups to a USB drive and monitor serial RFID: and TEXT: messages.

    7.3 Rollback Plan

    Revert to a previous Python script, RP2040 sketch, and CSV backup if issues arise.

    8. Risks and Mitigation

    8.1 Potential Risks

    8.2 Mitigation Strategies

    9. Conclusion

    The Inventory Tracking System is implemented with a working integration of the Raspberry Pi 3 GUI, RDR-7081AKU, RP2040 with RFID-RC522 for manual redundancy, 16x2 I2C LCD, and CSV logging as of June 15, 2025, 03:15 PM CAT. The system provides efficient inventory tracking with internal verification on the Pi 3, dual-display updates, and manual failover. Ongoing testing and enclosure packaging are in progress to meet storeroom management needs.

    10. Appendices

    10.1 References

    10.2 Glossary

    10.3 Diagrams

    System Architecture Diagram: [To be updated to reflect manual RP2040 trigger and internal Pi 3 verification, showing Raspberry Pi 3 → USB HID → RDR-7081AKU; Serial (unidirectional RFID: and TEXT:) → RP2040 → SPI/RFID-RC522, I2C/LCD].