add readme
This commit is contained in:
91
README.md
Normal file
91
README.md
Normal 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).
|
||||
Reference in New Issue
Block a user