Well, I have been adding sensors and displays to existing plastic model tricorders (Playmates and DST) for a couple of years now, and perhaps I can share some insights. Let me first say that I’m in awe of all the fabulous work that the Fleet Workshop members have done making tricorder replicas; if I had the skills, I’d give it a go. My own skills, though, are more concentrated in programming and soldering.
I researched several microcontroller boards, including the Pi, before settling on an Arduino Nano. Although it runs 1/30th the clock speed of the Pi, it’s very efficient for this application because:
- I can run a TFT screen and 10 sensors for 5 hours on 3xAAA or 1x9v batteries;
- Very fast start-up: 2 seconds vs 15-30 seconds for the PI
- more stable sensor readings, because it’s not running an OS (no overhead)
- more library support, especially for TFT displays, because most PIs use HDMI video.
Take those observations for what they are; many people have done great projects with the Pi, and certianly if you want to incorporate live video or high-rate graphics, that’s beyond the Arduino.
Whichever board you use, you will probably be using SPI to connect to the TFT - 4 or 5 wires, plus power/ground. The most important thing to find a library that’s specific to the controller chip in your display. First time I set up a new lib/TFT combo, there are some frustrating hours involved, but it always works out.
As for sensors, be aware that the ultrasonic sensor you’re considering will require a large hole in the back of your Tricorder - it can’t sense through something solid. There are shorter range laser/IR sensors that would use just a pair of smaller holes (perhaps 1/8 inch). Personally I’ve avoided the whole issue, and saved my hole cutting for things like RGB sensors and a thermal camera.
The BME280 is a great choice and very practical (it’s easy to stuff these things with exotic sensors you’ll never use, like a fluxgate magnatometer or a doppler radar - I know). This uses the I2C interface and at least on the Arduino is very well supported.
The GPS will use the serial RX/TX lines on your board, and there should be libs for both platforms (I’ve avoided them thus far due to current draw issues but they’re improving in this regard, and you’ve spec’d a big battery).
The gas sensor you mention is great, I’m using it in my current build, and uses only 1 GPIO pin. I’ve found it requires a lot of airflow, though, so I’m having some second thoughts on exactly where to put it. It also falls into the ‘slightly less useful’ category unless you have a lot of gas leaks in the house.
The MEMS magnetometer I find to be very useful, and also entertaining when displayed as an X/Y/Z plot. It’s another I2C bus device, and since you’re already using one I2C device, well, why not?
Also, for the probe, you’re probably going to need another microcontroller between the sensor and the Bluetooth board (and we’re not takling a Pi here - even the Zero is way too big). Adafruit has some Bluetooth/microcontroller combos. I’m not very familiar with them, but I think they’re a wee bit power-hungry. I played around with some very tiny 433mhz stuff, but it’s not reliable.
Let me know if you’d like to see some pics; I’m a little reluctant to just post pictures of a DST product on this board without being OK’d first!
It’s a lot of work (and I didn’t even build the Tricorder itself) but in the end, there’s nothing like holding an actual working piece of 23rd century technology in your hands. And there will always be a ‘next sensor’, like that new 6-band NIR spectrometer on Sparkfun…