Files
arduino-filament-dryer/README.md
2026-07-05 10:39:57 +02:00

92 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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).