how to

Prologue I have always wanted to build with an ARM MCU, STM32 was on top of my to-learn list. Happily, not so long ago a respected colleague lent me an STM32 Nucleo board to play with, as usual, it stayed in its box for a while and then I started learning about the STM32 MCU and the toolchain and the capabilities of that great MCU. So in this introductory post, I will discuss how to setup your Linux development environment and your arm-gcc toolchain to start compiling and running code on your STM32 MCU.
Introduction Teensy LC (Low Cost) is a 32-bit microcontroller board that you can get from PJRC a company in Oregon, USA, which is owned and managed by Paul Stoffregen. It features an ARM Cortex-M0+ processor designed for low-power, low-cost devices. You can buy it and read more technical details on PJRC’s Teensy LC page. I am writing this tutorial as a complete guide for starting with the Teensy LC development and also as a reference for myself in case I need to revisit it in the future.
The issue Not so far ago, I had an issue with my Dell Inspiron 15 Series 3000 Laptop that I couldn’t connect to any WiFi network using the built-in wireless card and had to use a USB WiFi dongle. Turns out that Dell Inspiron 15 has a Broadcom series of PCI wireless cards on board. I was running Ubuntu 16.04 LTS at that time — I upgraded to 18.04 LTS (Bionic Beaver), the tips in this post would still work — and it didn’t support my WiFi card out of the box, I was almost certain it would be a driver issue even though I did some online search to get help but was guided by wrong directions by some of the online forums stating solutions like upgrading BIOS firmware, some Windows-related drivers updates and also some BIOS tweaks that worked for some people (probably they are not using Linux).