About Yasen Stoyanov

This author has not yet filled in any details.
So far Yasen Stoyanov has created 53 blog entries.

OpenThread CLI Example

OpenThread provides a command-line interface (CLI) that can be useful for people new to Thread. It provides an easy way to configure a Thread device, manage a Thread network, and test communication between devices. This article will show how to use CLI with devices running an OpenThread stack. Tools used: Two Nordic development kits that

2024-10-23T20:18:35+03:00By |Categories: How To|Tags: , |0 Comments

OpenThread Border Router on Raspberry Pi

This article will present the steps for setting up a Thread border router on Raspberry Pi 5 using the open-source implementation OpenThread. The border router's software stack will run on the host processor (Raspberry Pi), and a minimal “controller” will run on a device with a Thread radio (NRF52840 USB dongle). This kind of setup

2024-10-08T06:25:11+03:00By |Categories: How To|Tags: , |0 Comments

How To Create a BLE Sensor Beacon (Part 2): The Firmware

This article is the second installment in a series that details the creation process of a Bluetooth Low Energy (BLE) sensor beacon (See Part 1). Here, we provide an overview of the firmware structure and functionality without diving into code details. The BLE beacon project is code-named "Athena," you may see this name mentioned in

2024-09-29T21:06:53+03:00By |Categories: How To|Tags: , , |0 Comments

How To Create a BLE Sensor Beacon (Part 1): The Hardware

In several articles, we will outline the necessary steps and tools for creating a Bluetooth Low Energy (BLE) beacon. The BLE beacon project is codenamed “Athena,” and you may see this name mentioned in the article and in the schematics and source code. All the software tools used for this project are either open-source or

2024-09-08T09:12:19+03:00By |Categories: How To|Tags: , , |0 Comments

FreeRTOS: Using MCU Peripheral Drivers

Communication interfaces (I2C, SPI, UART, etc.) are some of the most commonly used microcontroller peripherals in embedded systems. In this introductory article, we will look at how low-level drivers for such peripherals can be used in FreeRTOS. Polled Drivers vs Interrupt-driven Drivers Based on the method used for getting information on events (e.g errors, operation

2021-03-08T06:23:40+02:00By |Categories: Embedded Systems|Tags: , |0 Comments

FreeRTOS: Using Software Timers

In this article, we will take a look at the software timers in FreeRTOS. A software timer allows a function to be executed at a set time in the future.FreeRTOS - RTOS software timer functionality and features description The function that is executed is referred to as a timer's callback function. The interval between starting

2021-01-03T18:53:29+02:00By |Categories: Embedded Systems|Tags: , , |5 Comments

Toolset for Debugging Embedded Programs

Writing programs that just work would make the development of embedded systems a lot easier. In practice, however, a considerable amount of time is devoted to finding and removing bugs from the code. This process is commonly known as debugging and there is no way of avoiding it. In this article, we will give an

2020-11-22T22:35:01+02:00By |Categories: Embedded Systems|Tags: |0 Comments

FreeRTOS: LED Blinking And Button Polling

FreeRTOS is one of the most widely used open-source real-time operating systems (RTOS). In this article, we will look at a very simple FreeRTOS program: a push-button will enable/disable the blinking of an LED. The program is developed and tested using the LPCXpresso54102 board with NXP's LPC54102 microcontroller. The program can be easily adapted for

2020-10-20T23:58:11+03:00By |Categories: Embedded Systems|Tags: , |0 Comments

Using Callbacks in Firmware Development

In its classic form, a callback (aka callback function) is a function that is passed as an argument to another function. The function that accepts the callback as an argument is expected to call back on it (execute it) at a certain point in time. The callback mechanism allows a lower-level software layer to call

2020-10-05T09:01:21+03:00By |Categories: Embedded Systems|Tags: , |4 Comments

Aligned and Unaligned Memory Access

Unaligned memory access is the access of data with a size of N number of bytes from an address that is not evenly divisible by the number of bytes N. If the address is evenly divisible by N, we have aligned memory access. We can express this as Address/N, where Address is the memory address

2020-07-19T16:56:39+03:00By |Categories: Embedded Systems|Tags: , |2 Comments
Go to Top