Non-destructively testing a heart rate monitor strap.

Polar HR strap


The polar heart rate monitor straps are completely sealed. This is the easiest way to see the output on a scope while still being able to wear the strap at a desk. Of course if the number of turns was optimized the output would be better, but for something quick this worked just fine.

Micromouse 5/2012

I recently added my documentation for my Micromouse project to my Projects page. Check it out:

Micromouse 2012

More of my projects will be added to my Projects page soon, stick around!


7400 Contest Entry: i2s DAC with class D output

This is my entry for the 7400 Logic Competition. A little bit last minute, and hopefully I can get everything finished before the cutoff tonight.

I’m using a SN74HC132 hex NAND gate, a CD4094BE 8 bit shift register, two CD4585BE 4 bit comparators, a SN74HC590 8 bit counter, and a SN74HCU04 hex inverter.

The basic operation is as follows:

A 3MHz master clock signal is input from the i2s master into the 74590 counter which when divided by 256 is equal to 11,718kHz which I used for my word clock(wclk). This is also going to be the sample rate of my audio signal. I then use the wclk as a gate (utilizing the 74132 NAND chip) for the data clock (clk) to the shift register as well as to clear the counter. After the data is shifted into the 4094 shift register it is then compared against the counter which is continuously incrementing from 0 to 255. The output of the comparator is then fed into a 7404 inverter to buffer the output which drives an N-channel and P-channel MOSFET creating a half-H bridge and driving the speaker through an LC lowpass filter.

This ended up being more of a proof of concept as I ran out of time to debug everything. There are some bugs that need to be worked out, but I didn’t have any logic analyzer to debug the 8 bit bus. However, the frequency sweep shows everything working for the most part!
Thank you for taking a look!
The demo code I used on the LPC1769 is available on my GitHub repository.


Breadboard-able LPC1114 ARM Cortex-M0 Followup

Around the beginning of the year I posted this article¬†about my idea for a breakout board for NXP’s LPC1114 ARM Cortex-M0 microcontrollers after being inspired their announcement for a DIP packaged Cortex-M0 micro. Earlier this month I received the PCBs for my design and built two of the boards using my reflow oven.

In the above pictures I didn’t populate the power LED, but everything else is in place and tested. The LPC1114 QFN package was actually a pleasure to work with using solder paste and a reflow oven. I didn’t have a small enough tip for my solder paste which meant I had a little too much solder in places but that was easily cleaned up with a fine tipped iron. The most obvious place where there is too much solder is around the crystal oscillator on the right, and the 0805 capacitors on the left of the board.

After building two of the boards there were a few things I was happy with, and a few more disappointments. Firstly due to the pin layout of the LPC1114 chip in the QFN package I could make this breakout board quite small and still keep a fairly large ground plane. The small size was a goal of mine especially considering I wanted to be able to plug this board into a standard breadboard. It was almost something I would use!

Now on to the disappointments: My idea presented in my other post about reset and boot-loader buttons was a failure. I had an idea of using small edge mounted buttons to reset and enter the boot-loader mode on the LPC1114. While the idea worked in terms of functionality the implementation failed in terms of ergonomics. Pressing the buttons to load code onto the chip was an unpleasant experience which I think cost too much in usability. My next gripe which I thought might be a problem is that I still need to hook up an external device (In this case a FTDI USB to UART chip) to reprogram the LPC1114. Lastly the silkscreen on the board was blurry! Although this was my fault for making the size too small. It was legible, but it is nice to be able to read which pins you are connecting without squinting.

I am quite happy with building these breakout boards as a learning experience. I do plan on making a second revision which incorporates what I have learned. I plan on doing away with the buttons and instead adding a small FTDI USB to UART chip in a QFN package. This can also be used along with lpc21isp software to automatically reset and enter the ISP boot-loader. As an added bonus this would add USB serial functionality to the board without adding anything extra for easy debugging and prototyping. The external crystal could also be eliminated  with the pins being broken out so that any crystal could be used. This would offset some of the cost added with the FTDI chip and USB connector, especially considering the LPC1114 has a 12MHz internal oscillator.

I will post schematics and layouts for the updated version 2 of my breadboard-able ARM microcontrollers once I have them ready to send off.