HomeRaspberry PiM5Stick T-Lite has a"Predator" vision

M5Stick T-Lite has a”Predator” vision

Mighty SitckC is even better!

There was no other way, the review of M5Stick Plus C was stellar and the board received the title of the most featured ESP32 dev board per cm². Just as I thought, that you can’t improve the perfection, M5Stack decided to prove me wrong. They added a “predator” vision to it! Everything gets better if you add lasers or predator vision – that’s a fact. M5stick T-Lite is a M5Stick Plus C bundled with a thermal camera and it’s hot stuff you need to have in your toolbox right now.

M5Stick Plus C at heart

Everything I said in my review of M5Stick Plus C still applies. It is an excellent device to code, tinker and experiment with. M5Stick T-Lite ($79) is a bundle consisting of M5Stick Plus C ($19.95) and Thermal Camera Hat(MLX90640) ($65 when sold separately) which is available in more than one form factor. Getting the bundle also gets you a silicone sock and a small leash to keep the device wrapped around your wrist securely.

Whether you buy the M5Stick T-Lite bundle, or add the thermal camera hat to the M5Stick Plus C you already own – the result is the same – a small ESP32 device upgraded to a Predator vision! And it’s awesome. If you own another M5Stack device, you can also get the MLX90640 sensor that uses grove connectors instead for more free-form placement and wider compatibility with M5Stack devices.

In the hat form, the Thermal Camera Hat(MLX90640) connects via the I2C interface using GPIO Pins at the top of the M5Stick C (Address: 0x33 on GPIO26). It’s the same comm protocol as the standalone version of the thermal camera, it just uses a different GPIO for communications.

MLX90640

This tiny hat brings thermal imaging to M5Stack devices via an expansion port. It’s an array of thermal sensors that scan the angle of 110 ° × 75 ° and provide an effective resolution of 32x24px. The resolution may not sound impressive on paper. Still, if you quickly look up the prices of thermal cameras, you’ll quickly realise, that you have to pay a pretty penny for anything that comes with higer pixel density.

MLX90640 is capable of detecting temperatures in a generous 40°C ~ 300°C range with a resolution of ±1.5°C and a refresh rate of 0.5Hz-64Hz. That’s enough to quickly verify the thermal properties of a device in front of you, confirm if someone has a fever or detect heat leaks in your house!

Playing with M5stick T-Lite

As M5Stick Plus C has a built-in battery and is WiFi-enabled (2.4GHz), you can use M5stick T-Lite on the go. Completely wirelessly. Programing without wires is one of my favourite features of the M5Stack ecosystem. Connect the device to your local network (or an AP created by your laptop/M5Stack) and you are ready to go.

M5stick T-Lite comes with a thermal firmware pre-installed. If you just got the thermal camera hat, you’ll have to get the M5Stack burner and flash the initial firmware on your stick.

Firmware brings several different colour modes and overlay settings to provide visual cues and data to the user. There are 5 colour schemes and a couple of overlays that show the high/low temperature points and thermal histograms. The screen shows enough information to give you an idea of the thermal situation in front of the sensor without the screen clutter. I cannot overstate how nice the firmware is. It’s responsive and snappy, data is presented interestingly. All this from a device running an ESP32 inside!

Playing online

Once I stopped fooling around and pointing the camera at random things to see them in a predator vision, I connected the M5stick T-Lite to my WiFi (use AP setting to get the browser setup page at 192.168.4.1) and opened the web interface in my browser.

When connected online, you get access to a web server. It has everything you need: from GIU and configuration menu to a preview of the data available to be received via REST programmatically. M5Stack made it extremely easy to access all the information from M5stick T-Lite. At various URIs, I could either run the settings page from the computer or stream the device data in my preferred format:

  • Text
  • JSON
  • Video Stream

These are pre-defined values that you can get without creating custom scripts. If you want to go further and create a custom overlay or send already processed data over REST, you can do so by running a Python script or using the block code builder in M5Stack IDE.Pre

Predator Selfie

Sample Text output

date	Sat, 9 Mar 2024
time	13:59:31 GMT
center	23.0
highest	25.4
average	23.1
lowest	21.3

Sample JSON output

{
 "pwd": "0632",
 "datetime": "Sat, 9 Mar 2024 13:59:55 GMT",
 "interval": 30,
 "macaddr": "0c:8b:xx:xx:f7:a9",
 "center": 23.0,
 "average": 23.5,
 "highest": 28.3,
 "lowest": 21.3,
 "frame": [22.6,21.5,22.0,xx,xx,xx,xx and so on]
}

In JSON output, frame refers to temperature output from the sensor pixel by pixel.

M5stick T-Lite in NodeRED

To validate all this, I rigged a quick REST routine in NodeRED to test it. The flows are not particularly complex, but there was one hurdle I had to overcome to obtain the information from the local server.

My HTTP Requests were GET set to: http://10.0.0.190/json and http://10.0.0.190/text respectively.

As soon as I selected Disable strict HTTP parsing in the HTTP request, the whole thing started to spit out the values as intended. Note, that if you are getting the text output – it comes formatted as HTML and it needs further parsing.

If you want to try it for yourself, you can import the JSON to your NodeRED instance:

NodeRED Sample Flow
[{"id":"e8ce91d4d8fe0703","type":"tab","label":"M5Stack T-Light","disabled":false,"info":"","env":[]},{"id":"8f4389a16c164ced","type":"inject","z":"e8ce91d4d8fe0703","name":"Get Data","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":260,"y":220,"wires":[["2f0915e63d4f6182"]]},{"id":"2f0915e63d4f6182","type":"http request","z":"e8ce91d4d8fe0703","name":"GET JSON","method":"GET","ret":"txt","paytoqs":"ignore","url":"10.0.0.190/json","tls":"","persist":false,"proxy":"","insecureHTTPParser":true,"authType":"","senderr":false,"headers":[{"keyType":"Content-Type","keyValue":"","valueType":"text/html","valueValue":""}],"x":470,"y":220,"wires":[["d0ae3aa70df2bd8a"]]},{"id":"d0ae3aa70df2bd8a","type":"debug","z":"e8ce91d4d8fe0703","name":"debug 37","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":660,"y":220,"wires":[]},{"id":"56cae837eec39b86","type":"http request","z":"e8ce91d4d8fe0703","name":"GET TEXT","method":"GET","ret":"txt","paytoqs":"ignore","url":"http://10.0.0.190/text","tls":"","persist":false,"proxy":"","insecureHTTPParser":true,"authType":"","senderr":false,"headers":[],"x":470,"y":260,"wires":[["7265ec53ae3a66eb"]]},{"id":"0cdbcb19969b27d3","type":"inject","z":"e8ce91d4d8fe0703","name":"Get Data","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":260,"y":260,"wires":[["56cae837eec39b86"]]},{"id":"7265ec53ae3a66eb","type":"debug","z":"e8ce91d4d8fe0703","name":"debug 38","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":660,"y":260,"wires":[]},{"id":"b14605b220901c79","type":"comment","z":"e8ce91d4d8fe0703","name":"Disable strict HTTP parsing","info":"","x":510,"y":180,"wires":[]}]

Final thoughts

M5Stack removed all the hassle from tinkering with thermal cameras. If you ever wanted to mock up a project or validate an idea, M5stick T-Lite is extremely easy to use. From visual inspection to retrieving heat data programmatically, you are only a couple of steps away from running a prototype that will suit your thermal needs. All of this costs less than $80 and fits in your pocket! What not to like? If you have any interesting use cases let me know in this Reddit thread.

🆓 – See the transparency note for details.

PayPal

Nothing says "Thank you" better than keeping my coffee jar topped up!

Patreon

Support me on Patreon and get an early access to tutorial files and videos.

image/svg+xml

Bitcoin (BTC)

Use this QR to keep me caffeinated with BTC: 1FwFqqh71mUTENcRe9q4s9AWFgoc8BA9ZU

M5Paper

Programable, ESP32 based awesome dev platform with 4.7 e-ink display by M5Stack

More HATs

client-image
client-image

Argon One M.2

Enclose Raspberry Pi 4 inside this great case with custom I/O, cooling and GPIO and M.2 SSD support

More cases on

client-image
client-image

Best Raspberry Pi Projects

How to use Raspberry PI as WOL (wake on lan) server

0
While you could wake up your PC from a mobile directly, having a dedicated server capable of doing so is the best solution. The reason is simple. You can hook up as many devices as you wish with a single endpoint. This is why Raspberry Pi is perfect for this.

Slow Internet Warning

0
From time to time my Internet grinds to a stop. Since Raspberry Pi 4 comes with a 1Gbps Ethernet, I decided to take advantage of it and create a reporting system in NodeRED that will monitor and report when the ISP is not keeping the contractual agreements. Works with Alexa, Google Home, Android and Windows 10.

How fast Raspberry Pi NAS is?

0
Let's see how fast Raspberry Pi NAS really is?

Argon18: Argon ONE SSD modification

0
Argon One case just got better - now you can boot it from USB without ruining the design thanks to Argon 18: Argon One SSD modification

HOW TO...

How to boot Raspberry Pi 5 from NVMe M.2 SSD

0
This is how you can boot your Raspberry PI 5 from NVMe in 10 min! Check out these easy instructions

It took me 2 months to boot CM4 from NVMe

0
Complete beginners guide to Compute Module 4 boot from NVMe.

Raspberry Pi Zero 2 W vs other Zero boards

0
It's time to test the Raspberry Pi Zero 2 W against other Raspberry Pi boards from Zero series: power, WiFi, temperature and core performance

C/C++ and MicroPython SDK for Raspberry Pi Pico on Windows

0
A guide to SDK toolchain for Raspberry Pi Pico and C/C++ , Micropython on Windows.

A comprehensive guide to Grafana & InfluxDB

0
How to use Grafana and InfluxDB on Raspberry Pi for IoT sensors in home automation