ESP32 · Bluetooth LE · iPhone

Conoce tu filamento.
Conoce su humedad.

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

SpoolDry app dashboard showing PA-CF drying at 67.2 °C and 18 % humidity

Todo lo que le faltaba a tu secador

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.

Datos de polímeros técnicos

De PLA a PEEK, PA-CF y PPS: pautas típicas con fuentes de fabricantes, nunca presentadas como requisito oficial.

Temporizadores en Actividad en vivo

La pantalla bloqueada y la Dynamic Island muestran filamento, objetivo, temperatura, humedad y tiempo restante, directo del dispositivo.

Cero nube

Sin cuenta, sin servidor, sin internet. Todo queda entre tu iPhone y tu secador.

Temperatura y humedad

Precisión Sensirion SHT40 con gráficos en vivo.

Perfiles de secado

Pautas integradas y tus propios perfiles de marca.

Historial sin conexión

Humedad inicial/final, temperatura media, gráficos y estadísticas.

Supervisión de seguridad

Límites de firmware, watchdog, tacómetro, relé, termostato y fusible térmico.

Varios dispositivos

Nombra SpoolDry #1, #2 y más, y cambia entre ellos.

Acceso de por vida

Paga una vez. Todas las mejoras futuras incluidas.

Cómo funciona

1

Construye el secador o graba el firmware en el ESP32-C6.

2

Empareja con SpoolDry por Bluetooth en segundos.

3

Elige un perfil y empieza a secar. Síguelo en la pantalla bloqueada.

Construye tu SpoolDry

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.

Espressif ESP32-C6-DevKitC-1-N8

Función
Controlador: BLE, sensores, regulación y toda la lógica de seguridad del firmware.
Especificación recomendada
ESP32-C6-WROOM-1 · RISC-V 160 MHz · BLE 5 · Wi-Fi 6 · 8 MB flash · 2× USB-C · 3.3 V logic
Por qué
Placa oficial de Espressif, BLE 5 nativo con NimBLE maduro, USB-C, 8 MB de flash para OTA futuro, disponible en grandes distribuidores.
Enlaces de ejemplo
DigiKey · Adafruit · Espressif user guide

Sensirion SHT40 breakout (Adafruit #4885)

Función
Mide la temperatura y la humedad relativa de la cámara.
Especificación recomendada
±0.2 °C / ±1.8 %RH typ. · −40…125 °C · I²C 0x44 · STEMMA QT
Por qué
Sensor digital moderno, preciso, con CRC y apto hasta 125 °C. DHT11/DHT22 son más lentos y mucho menos precisos.
Enlaces de ejemplo
Adafruit · DigiKey

Insulated PTC air heater 24 V / 100 W

Función
Calienta el aire que el ventilador impulsa por la cámara.
Especificación recomendada
24 V DC · ~100 W (≈4.2 A) · finned aluminium · insulated housing · self-limiting ≤200 °C surface · ~113×35×26 mm
Por qué
Baja tensión (sin conmutar red) y la cerámica PTC limita su propia temperatura si falla el flujo de aire.
Enlaces de ejemplo
Amazon (Bestol 24V 100W) · VXB · DBK (industrial PTC, alternative)

San Ace 80 9GA0824P4G001 (24 V, tach)

Función
Mueve aire a través del calefactor PTC y alrededor de las bobinas; extrae el aire húmedo.
Especificación recomendada
80×80×25 mm · 24 V · 0.21 A · 67 CFM · pulse sensor (2 p/rev) · −20…+70 °C · 60,000 h at 60 °C
Por qué
Ventilador industrial de rodamientos hasta 70 °C con tacómetro: el firmware detecta si se bloquea. Esto fija el límite de 70 °C.
Enlaces de ejemplo
Sanyo Denki · Mouser (9GA0824P4 series)

Infineon IRLB8721PBF logic-level N-MOSFET

Función
Interruptores de lado bajo para el PWM del calefactor (Q1), ventilador (Q2) y bobina del relé (Q3).
Especificación recomendada
30 V · 62 A · R_DS(on) 8.7 mΩ @ 4.5 V · TO-220 · with 100 Ω gate resistor + 10 kΩ pull-down each
Por qué
Conduce plenamente con 3,3 V y se mantiene frío a 4,2 A sin disipador. Los pull-down mantienen todo APAGADO al arrancar.
Enlaces de ejemplo
Adafruit #355 · Mouser · Infineon

Omron G5LE-1A4 DC24 relay (K1)

Función
Segundo interruptor del calefactor, independiente y en serie con el MOSFET.
Especificación recomendada
SPST-NO · 24 V coil · 10 A contacts · + 1N4001 flyback diode
Por qué
Si Q1 falla en cortocircuito, el relé corta igualmente. Su bobina pasa por el termostato de 85 °C: el sobrecalentamiento lo abre sin software.
Enlaces de ejemplo
DigiKey · Omron datasheet

Cantherm F20A08505ACFA06E thermostat (TS1)

Función
Protección de hardware independiente contra sobretemperatura de la cámara.
Especificación recomendada
85 °C ±5 K · normally closed · auto-reset · potted · 2 A (coil circuit only)
Por qué
Abre el circuito de la bobina a 85 °C sin importar el firmware (2 A: conmuta la bobina, no el calefactor).
Enlaces de ejemplo
DigiKey · Cantherm F20 series

Cantherm SDF-DF100S thermal cutoff (TCO)

Función
Fusible de último recurso, no rearmable, en el circuito del calefactor.
Especificación recomendada
100 °C one-shot · 10 A AC/DC · axial · crimp, do not solder close to body
Por qué
Cubre el doble fallo (MOSFET en corto + relé soldado). Móntalo en el conducto; sustitúyelo si se abre y busca la causa.
Enlaces de ejemplo
DigiKey

Semitec 104GT-2 NTC thermistor + 47 kΩ 1 % resistor

Función
Mide la temperatura en la salida del calefactor para limitar potencia y detectar fallos.
Especificación recomendada
100 kΩ @ 25 °C · B 4267 K · glass bead to 300 °C
Por qué
Detecta un ventilador parado o un calefactor bloqueado aunque el sensor de cámara sea normal.
Enlaces de ejemplo
Mouser

Mean Well GST220A24-R7B desktop adapter

Función
Alimenta todo con 24 V CC. La tensión de red queda dentro de este adaptador certificado.
Especificación recomendada
24 V · 9.2 A · 221 W · enclosed, safety-certified, 3-pin IEC inlet · 4-pin DIN output
Por qué
Sin cableado de red por el usuario. 220 W dejan margen para el pico de arranque del PTC.
Enlaces de ejemplo
Mouser · Newark

Kycon KPJX-PM-4S panel jack (mates with R7B plug)

Función
Entrada de 24 V con bloqueo en la caja del controlador.
Especificación recomendada
4-pin DIN power jack · panel mount · 7.5 A
Por qué
Dimensionada para la corriente; evita conectores jack insuficientes.
Enlaces de ejemplo
DigiKey · Kycon datasheet

ATO blade fuse 7.5 A + Littelfuse inline holder

Función
Protege el cableado de cortocircuitos.
Especificación recomendada
Slow-acting automotive blade fuse on +24 V directly after the input jack
Por qué
Por encima del pico del calefactor pero por debajo del cableado y conectores.
Enlaces de ejemplo
Littelfuse 0FHA0002XP (Amazon) · Keystone 3557-2 PCB holder

Pololu D24V10F5 step-down regulator

Función
Alimenta el pin de 5 V del ESP32 desde 24 V.
Especificación recomendada
5.1–36 V in · 5 V 1 A out · 18×13 mm
Por qué
Regulador conmutado eficiente; uno lineal se calentaría al bajar de 24 a 5 V.
Enlaces de ejemplo
Pololu

Small parts

Función
Montaje, conectores y componentes pasivos.
Especificación recomendada
Perma-Proto board · Phoenix Contact 1935161 terminal blocks · 3× 100 Ω, 4× 10 kΩ, 1× 47 kΩ 1 % · 2× 1N4001 · STEMMA QT 400 mm cable · 18 AWG silicone wire (heater) · 22 AWG (signals)
Por qué
Bornes y cable de silicona toleran mejor el calor que protoboards y PVC.
Enlaces de ejemplo
Adafruit Perma-Proto (Pololu) · Phoenix 1935161 (DigiKey) · Adafruit 1N4001 #755 · STEMMA QT 400 mm #5385

Hammond 1591XXDSBK ABS enclosure + insulated dry box

Función
Mantiene la electrónica fría y fuera de la cámara caliente.
Especificación recomendada
152×82×50 mm controller box outside the hot zone · chamber: rigid, insulated box rated ≥ 90 °C (e.g. PP/ABS with foil-faced insulation), heater duct in aluminium or ASA/PC
Por qué
Solo sensor, NTC, calefactor, ventilador, termostato y TCO van dentro. Nunca imprimas el conducto en PLA/PETG.
Enlaces de ejemplo
Hammond 1591XX

Lista de materiales

ComponentePieza elegidaFunciónCant.Enlaces de ejemplo
ESP32Espressif ESP32-C6-DevKitC-1-N8Controlador: BLE, sensores, regulación y toda la lógica de seguridad del firmware.1DigiKey · Adafruit
Temperature/humidity sensorSensirion SHT40 breakout (Adafruit #4885)Mide la temperatura y la humedad relativa de la cámara.1Adafruit · DigiKey
PTC heaterInsulated PTC air heater 24 V / 100 WCalienta el aire que el ventilador impulsa por la cámara.1Amazon (Bestol 24V 100W) · VXB
FanSan Ace 80 9GA0824P4G001 (24 V, tach)Mueve aire a través del calefactor PTC y alrededor de las bobinas; extrae el aire húmedo.1Sanyo Denki · Mouser (9GA0824P4 series)
MOSFETInfineon IRLB8721PBF logic-level N-MOSFETInterruptores de lado bajo para el PWM del calefactor (Q1), ventilador (Q2) y bobina del relé (Q3).3Adafruit #355 · Mouser
Safety relayOmron G5LE-1A4 DC24 relay (K1)Segundo interruptor del calefactor, independiente y en serie con el MOSFET.1DigiKey · Omron datasheet
Thermostat 85 °CCantherm F20A08505ACFA06E thermostat (TS1)Protección de hardware independiente contra sobretemperatura de la cámara.1DigiKey · Cantherm F20 series
Thermal fuse 100 °CCantherm SDF-DF100S thermal cutoff (TCO)Fusible de último recurso, no rearmable, en el circuito del calefactor.1DigiKey
Heater NTCSemitec 104GT-2 NTC thermistor + 47 kΩ 1 % resistorMide la temperatura en la salida del calefactor para limitar potencia y detectar fallos.1Mouser
Power supplyMean Well GST220A24-R7B desktop adapterAlimenta todo con 24 V CC. La tensión de red queda dentro de este adaptador certificado.1Mouser · Newark
Power connectorKycon KPJX-PM-4S panel jack (mates with R7B plug)Entrada de 24 V con bloqueo en la caja del controlador.1DigiKey · Kycon datasheet
FuseATO blade fuse 7.5 A + Littelfuse inline holderProtege el cableado de cortocircuitos.1Littelfuse 0FHA0002XP (Amazon) · Keystone 3557-2 PCB holder
5 V regulatorPololu D24V10F5 step-down regulatorAlimenta el pin de 5 V del ESP32 desde 24 V.1Pololu
Wires, terminals, passivesSmall partsMontaje, conectores y componentes pasivos.1Adafruit Perma-Proto (Pololu) · Phoenix 1935161 (DigiKey)
EnclosureHammond 1591XXDSBK ABS enclosure + insulated dry boxMantiene la electrónica fría y fuera de la cámara caliente.1Hammond 1591XX

Enlaces de ejemplo verificados en octubre de 2026; la disponibilidad cambia. Sirven piezas equivalentes.

Esquema de cableado

Esquema de cableado

Pines del ESP32-C6

GPIOFunctionComponentDirNotes
GPIO23I²C SDASHT40I/OArduino default SDA on ESP32-C6
GPIO22I²C SCLSHT40Out100 kHz, 25 ms timeout, bus recovery
GPIO18Heater PWMQ1 gate (100 Ω, 10 kΩ pull-down)OutLEDC 1 kHz, 10-bit, soft-start
GPIO21Heater enableQ3 gate → relay K1 coilOutHIGH only while PREHEATING/DRYING
GPIO19Fan enableQ2 gate (100 Ω, 10 kΩ pull-down)OutForced ON whenever heating
GPIO20Fan tachSan Ace pulse sensorIn10 kΩ pull-up to 3V3, 2 pulses/rev
GPIO2Heater NTC (ADC1_CH2)104GT-2 + 47 kΩ to 3V3In12 dB attenuation, 8-sample average
GPIO8Status LEDOn-board RGB LEDOutStrapping pin; LED only
GPIO9Local buttonOn-board BOOT buttonInShort: stop · 3 s: reset fault · 10 s: clear bonds
5V / GNDPowerPololu D24V10F5 output—Do not also power from USB while on 24 V without care

Configuración del ESP32

  1. 1. Hardware necesario

    ESP32-C6-DevKitC-1-N8 · USB-C data cable · SHT40 + STEMMA QT cable
    (full dryer: see the Bill of Materials above)
  2. 2. Instalar Arduino IDE o PlatformIO

    # Arduino IDE 2.x: https://www.arduino.cc/en/software
    # or PlatformIO Core:
    python3 -m pip install -U platformio
  3. 3. Instalar soporte ESP32

    # 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
  4. 4. Conectar USB

    # Use the USB-C port labelled "UART" on the DevKitC-1.
    # Unplug the 24 V supply while flashing from your computer.
  5. 5. Elegir placa

    # 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)
  6. 6. Elegir puerto

    # macOS: /dev/cu.usbserial-*  ·  Linux: /dev/ttyUSB0  ·  Windows: COM3
    arduino-cli board list
  7. 7. Instalar bibliotecas

    # Library Manager → "NimBLE-Arduino" by h2zero ≥ 2.5.1
    arduino-cli lib install "NimBLE-Arduino@2.5.1"
    # PlatformIO installs it automatically (lib_deps)
  8. 8. Compilar firmware

    cd esp32
    pio run
    # or
    arduino-cli compile --fqbn esp32:esp32:esp32c6:FlashSize=8M,PartitionScheme=custom SpoolDry
  9. 9. Grabar firmware

    pio run -t upload
    # or
    arduino-cli upload -p /dev/ttyUSB0 --fqbn esp32:esp32:esp32c6:FlashSize=8M,PartitionScheme=custom SpoolDry
  10. 10. Abrir monitor serie

    pio 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
  11. 11. Verificar anuncio BLE

    # Any BLE scanner (e.g. nRF Connect) must show "SpoolDry-XXXX"
    # advertising service 5D0F0001-2B7E-4C8A-9B1E-53504F4F4C44
  12. 12. Abrir la app SpoolDry

    # SpoolDry → Device → Add Dryer (Bluetooth permission prompt appears)
  13. 13. Conectar dispositivo

    # 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)

Descarga del firmware

  • Version: 1.0.0 · BLE Protocol v1
  • Board: Espressif ESP32-C6-DevKitC-1-N8 (8 MB)
  • Framework: Arduino-ESP32 3.3.x (PlatformIO: pioarduino)
  • Dependencies: NimBLE-Arduino 2.5.x (h2zero)
  • Configuration: SpoolDry/src/core/Config.h (pins, limits)
  • Partitions: SpoolDry/partitions.csv (2× 3 MB OTA slots)
  • Tests: make -C test/host test (33 safety & protocol tests)
  • Service UUID: 5D0F0001-2B7E-4C8A-9B1E-53504F4F4C44
Descargar código fuente (.zip)

Pautas de secado típicas

Pautas 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.

MaterialTemperatura típicaTiempo típicoInicio SpoolDryFuentes
PLA45–60 °C4–8 h50 °C · 6 h · <20% RHBambu Lab: 50–60 °C · 8 h (blast oven)
Prusa Research: 45 °C · 6 h
Fiberlogy: 50 °C · 4 h
3DXTECH: 45 °C · 4 h
PETG55–70 °C4–8 h65 °C · 6 h · <20% RHBambu Lab: 60–70 °C · 8 h (blast oven)
Prusa Research: 55 °C · 6 h
Fiberlogy: 60 °C · 4 h
3DXTECH: 65 °C · 4 h
ABS60–85 °C4–8 h70 °C · 6 h · <20% RHBambu Lab: 75–85 °C · 8 h (blast oven)
Fiberlogy: 60 °C · 4 h
3DXTECH: 80 °C · 4 h
ASA65–85 °C4–8 h70 °C · 6 h · <20% RHBambu Lab: 75–85 °C · 8 h (blast oven)
Prusa Research: 80 °C · 4 h
Fiberlogy: 80 °C · 4 h
3DXTECH: 80 °C · 4 h
TPU50–75 °C4–8 h60 °C · 6 h · <15% RHBambu Lab: 65–75 °C · 8 h (blast oven)
Prusa Research: 60 °C · 4–6 h
3DXTECH: 65 °C · 4 h
PA (Nylon)70–90 °C4–12 h70 °C · 12 h · <10% RHBambu Lab: 75–85 °C · 8–12 h (blast oven)
Fiberlogy: 70 °C · 4 h
3DXTECH: 80 °C · 4 h / 90 °C · 4–6 h
PC70–90 °C4–8 h70 °C · 8 h · <15% RHPolymaker: 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+
PVA55–85 °C4–12 h65 °C · 8 h · <15% RHRaise3D: 80 °C · 8–12 h
Bambu Lab: 75–85 °C · 8–12 h (blast oven)
3DXTECH: 65 °C · 4 h
BVOH50–85 °C4–12 h55 °C · 6 h · <15% RHFiberlogy: 50 °C · 4 h
Bambu Lab: 75–85 °C · 8–12 h (blast oven)
PEEK 110–150 °C120–150 °C3–6 h70 °C · 6 h · <10% RH3DXTECH: 150 °C · 3 h
PEI / ULTEM 110–150 °C130–150 °C4–8 h70 °C · 6 h · <10% RH3DXTECH: 150 °C · 4–6 h / 130 °C · 4–6 h
Prusa Research: 150 °C · 8 h
PPS 110–150 °C110–140 °C4–12 h70 °C · 6 h · <10% RHBambu Lab: 110–140 °C · 8–12 h (blast oven)
3DXTECH: 110 °C · 4 h
PA-CF70–100 °C4–12 h70 °C · 12 h · <10% RHBambu 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 °C75–100 °C4–16 h70 °C · 12 h · <10% RHForward 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-CF60–70 °C4–8 h65 °C · 6 h · <20% RHBambu Lab: 60–70 °C · 8 h (blast oven)
3DXTECH: 65 °C · 4 h
PLA-CF45–60 °C4–8 h50 °C · 6 h · <20% RHBambu Lab: 50–60 °C · 8 h (blast oven)
PC-CF 110–150 °C80–120 °C4–8 h70 °C · 10 h · <15% RHPrusa Research: 90 °C · 4 h
3DXTECH: 120 °C · 4 h
ASA-CF65–85 °C4–8 h70 °C · 6 h · <20% RH3DXTECH: 80 °C · 4 h
Bambu Lab: 75–85 °C · 8 h (blast oven)
PPS-CF 110–150 °C110–140 °C8–12 h70 °C · 6 h · <10% RHBambu Lab: 110–140 °C · 8–12 h (blast oven)

Seguridad

El hardware SpoolDry es un proyecto aficionado / prototipo. No está certificado (sin CE, UL ni similares). Lo construyes y usas bajo tu responsabilidad.
  • Nunca puentees el fusible térmico ni el termostato.
  • Nunca uses cableado o conectores dañados.
  • Usa la fuente de 24 V certificada indicada.
  • No superes los valores nominales del calefactor, cables y conectores.
  • Mantén los materiales inflamables lejos de los elementos calefactores.
  • Usa una caja adecuada y resistente al calor; la electrónica fuera de la zona caliente.
  • Usa protección térmica independiente además del firmware.
  • No dejes un prototipo experimental sin vigilancia.

Capas de protección

  1. Firmware: 80 °C absolute, target +8 °C/30 s, sensor CRC & plausibility, fan tach, heater-NTC derating, runaway & stuck-heater detection, 5 s watchdog
  2. Heater defaults OFF: 10 kΩ gate pull-downs, outputs driven LOW first at boot, sessions never resume after reset
  3. Two independent switches in the heater path: MOSFET Q1 + relay K1
  4. 85 °C bimetal thermostat opens the relay coil without software
  5. 100 °C one-shot thermal cutoff in the heater current
  6. Self-limiting PTC element (power collapses without airflow)
  7. 7.5 A fuse · certified, enclosed 24 V supply (no user mains wiring)

Precio sencillo

Gratis

0

3 secados completos con todas las funciones, un secador.

Preguntas frecuentes

No. SpoolDry habla con tu secador por Bluetooth LE. Sin cuenta, sin servidor y sin nube.

El ESP32 sigue con la sesión por sí solo con todos los límites de seguridad. Al volver, SpoolDry se reconecta y actualiza historial, widgets y Actividad en vivo.

Una Espressif ESP32-C6-DevKitC-1, un sensor Sensirion SHT40, un calefactor PTC de 24 V, un ventilador San Ace 80, MOSFET lógicos, un relé, un termostato de 85 °C, un fusible térmico de 100 °C y un adaptador Mean Well de 24 V. Consulta la lista.

El hardware v1 se limita a 70 °C en la cámara (ventilador). Cubre PLA, PETG, ABS, ASA, TPU, PA, PC y grados con fibra. PEEK, PEI y PPS necesitan 110–150 °C.

Cuenta cuando el secador confirma el inicio. Intentos fallidos, aperturas de la app y vistas del temporizador nunca cuentan.

No. Son pautas típicas resumidas de páginas de fabricantes (enlazadas). Sigue siempre la ficha técnica.