Sincronía ESP32 BLE
Enlace Bluetooth LE directo y emparejado con el ESP32. Protocolo versionado con comandos confirmados: la app muestra siempre el estado real.
ESP32 · Bluetooth LE · iPhone
SpoolDry conecta tu secador de filamento al iPhone por Bluetooth. Mira la temperatura y la humedad en vivo, inicia el secado con perfiles de polímeros técnicos y sigue el temporizador en la pantalla bloqueada. Sin cuenta. Sin nube.
Sin suscripción. Compra única. · Próximamente en el App Store

Enlace Bluetooth LE directo y emparejado con el ESP32. Protocolo versionado con comandos confirmados: la app muestra siempre el estado real.
De PLA a PEEK, PA-CF y PPS: pautas típicas con fuentes de fabricantes, nunca presentadas como requisito oficial.
La pantalla bloqueada y la Dynamic Island muestran filamento, objetivo, temperatura, humedad y tiempo restante, directo del dispositivo.

Sin cuenta, sin servidor, sin internet. Todo queda entre tu iPhone y tu secador.
Precisión Sensirion SHT40 con gráficos en vivo.
Pautas integradas y tus propios perfiles de marca.
Humedad inicial/final, temperatura media, gráficos y estadísticas.
Límites de firmware, watchdog, tacómetro, relé, termostato y fusible térmico.
Nombra SpoolDry #1, #2 y más, y cambia entre ellos.
Paga una vez. Todas las mejoras futuras incluidas.
Construye el secador o graba el firmware en el ESP32-C6.
Empareja con SpoolDry por Bluetooth en segundos.
Elige un perfil y empieza a secar. Síguelo en la pantalla bloqueada.
Arquitectura de baja tensión (24 V CC): la tensión de red queda dentro de un adaptador certificado y cerrado. La cámara se limita a 70 °C por el ventilador; hardware independiente protege ante fallos de software.
| Componente | Pieza elegida | Función | Cant. | Enlaces de ejemplo |
|---|---|---|---|---|
| ESP32 | Espressif ESP32-C6-DevKitC-1-N8 | Controlador: BLE, sensores, regulación y toda la lógica de seguridad del firmware. | 1 | DigiKey · Adafruit |
| Temperature/humidity sensor | Sensirion SHT40 breakout (Adafruit #4885) | Mide la temperatura y la humedad relativa de la cámara. | 1 | Adafruit · DigiKey |
| PTC heater | Insulated PTC air heater 24 V / 100 W | Calienta el aire que el ventilador impulsa por la cámara. | 1 | Amazon (Bestol 24V 100W) · VXB |
| Fan | San Ace 80 9GA0824P4G001 (24 V, tach) | Mueve aire a través del calefactor PTC y alrededor de las bobinas; extrae el aire húmedo. | 1 | Sanyo Denki · Mouser (9GA0824P4 series) |
| MOSFET | Infineon IRLB8721PBF logic-level N-MOSFET | Interruptores de lado bajo para el PWM del calefactor (Q1), ventilador (Q2) y bobina del relé (Q3). | 3 | Adafruit #355 · Mouser |
| Safety relay | Omron G5LE-1A4 DC24 relay (K1) | Segundo interruptor del calefactor, independiente y en serie con el MOSFET. | 1 | DigiKey · Omron datasheet |
| Thermostat 85 °C | Cantherm F20A08505ACFA06E thermostat (TS1) | Protección de hardware independiente contra sobretemperatura de la cámara. | 1 | DigiKey · Cantherm F20 series |
| Thermal fuse 100 °C | Cantherm SDF-DF100S thermal cutoff (TCO) | Fusible de último recurso, no rearmable, en el circuito del calefactor. | 1 | DigiKey |
| Heater NTC | Semitec 104GT-2 NTC thermistor + 47 kΩ 1 % resistor | Mide la temperatura en la salida del calefactor para limitar potencia y detectar fallos. | 1 | Mouser |
| Power supply | Mean Well GST220A24-R7B desktop adapter | Alimenta todo con 24 V CC. La tensión de red queda dentro de este adaptador certificado. | 1 | Mouser · Newark |
| Power connector | Kycon KPJX-PM-4S panel jack (mates with R7B plug) | Entrada de 24 V con bloqueo en la caja del controlador. | 1 | DigiKey · Kycon datasheet |
| Fuse | ATO blade fuse 7.5 A + Littelfuse inline holder | Protege el cableado de cortocircuitos. | 1 | Littelfuse 0FHA0002XP (Amazon) · Keystone 3557-2 PCB holder |
| 5 V regulator | Pololu D24V10F5 step-down regulator | Alimenta el pin de 5 V del ESP32 desde 24 V. | 1 | Pololu |
| Wires, terminals, passives | Small parts | Montaje, conectores y componentes pasivos. | 1 | Adafruit Perma-Proto (Pololu) · Phoenix 1935161 (DigiKey) |
| Enclosure | Hammond 1591XXDSBK ABS enclosure + insulated dry box | Mantiene la electrónica fría y fuera de la cámara caliente. | 1 | Hammond 1591XX |
Enlaces de ejemplo verificados en octubre de 2026; la disponibilidad cambia. Sirven piezas equivalentes.
| GPIO | Function | Component | Dir | Notes |
|---|---|---|---|---|
GPIO23 | I²C SDA | SHT40 | I/O | Arduino default SDA on ESP32-C6 |
GPIO22 | I²C SCL | SHT40 | Out | 100 kHz, 25 ms timeout, bus recovery |
GPIO18 | Heater PWM | Q1 gate (100 Ω, 10 kΩ pull-down) | Out | LEDC 1 kHz, 10-bit, soft-start |
GPIO21 | Heater enable | Q3 gate → relay K1 coil | Out | HIGH only while PREHEATING/DRYING |
GPIO19 | Fan enable | Q2 gate (100 Ω, 10 kΩ pull-down) | Out | Forced ON whenever heating |
GPIO20 | Fan tach | San Ace pulse sensor | In | 10 kΩ pull-up to 3V3, 2 pulses/rev |
GPIO2 | Heater NTC (ADC1_CH2) | 104GT-2 + 47 kΩ to 3V3 | In | 12 dB attenuation, 8-sample average |
GPIO8 | Status LED | On-board RGB LED | Out | Strapping pin; LED only |
GPIO9 | Local button | On-board BOOT button | In | Short: stop · 3 s: reset fault · 10 s: clear bonds |
5V / GND | Power | Pololu D24V10F5 output | — | Do not also power from USB while on 24 V without care |
ESP32-C6-DevKitC-1-N8 · USB-C data cable · SHT40 + STEMMA QT cable
(full dryer: see the Bill of Materials above)# Arduino IDE 2.x: https://www.arduino.cc/en/software
# or PlatformIO Core:
python3 -m pip install -U platformio# Arduino IDE → Settings → Additional boards manager URLs:
https://espressif.github.io/arduino-esp32/package_esp32_index.json
# Boards Manager → install "esp32 by Espressif Systems" ≥ 3.3.12
# arduino-cli
arduino-cli core update-index --additional-urls https://espressif.github.io/arduino-esp32/package_esp32_index.json
arduino-cli core install esp32:esp32# Use the USB-C port labelled "UART" on the DevKitC-1.
# Unplug the 24 V supply while flashing from your computer.# Arduino IDE: Tools → Board → esp32 → "ESP32C6 Dev Module"
# Flash Size: 8MB · Partition Scheme: Custom (uses SpoolDry/partitions.csv)
# PlatformIO: board = esp32-c6-devkitc-1 (already in platformio.ini)# macOS: /dev/cu.usbserial-* · Linux: /dev/ttyUSB0 · Windows: COM3
arduino-cli board list# Library Manager → "NimBLE-Arduino" by h2zero ≥ 2.5.1
arduino-cli lib install "NimBLE-Arduino@2.5.1"
# PlatformIO installs it automatically (lib_deps)cd esp32
pio run
# or
arduino-cli compile --fqbn esp32:esp32:esp32c6:FlashSize=8M,PartitionScheme=custom SpoolDrypio run -t upload
# or
arduino-cli upload -p /dev/ttyUSB0 --fqbn esp32:esp32:esp32c6:FlashSize=8M,PartitionScheme=custom SpoolDrypio device monitor -b 115200
# expected:
SpoolDry firmware 1.0.0 (BLE protocol v1) ready as "SpoolDry-A1B2"
Advertising SpoolDry service 5D0F0001-2B7E-4C8A-9B1E-53504F4F4C44# Any BLE scanner (e.g. nRF Connect) must show "SpoolDry-XXXX"
# advertising service 5D0F0001-2B7E-4C8A-9B1E-53504F4F4C44# SpoolDry → Device → Add Dryer (Bluetooth permission prompt appears)# Tap "SpoolDry-XXXX" → accept the iOS pairing request
# New phones can pair within 5 min after power-on
# (or hold BOOT for 10 s to clear bonds and reopen pairing)SpoolDry/src/core/Config.h (pins, limits)SpoolDry/partitions.csv (2× 3 MB OTA slots)make -C test/host test (33 safety & protocol tests)5D0F0001-2B7E-4C8A-9B1E-53504F4F4C44Pautas iniciales típicas de páginas oficiales de fabricantes, no un requisito universal. Sigue siempre la ficha técnica. El hardware SpoolDry v1 llega a 70 °C.
| Material | Temperatura típica | Tiempo típico | Inicio SpoolDry | Fuentes |
|---|---|---|---|---|
| PLA | 45–60 °C | 4–8 h | 50 °C · 6 h · <20% RH | Bambu Lab: 50–60 °C · 8 h (blast oven) Prusa Research: 45 °C · 6 h Fiberlogy: 50 °C · 4 h 3DXTECH: 45 °C · 4 h |
| PETG | 55–70 °C | 4–8 h | 65 °C · 6 h · <20% RH | Bambu Lab: 60–70 °C · 8 h (blast oven) Prusa Research: 55 °C · 6 h Fiberlogy: 60 °C · 4 h 3DXTECH: 65 °C · 4 h |
| ABS | 60–85 °C | 4–8 h | 70 °C · 6 h · <20% RH | Bambu Lab: 75–85 °C · 8 h (blast oven) Fiberlogy: 60 °C · 4 h 3DXTECH: 80 °C · 4 h |
| ASA | 65–85 °C | 4–8 h | 70 °C · 6 h · <20% RH | Bambu Lab: 75–85 °C · 8 h (blast oven) Prusa Research: 80 °C · 4 h Fiberlogy: 80 °C · 4 h 3DXTECH: 80 °C · 4 h |
| TPU | 50–75 °C | 4–8 h | 60 °C · 6 h · <15% RH | Bambu Lab: 65–75 °C · 8 h (blast oven) Prusa Research: 60 °C · 4–6 h 3DXTECH: 65 °C · 4 h |
| PA (Nylon) | 70–90 °C | 4–12 h | 70 °C · 12 h · <10% RH | Bambu Lab: 75–85 °C · 8–12 h (blast oven) Fiberlogy: 70 °C · 4 h 3DXTECH: 80 °C · 4 h / 90 °C · 4–6 h |
| PC | 70–90 °C | 4–8 h | 70 °C · 8 h · <15% RH | Polymaker: 70–80 °C · 6–8 h Bambu Lab: 75–85 °C · 8 h (blast oven) Prusa Research: 85 °C · 5 h 3DXTECH: 120 °C · 4 h+ |
| PVA | 55–85 °C | 4–12 h | 65 °C · 8 h · <15% RH | Raise3D: 80 °C · 8–12 h Bambu Lab: 75–85 °C · 8–12 h (blast oven) 3DXTECH: 65 °C · 4 h |
| BVOH | 50–85 °C | 4–12 h | 55 °C · 6 h · <15% RH | Fiberlogy: 50 °C · 4 h Bambu Lab: 75–85 °C · 8–12 h (blast oven) |
| PEEK 110–150 °C | 120–150 °C | 3–6 h | 70 °C · 6 h · <10% RH | 3DXTECH: 150 °C · 3 h |
| PEI / ULTEM 110–150 °C | 130–150 °C | 4–8 h | 70 °C · 6 h · <10% RH | 3DXTECH: 150 °C · 4–6 h / 130 °C · 4–6 h Prusa Research: 150 °C · 8 h |
| PPS 110–150 °C | 110–140 °C | 4–12 h | 70 °C · 6 h · <10% RH | Bambu Lab: 110–140 °C · 8–12 h (blast oven) 3DXTECH: 110 °C · 4 h |
| PA-CF | 70–100 °C | 4–12 h | 70 °C · 12 h · <10% RH | Bambu Lab: 75–85 °C · 8–12 h (blast oven) Prusa Research: 90 °C · 6 h Fiberlogy: 80 °C · 4 h 3DXTECH: 90 °C · 4 h |
| PA-GF 110–150 °C | 75–100 °C | 4–16 h | 70 °C · 12 h · <10% RH | Forward AM (BASF): 100 °C · 4–16 h Fiberlogy: 80 °C · 4 h 3DXTECH: 90 °C · 4 h Bambu Lab: 75–85 °C · 8–12 h (blast oven) |
| PETG-CF | 60–70 °C | 4–8 h | 65 °C · 6 h · <20% RH | Bambu Lab: 60–70 °C · 8 h (blast oven) 3DXTECH: 65 °C · 4 h |
| PLA-CF | 45–60 °C | 4–8 h | 50 °C · 6 h · <20% RH | Bambu Lab: 50–60 °C · 8 h (blast oven) |
| PC-CF 110–150 °C | 80–120 °C | 4–8 h | 70 °C · 10 h · <15% RH | Prusa Research: 90 °C · 4 h 3DXTECH: 120 °C · 4 h |
| ASA-CF | 65–85 °C | 4–8 h | 70 °C · 6 h · <20% RH | 3DXTECH: 80 °C · 4 h Bambu Lab: 75–85 °C · 8 h (blast oven) |
| PPS-CF 110–150 °C | 110–140 °C | 8–12 h | 70 °C · 6 h · <10% RH | Bambu Lab: 110–140 °C · 8–12 h (blast oven) |
0
3 secados completos con todas las funciones, un secador.
$19.99
Secados ilimitados, varios secadores, todas las mejoras. El App Store muestra el precio local (EE. UU.: 19,99 $).
Sin suscripción. Compra única.