FPGA – Conflicting FTDI Devices in Quartus

Recently I started using an FTDI FT232H in FT245 synchronous FIFO mode with an Intel MAX10 FPGA. I am using an FT232R based USB Blaster (Not a USB Blaster II, this is an older Altera USB Blaster, Terasic USB Blaster or another clone). Unfortunately when Quartus looks for programming devices it fails if it sees the FT232H first and the FT232H is in use by another program.

Hopefully this helps someone out as I see forum posts on the internet asking about this problem dating back to 2005 and past fixes do not seem to work in Windows 10 anymore.

Continue reading FPGA – Conflicting FTDI Devices in Quartus

PSoC – Design and Implementation of a 12 Lead Portable ECG

Fully Assembled Compact, Portable 12 Lead ECG

During the academic year of 2016-2017 at McMaster University, in conjunction with Dr. DeBruin, Christina Riczu, Thomas Phan and Emilie Corcoran, we developed a compact, battery powered, 12-lead electro-cardiogram. The project won 1st place in the biomedical category at the ECE Capstone Poster Day.

Continue reading PSoC – Design and Implementation of a 12 Lead Portable ECG

PIC32 – Dragon Flame

As a gift to my sister and her husband for their wedding I developed the electronics and firmware for a table centerpiece. The product was developed using tools and materials already familiar to me to tighten the development cycle so some component choices were not ideal but were chosen because I already had programmers on hand, code already written, or schematic and footprint libraries already created for past projects. This significantly de-risked manufacturing as many components of the product were already verified to be working giving me confidence to order boards and parts for twenty of these lamps all at once. Developed in about two weeks and all twenty assembled in a weekend this project was completed quickly as the big day was rapidly approaching when I returned to Canada after my internship in California summer of 2016.

Continue reading PIC32 – Dragon Flame

PIC32 – Custom Development Board (Part I: Design/Hardware)


The IcePIC is the first substantial project I worked on after the my decision to commit to learning digital design and embedded systems. I brushed up on my skills in Altium acquired from my time working as a summer program instructor at McMaster University, and I applied those skills in conjunction (along with a lot of research on the PIC!) in order to begin this project.

Continue reading PIC32 – Custom Development Board (Part I: Design/Hardware)

PSoC – AM Radio Transmitter

AM Transmitter with just a dev-kit!
AM Transmitter with just a dev-kit!

Previously, I wrote about the Cypress PSoC5LP microcontroller that I have been playing with. The CY8C5888LTI-LP097 on the CY8CKIT-059 dev-kit can be used to make a very crude radio transmitter. Today I will be explaining how to make some simple transmissions from a PSoC to a computer equipped with an RTL-SDR and SDR# acting as our radio receiver. We will be using configurable digital hardware to create the transmitter.

NOTE: If you decide to recreate my experiment, you should take a look at your country’s regulations for radio communicating devices. For example, the FCC in the United States allows hobbyists to create and operate up to 5 low power devices without a license as long as you follow some rules. Still, be responsible and don’t operate this for any longer then you need to know it works.

Continue reading PSoC – AM Radio Transmitter

PSoC – Intro and Clock Configuration

Top an IMO derived clock not synchronized to MCLK also acting as the edge trigger. Bottom IMO derived clock synchronized to MCLK.
Top an IMO derived clock not synchronized to MCLK also acting as the edge trigger. Bottom IMO derived clock synchronized to MCLK.

I recently picked up a Cypress CY8CKIT-059 to play with for about $10 from Mouser. The kit contains a CY8C5888LTI-LP097 chip that features an ARM Cortex M3 that can run up to 80 Mhz, pretty run of the mill. However, the chip also features a small amount of CPLD resources and configurable datapaths that can be used to implement any digital logic that you can fit in. Cypress calls these blocks universal digital blocks. You can implement your own logic blocks in Verilog or use Cypress’s IP cores that are included with PSoC Creator. The idea is to avoid predefining how many UART, I2C, SPI or other interfaces to include which gives you more freedom to choose the combinations of peripherals you need rather than using pin muxes like on Microchip PIC’s and Atmel AVR’s for example. With the PSoC 5LP you can have 5 UARTs if you wanted and you can put those UARTs on any GPIO pin you want.

Continue reading PSoC – Intro and Clock Configuration

Is a higher Megapixel count always better?

With the news that the new IPhone 6s might include a higher megapixel (12MP) camera than its predecessor, I decided that it might be fun to explore how much the amount of megapixels in a camera affect the quality of the photo. It is frequently used as one of the sole metrics to evaluate the performance of a digital camera. Is this a reliable number to go by, or is there more to picking out a “good” camera than just looking at the amount of pixels?

Continue reading Is a higher Megapixel count always better?

Head Related Transfer Functions and Headphone Listening

Fast fourier transform output of the first 15 seconds of Switchfoot – Meant to Live. The left channel is displayed on top and the right channel on the bottom. This clearly displays extreme stereo separation.

Listening to stereo music through headphones has never sounded quite right to me. The extreme stereo separation can cause headaches for me when using headphones for more than an hour. Some people report experiencing “pressure” in their ears when using headphones This discomfort could simply be due to how unnatural headphone listening is; no sound from the left channel makes it to your right ear and vice versa. There are some tricks that can be used to get rid of these problems but before I show you how you can try out these tricks let’s get into the math and science behind head related transfer function (HRTF) and how they are used to simulate the way sound travels to our ears resulting in a better listening experience when using headphones with stereo content or even create what is known as virtual surround sound. Continue reading Head Related Transfer Functions and Headphone Listening