In order to use an
IR / thermal camera for detecting brood nest and winter cluster, @clemens already got his hands dirty collecting some bits of software support from the community, essentially making the MLX90640 IR Sensor work on ESP32 MCUs, see also Getting the MLX90640 IR Sensor Running with an ESP32.
In the spirit of
native 1-Wire support for Pycom/ESP32 and I2S support for MicroPython on ESP32, it would be cool to see this device supported through MicroPython for ESP32 by creating an appropriate binding to a respective extension to the ESP-IDF/FreeRTOS.
While there are obviously some implementations for Python running on a RaspberryPi around like
this is not exactly what we are looking at but well could serve as an interface-blueprint for the real thing.
fir — thermopile shield driver (fir == far infrared) — MicroPython 1.11 documentation and OSError: Failed to init the MLX90640! - OpenMV, the OpenMV project might also have support for the Pimoroni MLX90640 sensor already. OpenMV Cam H7
While I’ve not been able to find this back, I well believe we found this project on kickstarter the other day which is based on OpenMV and MicroPython. The campaign is already finished, it might have some outcome into a product which can be obtained from some reseller.
@Basti already bought an early version of this piece as a testbed for evaluating his BambiCam idea.
The OpenMV project was successfully funded via Kickstarter back in 2015 and has come a long way since then. For more information, please visit
It looks like OpenMV is completely based on MicroPython altogether.
The OpenMV Cam runs the
MicroPython operating system which allows you to program the OpenMV Cam using Python (Python 3 to be precise). Python makes working with machine visions algorithms much easier. For example, the find_blobs() method in the code finds color blobs and returns a list of 8-valued objects representing each color blob found. In Python iterating through the list of objects returned by find_blobs() and drawing a rectangle around each color blob is easily done in just two lines of code.
Finally, you program the OpenMV Cam using The OpenMV IDE which features a powerful text editor, frame buffer viewer so you can see what the camera sees, serial terminal for debugging, and a histogram display for making color tracking easy.
The OpenMV project is about creating low-cost, extensible, Python powered, machine vision modules and aims at becoming the “Arduino of Machine Vision“.
The MicroPython libraries specific to the OpenMV Cam are listed within the documentation at
MicroPython libraries — MicroPython 1.12 documentation. There are respective examples to be found at openmv/scripts/examples/12-Thermopile-Shield at master · openmv/openmv · GitHub.
References to the
flir module can be found within
Renamed MLX module and redid strings for it by kwagyeman · Pull Request #13 · openmv/micropython · GitHub. Hm, the
FLIR is obviously a different kind of piece by Lepton – don’t know what to figure from that now.
Here we go
C-level driver for the MLX
This looks good so far.
However, please note the C-level things referenced here have been conceived for running on a STM32 MCU. So, we would still have to port this over to FreeRTOS/ESP-IDF/ESP32.
So, don’t panic. All of this was just a quick research into the topic on how far the community might have come in the meanwhile.
Hier hat sich jemand schon die Mühe gemacht das auf MicroPython zu portieren, dort läuft es nun auf einem WiPy:
@avs_g8 · 15. Apr.
A little bit of tweaking in the @adafruit @CircuitPython libraries for MLX90640 and it is ready to be used with @pycomIOT wipy micropython. Now spitting out all the 768 pixel values to my @NodeRED server on @Raspberry_Pi.
Danke für den Hinweis
@Andreas hat mich drauf gestubst; ich hab dem werten Menschen mal den Code in die Öffentlichkeit entlocken können, Dank an Avishek/avs_g8/avsg8!:
“This is a quick and dirty implementation, and hence may not be robust against all kinds of errors. If it gets stuck somewhere, I have found using the wipy watchdog timer module helps.”