Phoenix is a tube furnace used for thermal oxidation and annealing.
It uses PID control to follow custom temperature profiles and works on both MicroPython on the ESP32 and a simulated Python desktop environment.
![]() Fig 1. Tube furnace in action |
![]() Fig 2. Simulated PID following a heat profile |
![]() Fig 3. Controlling ramp rate to prevent thermal shock |
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtInstall micropython
https://github.com/micropython/micropython/tree/master/ports/unix#readmeInstall typing
micropython -m mip install github:josverl/micropython-stubs/mip/typing.mpyInstall udataclasses
cd ~/.micropython/lib
# extract src/udataclasses
git clone https://github.com/dhrosa/udataclasses.git tmp
mv tmp/src/udataclasses .
rm -rf tmpesptool erase-flash
esptool --baud 460800 write-flash 0 images/ESP32_GENERIC_S3-SPIRAM_OCT-20250809-v1.26.0.bin
mpremote
mpremote connect /dev/ttyUSB0 fs cp main.py :
- use the UART port (left side) for flashing
- use the USB port (right side) when using mpremote


