Peter Jansen | PhD Candidate | Cognitive Science Laboratory
tricorder
While in undergraduate I worked on creating a handheld multisensory device for various atmospheric and physical measurements, similar in function (and looks) to a "tricorder". A fairly cool looking prototype was developed (pictured below) with a few sensory capabilities, with a much more functional prototype in the works. While the original designs made use of a BasicX microcontroller connected to a custom-programmed (and somewhat modified) Game Boy Advance SP (using the BasicX as a low-level sensor interface, and the Game Boy for computational power and a graphical interface. A later prototype that was never completed was to replace the Game Boy SP with an Imsys SNAP Module (a very small linux system) coupled with a separate LCD display equivalent to that used by the Gameboy SP. A partially completed prototype using the SNAP board and a Gameboy Advance SP to display the data is also pictured below.

too cool!
(Yes, that data is
displayed in a cool
polar-coordinate-
over-time way!)


For those oriented in the ways of the trekkie, they may recognize that this is not a standard tricorder design, but was infact the tricorder used in the last episode of Star Trek: Voyager by the future Captain Janeway (sometimes reffered to as an "Endgame Tricorder"). I chose to use this design because I think it looks rather cool and features a large display area. The chassis was handcrafted using polystyrine sheets, and designed to be easily disassembled and to get at everything rather easily.

For the technically oriented, the Game Boy Advance SP has quite an active development community that has developed a great number of tools including a set of libraries for the gcc ARM cross-compiler to allow indie people to develop software for the gameboy. The tricorder software for the gameboy was developed from almost scratch, including writing all the graphics routines with but a pointer to video memory to start with. It was a really interesting and fun challenge.

The Game Boy Advance SP interfaces with the StampX through the game boy's link port (which can essentially be used as a low-voltage serial port) through a MAX3232. The BasicX essentially handles the acquisition of data from the sensors, and sends this data to the Game Boy for display. Pictured below is a later prototype board for use with a Imsys SNAP Module in concert with the BasicX (but note that the SNAP isn't installed on the board, and instead the Game Boy SP is re-assembled and interfaced with the BasicX. If you look carefully, you can see the readings from the SHT11 temperature/humidity sensor as well as the barometric pressure sensor displayed on the Game Boy screen (in a serial/text console).
Early SNAP board
prototype. (But the
Game Boy is
connected to the
board, instead).
If you look carefully
on the gameboy
screen, you can
see some sensor
readings.
(T=25.2C, H=55%,
P=96.7kPa)


I had hoped to include a great many sensors in the gameboy for a variety of atmospheric, photonic (light), and electromagnetic readings. In particular, some of the sensors on the wishlist included:

Atmospheric:
  1. O2 and related gas sensors
  2. ambient temperature, humidity, and barometric pressure

Electromagnetic/Photonic:
  1. 3-axis magnetic field strength
  2. Ambient light level
  3. Linear polarimeter
  4. Non-contact temperature sensor (essentially an IR sensor)
Other:
  1. 3-axis Accelerometer
  2. Distance
  3. High-energy particle detector (eg. radiation)

Some of the sensors are fairly easy to find and are widely available (though, in some cases, a little expensive). Others, like the linear polarimeter, don't (or at least, didn't) really exist in such a small form factor. As such I came up with a design for a linear polarimeter and made a (large -- several inches across) prototype, but it involved moving parts (which I wanted to avoid). I then got the fanciful idea of combining two cell-phone cameras, a cube polarized beam-splitter, and perhaps even a small prism to create a miniature low-resolution combination spectrometer and linear-polarimeter, that would have the increadable advantage of being able to measure the linear polarization vectors of an entire scene, not simply the ambient linear polarization. Unfortunately such a project would require quite a bit of small-scale prototyping ability, and that was well out of the realm of things I had done at that point. Maybe someday I'll get back to building a prototype! (it would be quite the instrument -- although the credit does not go to me for the original design of the two-camera linear polarimeter).

The tricorder project is one of my babies, and I hope that someday I'll have the time and small-scale prototyping abilities to continue working on it. If I were to do it today I'd try to use a FPGA connected to one of the 2.6" LCD's left over from the SNAP prototype with an SD card for storage and a little bit of off-FPGA SDRAM for memory. Since a lot of the glue logic and LCD controller could be implemented within the FPGA (which is not to mention how increadably upgradable and flexible the FPGA would be), the computational side of the tricorder could be implemented in a rather small form factor while increasing functionality (an unusual combination), leaving the majority of the chassis free for sensors.