The DIY Solder Reflow
๐ SORE - Solder Reflow, DIY hot plate made from several reference across internet, use PT100 for temperature sensor controlled with ESP32-WROOM-32D, with 1.47 IPS LCD, programmed in ESP IDF Framework with LVGL for display.
Designed With KICAD
- ๐ฅ Built In 5V and 3.3v Voltage Source
- 0๏ธโฃ Built in SSR Zero Crossing
- โ๏ธ Built In USB Serial Interface
- ๐ฃ Use TL074 For PT100 Signal Conditioning
- ๐ฎ 5 Programmable User Input
- ๐ Use ESP32-Wroom
- ๐ฅ 10 Pin JTAG Connector
- ๐งข 0.91' OLED or 1.3' TFT
Plot Collection
-
multiple sampling at 2Mhz (except first one) signal was moving averaged filter, first graph was actually noisy, and rest was actually not really noisy, but after filtered low noise signal look bumped
-
Transfer Function Estimation
$y(t) = 350(1-e^{(t-d)/tau})$ in temperature degre (celcius), d = 17.5 second
there is many way to debug ESP32 use JTAG, refer to documentation. at this time i only got JLink V8(2014),
๐งฐ Requirements
xtensa-esp32-elf toolchain
openocd-esp32 (fork of official openocd)
JLink
๐ฉน Step To Debug
- run
get_idf
to start esp idf environtment (if openocd cant connect to esp32, try to serial monitor first before connecting with openocd,idf.py -p /dev/ttyUSB0 monitor
) - connect your board with jlink like this ref (make sure your JLink and esp32 power up
TDI -> GPIO12
TCK -> GPIO13
TMS -> GPIO14
TDO -> GPIO15
TRST -> EN / RST (Reset)
GND -> GND
- start openocd-esp32 (use sudo if needed)
sudo openocd -f interface/jlink.cfg -c "adapter speed 500" -f target/esp32.cfg
- next start your esp32 gdb
xtensa-esp32-elf-gdb path/to/your/name.elf
- inside gdb cli see this why connecting twice
target remote localhost:3333
target remote localhost:3333 // dont know esp32 connected after try to connecting twice (doesn't need do twice if already connected
- anyway esp-idf (idf.py) got built in to start gdbgui, just run
idf.py gdbgui
, idf will openlocalhost:5000
(success with installed gdbgui version 0.15.2.0)
$ idf.py gdbgui
Executing action: gdbgui
Running: ['gdbgui', '-g', 'xtensa-esp32-elf-gdb -x=/home/ahsanu/project/2024/hardware/solder-reflow/firmware/v2/build/gdbinit/gdbinit']
gdbgui started as a background task 363884
Executing action: post_debug
- Enjoy debugging ๐ ๐
๐๏ธ svd explorer
you can use xmlstartlet xml
to see what inside svd, ex(this command will list all property inside svd):
xml el /path/to/your/name.svd
svd file is xml file
๐พ example gdb remote connection success
(gdb) target remote localhost:3333
Remote debugging using localhost:3333
0x400845e6 in esp_cpu_wait_for_intr () at /home/ahsanu/esp/esp-idf/components/esp_hw_support/cpu.c:145 145}
๐พ example openocd connection success
$ sudo openocd -f interface/jlink.cfg -c "adapter speed 500" -f target/esp32.cfg
Open On-Chip Debugger v0.12.0-esp32-20240318 (2024-03-18-18:25)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
adapter speed: 500 kHz
Info : auto-selecting first available session transport "jtag". To override use 'transport select <transport>'.
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Info : J-Link ARM V8 compiled Nov 28 2014 13:44:46
Info : Hardware version: 8.00
Info : VTarget = 3.371 V
Info : clock speed 500 kHz
Info : JTAG tap: esp32.cpu0 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
Info : JTAG tap: esp32.cpu1 tap/device found: 0x120034e5 (mfg: 0x272 (Tensilica), part: 0x2003, ver: 0x1)
Info : [esp32.cpu0] Examination succeed
Info : [esp32.cpu1] Examination succeed
Info : starting gdb server for esp32.cpu0 on 3333
Info : Listening on port 3333 for gdb connections
- PCB Design Finished 10 june 2024 20:51
- Order BOM and PCB
- PCB and BOM Arrive 12 july 2024 about 16:00
- Start to soldering 13 july 2024 about 06:00 (weekend)
- make adc class to simplify adc initialization 23 july 2024 at 21:21
- Check Out GPIO (Worked!!๐) 26 july 2024 at 22:24
- Try to use JLink for jtag debugging, but fail ๐ , 27 july 2024 at 17:30
- Try again to use JLink for jtag debugging, Worked!! ๐ , 28 july 2024 at 11:36
- Add
Button
class to add Input with callback, 29 Agustus 2024 at 19:42 โ ๏ธ turn out, TL074 (not TL074xH) need minimum 10v to operate and not single supply quad opamp ๐, fortunately there is LM324 (same package and single supply support), currently still in shipping, need to wait if it really work or not, 01 september 2024 at 18:05- โ๏ธ ok LM324 worked, currently still investigate why adc are really noisy, 03 september 2024 at 13:34
- looks ESP32 IDF adc getting more stable if
frequency
increased, try to use 20Khz but its not stable, but use 1Mhz its more stable 14 september 2024 at 21:00 - โ๏ธ LVGL worked but task semaphore block update of LVGL (still investigate), 05 oktober 2024 at 10:13
- โ๏ธ now LVGL with Button input worked!! ๐, need learn more how to map LVGL key to input button, 05 oktober 2024 at 13:23
- โ๏ธ sampling data from heater and plot it, 30 oktober 2024 at 2015
Several Notes
this is just my own diy solder reflow made from seferal reference accross internet. at initial of this project, i want:
- use ptc heater instead of iron
- design some case for this project
- use esp32 or wemos
- use native toolchain instead arduino
- make good documentation about this project
Work In Progress, Made with