Posts from the Tutorials Category

Unfortunately in the bare-metal world, development tools often come at a premium that is out of reach of hobbyist budgets. While I am grateful that microcontroller vendors frequently offer free development software, I often do not have a great experience working with these tools. I do however find them to be a great starting point when becoming acquainted with a particular microcontroller family.

After learning that Visual Studio Code (VS Code) offers extensions for debugging microcontroller projects, I decided to move my entire embedded development into VS Code and have not looked back since. This post will go through the steps that I took to be able to develop and debug firmware on VS Code. The files and code will be specific to the SiLabs EFM32PG12 microcontroller but the steps should apply to most microcontrollers.


Coding Environment

The last post went into the hardware details for our audio project. In this post, we’re going to cover the coding environment. Aside from the basics, there are some neat features in the microcontroller that we definitely want to use and that’s going to need some extra configuration.

The extra configuration steps sent me on a bit of a wild goose chase throughout the internet so I hope that by compiling most of what I learned into one post, you can get started more quickly.

Here’s what we’re going to cover:

  • Simplicity Studio IDE Introduction
  • Creating a New Project
  • Using EMLIB libraries
  • Enabling FPU and CMSIS DSP Extensions

I can’t believe that it has taken me this long to play around with Atmel microcontrollers. Sure, I’ve used the Arduino platform many times but I haven’t actually programmed an Atmel chip without using Arduino code. I’ve been really interested in using an AtTiny for a project and while I could burn in the Arduino bootloader, I decided that I would take this opportunity to get messy, take chances and make (a whole lot) of mistakes.


Every now and then, I like to play around in the Signal Processing world – more so in the audio realm than anything else. The thought that sound can be represented by an array containing a whole bunch of (seemingly arbitrary) numbers ready for manipulation is just awesome!. Yes, I had a lot of fun in my signal processing labs at school and I still love messing around with GNU Octave post-college.

Waveform of the Track I Used.