This repo contains tools, notes and data from reverse engineering the Puhui T-937/M Reflow Oven's Serial protocol.
web: a WebSerial based control panel for the ovensimulator: Python implementation of the oven Serial protocol (for testing)captures: Wireshark captures of Serial communicationsdissectors: Wireshark Lua plugins for dissecting messagesch340.lua: dissects USB captures for CH340/341-based USB-to-Serial converterspl2303.lua: dissects USB captures for PL2303-based USB-to-Serial converterst937.lua: dissects the actual Serial messages
The directories contain READMEs with more information for each component. Some more information and commentary on the process can be found on my blog.
This repository is a fork of the original t937-serial repo at https://git.s-ol.nu/t937-serial.git.
Code in this fork has been modified by Codex GPT-5.5 xhigh.
Brief list of modifications:
- implemented read from and write to the oven
- added progress and error messages
- set points can be added and modified in a table
- graphs support Bezier style control
- backup all profiles into a single json
This repo uses uv for Python dependency management.
The Python dependencies are declared in pyproject.toml:
websocketsfor the simulator's WebSocket modepyserialfor the simulator's serial loopback mode
Create or update the local virtual environment from the repo root:
uv sync
Run Python commands inside the environment without activating it:
uv run python simulator/__init__.py
Or activate the environment in your shell:
source .venv/bin/activate
python simulator/__init__.py
The web control panel itself is static browser code. The python -m http.server
command in web/README.md is only a local file server; it does not provide the
serial connection.
The purpose of this project and the resulting software is to make the oven compatible with non-Windows systems, which are not supported by the manufacturer. To this end, the communication protocol has been reverse-engineered by observing it in action only, none of the original software has been decompiled. As such, all information and software in this repository is to be used and distributed only for the purpose of interoperability in concordance with EU law, in particular EU directive 2016/943.