# Arduino UNO Q Project Structure ``` ArduinoUNOQ/ ├── src/ │ ├── mpu/ # Linux/MPU (Debian) side │ │ └── main.py # Python application for MPU │ └── mcu/ # MCU (STM32) side │ └── main.ino # Arduino sketch for MCU ├── build/ # Build output directory ├── Document/ # Documentation and PDFs ├── package.json # Project configuration ├── build.sh # MCU build script ├── upload.sh # Deployment script ├── setup_ssh.sh # SSH configuration └── WORKFLOW.md # Development workflow ``` ## Architecture ### MPU (Microprocessor) - Linux Side - **Location**: `src/mpu/` - **Processor**: Qualcomm Dragonwing QRB2210 (ARM Cortex-A53) - **OS**: Debian Linux - **Language**: Python 3 - **Communication**: Bridge library, SSH, named pipes ### MCU (Microcontroller) - Arduino Side - **Location**: `src/mcu/` - **Processor**: STM32U585 (ARM Cortex-M33) - **OS**: Arduino Core on Zephyr - **Language**: C++ (Arduino) - **Communication**: Bridge library, GPIO, peripherals ## Development Workflow 1. **Edit code** in respective directories: - MPU code: `src/mpu/main.py` - MCU code: `src/mcu/main.ino` 2. **Build MCU sketch**: ```bash npm run build ``` 3. **Deploy both**: ```bash npm run deploy ``` 4. **Monitor**: ```bash npm run logs ``` ## Communication - **MPU → MCU**: Bridge library commands - **MCU → MPU**: Bridge library responses - **File transfer**: SSH (SCP) - **Real-time data**: Named pipes (`/tmp/unoq_cmd.pipe`) - **Status updates**: JSON files (`/tmp/unoq_status.json`)