ArduinoUNO-Q/WORKFLOW.md
Edwin Noorlander 29dd118dc3 Initial Arduino UNO Q template with LED Matrix functionality
- Complete MPU-MCU communication setup
- LED Matrix text display with configurable parameters
- Configuration management with personal data protection
- Git template with .gitignore for sensitive data
- Automated build and deployment scripts
- SSH key management and service scripts
2025-11-13 12:26:47 +01:00

75 lines
1.7 KiB
Markdown

# Arduino UNO Q Development Workflow
Complete development setup for Arduino UNO Q with MCU (Arduino) and MPU (Linux/Python) support.
## Files Created
- `main.py` - Python application for MPU (Linux side)
- `setup_ssh.sh` - SSH configuration script
- `build.sh` - Arduino CLI build script for MCU
- `upload.sh` - Deployment script for both MCU and MPU
- `package.json` - Updated with build/deploy scripts
## Setup Instructions
### 1. Initial SSH Setup
```bash
npm run setup
```
This configures SSH key authentication for file transfer to the Arduino UNO Q.
### 2. Build and Deploy
```bash
# Build the Arduino sketch for MCU
npm run build
# Upload both MCU sketch and Python script to MPU
npm run upload
# Or do both in one command
npm run deploy
```
### 3. Management Commands
```bash
# Check service status
npm run status
# View live logs
npm run logs
# Restart the Python application
npm run restart
# Stop the application
npm run stop
```
## Architecture
### MCU (STM32U585)
- Runs Arduino sketches
- Handles real-time operations
- Compiled via Arduino CLI
- Uploaded via USB/serial
### MPU (Qualcomm Dragonwing QRB2210)
- Runs Debian Linux
- Executes Python applications
- Communicates with MCU via Bridge library
- Managed via SSH
### Communication
- Python app uses named pipes (`/tmp/unoq_cmd.pipe`)
- Status updates via JSON file (`/tmp/unoq_status.json`)
- Bridge library for MCU-MPU communication
## Usage
1. **Connect Arduino UNO Q** via USB-C
2. **Run setup**: `npm run setup`
3. **Edit your code** in `src/main.ino` and `main.py`
4. **Deploy**: `npm run deploy`
5. **Monitor**: `npm run logs`
The Python application will start automatically and communicate with the Arduino sketch via the Bridge library.