Serial synchronization is hard

2 Synchronized CMS 50D+ (same hand) The hardest bit so far has been trying to get 2 serial devices to synchronize within 2 milliseconds of one another. I had some success. Using 2 of the researchers pulse oximeters, and at least 7 subjects, I managed to get clean photoplethysmograms (PPG waveforms)! Over the course of the week, I also managed to synchronize 2 Pulse Sensor Amped and get at least 2 clean waveforms with the promise of more and I also synchronized one CMS D50+ pulse ox and one Pulse Sensor Amped pulse sensor and get a few clean waveforms. These data are meant to help my fellow teacher researchers in answering their questions more so than mine, but it is nice to be helpful. Best timing results for all systems (once synchronized by hand) was time resolution of ±3 m/s. This is enough to characterize a single waveform and even to find the pulse transit time.

Open Hardware vs Proprietary Hardware

  This video compares the signal between 2 type of PPG. Read on for lots of details!
Circuit Playground Express with LED 1 at max brightness
  This week, I have been tinkering with 3 different ways to read ones pulse. This technique is called photoplethysmography. Light is emitted into tissue with a capillary bed not far from the skin surface. One can measure how much light passes through the skin or how much light is reflected. Both type of photoplethysmography, transmissive and reflective, have pros and cons. Transmissive signals can provide information about blood oxygen content more accurately than reflective signals. But for digital signal processing (DSP) which is what I am after, they both work very well. The signal or pulse is called the photoplethysmogram or PPG. I want to display the signal in real time. Perhaps even provide some analysis of pulmonary physiological parameters such as heart rate variability or inter-beat interval.
FISCHER et al.: ALGORITHM FOR REAL-TIME PULSE WAVEFORM SEGMENTATION AND ARTIFACT DETECTION IN PPG (waveform from pulse oximeter)
A quick search on your favorite store or search engine will show you plenty of inexpensive, reliable home pulse oximeters (finger-in, transmissive photoplethysmographs.
Pulse Oximeter
But if the user wants access to the actual data without using a propriety software package, they are out of luck unless they find a way to crack the transmission protocol. I happen to have access to pulse-ox where the protocol has been cracked and the signal can be accessed directly. But if I want to share what I am doing with students, I feel like they should have access to the hardware and software information without fear of violating someone copyright. There are several different types of open hardware pulse sensors. Today I am going to compare a “raw” PPG to one provided by one of these open hardware sensors. I decided to use the Adafruit Circuit Playground Express as the platform for the “firmware”. This way, I can use both the on-board light sensor and the nearest LED to that sensor as one type of pulse sensor. I also added the Pulse Sensor Amped to the circuit as well. Then I plotted the PPG from both sensors on to one plot using the serial plotter in the Arduino IDE.
Code to take data from 2 sensors and plot them together.
Pulse signal from 2 sources plotted simultaneously
The Pulse Sensor Amped circuit has some built-in filtering to ignore  the so-called “DC” component of the signal. This low frequency signal is not useful for health purposes. The red signal has the DC component filtered out (and the AC component amplified too) whereas the blue signal which is the unfiltered signal directly from the light sensor built in the board is smaller and shows a secondary trend beyond the higher frequency pulse signal.

Week 1: Lots of biology to learn as well as DSP

Over the years, I have learned lots of different computing topics. I have never implemented any digital signal processing. The computing tasks, algorithmic complexity, and data analysis components are all the kind of thing I have done before. But I don’t know very much about human physiology.
Pulse Oximeter
This week I have learned about pulse oximeters, photoplethysmography, and human physiology related to the pulse and blood flow. Here is what I can convey: the simple method for measuring the pulse using emitted light produces a signal that is anything but simple. The data is there, but so are artifacts and sources of noise. The sheer number of environmental and physiological variables makes this task daunting, but lots of great work has been done to attempt to divine the meaning of the signal and the reduction of the noise.
FISCHER et al.: ALGORITHM FOR REAL-TIME PULSE WAVEFORM SEGMENTATION AND ARTIFACT DETECTION IN PPG (waveform from pulse oximeter)
One of the most interesting and upsetting things is how little is known about what causes the waveform seen using photoplethysmography (PPG) and why some areas of the body exhibit bizarre effects when using the technique. You shine a light onto a body part. Then you measure either the light re-emitted (scattered) off the body part or you measure the light transmitted through the body part. Then you analyze the signal and the noise and look for patterns. Or at least display the waveform (hopefully in real-time) so someone can offer therapeutic advice. A pulse oximeter can be used for this task. So far, I have ignored the capability of this device to read blood oxygen levels. Basic signal processing of waveform The hardest part has been getting up to speed on the biology material. The next hardest part has been diving into digital signal processing. But I feel like I have mastered these to a large enough degree to effective learn to process signal data and produce a useful GUI. Once that task is mastered, the problem will be learning to use multiple pulse oximeter devices simultaneously. ^__^

Observing 2017-12-10 From my backyard

Last night was clear and cold here in Meadows Place Texas. It was a great night for observing. The light pollution is quite bad here. Meadows Place is within literal walking distance of both Houston and Sugar Land. So this is urban observing. I managed to get a good image of my green laser pointing at Capella. It is a Laser 303 and it very powerful indeed.

The seeing wasn’t great for my area but there was no cloud cover and it was cold! After 9 pm some lights had clearly been turned off and the light pollution was better. Some dew settled on the Telrad but other than that, the equipment did really well. No fogging up. I initially attempted to use the school’s 8″ Celestron C8 go-to scope but gave up after having alignment issues. Also the thing NEEDS a Telrad. I will work on that. The mount is also shaky and the pointing stinks too. It needs a wedge with a sturdy mount! My 10″ Orion Skyquest Dobsonian reflector worked like a champ though. I used my Orion Expanse 15mm and 9mm plus a Shorty barlow lens and my  2″ wide-field 40mm. The images were taken with the 9mm eyepiece and my iPhone 7.

The best thing of the night was finding the planet Uranus. It took many tries, but I finally found it. It’s currently located in Pisces in the middle of the “V” and not really near any bright stars. This took a LONG time. Patience and perseverance paid off though! The disk was very pale indeed but clearly visible.

I also found my favorite carbon star V* WZ Cassiopeia. It was less coppery red than the last time I saw it. I also picked out the 3 open clusters in Auriga. All were in the glow of Houston to the northeast, but I like the challenge of finding them anyway. They looked a lot better as they climbed higher in the sky.

My list:

  • Albireo
  • V* WZ Cassiopeia
  • M 36
  • M 37
  • M 38
  • M 42
  • Uranus (very hard to find and took most of the my time)
Green laser
V* WZ Cassiopeia
M 36
M 36
M38
M 42 Orion Nebula

Observing at the George Observatory 2017-11-25

Saturday, November 25, 2017, I volunteered with my 10” Dobsonian telescope at the George Observatory inside Brazos Bend State Park south of Sugar Land, Texas. The night was party cloudy, but 9 PM we had mostly clear skies. There were around 150 there from dusk to 9:30. The other volunteers help me find some first-time targets and I went through a lot of other well-loved targets. I also did a short 1-mile hike around the observatory along the Creekfield Lake trail. It’s short but usually empty. It’s a nice walk through the woods.

Here is my list:

  • Mirach’s Ghost (elliptical galaxy NGC 404)
  • Albireo (double star appearing green and white or blue and yellow)
  • The moon including Purbach’s Cross or the Lunar X (this view changed throughout the night)
  • Variable star grouping (appearing red, white, and blue) V* 695 Cygni
  • M57 – The Ring Nebula (planetary nebula)
  • M42 – Orion Nebula including the Trapezium cluster
  • NGC 663 – faint open cluster in Cassiopeia
  • M38 – Open cluster in Auriga
  • M36 – Open cluster in Auriga
  • Uranus (through 20″ Dob)
  • Neptune (through 20″ Dob)
  • Dumbbell Nebula with OIII filter (through neighbor’s 10″ Dob)
View of the observatory from the Creekfield Lake trail
Along the Creekfield Lake trail
Along the Creekfield Lake trail
Along the Creekfield Lake trail
I guess this is Creekfield Lake
I could have smiled. I promise I was happy to be there.
My 10″ Orion Dobsonian reflector
The Lunar X or Purbach’s Cross is clearly visible on the terminator.

 

Observing 2017-11-18

I spent a few hours outside tonight with my 10″ Orion Dobsonian telescope hunting for celestial objects. These were all things I’ve seen before, but it was still really cool and very rewarding. I navigated with my iPad and used my wide-field Celestron binoculars to help me along. I fiddled with my iPhone and iPad camera a bit and produced these images. The software screenshot is from Starmap 2.

Here is my observing list for the evening:

  • Tried to find planet Uranus and this was my only failed attempt of the evening.
  • WZ Cassiopeia  – Carbon star in Cassiopeia near the star Caph
  • The Owl cluster (aka E.T. cluster) in Cassiopeia
  • M103 – open cluster in Cassiopeia
  • NGC 663 – open cluster in Cassiopeia
  • M45- The Pleiades – Open cluster in Taurus
  • The Hyades – cluster in Taurus
  • M36 – Open cluster in Auriga
  • M37 – Open cluster in Auriga
  • M38 – Open cluster in Auriga
  • M42 and trapezium cluster – nebula and open cluster in Orion
  • R Leporis – carbon star in Lepus

It was a nice cool evening. The wind was brisk. This made the seeing pretty bad. But the transparency was excellent. And the lack of a bright moon helped a lot.