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.txt
Install micropython
https://github.com/micropython/micropython/tree/master/ports/unix#readme
Install typing
micropython -m mip install github:josverl/micropython-stubs/mip/typing.mpy
Install udataclasses
cd ~/.micropython/lib
# extract src/udataclasses
git clone https://github.com/dhrosa/udataclasses.git tmp
mv tmp/src/udataclasses .
rm -rf tmp
- Install Arduino libraries
arduino-cli core install arduino:avr
arduino-cli lib update-index
arduino-cli lib install "Adafruit MAX31856 Library"
arduino-cli lib install "LiquidCrystal I2C"
arduino-cli lib install "RunningAverage"
- Build
arduino-cli compile \
--fqbn arduino:avr:uno \
--libraries TubeFurnace/libraries \
TubeFurnace