Skip to content

Alternative firmware for ESP32 based Feizer PTS200 soldering iron. Full asynchronous non-blocking code using RTOS threads and events

License

Notifications You must be signed in to change notification settings

vortigont/ESPIron-PTS200

Repository files navigation

PlatformIO CI

ESPIron PTS200

Firmware for Feizer PTS200 soldering iron.

I've started this project as a fork of Songguo PTS200 to completely rework original firmware. My goals is to create a well-structured firmware with a flexible design.

Currently project is in it's early development stage. Additional features and UI redesign will follow.

Discussion forum thread (in russian).

Telegram group LampDevs (Russian)

WIP:

  • decomposite project into independent tasks and RTOS threads
  • revised temperture probes scheduling
  • exclude useless tight loops
  • removed ALL blocking code, wiped arduino's loop() hooks, now all code is asynchronous
  • rework UI into non-blocking event based configuration system
  • Move configuration data to NVS key/value storage
  • Reimplemented temperature and timers configuration
  • use full-range PWM for heater
  • enabled PID control for PWM (not optimized yet)

Key controls

Mode Key Action Function
Idle middle single click Toggle heating mode on/off
Suspended middle single click WakeUp
Working middle double click Boost on/off
Idle/Working middle long press Enter configuration menu
Working +/- single click inc/decr working temperature in one step
Working +/- double click inc/decr working temperature in 4 steps
Working +/- triple click inc/decr working temperature in 6 steps
Menu navigation middle short press enter menu section, comfirm action
Menu navigation middle long press escape action, previous page, etc
Menu navigation +/- single click move along menu items, inc/decr action

Menu navigation

Menu navigation demo capture.

Menu Demo Volt
Menu Demo PWR
-

Features implementation progress

Function Status
standby timer ✅ done
⌛ idle timer ✅ done
💤 suspend timer ✅ done
♨️ Temperature control ✅ done
🚀 boost mode ✅ done
💾 (optionaly) save/restore last used temperature ✅ done
PD Configuration ✅ done
QC2/QC3 trigger ✅ done (experimental)
🚠 PWM Power ramping ✅ done
📏 Tip calibration ❌ Planned
📝 Tip profiles ❌ Planned
〰️ Power profile ❌ Planned
🔌 Power budget ❌ Planned
〽️ PID profiles ❌ Planned
PID tuning ❌ Planned

Features

QC Trigger

QC trigger is an experimental feature. Since QC trigger uses same lines as USB data, those function co-exist pretty bad together. Due to lack of design schematics and documentaion it is not easy to implement it properly. When QC is activated no other USB operation is possible, including firmware download! It also affects system message output to Serial line which migh result in UI slownes or freezes.

Note

Do not activate QC-trigger on permanent basis! Do this only when no other PD sources are available and you need to work with USB Type-A powerbanks, or PSUs. Disable it when not needed in configuration menu. On each QC mode change it is required to unplug/replug the Iron!

Build method

Use PlatformIO to build the project. Attach the iron to USB port and run pio run -t upload in project's directory. See Update Guide for details.

==========

HW Details

Schematics

Iron Schematics (probably from similar iron, some items does not match with PTS-200 v2)

Disassembly

Unscrewing - link

Introduction

  1. PD3.0 and QC3 fast charge protocol

  2. 20V 5A 100W maximum power

  1. Built-in IMU for sleep detection
  1. PD protocol chip uses CH224K
  1. MOSFET supports 30V 12A
  1. MCU uses ESP32 S2 FH4
  1. The power input uses a power-enhanced USB-C interface
  1. Customized soldering tip with 4 ohm internal resistance. It can be powered by 20V with 100W.
  1. 128x64 OLED screen
  1. 3 buttons, the middle button is connected to GPIO0
  1. MSC firmware upgrade, flash disk mode
  1. With a portable tip cap

About

Alternative firmware for ESP32 based Feizer PTS200 soldering iron. Full asynchronous non-blocking code using RTOS threads and events

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages