

I used a 12V TEC sandwiched between an aluminum block (with a hole drilled in it for the NTC temperature sensor) and a CPU cooler heatsink with fan. The FC100D uses PWM and bi-directional control of the TEC along with a NTC temperature sensor to provide precise temperature control (heating and cooling). Trawling eBay netted a reasonably inexpensive Accuthermo FC100D TEC (Peltier thermo-electric cooler) controller mounted in an enclosure from Wells-CTI with a 12VDC 8A power supply and TEC H-bridge driver. New Blackbody Radiator and Lepton Accuracy testing at 17:49.

So unfortunately my initial experiment is of mixed success and there is more digging to do. A kludge might be to include a checksum and simply discard corrupt images but that seems like an ugly fix and will impact performance.
FLIR LEPTON 3.5 SERIAL
It might be possible to try smaller transactions except each one will need a handshake via the serial interface which, at some point, will probably make it impossible to keep up. The transaction is pretty long, typically around 52 kB. Then I send a short json "image_ready" packet via the serial interface which triggers the tCam SPI master to initiate the transaction.
FLIR LEPTON 3.5 DRIVER
For my scenario, where it only supplies data, I setup a buffer full of data, trigger the driver to start operating when it sees chip select asserted and wait for a callback from it indicating it's ready. The ESP32 SPI Slave is a pretty simple device and comes with a lot of caveats. SPI Signal quality looks good (clean edges and plenty of setup and hold time) so I suspect that the tCam-Mini ESP32 SPI Slave can't always keep up (or there is some data corruption by the tCam SPI Master). Unfortunately there is occasional data corruption in the image data transferred via SPI between the two ESP32s.
FLIR LEPTON 3.5 UPDATE
The update process should be shortened, and fps increased further, by using a controller like the ILI9488 with a 40 MHz SPI interface. The GUI update process is now the longest running activity per frame and limited, I think, by the maximum 26.67 MHz SPI clock rate of the HX8357 LCD controller. I can now get over 7 fps on the tCam LCD display (up from 3-4.5 fps before). My main goal in splitting the processing between two ESP32 chips (four cores) was to improve performance and that seems to have been achieved. The image packet (at about 52 kB) is too large for the serial interface and is read by the tCam ESP32 from the tCam-Mini ESP32 with a SPI interface after tCam receives a new "image_ready" packet via the serial interface. This allowed easy re-use of the command processing code. All packets, except image packets, are sent back and forth via the serial interface. Communication between the two boards is via the same json command protocol that is used over the network. The two boards are connected using a serial interface (at 230400 baud) and SPI interface (at around 6 MHz). Lepton Parameter item Parameter value Effective Frame Rate 8.7Hz Input Clock 25-MHz Pixel Size 12µm Scene Dynamic Range Low Gain Mode: -10 to 400☌ High Gain Mode: -10 to 140☌ Spectral Range 8 µm to 14 µm Thermal Sensitivity <50 mK(0.050℃) Input Supply Voltage 2.8 V, 1.2 V, 2.5 V - 3.About five days of coding and debug of the tCam and tCam-Mini firmware has yielded the first attempt at a higher performance version of tCam with the Lepton VoSPI pipeline and json image encoding being performed by the ESP32 on a tCam-Mini and the rest of tCam operation running on the ESP32 in the tCam prototype. Lepton Input Supply Voltage: 1.2V,2.8V,2.5V - 3.1V IO.Lepton Low operating power - 150 mW (operating), 650 mW (during shutter event), 5 mW (standby).Note: If it worked for long hours, Lepton will heat up a little. The effective image generate by the Lepton sensor is 160×120, but you can process the image thru program and display a different resolution. FLIR features the latest FLIR Lepton 3.0 longwave-infrared (LWIR) camera core, get two times the resolution and 4x the pixels of the previous 2.x generationįLIR is covered by a 3D printing case, makes it a perfect functional bottom for non-contact temperature measurement, compatible with M5Core and can be controlled via I2C protocol.
