System Integration Design Document

Inventory Tracking System for Storerooms

Prepared by Tshepho | Last Updated: May 27, 2025, 05:25 AM CAT

1. Introduction

1.1 Purpose

This document outlines the system integration design for the Inventory Tracking System, aiming to ensure seamless interaction between the Raspberry Pi 3 GUI, RF Ideas RDR-7081AKU USB RFID reader, RP2040 microcontroller (for redundancy with RFID-RC522), 16x2 I2C LCD display, and CSV database. The goal is to enable efficient inventory management, with the RP2040 processing RFID scans and updating the LCD, while the Raspberry Pi 3 handles CSV logging, GUI updates, and verification of scanned data and transactions with the RP2040, ensuring mutual confirmation and reliable operation for a storeroom environment.

1.2 Scope

The scope includes integrating the Tkinter GUI (Raspberry Pi 3), RDR-7081AKU for primary RFID scanning, RP2040 firmware (Arduino) with RFID-RC522 for redundancy, a 16x2 I2C LCD for standalone data output, and CSV file system to facilitate tool tracking, borrower registration, and quantity management with bidirectional verification. It excludes external network connectivity (e.g., cloud storage) and hardware fabrication processes (covered in separate documentation).

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 redundancy mechanism. The RP2040 processes RFID scans, updates a 16x2 I2C LCD with scan results and Tkinter GUI messages, and verifies data with the Raspberry Pi 3. The Raspberry Pi 3 manages the Tkinter GUI, logs transactions to a CSV file, and confirms transactions with the RP2040, ensuring mutual validation. The system ensures reliability through a dual-RFID setup and dual-display capability.

2.2 System Architecture

The system comprises:

Reference: See Appendix 10.3 for the architecture diagram.

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 verification. The Raspberry Pi 3 sends `TEXT:` or `SCAN` commands to the RP2040. For scans, the RP2040 processes the RFID-RC522 data (if primary fails), sends `VERIFY:` to the Pi 3, and awaits `CONFIRM:`. Upon receiving `CONFIRM:VALID`, the RP2040 updates the LCD and the Pi 3 logs the transaction. The Pi 3 also sends GUI messages to the RP2040 for LCD display via `TEXT:`.

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.
  2. Raspberry Pi 3 updates the Tkinter GUI, sends VERIFY: to RP2040 (via RDR-7081AKU data).
  3. RP2040 confirms the UID, sends VERIFY: back if scanned via RFID-RC522, and awaits confirmation.
  4. Raspberry Pi 3 checks CSV or user input, sends CONFIRM:VALID (or CONFIRM:INVALID) to RP2040.
  5. Upon CONFIRM:VALID, RP2040 updates LCD with “Scanned: ”, and Pi 3 logs to CSV.
  6. If RDR-7081AKU fails, user scans with RFID-RC522 → RP2040 reads UID, sends VERIFY: to Pi 3.
  7. Pi 3 verifies and sends CONFIRM:VALID, then logs and sends TEXT:Scanned for LCD.
  8. User registers a borrower via a second scan, with verification and updates on both GUI and LCD.

5. Integration Strategy

5.1 Integration Approach

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

5.2 Tools and Technologies

5.3 Phased Integration Plan

  1. Phase 1 (May 27-30): Integrate Tkinter GUI with RDR-7081AKU (USB HID) and test LCD display of GUI messages via RP2040.
  2. Phase 2 (May 31-June 3): Add RP2040 and RFID-RC522 for redundancy, test serial communication and initial verification.
  3. Phase 3 (June 4-6): Implement full bidirectional verification, connect CSV logging, and test workflow with dual displays.
  4. Phase 4 (June 7-9): Package in 3D-printed enclosure, final testing.

6. Testing and Validation

6.1 Testing Strategy

Conduct unit tests for RDR-7081AKU (USB HID input), RP2040/RFID-RC522 (RFID scan, serial), and LCD (I2C output), integration tests for data flow and verification between RP2040 and 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.

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 verification logs.

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

This document provides a comprehensive plan for integrating the Inventory Tracking System components with dual RFID readers (RDR-7081AKU and RFID-RC522 for redundancy) and dual displays (GUI and LCD), ensuring efficient division of labor between the Raspberry Pi 3 and RP2040, bidirectional verification of scanned data and transactions, seamless data flow, real-time updates, and reliable operation for storeroom management.

10. Appendices

10.1 References

10.2 Glossary

10.3 Diagrams

System Architecture Diagram: [To be added after KiCAD/Visio design, showing Raspberry Pi 3 → USB HID → RDR-7081AKU; Serial (bidirectional) → RP2040 → SPI/RFID-RC522, I2C/LCD].