ESP32 · Bluetooth LE · iPhone

フィラメントを知る。
その湿度を知る。

SpoolDryはフィラメントドライヤーとiPhoneをBluetoothで接続。温度と湿度をリアルタイムで確認し、エンジニアリングポリマーのプロファイルで乾燥を開始、ロック画面でタイマーを確認。アカウント不要、クラウドなし。

サブスクなし。買い切り。 · App Storeで近日公開

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

ドライヤーに足りなかったすべて

ESP32 BLE同期

ESP32とのペアリング済みBluetooth LE直接接続。確認応答付きのバージョン管理プロトコルで、常に実際の状態を表示。

エンジニアリングポリマーのデータ

PLAからPEEK、PA-CF、PPSまで。メーカー出典付きの一般的な初期目安で、公式要件としては扱いません。

ライブアクティビティタイマー

ロック画面とDynamic Islandにフィラメント、目標、現在温度、湿度、残り時間をデバイスから直接表示。

クラウド設定ゼロ

アカウントもサーバーもインターネットも不要。すべてiPhoneとドライヤーの間だけ。

温度と湿度

Sensirion SHT40の精度とリアルタイムグラフ。

スマート乾燥プロファイル

内蔵の目安と独自ブランドのプロファイル。

オフライン履歴

開始/終了湿度、平均温度、グラフと統計。

安全監視

ファームウェア制限、ウォッチドッグ、ファン回転監視、リレー、サーモスタット、温度ヒューズ。

複数デバイス

SpoolDry #1、#2…に名前を付けて切り替え。

永久アクセス

一度の支払いで今後の改善もすべて含む。

仕組み

1

ドライヤーを組み立て、ESP32-C6にファームウェアを書き込む。

2

BluetoothでSpoolDryと数秒でペアリング。

3

プロファイルを選んで乾燥開始。ロック画面で確認。

SpoolDryを組み立てる

低電圧(24 V DC)構成。商用電源は認証済みの密閉型アダプター内部のみ。庫内はファン定格により70 °Cに制限され、独立したハードウェアがソフトウェアの故障から保護します。

Espressif ESP32-C6-DevKitC-1-N8

用途
コントローラー:BLE通信、センサー、温度制御、ファームウェアの安全ロジック。
推奨仕様
ESP32-C6-WROOM-1 · RISC-V 160 MHz · BLE 5 · Wi-Fi 6 · 8 MB flash · 2× USB-C · 3.3 V logic
採用理由
Espressif公式ボード。BLE 5とNimBLEの実績、USB-C、将来のOTA用8 MBフラッシュ、大手代理店で入手可能。
購入例リンク
DigiKey · Adafruit · Espressif user guide

Sensirion SHT40 breakout (Adafruit #4885)

用途
庫内の温度と相対湿度を測定。
推奨仕様
±0.2 °C / ±1.8 %RH typ. · −40…125 °C · I²C 0x44 · STEMMA QT
採用理由
CRC付きで125 °Cまで対応する高精度デジタルセンサー。DHT11/DHT22は遅く精度も大きく劣ります。
購入例リンク
Adafruit · DigiKey

Insulated PTC air heater 24 V / 100 W

用途
ファンが庫内に送る空気を加熱。
推奨仕様
24 V DC · ~100 W (≈4.2 A) · finned aluminium · insulated housing · self-limiting ≤200 °C surface · ~113×35×26 mm
採用理由
低電圧DCで商用電源を切り替えない。風が止まってもPTCセラミックが自己温度制限します。
購入例リンク
Amazon (Bestol 24V 100W) · VXB · DBK (industrial PTC, alternative)

San Ace 80 9GA0824P4G001 (24 V, tach)

用途
PTCヒーターとスプール周りに送風し、湿った空気を排出。
推奨仕様
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
採用理由
70 °C対応の産業用ボールベアリングファン。回転信号で停止を検出します。この定格が70 °C上限の根拠です。
購入例リンク
Sanyo Denki · Mouser (9GA0824P4 series)

Infineon IRLB8721PBF logic-level N-MOSFET

用途
ヒーターPWM(Q1)、ファン(Q2)、リレーコイル(Q3)のローサイドスイッチ。
推奨仕様
30 V · 62 A · R_DS(on) 8.7 mΩ @ 4.5 V · TO-220 · with 100 Ω gate resistor + 10 kΩ pull-down each
採用理由
3.3 Vで十分にオンし、4.2 Aでもヒートシンク不要。プルダウンで起動中は全負荷オフ。
購入例リンク
Adafruit #355 · Mouser · Infineon

Omron G5LE-1A4 DC24 relay (K1)

用途
MOSFETと直列の、独立した第2のヒータースイッチ。
推奨仕様
SPST-NO · 24 V coil · 10 A contacts · + 1N4001 flyback diode
採用理由
Q1が短絡故障してもリレーが遮断。コイルは85 °Cサーモスタット経由のため、ソフトなしで過熱時に開きます。
購入例リンク
DigiKey · Omron datasheet

Cantherm F20A08505ACFA06E thermostat (TS1)

用途
庫内のハードウェア過熱保護(独立)。
推奨仕様
85 °C ±5 K · normally closed · auto-reset · potted · 2 A (coil circuit only)
採用理由
ファームウェアに関係なく85 °Cでコイル回路を開放(定格2 Aのためヒーターではなくコイルを遮断)。
購入例リンク
DigiKey · Cantherm F20 series

Cantherm SDF-DF100S thermal cutoff (TCO)

用途
ヒーター電流経路の最終手段となる復帰しないヒューズ。
推奨仕様
100 °C one-shot · 10 A AC/DC · axial · crimp, do not solder close to body
採用理由
二重故障(MOSFET短絡+リレー溶着)に対応。ヒーターダクトに取り付け、溶断したら原因を調べて交換。
購入例リンク
DigiKey

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

用途
ヒーター吹出口温度を測定し、出力制限と故障検出に使用。
推奨仕様
100 kΩ @ 25 °C · B 4267 K · glass bead to 300 °C
採用理由
庫内センサーが正常でも、ファン停止やヒーター固着を検出。
購入例リンク
Mouser

Mean Well GST220A24-R7B desktop adapter

用途
すべて24 V DCで給電。商用電源は認証済みアダプター内部だけにとどまります。
推奨仕様
24 V · 9.2 A · 221 W · enclosed, safety-certified, 3-pin IEC inlet · 4-pin DIN output
採用理由
ユーザーによる商用配線は不要。220 WでPTCの突入電流に余裕があります。
購入例リンク
Mouser · Newark

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

用途
コントローラーケースのロック付き24 V入力。
推奨仕様
4-pin DIN power jack · panel mount · 7.5 A
採用理由
電流に見合う定格。容量不足のDCジャックを避けます。
購入例リンク
DigiKey · Kycon datasheet

ATO blade fuse 7.5 A + Littelfuse inline holder

用途
配線を短絡から保護。
推奨仕様
Slow-acting automotive blade fuse on +24 V directly after the input jack
採用理由
ヒーター突入電流より大きく、配線・コネクタ定格より小さい値。
購入例リンク
Littelfuse 0FHA0002XP (Amazon) · Keystone 3557-2 PCB holder

Pololu D24V10F5 step-down regulator

用途
24 VからESP32ボードの5 Vピンへ給電。
推奨仕様
5.1–36 V in · 5 V 1 A out · 18×13 mm
採用理由
高効率スイッチング方式。リニアでは24→5 Vで過熱します。
購入例リンク
Pololu

Small parts

用途
組み立て、コネクタ、受動部品。
推奨仕様
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)
採用理由
ネジ端子とシリコン線は、ブレッドボードやPVC線より熱に強い。
購入例リンク
Adafruit Perma-Proto (Pololu) · Phoenix 1935161 (DigiKey) · Adafruit 1N4001 #755 · STEMMA QT 400 mm #5385

Hammond 1591XXDSBK ABS enclosure + insulated dry box

用途
電子回路を加熱された庫外に置き、低温に保ちます。
推奨仕様
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
採用理由
庫内に入れるのはセンサー、NTC、ヒーター、ファン、サーモスタット、TCOのみ。ヒーターダクトをPLA/PETGで印刷しないこと。
購入例リンク
Hammond 1591XX

部品表 (BOM)

部品選定部品用途数量購入例リンク
ESP32Espressif ESP32-C6-DevKitC-1-N8コントローラー:BLE通信、センサー、温度制御、ファームウェアの安全ロジック。1DigiKey · Adafruit
Temperature/humidity sensorSensirion SHT40 breakout (Adafruit #4885)庫内の温度と相対湿度を測定。1Adafruit · DigiKey
PTC heaterInsulated PTC air heater 24 V / 100 Wファンが庫内に送る空気を加熱。1Amazon (Bestol 24V 100W) · VXB
FanSan Ace 80 9GA0824P4G001 (24 V, tach)PTCヒーターとスプール周りに送風し、湿った空気を排出。1Sanyo Denki · Mouser (9GA0824P4 series)
MOSFETInfineon IRLB8721PBF logic-level N-MOSFETヒーターPWM(Q1)、ファン(Q2)、リレーコイル(Q3)のローサイドスイッチ。3Adafruit #355 · Mouser
Safety relayOmron G5LE-1A4 DC24 relay (K1)MOSFETと直列の、独立した第2のヒータースイッチ。1DigiKey · Omron datasheet
Thermostat 85 °CCantherm F20A08505ACFA06E thermostat (TS1)庫内のハードウェア過熱保護(独立)。1DigiKey · Cantherm F20 series
Thermal fuse 100 °CCantherm SDF-DF100S thermal cutoff (TCO)ヒーター電流経路の最終手段となる復帰しないヒューズ。1DigiKey
Heater NTCSemitec 104GT-2 NTC thermistor + 47 kΩ 1 % resistorヒーター吹出口温度を測定し、出力制限と故障検出に使用。1Mouser
Power supplyMean Well GST220A24-R7B desktop adapterすべて24 V DCで給電。商用電源は認証済みアダプター内部だけにとどまります。1Mouser · Newark
Power connectorKycon KPJX-PM-4S panel jack (mates with R7B plug)コントローラーケースのロック付き24 V入力。1DigiKey · Kycon datasheet
FuseATO blade fuse 7.5 A + Littelfuse inline holder配線を短絡から保護。1Littelfuse 0FHA0002XP (Amazon) · Keystone 3557-2 PCB holder
5 V regulatorPololu D24V10F5 step-down regulator24 VからESP32ボードの5 Vピンへ給電。1Pololu
Wires, terminals, passivesSmall parts組み立て、コネクタ、受動部品。1Adafruit Perma-Proto (Pololu) · Phoenix 1935161 (DigiKey)
EnclosureHammond 1591XXDSBK ABS enclosure + insulated dry box電子回路を加熱された庫外に置き、低温に保ちます。1Hammond 1591XX

リンクは2026年10月に確認した購入例です。在庫は変動します。同等定格の部品で代替可能です。

配線図

配線図

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

ESP32のセットアップ

  1. 1. 必要なハードウェア

    ESP32-C6-DevKitC-1-N8 · USB-C data cable · SHT40 + STEMMA QT cable
    (full dryer: see the Bill of Materials above)
  2. 2. Arduino IDEまたはPlatformIOをインストール

    # Arduino IDE 2.x: https://www.arduino.cc/en/software
    # or PlatformIO Core:
    python3 -m pip install -U platformio
  3. 3. 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. USBを接続

    # Use the USB-C port labelled "UART" on the DevKitC-1.
    # Unplug the 24 V supply while flashing from your computer.
  5. 5. ボードを選択

    # 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. ポートを選択

    # macOS: /dev/cu.usbserial-*  ·  Linux: /dev/ttyUSB0  ·  Windows: COM3
    arduino-cli board list
  7. 7. ライブラリをインストール

    # 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. ファームウェアをコンパイル

    cd esp32
    pio run
    # or
    arduino-cli compile --fqbn esp32:esp32:esp32c6:FlashSize=8M,PartitionScheme=custom SpoolDry
  9. 9. ファームウェアを書き込み

    pio run -t upload
    # or
    arduino-cli upload -p /dev/ttyUSB0 --fqbn esp32:esp32:esp32c6:FlashSize=8M,PartitionScheme=custom SpoolDry
  10. 10. シリアルモニターを開く

    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. BLEアドバタイズを確認

    # Any BLE scanner (e.g. nRF Connect) must show "SpoolDry-XXXX"
    # advertising service 5D0F0001-2B7E-4C8A-9B1E-53504F4F4C44
  12. 12. SpoolDryアプリを開く

    # SpoolDry → Device → Add Dryer (Bluetooth permission prompt appears)
  13. 13. デバイスを接続

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

ファームウェアのダウンロード

  • 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
ソースコードをダウンロード(.zip)

一般的な乾燥目安

公式メーカーページをもとにした一般的な初期目安で、普遍的な要件ではありません。必ずデータシートに従ってください。SpoolDryハードウェアv1は70 °Cまで。

素材一般的な温度一般的な時間SpoolDry初期値出典
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)

安全

SpoolDryハードウェアはホビー/試作プロジェクトであり、認証(CE、ULなど)は受けていません。組み立てと使用は自己責任です。
  • 温度ヒューズやサーモスタットを絶対にバイパスしないこと。
  • 損傷した配線やコネクタで使用しないこと。
  • 指定の認証済み24 V電源を使用すること。
  • ヒーター、配線、コネクタの定格を超えないこと。
  • 露出した発熱体の近くに可燃物を置かないこと。
  • 適切な耐熱ケースを使い、電子回路は高温部の外に置くこと。
  • ファームウェアに加えて独立した温度保護を使うこと。
  • 試作機を放置しないこと。

保護レイヤー

  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)

シンプルな料金

無料

0

全機能で3回の乾燥セッション、ドライヤー1台。

よくある質問

いいえ。SpoolDryはBluetooth LEでドライヤーと通信します。アカウント、サーバー、クラウドはありません。

ESP32がすべての安全制限を保ったままセッションを継続します。戻るとSpoolDryが再接続し、履歴、ウィジェット、ライブアクティビティを更新します。

Espressif ESP32-C6-DevKitC-1、Sensirion SHT40、24 V PTCヒーター、San Ace 80ファン、ロジックレベルMOSFET、リレー、85 °Cサーモスタット、100 °C温度ヒューズ、Mean Well 24 Vアダプター。上記の部品表を参照。

ハードウェアv1は庫内70 °Cまで(ファン定格)。PLA、PETG、ABS、ASA、TPU、PA、PC、繊維入りグレードに対応。PEEK、PEI、PPSは110〜150 °Cが必要です。

ドライヤーが開始コマンドを確認したときにカウントされます。失敗、アプリ起動、タイマー表示はカウントされません。

いいえ。メーカーページ(リンクあり)を要約した一般的な初期目安です。必ずデータシートに従ってください。