I have completed the project I set out to do. First, let's start with some results! The graph below shows the results of the temperature waveform compared to a reference (IR camera) under biological tests. I posted this in my last blog, but I wanted to show it again to highlight the interesting correlations between biological function and externally visible signals. Let me direct your attention to the mental strain portion between 50 - 60 minutes marks. The mental strain is designed to trigger the sympathetic nervous system (SNS). The SNS causes the body's sweat glands to produce sweat, cooling the area, which is why we see a drop in temperature. Pretty cool!
To get to this data, we needed a system that could integrate analog, data logging, and also be very low power/small. From a high level perspective, the PSoC serves as the hub of intelligence and also integrates the analog required for an external sensor system. Biomedical/wellness devices are a tricky thing to build, because they must be very small and very low power as so not to be obtrusive to the end user. To that end, I integrated a innovative new piece of Cypress technology: FRAM. For those who are unaware, FRAM is an ultra low power memory solution. I use it here to extend my battery life.
In terms of PSoC hardware, the final system came out looking like the diagrams below. The analog front end consisted of an IDAC set to source about 10uA. The PSoC IDAC provides a unique current excitation. This is important because I need to limit the current going through the thermistor. The ADC measures the thermistor and reference resistor's voltages. These voltages are then converted to the corresponding temperature values.
The communication system consists of a UART for USB-UART functionality to get the data to a PC or other system. The I2C component serves to act as the bus for the FRAM, both reading and writing temperature data to it.
The built in switch and LEDs are used to allow the user to interface with the product and to give them feedback about the program status.
The control flow diagram shows how the user interfaces with the project. If the user presses the switch, they start the data acquisition routine. If they are connected to a PC, they can ask the FRAM to give them the non-volatile data stored inside.
The hardware as it currently stands is shown in the picture below. Right now it is on a breadboard because I am awaiting a shipment of batteries and a battery holder to make this an enclosed project (as best I can). The dual white wires on the left are the thermistor (you can see the thermal "bulb" near row 55 on the breadboard). The lower right hand corner shows the FRAM. It is quite tiny, and you can see its I2C pull up resistors.
I'm hoping that the batteries come in time so that I can encapsulate this and take data for a longer period of time. The body does interesting things such as having its temperature oscillate (circadian rhythms). I would also like to see if I can catch the body's deep sleep.