Close

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 115 86
Enjoy this project?
Share on twitter   Share on Facebook

This project was created on 06/07/2014 and last updated 4 days ago.

Description
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.
Details

Concept Video


Hardware

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
  • First Sensor Boards

    8 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

    15 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 »

  • Board Layout Part 3: Lots of boards!

    22 days ago • 0 comments

    Another quick update after a weekend marathon of board layout!

    Modular Sensor Boards

    Recall that in Step 2: Concept and Industrial Design, we decided that the amount of sensing area for a given case size could be maximized by using all sides of the device for sensors.  This allows us to design a smaller, more portable device, but also has a bunch of other design benefits, including modularity.  By having four separate sensor boards, we can offer our users an upgrade path, and allow folks in the open source community to easily add sensing capabilities without sacrificing the benefit of the existing sensors.  From a design standpoint, it also allows us to perfect the design of individual boards without having to do another turn of the entire sensing system, which saves a lot of time.  Since the clock is ticking, it's all about making our mistakes cheaply. 

    I was able to layout the boards more compactly than I had originally thought, reducing their height by 5mm to 15mm -- and ultimately this may reduce the thickness of the entire device by 5mm, which is fantastic.  The boards themselves are:

    • Atmospheric Sensor Board (left): Containing the ambient temperature, pressure, and humidity sensors, as well as the multigas sensor.
    • Inertial Measurement Unit and Magnetometer Board (right): I've coupled these two together purposefully.  Inexpensive magnetic field sensors have really advanced in the last decade, moving from simply sensing field strength to giving a 3-axis measurement, allowing you to roughly determine the field direction.  The MPU9150 IMU also happens to contain a magnetometer, and I'd like to experiment with advancing this even further by getting range data using the two magnetometers and a bit of geometry.
    • Lightning and UV Board (front): The lightning sensor contains an RF antenna and needs a bit of room, so I've placed it on the front.  I've also incorporated a UV sensor that's capable of determining the UV index.  The UV sensor also contains some very coarse near-field IR distance measurement, and so I've included the LED for this, just incase.  This front board also has a little bit of extra width, which was perfect for the MEMS microphone and amplifier circuit. 
    • Spectroscopy and Thermal Camera Board (bottom): I still have to layout this board, which will house the 3D Printable Mini Embedded Spectrometer, a light source, a low resolution thermal camera, and likely a linear polarimeter.  I've had so much luck reducing the height of the rest of the sensor boards, I'm rethinking the layout, and seeing if I have enough room to lay down the spectrometer (saving a good deal of height), and incorporate the polarimeter on the back side of the board the 0th diffraction order so that everything's on the same optical path.  That would be very exciting!

    In general, I think there are two remarkable things about the sensor board design here.  The first is that there's a very low barrier to entry into making your own sensor boards.  Three copies of a given sensor board is only around $3 (shipped!) from OSHPark, and only absolute requires a header that's $2 in single quantity, meaning that folks can really and genuinely get into experimenting with rolling their own boards even on a serious budget.  Second, the sensor connectors are mirrored, so that you can plug any sensor board into any of the 4 sensor connectors (left, right, front, or bottom), meaning that folks could conceivably mix and match with their own custom designs or upgrade as they see fit with minimal issues.  That's great!

    Capacitive Touch Interface Board

    I like to include something new on each project that I've never used before, to get out of my comfort zone and gain a bit of breadth.   In the design concept I decided to use a capacitive touch wheel as the primary user interface mechanism, with a few buttons for a tactile "click" experience when selecting items or moving backwards in the user interface.  

    After a great deal of research into capacitive touch wheels and parts, I settled on the MPR121 11-channel touch controller.  There are fancier controllers out there that will automatically do the wheel calculations for you, but those parts were a little harder to source, and the central-mas Read more »

View all 7 project logs

Discussions

matt venn wrote a day ago null point

super inspiring!

Are you sure? [yes] / [no]

Gasump wrote 3 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 2 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.

thanks!


Are you sure? [yes] / [no]

Boz wrote 9 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 22 days 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 21 days 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 18 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 25 days 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 25 days 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]