Using ARM Cortex-M SysTick Timer for Simple Delays

ARM Cortex-M based microcontrollers has an included system tick timer as part of the core. It’s generally used as the tick timer of a RTOS. Hence the name “SysTick”. It’s also relatively simple and lacks advanced features. Only counts down 24 bit Auto-Reload register Dedicated interrupt Calibration value for interrupt period Can use system clock […]

Problems in Embedded Programming

I used to have a saying; 50% of our problems are caused by improper connections. I am revising it to: 75% of our problems are caused by improper connections. Before you go bug hunting make sure you have proper connections, your cables are up to spec, clock speed is correct for your cables etc…

Embedding Python in C#

Disclaimer: I don’t know C#. Take any line of code you see below with a grain of salt. I have developed a USB based device. Now I have to provide a driver for it to the client (actually another developer team). Device is actually based on USB UART but we have a slightly complex protocol […]

Don’t use SessionAsync

If you are trying to write a Cinnamon extension/applet and having this error when trying to parse some data that you have fetched via Soap.SessionAsync: Failed to convert UTF-8 string to JS string: Invalid byte sequence in conversion input Using Soap.Session instead of Soap.SessionAsync may solve your problem. I’ve encountered this problem when working with […]

Patching a Debian Package

This is my experience on patching a debian package. Once you learn how to do it, its so simple and straightforward I wanted to demonstrate. Problem I develop an application named SerialPlot. It’s programmed with Qt SDK. It makes use of QSerialPort module of Qt for accessing the serial port devices. When I updated my […]

makestmlib is Now A Part of KiPart

makestmlib.py script hat I’ve introduced in a previous post is now a part of KiPart. KiPart is a tool to automatically create KiCad symbols from CSV files. It has its own format for this but support for other formats can be easily added. So I did that. You can install KiPart via pip. And here […]

Table for Selecting STM32 F4 Timers

If you didn’t know already, STM32 F4 MCU’s can have a lot of timers. And not all of them are the same. Some are feature packed, some are 32 bits, some doesn’t support certain interrupt types. Even the most feature-full one may not have a specific function you need. In software you are free to […]

Fix the sticky top navigation bars on websites

I hate sticky top navigation bars (what are they actually called?)! I just hate them. If I wanted to reach your search bar or wanted to switch to homepage I can press the `Home` button and I’m at top. Or I can flick my smooth scrolling wheel and I’m there. Or I just click my […]

Script for creating KiCad symbols for STM32 MCUs

ST has recently released a tool for creating projects for STM32 mcu’s called STM32CubeMX . This tool also allows you to plan your pin layout for a selected MCU part. Using the interface you see below, you can select pin features and configuration. You can also label the pins as you desire. After you plan […]

PCB back annotation in KiCAD with Python

KiCAD already provides a tool to automatically annotate your schematics before moving on to PCB. But I prefer to to annotate my components according to their PCB position. That makes it easier to locate a certain component when you have PCB on your hand and schematic is open in the computer screen. Some tools such […]