Science Tricorder by Olympus Heavy Industries

A multi-mode scanner and data logger based on Adafruit Feather & Arduino

Similar projects worth following
This is a project I've been tinkering with for a couple years now and it actually started out as a non-functional prop. Modeled after the Tricorder devices seen in Star Trek and heavily inspired by similar projects found online. The ultimate goal is to create a functioning handheld sensor platform that can analyze, store and transmit all sensor data collected by the unit.

It’s been a hell of a journey learning how to build this thing, all started when I saw prop Tricorders at Star Trek cons in the mid ‘90s as a little kid. I’d never believe that I’d have one like this if I told past me of it…

I’ll post more as things happen

Current scan data points:

  • Atmospheric:    Ambient temperature (averaged across 3 sensors), relative humidity, barometric pressure, Target Temp, GRIDeye temp (8x8 grid of IR thermal detectors)
  • Electromagnetic:    UV Index, IR intensity, RGB Color, Visible light intensity in Lux, UV intensity
  • Radiation:    Gamma/Xray detection
  • Gasses:       Carbon monoxide, Nitrogen dioxide, Ethanol, Hydrogen, Ammonia, Methane, Propane, Isobutane
  • Mechanical:    3-axis Accelerometer, 3-axis Digital Gyroscope, 3-axis Hall Effect Magnetometer

Currently, the Tricorder Version 5 is made up of the following:

  • 1x Feather microcontroller board
  • 9x sensor boards
  • 1x TFT LCD
  • 4x logic boards
  • 2x Neopixels
  • 1x 500mAh LiPo battery
  • Assorted electonic components (LEDs, switches, wiring...)
  • Custom built ABS, Aluminum and Polycarbonate chassis/casing
  • My horrible, patched together code

This is the 5th iteration of the Tricorder (the first was a prop build, not functioning), running v.o-10 code.

Tricorder Legacy Code (everything up to 4o-v9.rar

This is all of the code that I've written for the various iterations of the Tricorder over the past 2 years. Covers up to 4Ov9

RAR Archive - 79.19 kB - 06/09/2018 at 20:41



Updated 2018/06/04. Added functionality to Radiation scan mode and working further on UI changes.

7-Zip - 14.25 kB - 06/04/2018 at 22:50


Arduino Libraries - OHI Tricorder.7z

These are all of the libraries needed to compile the tricorder's firmware.

7-Zip - 42.46 MB - 04/13/2018 at 02:27


OHITricorder Code-4O.9.7z

Code from up-to 04/13/2018.

7-Zip - 13.79 kB - 04/13/2018 at 00:15


  • 1 × Adafruit Feather M0 Adalogger ( ) Primary microcontroller for the unit
  • 1 × Adafruit CAP1188 ( Capacitive Touch controller
  • 1 × Adafruit VEML6070 ( ) UV intensity sensor board
  • 1 × MLX90614 ( ) Targeted, non-contact IR thermal sensor (generic used)
  • 1 × Panasonic GridEye ( ) 8x8 array thermal IR sensor board

View all 15 components

  • More Progress, building Version 6

    Queadlunn01/15/2019 at 05:22 0 comments

    After a long lag I'm working on the hardware for the next version of the Tricorder!

    It's not a huge change from the Version 5 to Version 6, more of cleaning up the current design that the Version 5 ended up with. The soldering work is about half done right now, I still need to finish up the sensor array, additional sensors and the door assembly.

    The current Version 5 will have some of it's sensors moved to the V.6 (the GridEYE, 9-DOF/ATM, UV sensors) and everything else will be the same sensors in smaller breakout boards.

    Changes with the Version 6:

    • Slightly re-designed, a bit wider and shorter to allow a touch more room
    • Different sensors for:
    •      Gas sensing, got the newer version of the sensor board
    •      LUX, IR sensors replaced with same IC but smaller breakout board
    • This Feather M0 has a Packet Radio for if I make any hand scanners in the future, still unsure of that

    Ultimately I want to keep the older version working, likely remaking the casing so I can fit bulkier sensors into it (like the shape of the TNG Medical Tricorder). Since both will be using the same Feather M0 boards I also want to write one firmware that will work on both units if possible.

    Right now I'm focusing on the hardware and will resume on the code afterwords.

  • Code updated to v10, a bit of work done...

    Queadlunn06/04/2018 at 22:58 0 comments

    Small update- Got a bit of work done on the code today, expanded the Radiation scan mode's functionality. Now it shows avg pulses/second, avg pulse strength (in uSv/h) along with the last pulse detected.

    Part of this was making a timer based off of the RTC to count how long the scan mode has been on, this could be useful in other modes later on as well.

    I also got a bit further on in building a framework to allow a more interactive UI. The ultimate goal is to have the ALT button switch the button pad's functionality to that of a D-PAD along with Confirm, Cancel and Back. This'll give me a lot more to work with, like highlighting scan elements or using a menu structure. A lot of work to do on this however...

    The updated code has been attached to the project, v10.

  • Bringing it up-to-speed

    Queadlunn04/13/2018 at 02:17 0 comments

    In the past year the external appearance of the unit hasn’t changed much, it’s all been internal hardware and code changes. As the photos show, the mainboard is getting to be a rat’s-nest of wiring with all of the changes and adaptation that I’ve done. The code, actually, is a lot cleaner than when I was at the same point last year. It’s able to do a fair bit more but isn’t using much more of the Arduino’s (Adafruit Feather M0 Adalogger) memory (still hovering around 30% at this point).

    The sensors in the unit haven’t changed a huge deal, I’ve gotten them to work a bit better though and have even been able to adapt the libraries for the Gas sensor to work with the M0 controller (more brute-force really but it works). The total sensor list is posted below.

    At the moment I’ve gotten 2 replacement sensor part. One to replace the Grideye sensor so it’s smaller (I can’t do surface-mount soldering yet) and one to replace both the atmospheric sensor board and the 9-depth-of-field sensor board that captures movement. The second will combine both the ATM and 9-DOF into one very small package, saving on the limited internal space within the Tricorder.

    There are a few things I want to add into the unit so far: GPS (for both location data and accurate clock updates), Haptics (feedback from button presses, sensor alarms), and finding a replacement and higher quality display are my biggest. The largest hurtle right now is getting the code solid, using the display to give clear and accurate readouts of the sensor data, and eventually rebuilding the mainboard and chassis. The chassis’ ABS/aluminum/polycarbonate construction is rock-solid (it’s been hanging out in my camera bag for the last year) but I want to clean it up since the off-square lines in the current one bother me a bit.

    My big inspiration for the project has been the Open Source Science Tricorder by Peter Jansen. It’s an incredible project and I have major respect to the creator.

View all 3 project logs

Enjoy this project?



TheotherMike wrote 02/11/2019 at 16:33 point

Not bad! Unfortunately I was never able to finish my own one. I´m still not sure about the basic strategy how to build it. You´re using a µC with on board radio, that´s useful in the long term I think. I also thought of using only limited amount of sensors within the main unit which might give long runtime, small size and weight. Using LoRa etc. one could shift all heavy duty sensors out to accessorie units... 

  Are you sure? yes | no

TheotherMike wrote 02/11/2019 at 12:09 point

Hah, cool Project ! I found it because of your comment on another tricorder build... ;-)

You really have a hell of a lot of sensors in tis package.

How Long can it rum from batteries?

  Are you sure? yes | no

Queadlunn wrote 02/11/2019 at 16:13 point

The current version will run for about 3 hours on the 500mAh battery. The newer version will hopefully have a 700 mAh battery though which should make it run a bit longer.

  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