I have tried to port the existing Radiometric Lepton 2.5 drivers/software to two battery-powerable platforms (the Raspberry Pi Zero W and the ESP32 Arduino implementation), but it seems to require more brainpower than a sleep deprived new father can muster. And so I present to you, the informal Battery-powered Radiometric Lepton Contest!
Description
The FLIR Lepton is a thermal camera made accessible to the maker community by the wonderful folks at GroupGets, who (in addition to making the Lepton available in small quantities), also produce a breakout board for the lepton, as well as a board called the Purethermal 2 that exposes the Lepton as a USB device.
The Need
While there's been a great deal of work in creating open source drivers for the Lepton (such as pylepton and GetThermal for the Raspberry Pi, and this Arduino Lepton driver), there's currently a limitation in capabilities. To the best of my knowledge, there are not working, easily-replicable demonstrations (including code) to use the Lepton in radiometric mode (that's where each pixel has an associated temperature value, not just a relative value) for platforms that can be battery powered and have a low barrier to entry-- specifically here, the Raspberry Pi Zero W, and the ESP32 Arduino implementation.
The purpose of this contest is to help improve this situation by asking folks to publish open source drivers and instructions to drive the Lepton 2.5 in radiometric mode for these platforms, with battery power in mind.
Prizes
Two $125 prizes (in the form of Sparkfun credit) are available: one for the Raspberry Pi Zero W platform, and one for the ESP32 Arduino platform.
Entry
Create a hackaday.io project with all the relevant materials, and add a link to it in the comments to this contest!
Rules
The deliverables:
- An open source driver and example code for running the FLIR Lepton 2.5 in radiometric mode, on either the Raspberry Pi Zero W, or the ESP32 (under the Arduino IDE).
- The drivers and software must be published using an open, permissive license (e.g. BSD)
- Hardware: The drivers must interface with the commodity, easily-available breakout board. For the Raspberry Pi Zero W, you may alternately choose to use the PureThermal 2 (which may simplify keeping the camera in sync). The drivers must interface with the radiometric Lepton 2.5 . Also being able to interface to the brand new Lepton 3.5 in addition to the 2.5 is a bonus, but not required.
- Software (Pi Zero W): You must provide the source of a console program that runs on Raspbian that outputs space-delimited temperature values, one per pixel, in plain text (e.g. 24.5 20.2 18.8, ...), with successive frames delimited by a carriage return (\n). The program should be able to be piped such that the values can be saved to a text file, or called/read in by another program.
- Software (ESP32 Arduino): You must provide the source of a program that reads frames from the Lepton, and stores them in an 80x60 array. The values can either be floats (e.g. 24.5) or 8-bit uint8_t's (for space) that are easily converted to raw temperature values with the supplied code. The software should work on the standard ESP-WROOM-32 modules (with a minimum of pin requirements).
- Battery power: Either through simple hardware or software, you must demonstrate being able to put the FLIR Lepton into low power (or zero power) mode, and wake it (and repeated cycles of this), so that both systems can run on batteries, and only power the FLIR when required. Use a current meter to demonstrate that this is working and provide measures of the power draw. Clarification: the low-power mode, whether implemented with software only or a combination of hardware and software, must be software controlled -- the user shouldn't have to press a physical button to enter/exit low power mode.
- Documentation/Source: Provide clear and easily available documentation, schematics, source files, and instructions for getting everything up and running, that should be useful and meaningful to a beginner. Document it here (on hackaday.io), or another location that should be accessible for at least a few years.
- The driver and code have to be working and reliable.
- Effort should me made to minimize external I/O pin requirements, where possible, so that both systems still have plenty of I/O pins left over for other purposes.
Less important fine-print:
- Framerate: Ideally your code will run the Lepton at the full framerate, but if this isn't possible, then the minimum acceptable framerate is 4 frames per second.
- Open source: It's likely that you'll base your work off the open drivers already out there. Please provide full attribution to the open resources that you're using.
- Verification: I will have to personally replicate and verify that your entry works with zero/minimal effort/tinkering before declaring a winner.
- Multiple entries: If multiple people submit completed entries for the same platform at the same time (before a winner has been declared), then I'll pick whichever has more features and is better documented. If they're both about the same, then I'll flip a coin to determine the winner. Maximum one prize per platform (Raspberry Pi Zero W or ESP32 Arduino).
- End of contest: If no entries are received before the deadline that I can verify work, then there won't be any prizes.
- Other bits: The Lepton is a restricted part in some places -- please don't enter if it's not legal for you to, for whatever reason.
- Getting in touch: If I can't get in touch with you within a week, can't transfer the prize to you within a week, or for whatever legal, geopolitical, technical, or other issue am unable to give you the prize within a week, then you'll have to live with the best prize of all -- being awesome, and knowing you helped the open source community.
- This is an informal contest, and not affiliated with FLIR, GroupGets, or anyone else.
Timeline
The deadline for submissions will be about four weeks from the contest start.