Three years is perhaps a bit of a long while for an update, but here we go.
I've had precious little time over the past three years for my open hardware projects -- being a tenure track professor and a father to a little one already takes up most of my day, and when the pandemic hit it just took away every bit of time I had. But, things are starting to get slightly back to normal, and I've been eager to finish off some projects including this latest iteration of the open source science tricorder project.
The world has of course also changed in the last three years -- in the electronics world, it's almost impossible to get ahold of some parts, including the Raspberry Pi Zero W's that Iteration 8 was originally designed with. I have thought for a number of years of simply redesigning Iteration8 with a number of changes:
- Microcontroller: Use a microcontroller instead of a ]Raspberry Pi Zero W, as the Pi is very power hungry, and very hard to come by.
- Screen: Instead of making the device a backpack for a phone, make it it's own stand-alond device like all the previous iterations.
- Sensor connectors: I really like the idea of connecting all of the sensors using connectors. I'd like to do this but to the extreme -- connectors for everything, to make it easy to add to/modify.
I'm also intending on embracing the 80/20 rule: you can often get a project 80% of where you'd like it to be in about 20% of the time it would take to get it to 100%. In my past open source science tricorders I've spent a lot of time keeping the board compact and saving every millimeter. Here I'd like to try and use off-the-shelf parts as much as possible, even if it makes the device a little bigger, in favor of finishing the project quickly.
I have drivers for the previous sensors from Iteration 8 currently working:
- The 8x8 pixel magnetic imaging tile
- The Radiation Watch Type 5 high-energy particle sensor with my external backpack to increase its sensitivity
- The SCD30 CO2 sensor with a wide detection range (up to 10,000 ppm)
- The SPS30 air particulate matter sensor
- The TFMini Plus distance sensor
- MLX9040 low-resolution thermal camera
The switch from a FLIR Lepton to an MLX90640 was a bit difficult because of the lower resolution, and one of the main benefits of the Pi is that it can easily connect to the Lepton through USB. I've tinkered with Lepton drivers for the Teensy without luck, and can always hook up the Lepton through one of the SPI headers if I'm able to figure it out in the future.
Just like Iteration8, the sensor boards have small adapters that I put on the back to adapt their standard 0.1 inch headers to the small board-to-board cable connectors.
The motherboard for the Teensycorder essentially is a large collection of headers and connectors. Currently, there are specialized headers for the radiation sensor, the magnetic tile (SPI), the TF Mini Pro (UART), two unused headers for the Hamamatsu spectrometer and an SPI camera module. There are also plenty of standard QWIIC connectors for I2C devices, so that sensors with that interface can be added in easily.
For this prototype I embraced the idea of headers -- centrally because it's extremely hard to find nearly all of the parts on the device, and I was very lucky to find two Teensy 4.1's in the current shortage, and didn't want to waste one by soldering it to a board that might not work. The story is much the same for the power circuitry -- while the 3.3V buck power supply is relatively easy to find, it's very hard to get ahold of the 5V boost + lipoly charger, so I decided to make my mistakes cheaply and put everything on headers so that I can reuse them between prototypes.
With the drivers for most of the major components and sensors seemingly working, my next steps are brainstorming ideas for a lightweight but attractive graphical user interface for the sensors. I'd also like to try and put as many of the sensors in a power-saving mode as possible, as the current draw can currently be quite large with all of them enabled.
That's all for now -- thanks for reading!
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.
Have you decided what you want the user interface to be? Or is it still a work in progress?
Are you sure? yes | no
Could you do an interface similar to the tablets that can use a keyboard attachment? I mean would you be able to use input from either one, depending on user preference? Or both, if it’s easier?
Are you sure? yes | no
Is the current design going to be touchscreen or will it keep the physical keyboard? Or some combination of both?
Are you sure? yes | no
That's a good question, and something I'm still trying to figure out. I had tinkered with using LVGL to make a GUI that was primarily driven by the keyboard, but it's not particularly exciting (and, I'm struggling with the LVGL libraries a bit, so it's been slow going). So I'm rethinking the interface, and somewhat at the mercy of inspiration for exactly what the interface will look like right now. I think the other models have historically just had very simple input devices, so similarly simple interfaces. Now that there's a full keyboard, I'm brainstorming how to best make use of it.
Are you sure? yes | no
That looks like a lot of progress. Congratulations! 🙂
Are you sure? yes | no
thanks! definitely getting there!
Are you sure? yes | no