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)
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 demo capture.
- |
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 |
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!
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.
==========
Iron Schematics (probably from similar iron, some items does not match with PTS-200 v2)
Unscrewing - link
-
PD3.0 and QC3 fast charge protocol
-
20V 5A 100W maximum power
- Built-in IMU for sleep detection
- PD protocol chip uses CH224K
- MOSFET supports 30V 12A
- MCU uses ESP32 S2 FH4
- The power input uses a power-enhanced USB-C interface
- Customized soldering tip with 4 ohm internal resistance. It can be powered by 20V with 100W.
- 128x64 OLED screen
- 3 buttons, the middle button is connected to GPIO0
- MSC firmware upgrade, flash disk mode
- With a portable tip cap