Does this project spark your interest?

Become a member to follow this project and don't miss any updates

Open Source Science Tricorder

Science in your hand. A pocket-sized instrument capable of visualizing and exploring the world around you.

10 136 110
Enjoy this project?
Share on twitter   Share on Facebook

This project was created on 06/07/2014 and last updated 3 hours ago.

It is my deep belief that knowledge brings about positive change.

We could live in a world where the same instrument that can show a child how much chlorophyll is in a leaf could also show how them much pollution is in the air around us, or given off by one's car. As an educator and a researcher, I feel that if people could easily discover things about their worlds that were also important social topics, that they would then make positive social choices, like reducing their emissions, or petitioning for cleaner industry in their communities.

By having access to general inexpensive sensing tools, people can learn about healthy leaves, clean air, clouds and the water cycle, energy efficient homes — and visualize abstract concepts like spectra or magnetism.

As a tool for exploration, we can discover things around us that we don't already know. And that's what it's about. Little discoveries, everywhere.

Concept Video


The Arducorder Mini is an Arduino-compatible handheld sensing device, and the next iteration of my open source science tricorder-like device project that's designed to be easy to use, have a large array of sensors, and easy to share sensing discoveries.  The Arducorder Mini is designed to foster a community of open source users and development, and is ChipKit MAX32 compatible, which is a port of the Arduino platform to the much more powerful PIC32 family, and makes use of a PIC32MX795F512L with 128k of RAM, 512k of flash, a zippy 80Mhz processing speed, and a fantastic set of peripherals for interfacing to sensors.

The current prototype is designed to use a 1.5" OLED with 128x128 pixels and 16-bit colour, a touch interface, and connectors for 5 modular sensor boards that each contain several sensors.  The sensor boards are designed to be interchangeable and upgradable, so that a large number of configurations are possible with different sensing capabilities and price points.  

While the Arducorder Mini is being designed with a wide array of sensing capabilities off-the-shelf, it's also designed to be easy for folks to tinker with and upgrade. Accessibility is a central goal of the project -- If you're familiar with Eagle CAD and have ever made an Arduino shield, it should be easy to design your own sensor board. Using OSHPark and Digikey, the parts cost for a new sensor board (PCB and header, not including sensors) is about $5, which is even less than most protoboards!  

Sensing Capabilities

The current prototype has been designed to include the following sensing capabilities:

Atmospheric Sensors

  • Ambient Temperature and Humidity: Measurement Specialties HTU21D
  • Ambient Pressure: Bosch Sensortec BMP180
  • Multi-gas sensor: SGX-Sensortech MICS-6814

Electromagnetic Sensors

  • 3-Axis Magnetometer: Honeywell HMC5883L
  • Lightning sensor: AMS AS3935
  • X-ray and Gamma Ray Detector: Radiation Watch Type 5
  • Low-resolution thermal camera: Melexis MLX90620 16×4
  • Home-built linear polarimeter: 2x TAOS TSL2561
  • Colorimeter: TAOS TCS3472
  • UV: Silicon Labs Si1145
  • Open Mini Visible Spectrometer v1 using TAOS TSL1401CL 128-pixel detector, with NeoPixel light source

Spatial Sensors

  • Inertial Measurement Unit: Invensense MPU-9150 9-axis (3-axis accelerometer, gyro, and magnetometer)

Other Sensors

  • Microphone: Analog Devices ADMP401

Check out the project logs for the current build progress, and stay tuned!

Read more »

Project logs
  • Sensor Board Mega-Update!

    4 hours ago • 0 comments

    A big update with lots of pictures -- I've been building and testing many of the first revision sensor boards.

    Watching the PWM of your soldering station's power supply!

    One of the things I remember most from building the Open Source Science Tricorder Mark 1 is that the moment I had it built and programmed -- around 2am, late one weekend, doing laundry at my parents house like any good grad student -- I immediately looked around for things to sense.  The magnetometer visualization on the Mark 1 was always my favorite, and holding the Mark 1 up to a wall-mount power supply I was able to see the fields of the transformer bouncing back and forth, only moments after finishing the device.  Definitely very cool, and very memorable.  Years later we were hunting down some high magnetic fields in a mens washroom under an NMR lab at school, which is probably the second most memorable (and probably one of the most hilarious) moments of science I've had. 

    I decided that, with many of the Arducorder Mini sensor boards up and running, and a basic multi-series graph visualization plotting the x, y, z (RGB) and total (white) field strengths from the magnetometer, that it'd be interesting to place it near my heavy soldering station -- heavy from a big transformer in its base -- and see what we could see.

    The solder station works by pulsing the heater on the soldering iron to keep it at a set temperature.  When the internal temperature sensor reads the iron is too cold, it likely pours on the juice to keep it at a given temperature.  The neat thing is that this appears to happen in discrete chunks of time a second or two apart -- looking at these two pictures, we can see a roughly sinusoidal magnetic field strength (white line) from the transformer -- my first guess is that this is that this is the 60Hz line frequency aliased by whatever the sampling frequency is of the magnetometer here (about 20Hz).  But, in the first picture, something really interesting is visible -- the field strength suddenly shoots up for half a second, likely signifying that the soldering station has engaged the heater on the iron.  Very neat to watch!

    Modular Sensor Boards

    I try to make my mistakes cheaply, so recently I've been building as many of the first-revision boards to verify their functionality, and note any issues or modifications for the next revision.  Pictured here (above) is the sensor board that contains the lightning, UV, and audio sensors (front), and the atmospheric sensor board that contains the atmospheric sensors like temperature, pressure, and humidity (right).  

    The same view, but here I've just waved a pair of piers that are slightly magnetic near the Arducorder Mini to show the simple multi-series graph widget.  There's still a great deal to do on this widget, but it's a good start for easily graphing a few related sets of data, and the autoscaling feature means it's entirely hands free. 

    To verify the functionality of the microphone, I wrote something that would pipe the data to a graph, and started singing to watch the waveforms.  (Actually, the first thing I did was to put on some music with a beat, put the Arducorder Mini up to the speaker, and see if I could watch both the audio waveform and the magnetic field from the speaker, but I think I'd have to look at the data a little closer or plot it overtop of each other to verify that the field strength changes were correlated with the audio amplitude).  Still, very cool for something that's just starting!

    The UV sensor also looks to be communicating okay, and the data changes when I place my hand over it, but it'll need a bit more work to verify the measurements.  I didn't happen to have a storm handy to test the lightning sensor, but the breakout board I have seems to be particularly good at detecting whenever the air conditioner turns on, so I'll have to work with that until a storm rolls in. :)

    High-Energy Particle (Radiation) Detector Sensor Board

    One of the biggest items on my open source science tricorder wishlist has been a high-energy particle detector, so I'm very happy to include the super-sensit Read more »

  • First Sensor Boards

    13 days ago • 5 comments

    A bunch of the sensor boards arrived this week!  I confess that holding them in your hand is a lot different than seeing them in Eagle CAD -- these new sensor boards are tiny. 

    Modular Sensor Boards

    The first three (of five) sensor boards arrived, with the radiation sensor board (and the touch interface board) arriving a few days later.  The spectrometer board is the only sensor board that still has to be designed, and I'm waiting on laying it out until I have a better idea of how the radiation sensor board fits on the back.  The spectrometer is the largest sensor in the device, but if there's room I might be able to lay it down and make the entire device even thinner -- definitely worth holding off a few weeks on.

    The first thing that struck me is that these sensor boards are *tiny* -- much smaller than any of my previous boards.  They're about the size of the tip of my finger!  I think the idea of utilizing as much real estate on the outside of the device as possible for sensors (rather than just having them all face towards the front) is really a fantastic design idea for keeping the device small. 

    These boards are so tiny that they're a bit of a challenge to attach a solder stencil to. Since invariably many of the parts I use end up having very fine pitches (0.4 to 0.5mm), my favorite method of stenciling is to clamp the board and stencil in a clamp, adjust it so it's aligned, then squeegee on some solder paste.

    Here, the sensor board combining the Honeywell HMC5883L 3-axis magnetometer (left) and the Invensense MPU9150 9-axis accelerometer/gyro/magnetometer (right) is being assembled.

    Here's the board, with solder paste.  Looks good!  The paste on the MPU9150 is a little misaligned by a few tenths of a millimeter, but it tends to sort itself out during the reflow process.  I usually adjust some of the more worrisome looking misaligned paste around with a pair of tweezers before placing the components.

    Here's the board with paste and after the components have been placed.  Time for reflow!

    I tend to reflow most of my boards in a $20 toaster oven.  It sounds crazy the first time you hear it, and you feel crazy the first time you do it, but it usually works out very well.  Sparkfun has a tutorial on converting toaster ovens into reflow ovens, but I live a little more dangerously and just set the heat to maximum and bake -- watching the board like a hawk until it reflows, and then popping it out of the oven immediately after.  

    These sensor boards are /so small/ that they will fall through the grill of the toaster oven, so I've layed this one on an old coaster -- er -- breakout board from another project.  I'm also trying not to snap pictures for too long, since I have to pull it out as soon as it reflows or the parts will cook!

    The finished magnetometer and inertial measurement unit sensor board.  Not shown was attaching the sensor board connector to the back of the board -- a 20 pin double-row 2mm-pitch male connector. 

    I hadn't yet soldered on the sensor board connectors to the motherboard, in part because they were low on stock, so I could only order enough for a few boards. These have alignment pins that go through the board (and make routing a little more challenging), but it's worth it -- they align in exactly the correct, orthogonal orientations. 

    I confess that one of my largest anxieties about this design was the sensor board connectors.  I literally looked through thousands of connectors on Digikey searching for one that was both right-angle, board-to-board, medium-density, strong enough to firmly mechanically support the sensor boards, and larger than a 0.5mm pitch for easy alignment and soldering. There were not many options.  The ones I settled on looked like they would have /exactly/ the right mechanical clearance if the board could be routed within 10 mil of the connector footprint, which is a little tight and the first time I've had such a tight clearance, but it ended up working out famously.

    Read more »

  • Step 4: Beginning Prototype Assembly

    20 days ago • 2 comments

    A very exciting post after a weekend of beginning assembly!

    Motherboard Assembly

    The bare motherboard PCBs and the rest of the components arrived this weekend, and I'm very happy to say that there's now a partially assembled prototype.  There's of course still lots of hardware verification and software to write, but moments after finishing the motherboard I wrote a simple test for the OLED display, and took this quick test video.  Of course my cat decided it was the perfect time for sits...

    I remember nearly a decade ago when I first started designing and populating boards with surface mount parts, I started off like everyone else manually placing paste on each pad with a solder syringe, and then "fine tuning" these globs of paste with tweezers to make sure that there wasn't too little (which would cause a pin to fail to solder), or too much (which may cause a bridge with a neighbouring pin).  Recently folks like OSHStencils have popped up, which make very inexpensive laser cut solder paste stencils.  This not only saves a great deal of time, but cuts down on bridges or unsoldered pins.  I'm still refining my technique -- I usually find for tight-pitch TQFPs with a bunch of pins I'll still prefer to manually solder them to reduce the chance of bridges (which can be difficult to repair), but for passives, small QFNs, or other parts with large pitches, these inexpensive solder stencils are absolutely great!

    A set of tweezers and some time later, the parts on the bottom of the board are populated and ready to be reflowed.  

    When I first read about reflowing boards in a toaster oven, I wasn't sure what to think, but with a few inexpensive boards to practice on for your first few tries you can usually get fairly good results!  For large boards sometimes you'll find the heat is a little uneven, and parts in one location of the board may reflow well before others.  This certainly leads to cooking parts, especially delicate sensors, but if you watch it diligently you can usually minimize this.  (Or, at least have a good idea what parts to replace when the board doesn't power correctly ;) ).

    I usually try to keep all of the parts that I'd like to reflow on one side, and the parts that I'll hand solder on the other side. 

    One of the Arducorder mini motherboards, after reflowing.  Looks beautiful!  There was only one small bridge, on the TPS63001 buck/boost regulator. 

    Before populating the other side of the board, if possible I like to try and test the components on the first side.  For multilayer boards I tend to put the power circuitry on the bottom side, and this allows the opportunity to test the voltages before populating the other side, and help narrow down potential issues if any issues pop up. 

    Everyone has aspects of design that they're good at, and some aspects that need a little work. Historically I know that I've tended to over-engineer power circuits, and haven't had a perfect success rate with complex buck/boost switching regulators, so I tend to treat these as a learning experience and give them extra attention.  Here the FAN5331 boost regulator looks to be working properly, and successfully generating the 13V OLED supply.  Great news, and score one for following those recommended layouts in the boost datasheet!

    Making your mistakes cheaply

    One of the most beneficial life lessons I've ever learned is the idea of making your mistakes cheaply, which is something my mentor in graduate school used to say.  I remember before going to grad school, I used to look up at all these researchers and professors and other monster minds and think -- they must be such bright and intelligent folks from all their years of experience, and rarely make mistakes. Ten years later I'm a one of those researchers, and I make ten times more mistakes than I used to -- infact, research is so challenging I sometime say that I'm a professional mistake maker, because most of what I do is try out ideas that might not pan out.  The difference is that I've had ten years to learn how to make those mistakes very quickly, ideally without much cost in time or resources, and quickly move onto finding the solution.

    I bring this up because in t Read more »

View all 8 project logs


matt venn wrote 7 days ago null point

super inspiring!

Are you sure? [yes] / [no]

Gasump wrote 8 days ago null point

I agree with jixijenga; a modular sensor system would be a good idea, that way people can adapt the tricorder to their personal needs. For example - people living near a manufacturing plant that 'smells bad'. They could test for various gases/chemicals that could be harmful to their health. While I don't fear opening up and swapping components, I also think the plug in 'accessory' sensor block is a good idea. There is not much commonality in gas/chemical sensors formats so it would be more difficult to accommodate a wider range of possibilities in the instrument dimensions you are working - which I think is spot on!

But there are new electrochemical sensors (much better for specificity than MOS) available that are about the size of a thumbnail and only 4-5mm thick.

You are doing excellent work, keep it up!

Are you sure? [yes] / [no]

peter jansen wrote 8 days ago null point

Thanks Gasump! If you have a look at the project description, video, or the project logs, you'll see that the design is ultra modular with 5 modular sensor boards, 4 of which share a common footprint so that they can be interchanged in position. It should also be relatively easy for someone who's designed an arduino shield to put together their own sensor boards. All of the sensor boards are on the outward surfaces of the device, so if you're willing to make your own case mods, it should be possible to accomodate larger sensors of different dimensions (like those giant gas sensors you mention).

One of the current sensor boards (the atmospheric board) contains sensors for atmospheric temperature, pressure, humidity, as well as three gasses using a tiny sensor similar to the ones you mention -- have a look in the project log Step 2: Concept and Industrial Design for more information.


Are you sure? [yes] / [no]

Boz wrote 14 days ago null point

Very similar, yet totally different to my project, I've upvoted it just for the awesomeness of what you're trying to achieve.

Are you sure? [yes] / [no]

Noman wrote a month ago null point

Anxiously waiting for the updates and checking project daily I found boards log. Breakout boards for sensors and compatibility of interfacing is cool. Another expansion option might be possible through a converter board that would enable any standard (if there are any standards for these) breakout sensor board from sparkfun or adafruit to plugin to device, or this may be expansion slot?
Capacitative touch wheel is another innovation added and it is impressive. You are not adding ultrasonic sensor due to size limitations but how about adding HB100 doppler motion sensor? Also will the mic would be able to listen to bats?
Sorry for too many questions but that's what strike my mind while reading through.

Are you sure? [yes] / [no]

peter jansen wrote a month ago null point

Hi Norman,
I'm hoping that after the device is completed, that instead of working on building these open source science tricorders, there can be more focus on building new sensing packages for them. I'd love a small distance sensor, but I'm not sure that there are any good options out there yet. The HB100 is interesting, but I think also much too large (I think it's nearly half the size of the Arducorder mini!). It also seems to only measure relative change in motion (like an accelerometer), rather than position.
There really are no standard pinouts for sensor boards from sparkfun or adafruit. But with such a low cost to spin your own sensor board, the barrier to creating your own sensor module is much smaller.

Are you sure? [yes] / [no]

Jixijenga wrote 23 days ago null point

Noman, Dr. Jansen,

Perhaps later iterations of the tricorder could have a modular sensor system? Like a plug and play type setup, you pop open the housing, unplug the board(s) and then plug in a different one. We've reached an understanding with technology now that upgrading one's computer isn't seen as a daunting and highly technical challenge anymore, it's largely switching out or adding components that conform to a standardized plug or socket. I think that any advancement in this tricorder could benefit greatly from having such a system, rather than defining the capabilities based on packages or defined variants. An end-user, no matter how uninformed they may be, could customize and configure their tricorder for use in their life. Perhaps people sharing a tricorder could have entirely different uses, and require constant switching of sensors.

Or maybe have a USB type getup, where the sensor packages or modules aren't just restricted to a tricorder and can be used in anything that accepts a USB device. I think that would be great, because while a handheld tricorder is cool, (very cool actually) giving basically anyone with a laptop the ability to emulate one would be even better. Especially for people who wouldn't be able to afford the purchase, or construction, of an entirely new device but would benefit from it's functionality. Perhaps the tricorder could have little "ports" where you plug in this small card-like sensor with a USB plug on the end. I'm sure such a modular and truly plug-and-play sensor would be very robust and durable, further enhancing the utility of the tricorder.

Are you sure? [yes] / [no]

Noman wrote a month ago null point

Dear Dr. Jansen, thanks for your kind and informative reply. Yes, BLE and IOS device attachment both have their drawbacks. TechBasic (Basic programming language) skips any need to know IOS programming, I found it easier to use than my aged Casio 880P. I suggested BBB as it is fully opensource and has a small footprint but larger as compared to your mini tricorder version, off-course. I can not wait to see Mini version come to life. I would like to contribute in kind for any component or anything holding it back to come to reality.

Are you sure? [yes] / [no]

peter jansen wrote a month ago null point

Hi Norman,
Thanks for your kind note, and those are good questions. There are a few main thing that limit making this into an open source sensing device that connects with your phone (I've thought about this a bunch of times, as a potentially simpler route to development). One of the main issues is the BLE bandwidth is very limited, only around 1k/second -- way too slow for some of the sensor data. There are also mechanical issues trying to make one device that could mount to different phones (and not obscure the camera), software issues (I'm not an iOS or android programmer), and cost issues (ideally I'd like to make these available for kids, and it'd be unfortunate if the kids also were required to have a $500 phone to pair the sensors with).

I've investigated using different platforms -- the gumstix, the new raspberry pi compute module, and the beagle bone black, just to name a few. The major issues are size and power draw. With this mini version with a motherboard designed from the bottom up for size, portability, modularity, and power efficiency, I've designed it to be small enough to comfortably fit in pocket, and ideally have a lengthy battery life (more than just the hour or so you're likely to get with any of the modules I listed above).

Are you sure? [yes] / [no]

Noman wrote a month ago null point

I am a tricorder enthusiast since childhood. Dr. Jansen, you has come a long way [4 Gen before this 5th Gen device creation! Cool] and doing a great job. Brilliant. To me it is more inspiring and motivating project than any of others.

I am just curious, how about using an "IOS device with TechBasic" as front end while MC+Sensors board connected through BLE doing sensing job? TechBasic is good at graphics and visualization of data. Also how about using BeagleBone Black as main board with LCD Cap?

Are you sure? [yes] / [no]