Real-time Speech Keyword Recognition using a Convolutional Neural Network (CNN)

For this project I will adventure myself away from electronics and embedded systems into the real of Machine Learning and speech recognition. I recently started to gain interest in this domain and wanted to gain more practical experience in addition to the theoretical knowledge about the topic that I already had. In this project, I’ll guide you through creating a Convolutional Neural Network model which will be able to recognize a vocabulary of 20 different keywords in real-time.

Read More

Heterodyne Ultrasonic Bat Detector

This project is about building a so called bat detector, i.e. a device that lets you listen to and record the sounds emitted by bats. As you probably know, bats emit ultrasonic sounds for the purpose of echolocation. These sounds lie in a frequency range above the human audible range and thus can’t be heard directly. A bat detector uses a special microphone to capture these high-frequency sounds and convert them to a sound within the human audio frequency range.

Read More

SNES gamepad USB converter with STM32F103

Playing classic games on the PC or tablet etc. is great fun, but without the real gamepad the experience is not authentic. In this post, I will show how to build a simple converter using the STM32F103 microcontroller that allows to connect a Super Nintendo (SNES) gamepad to the PC as a generic USB HID (Human Interface Device) gamepad. This has the huge advantage that the solution is plug-and-play, no drivers are needed on any OS.

Read More

DIY Soldering Station Controller

It’s been quite a while that I wanted to treat myself to a new soldering station, and recently I found out about the Weller RT active tips which are great for building a soldering station. The whole station from Weller is really expensive, but the tips cost only around 25€. They are active, which means that they contain the heating element as well as a thermocouple temperature sensor. I got inspired by several similar projects on the web, like this one, this one or this one.

Read More

BLEthingy part 1 - hardware

BLEthingy is a battery-powered, wireless sensor node device. The device is powered by a CR2032 coin cell battery and is designed to consume as little power as possible. Wireless connectivity is provided via Bluetooth Low Energy (BLE), which allows for low-power transmissions e.g. as a so called Beacon.

Read More

the speaking compass

In the previous posts I showed how to store and playback audio files with the STM32F1 microcontroller and a SPI flash memory chip. Then I kept thinking about building something that uses audio output. Digging through my parts bin I came upon a QMC5883L magnetometer board that I bought long time ago. So I had the idea to build a speaking compass, that tells you the current orientation using voice audio output.

Read More

W25Q64JV SPI flash memory chip as external memory

In the last blog post, I showed how we can create audio sginals using PWM on a STM32F1 microcontroller. But since the memory space available on the microcontroller is really small, we can’t store a significant length of audio recordings. Thus I decided to use an external meory and went for a SPI flash memory chip, the Winbond W25Q64JV. In this post, I’ll explain how to use it and read/write it with a microcontroller, in my case I use the STM32F103.

Read More

create audio signals with PWM

In this post I’m going to show how we can use PWM to playback audio on the STM32F103 microcontroller. In the previous post I explained some theory about how to generate analog signals with PWM, now we’ll see an example of how to realize it.

Read More

PWM centered vs. left-aligned mode

Puls-Width-Modulation (PWM) can be used to implement a simple digital-to-analog converter to create analog signals with a microcontroller. There exist two modes of PWM, a left aligned asymmetric mode and a centered symmetric mode.

Read More

a tiny software UART TX for the AVR ATtiny

The serial port is a very commonly used interface for communicating between a microcontroller and a PC for debugging or sending or receiving some values. Most microcontrollers include a hardware peripheral called UART (Universal Asynchronous Receiver Transmitter) which handles the serial communication, but some especially small microcontrollers (like the ATtiny24a that I am using) don’t have one. In this case we can implement the communication in Software.

Read More