
Protogasm Board V2
Edging-Machines/Edging-Machines
This repository is intended to contain as much information as possible about building, designing, prototyping, and using automated edging machines.

Micropython wood kiln controller for a Pi Pico 2W (WIP)
Kiln controller is an open-source printed circuit board by stevers16, from the stevers16/kiln-controller repository on GitHub, published under the MIT licence. It is a 2-layer board of 140 × 95 mm with 38 parts on 43 nets, routed with 269 tracks and 21 vias.
It is built around the FQP30N06L. Its parts include 13 connectors, 7 resistors, 5 capacitors, 4 ICs and 2 diodes. It belongs with the RP2040 boards of this library.
A MicroPython-based lumber drying kiln controller for a passive solar kiln in the Georgian Bay area of Ontario. Designed for drying hardwood lumber (maple and beech, 0.5--1 inch thick) using multi-stage schedules derived from USDA Forest Products Laboratory references (FPL-GTR-57 and FPL-GTR-118).
The kiln is approximately 5 ft x 2 ft x 3 ft, heated passively by solar gain with a 500W ceramic PTC backup heater for shoulder-season use. A Raspberry Pi Pico 2W controls all kiln hardware. Telemetry is transmitted over LoRa (~200m) to a Raspberry Pi 4 at the cottage, which stores data in SQLite and serves a REST API for a Kivy mobile app.
| Subsystem | Component |
|---|---|
| MCU | Raspberry Pi Pico 2W |
| Temperature / RH | 2x SHT31-D (I2C, 0x44 / 0x45) |
| Moisture probes | Resistive, voltage divider, AC excitation |
| Exhaust fan | Foxconn PVA080G12Q 80mm PWM, tach feedback |
| Circulation fans | 3x Thermalright TL-C12C 120mm PWM |
| Vent dampers | 2x MG90S servo (intake + exhaust) |
| Backup heater | 500W PTC + Fotek SSR-25DA + RY85 thermal fuse |
| Current monitoring | 2x INA219 (12V rail + 5V rail) |
| Display | JC035-HVGA-ST-02 3.5" UART serial, 320x480 |
| SD card | SPI micro SD (logging) |
| LoRa radio | AI-Thinker Ra-02 433 MHz (SX1278), TX-only |
| Remote server | Raspberry Pi 4 with Ra-02 receiver |
KiCad 9.0 project with schematic and custom PCB layout is in the PCB folder.
All hardware drivers live in lib/. Every module is class-based, accepts pin numbers
as constructor arguments, and follows the pattern established in lib/exhaust.py.
| Module | Function |
|---|---|
lib/exhaust.py | 80mm exhaust fan -- PWM + tach |
lib/circulation.py | 3x 120mm circulation fans -- PWM group |
lib/vents.py | Intake + exhaust damper servos |
lib/heater.py | SSR on/off control |
lib/SHT31sensors.py | Dual SHT31 temperature + RH |
lib/moisture.py | Resistive moisture probes, species correction |
lib/current.py | INA219 DC current monitoring |
lib/lora.py | SX1278 LoRa transmitter (TX-only, register polling) |
lib/display.py | UART serial display driver + button + page system |
lib/sdcard.py | SPI SD card mount/unmount wrapper |
lib/logger.py | Event log + CSV data log to SD card |
lib/schedule.py | Multi-stage drying schedule controller |
main.py | Entry point -- asyncio control loop + WiFi AP + REST API |
config.py | Deployment configuration (SSID, key, LoRa params) |
Drying schedules are stored as JSON in schedules/ and loaded from the SD card at
runtime. Schedules are included for hard maple and beech at 0.5 in and 1 in thickness.
python update_lib.pyThis copies main.py, config.py, and all lib/ files to the Pico in one step.
The MicroPython SPI SD card driver must be deployed as sdcard_driver.py:
mpremote cp sdcard_driver.py :sdcard_driver.pympremote run test_modules.pyTests all 12 modules in sequence and reports pass/fail. Does not start WiFi or the control loop.
Pico --> SPI1 --> Ra-02 ~~LoRa~~ Ra-02 --> SPI0 --> Pi4 kiln_server
--> SQLite
--> REST API :8080 --> Kivy app
--> ntfy.sh --> phoneThe kiln_server/ Python package (in progress) runs as a systemd service on the Pi4.
It receives LoRa packets from the Pico, writes telemetry and alerts to SQLite, serves
a REST API for the mobile app, and pushes fault alerts via ntfy.sh.
The Pico also runs a WiFi AP and exposes its own REST API (port 80) for direct local control when within range.
Schedules follow USDA FPL kiln-drying recommendations:
schedules/maple_05in.json, schedules/maple_1in.jsonschedules/beech_05in.json, schedules/beech_1in.jsonEach schedule has 9 stages: 7 drying stages + equalizing + conditioning. Stage advance is automatic (MC% + minimum time) for drying stages, and time-only for equalizing/conditioning. Manual advance is available via the REST API.
Pico firmware is at the integration stage. All 12 lib/ modules are complete and
hardware-tested. main.py is implemented and pending full hardware integration test.
The Pi4 kiln_server daemon and Kivy mobile app are next.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 3 | 10k | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R2, R3, R5 |
| 2 | 100 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R1, R4 |
| 2 | 100k | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R6, R7 |
| 2 | 100nF | Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mm | C1, C3 |
| 2 | 10uF | Capacitor_THT:CP_Radial_D5.0mm_P2.00mm | C4, C5 |
| 2 | 1N5819 | Diode_THT:D_DO-41_SOD81_P10.16mm_Horizontal | D1, D2 |
| 2 | FQP30N06L | Package_TO_SOT_THT:TO-220-3_Vertical | Q1, Q2 |
| 1 | 100uF | Capacitor_THT:CP_Radial_D8.0mm_P3.50mm | C2 |
| 1 | 12V 3A PS Header | TerminalBlock_MetzConnect:TerminalBlock_MetzConnect_Type101_RT01602HBWC_1x02_P5.08mm_Horizontal | J1 |
| 1 | Circulation Fan Header | KilnFootprintLibrary:TerminalBlock_MetzConnect_Type101_RT01604HBWC_1x04_P5.08mm_Horizontal | J3 |
| 1 | Display Button Header | TerminalBlock_MetzConnect:TerminalBlock_MetzConnect_Type101_RT01602HBWC_1x02_P5.08mm_Horizontal | J11 |
| 1 | Display Header | KilnFootprintLibrary:TerminalBlock_MetzConnect_Type101_RT01604HBWC_1x04_P5.08mm_Horizontal | J10 |
| 1 | Exhaust Fan Header | KilnFootprintLibrary:TerminalBlock_MetzConnect_Type101_RT01604HBWC_1x04_P5.08mm_Horizontal | J2 |
| 1 | Exhaust Servo Header | KilnFootprintLibrary:TerminalBlock_MetzConnect_Type101_RT01604HBWC_1x04_P5.08mm_Horizontal | J5 |
| 1 | Heater SSR Header | TerminalBlock_MetzConnect:TerminalBlock_MetzConnect_Type101_RT01602HBWC_1x02_P5.08mm_Horizontal | J9 |
| 1 | INA219 Current Sensor (12V) | KilnFootprintLibrary:INA219_Module | U2 |
| 1 | INA219 Current Sensor (5V) | KilnFootprintLibrary:INA219_Module | U3 |
| 1 | Intake Servo Header | KilnFootprintLibrary:TerminalBlock_MetzConnect_Type101_RT01604HBWC_1x04_P5.08mm_Horizontal | J6 |
| 1 | Intake Zone SHT31 Header | KilnFootprintLibrary:TerminalBlock_MetzConnect_Type101_RT01604HBWC_1x04_P5.08mm_Horizontal | J8 |
| 1 | LM2596_MOD_5V | KilnFootprintLibrary:LM2596_Module_5V | PS1 |
| 1 | Lumber Zone SHT31 Header | KilnFootprintLibrary:TerminalBlock_MetzConnect_Type101_RT01604HBWC_1x04_P5.08mm_Horizontal | J7 |
| 1 | Moisture Probe 1 Header | TerminalBlock_MetzConnect:TerminalBlock_MetzConnect_Type101_RT01602HBWC_1x02_P5.08mm_Horizontal | J12 |
| 1 | Moisture Probe 2 Header | TerminalBlock_MetzConnect:TerminalBlock_MetzConnect_Type101_RT01602HBWC_1x02_P5.08mm_Horizontal | J13 |
| 1 | Ra-02_433MHz | KilnFootprintLibrary:LoRa_Module | U4 |
| 1 | Raspberry Pi Pico 2W | Module:RaspberryPi_Pico_Common_THT | U1 |
| 1 | SD Card Module | Connector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_Vertical | J4 |
The 34 most common of 38 parts.
It measures 140 × 95 mm and has 2 copper layers, 1.6 mm thick.
38 parts, built around the FQP30N06L. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the stevers16/kiln-controller repository on GitHub, at the commit this page was made from: the board is PCB/KilnController.kicad_pcb and its schematic PCB/KilnController.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Edging-Machines/Edging-Machines
This repository is intended to contain as much information as possible about building, designing, prototyping, and using automated edging machines.

mattwach/epaper_clock
Autosetting clock based on an epaper display. Runs about a year on batteries and has basic weather telemetry (temperature, pressure, humidity).


phfbertoleti/placa_lorawan
Repositório oficial da placa LoRaWAN, um kit de desenvolvimento para protótipos IoT.


phfbertoleti/placa_monitoramento_lorawan
Placa - Monitoramento LoRaWAN

dwkennedy/ballooning
Mutli-function balloon related project (variometer, balloon cut-down, let down reel, tracking)
