A handheld sensor tool with all the sensors I had lying around

Similar projects worth following
I needed a multi-sensor testbed for a project at work, and got sick of re-wiring breadboards for every new part evaluation. This will be a running log of the device.

The sensor package is attached by simple 0.1" IDC headers, and allows for easy attachment of jumper wires to various breadboards, as well as enabling novel sensor heads that have been hastily whipped up from leftovers in my lab.

The core is a Teensy4.0 with stereo DAC and headphone amp (under the top board). 

I told myself not to build anything this way ever again. But since tools like this usually wind up this way anyhow, I figured I'd not try to make it more permanent than my immediate needs dictate. I'll likely add a casing at some point. Probably when I graft a battery and comms onto it.

The interface is primarily an Adafruit OLED display, and the SX8634 touch board I built several months ago.

  • 1 × Teensy4.0
  • 1 × SX8634 (Touch controller) Semiconductors and Integrated Circuits / Misc. Semiconductors and Integrated Circuits
  • 1 × BME280 (Baro/Humidity sensor)
  • 1 × AMG88xx (8x8 thermopile sensor)
  • 1 × VEML6075 (UVa/b sensor)

View all 10 components

  • 2020.03.03: Video update on new UI and code improvements

    J. Ian Lindsay03/04/2020 at 08:36 0 comments

  • 2020.02.09: Finally shot some videos

    J. Ian Lindsay02/10/2020 at 03:34 0 comments

  • 2020.02.05: ​Github repo is now up

    J. Ian Lindsay02/06/2020 at 04:24 0 comments

    The project was updated to link to the source, such as I've posted it. I will likely never post the entire source, so I'm sorry about that. But I will entertain questions.

    MASSIVE driver rework. I re-wrote (or am in the process of re-writing) five open drivers for the sensors (TMP102, VEML6075, AMG88xx, TSL2561, BME280). They now run far more efficiently. If they attract use, I will submit PRs or collect them in their own repo. For now they are hard-forked into the repo I've linked. Refactor notes are in the respective header files. I will likely do the same for all of the other drivers, ultimately. But suffice it to say that I free'd up 28% of the CPU time that was being spent waiting on needless I/O in the AMG88xx driver alone.

    Added a proper filter/buffer template to accept the data streams for the sensors. Not only does this make it easier to buffer the data, but also to collect elementary information from it (STDEV, min/max, RMS, etc). 

    I soldered a TSL2561 breakout onto the forward-facing PCB. It runs beautifully. Still need to post a video.

View all 3 project logs

Enjoy this project?



Dan Maloney wrote 01/14/2020 at 17:40 point

So you basically built a tricorder? Good on you!

  Are you sure? yes | no

J. Ian Lindsay wrote 01/15/2020 at 17:22 point

I did! I'd rather have used someone else's stack, but I couldn't find one based on the Teensy4 (which I wanted to become familiar with). I will ultimately post my code and hardware notes that aren't proprietary to my employer.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates