add readme

This commit is contained in:
2026-07-05 10:39:57 +02:00
parent 161cbab8a7
commit 2e11b41855
2 changed files with 161 additions and 0 deletions

91
README.md Normal file
View File

@@ -0,0 +1,91 @@
# Voron filament dryer
Arduino Nano firmware for a chamber dryer with four SHT31 humidity/temperature sensors, PID heater control, and PWM fan mixing.
## Pinout (Arduino Nano)
All settings below are defined in `include/config.h`.
| Signal | Nano pin | Notes |
|--------|----------|-------|
| I2C SDA | A4 | Shared bus (Wire) |
| I2C SCL | A5 | Shared bus (Wire) |
| TCA9548A mux | I2C `0x70` | 8-channel I2C multiplexer |
| SHT31 sensors | Mux channels 2, 3, 4, 5 | One sensor per channel |
| SHT31 address | `0x44` | ADDR pin low; use `0x45` if ADDR is high |
| Fan | D5 | 24 V fan via N-channel MOSFET (hardware PWM) |
| Heater | A2 | Solid-state relay (burst control) |
USB serial: **115200 baud**.
## Dev setup
### PlatformIO
This repo uses the PlatformIO CLI (see `.vscode/tasks.json`). If PlatformIO is already installed under `~/.platformio/penv/`, use that directly — you do not need to run the web installer again.
```bash
~/.platformio/penv/bin/pio --version
~/.platformio/penv/bin/pio run # build
~/.platformio/penv/bin/pio run -t upload # flash
~/.platformio/penv/bin/pio device monitor # serial monitor
```
On Arch Linux / CachyOS, install via the package manager if you prefer:
```bash
sudo pacman -S platformio
```
If upload cannot find the port, add to `platformio.ini`:
```ini
upload_port = /dev/ttyUSB0 ; or /dev/ttyACM0, or a /dev/serial/by-id/... path
monitor_port = /dev/ttyUSB0
```
List available ports:
```bash
ls -la /dev/serial/by-id/
```
### Serial port permissions (Linux)
| Distribution | Group for serial access |
|--------------|-------------------------|
| Debian, Ubuntu, Raspberry Pi OS | `dialout` |
| Arch Linux, CachyOS | `uucp` |
```bash
# Debian / Ubuntu / Pi
sudo usermod -aG dialout $USER
# Arch / CachyOS
sudo usermod -aG uucp $USER
```
Log out and back in after adding your user to the group.
## First run
1. Flash firmware and open the serial monitor at 115200 baud.
2. Confirm `TCA9548A detected` and four valid sensor channels (`ch2``ch5`).
3. Run PID autotune once per physical unit (values are stored in EEPROM):
```
target 0
autotune 45
```
4. Start drying:
```
target 55
```
Send `help` over serial for all commands (`target`, `fan on/off`, `log on/off`, `status`, `pid`, etc.).
## Raspberry Pi logging
Optional CSV capture over USB is documented in [pi-instructions.md](pi-instructions.md).