When DevOps Days Minneapolis was announced this year, I decided to throw a talk proposal at it. And because I was feeling nostalgic, I decided to give it a Star Trek theme. I grew up watching Star Trek. First the movies, then The Original Series, Next Generation, and then all the others. Since I was little, I wanted to build my own tricorder. In the show, a tricorder is a multi-purpose scanning and recording tool. When the talk was accepted, I took it as an opportunity to make good on a little childhood dream.
There are a lot of tricorder designs to pick from. Every show seems to have their own unique version. I first gravitated to the one shown in Star Trek The Next Generation (TNG), which has plentiful ready-to-buy props as well as 3D Printed versions. Since this was for a conference talk, it had to go with the entire outfit.
That's when I ran into my first problem. It's hard to find Star Trek uniforms in my size. Often, they were too small, the wrong cut, or the wrong color. Since my talk has to do with computer engineering, I figured I'd cosplay as a Star Trek engineer. In the TNG era, engineers wore gold (command red, sciences blue). I look terrible in gold, and I couldn't even find so much as a plain dress in that color which would fit and look good on me. My pedant brain, however, remembered that the colors were a little swapped around in The Original Series (TOS), with red being engineering, and gold being command. Now a red dress, or at least shirt, I could find, and it's a color that looked good on me. I ordered a small magnetic combadge (a shirt worn communication device in the show), and I already had a black skirt.
Then came the second problem. There hasn't been nearly as many toys or props for TOS era tricorders, and those that were available, were hideously expensive.
Then I remembered I had a 3D printer.
While there were several tricorder designs available to print on Thingiverse, I liked this design by "Wythkyn" the most. It's available as many small prints which you glue together, rather than a much larger, singular print. While my printer now has a camera and an Octoprint set up, I don't have the confidence in my machine or my skills if the printer were to experience an overnight fault, or worse, cause a fire.
I chose two different filaments by Hatchbox for the print. One, a metallic silver for the base and frame, and the other a black PLA with silver sparkles in it. The effect of the sparkles is subtle, but adds a sense of "future" to the print in-person. I chose Hatchbox because it was available to me, easy to print, and I've had good results with it before.
I don't have any photos of assembly, but the Thingiverse page covers it surprisingly well. While it doesn't give any instructions, I found gluing the "record disks" to a center-dividing panel was a critical first step. Once that was done, I glued that part to the frame under the hood. From there the rest of the assembly was obvious. I found it's best to assemble the project once, rather than take it apart multiple times. The pins on the frame can easily snap off.
Originally, I was only planning on the empty, plastic prop. After all, it wasn't a necessary part of the talk, it merely adds flavor. Nevertheless, as I was assembling the case, it became apparent that it would be easier to add electronics now, before final assembly, or none at all. I rummaged around and found an original Model B+ in a bright green Pimoroni case and stuck it inside the tricorder. The effect was magical.
So I started shopping.
Over on Mastodon, someone suggested using a 2 inch, mini NTSC television as a display. The Pi I had supports it out of the box through a standard RCA connector. The small size would also easily fit within the 3D printed hood. A 2.5W mono amplifier and mini speaker would work for sound output.
As I learned in the Cardboard Pi project, power was going to be the most difficult part. A natural thought would be to use a USB battery pack; this would work for the Pi of course, but not the display. The TV requires a minimum of 6V, while the Pi runs on a standard USB 5V. To solve this problem, I went old-school. I bought a 4 cell AA battery case with a built in switch. This would power the TV out of the box easily. For the Pi a per-calibrated 5V buck converter stepped down the voltage from the AAs to one capable of powering both the Pi and the amplifier.
A quick desk test showed everything was working, and once mounted in the case with dabs of glue, plastic from a 3D pen, and foam poster tape, I had the parts all inside the case.
And it was all going so well, everything was working, and then the screen started getting fuzzy...then it lost vertical sync, then horizontal, then...it was a blurry mess. The device wasn't dropped, hit, left out in the heat, eaten by a excited cat, or anything. It just failed.
I charged the batteries and put a new set in, let it cool down, checked the connections, nothing helped. I tried to see if there was an issue with the connector with some testing tools, but in the process, I connected it backwards. This sent 6V through the video input, frying the already failing display completely.
I set the project down and decided that there simply wasn't any money to order a replacement. If I waited until my next paycheck, it wouldn't arrive in time for my talk. I mentioned all this on social media, and someone must have been listening. An anonymous donor sent me the $40 for a replacement, and I ordered one immediately. Thanks!
To get power and signal to the screen and speaker, I took advantage of an existing hole in the hood's hinge. This turned out to be the perfect size for the screen. I carefully drilled out the opposing side for the speaker lines.
Once the wires were in place, the hood still rotated freely, although it now had a preference. It didn't want to stay fully open or fully closed. To fix this, I turned to more magnets. I glued in some in a little channel already existing in the hood design. Then I drilled out some space for magnets in the silver frame on either side of the hood. This encouraged the hood to stay fully open or fully closed.
If I were to build this again, I would prefer to include a spots in the 3D printed design to accommodate it. That would eliminate so much needless drilling.
Perhaps the weakest part of the 3D printed files was in how to do final assembly. The design is intended to be glued together once, permanently. This isn't exactly compatible with the ethos of open, hackable electronics. After the screen failure, I was reluctant to glue together the last few pieces and risk a possible failure.
I tried to come up with options. Tape? Velcro? More magnets? Complicating this was the fact there was no way to attach the sides at all. No pins. No holes. Nothing.
I dug around in my spare parts drawer and found several small metal standoffs and some matching screws. I used a combination of epoxy, glue, a 3D pen, and melting plastic with the Pinecil. While a little brutal, the result is easy to disassemble, strong, and (mostly) easy to ignore.
Building the tricorder was a fulfillment of a childhood dream. It was surprisingly easy once I had access to the correct tools and parts. In retrospect, however, I'm unsure if putting a full Pi in there was the best choice. It's nearly unusable with the small screen, and unless I cut open an access port for USB, it is unusable for anything other than a fancy prop.
An alternative I've considered was to replace the Pi with a Hackvision. This small, arduino powered game system outputs to a standard TV (although in black and white). I would need a 9V battery pack, but that wouldn't be impossible to do. That would make the Tricorder into a curious little game system complete with sound.
Either way, I learned a lot on this project. I improved my soldering and wiring skills and even designed a functional power system. Maybe next time, I can improve on the project.