- 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
75 lines
1.7 KiB
Markdown
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. |