92 lines
2.4 KiB
Markdown
92 lines
2.4 KiB
Markdown
# 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).
|