EmbeddedRelated.com

Creating a GPIO HAL and Driver in C

Jacob Beningo February 28, 20241 comment

Creating a GPIO Hardware Abstraction Layer (HAL) in C allows for flexible microcontroller interfacing, overcoming the challenge of variability across silicon vendors. This method involves reviewing datasheets, identifying features, designing interfaces, and iterative development, as detailed in the "Reusable Firmware" process. A simplified approach prioritizes essential functions like initialization and read/write operations, showcased through a minimal interface example. The post also highlights the use of AI to expedite HAL generation. A detailed GPIO HAL version is provided, featuring extended capabilities and facilitating driver connection through direct assignments or wrappers. The significance of a configuration table for adaptable peripheral setup is emphasized. Ultimately, the blog illustrates the ease and scalability of developing a GPIO HAL and driver in C, promoting hardware-independent and extensible code for various interfaces, such as SPI, I2C, PWM, and timers, underscoring the abstraction benefits.


Software is free and can right any wrong

Colin Walls October 26, 2023

Software changes are so much easier than hardware modifications, so the temptation is always to take this approach to fixing bugs. This may not always be a good idea.


3 Overlooked Embedded Software Elements

Jacob Beningo July 9, 20223 comments

Have you ever wondered, while you and your team are busy writing software if the foundation of how embedded software systems are built has changed and left you in the dust? What if while you were busily focusing on getting your product out the door, fighting bugs, and dealing with supply issues, there were techniques and processes that you completely overlooked that could save the day? I’ve found three elements embedded software teams often underutilize that could dramatically improve...


VolksEEG Project: Initial Hardware Architecture

Steve Branam November 2, 20211 comment

The initial hardware architecture for the prototype VolksEEG uses an Adafruit Feather nRF52840 Sense, which connects to a PC via USB for UI (User Interface). Through several additional chips, this provides power to and acquires data from the ADS1299 ADC.

An important topic I mentioned in my introduction to the project is isolation, ensuring there is no conductive path for current through the patient. The architecture is therefore split into...


Introducing The VolksEEG Project

Steve Branam October 31, 2021
Introduction

The VolksEEG project is an open-source project with the goal of creating an electroenchephalogram (EEG) machine, fully cleared by the FDA for standard clinical use. All designs will be freely available for others to manufacture.

The project was founded by Alan Cohen, a medical device systems engineer with an electrical engineering/software (EE/SW) background in Boston, USA, and Dr. Bryan Glezerson


Review: Prototype to Product

Steve Branam October 16, 2021

Prototype to Product: A Practical Guide for Getting to Market, by Alan Cohen, is a must-read for anyone involved in product development, whether in a technical, management, or executive role.

I was reminded of it by Cohen's recent episode on Embedded.fm, 388: Brains Generate EMF, which is worth listening to a couple times through, especially if you're interested in medical device development. And in fact his first episode there, 


Off the shelf availability of Custom IoT Gateway

Prasan Dutt May 12, 2019

Any IoT implementation requires a gateway. Since most industrial gateways comes at a price above average, choosing a right gateway for your new IoT requirement could be a daunting task. With the advancement in IIoT, several segments of industry use cases are popping up and each with their unique requirements. For example, condition monitoring of a thermal power plant, predictive maintenance of factory heavy machinery and asset tracking of containers in a shipping yard etc. Every such...


Metal detection: building the detector

Fabien Le Mentec February 6, 20164 comments
IntroductionBefore starting, you may want to read this post describing the BFO stage:

//www.embeddedrelated.com/showarticle/911.php

I have detailed the implementation of a BFO stage for detecting metal. Now it has been validated on the bench, the next step is to integrate it in a stand alone instrument for testing on the field. A few things have to be done to reach this goal:

  • make a PCB for the electronics,
  • house the PCB in a box,
  • add a power supply,
  • make a frame to hold...

Basic hand tools for electronics assembly

Ed Nutter November 20, 20153 comments

Though the software tools vary with different microcontrollers, many hardware tools are the same.


Improving the Reload2 active load

Fabien Le Mentec April 23, 2015
Introduction

With another colleague at work, we are currently developing an electronic board that will eventually be powered over Ethernet. To gain more experience with this technology, we prototyped a standalone power supply stage.

We want to test this stage with different load profiles. While we already have professional grade active loads at work, I had previously read about the Reload2 product from Arachnidlabs, a low cost active load sold on Hackaday:


A simple working I2C (TWI) level shifter

Dr Cagri Tanriover July 16, 20132 comments

Recently, I had to interface two hardware platforms via an I2C bus (a.k.a. two-wire interface, TWI) to query temperature and real-time clock information. This task is relatively straightforward on the software side. However, because the power supply of the two platforms were different (one at 3.3V and the other at 5V), the I2C busses could not be connected to one another directly and a level shifter was required between them.

 There are commercially available I2C level shifters such as...


Deeply embedded design example - Logic replacement

Gene Breniman July 9, 2011

I have always believed that some of the low-cost, low-pin count, low-resource microprocessors would make an excellent choice for the replacement of discrete logic components.  In these cases the deeply embedded microprocessor would become less of a general purpose computer and more of a logic replacement, providing a prescribed function with no connection to the outside world.  In a world of bigger, faster and more expensive, it is a pleasant change of pace...


Metal detection: building the detector

Fabien Le Mentec February 6, 20164 comments
IntroductionBefore starting, you may want to read this post describing the BFO stage:

//www.embeddedrelated.com/showarticle/911.php

I have detailed the implementation of a BFO stage for detecting metal. Now it has been validated on the bench, the next step is to integrate it in a stand alone instrument for testing on the field. A few things have to be done to reach this goal:

  • make a PCB for the electronics,
  • house the PCB in a box,
  • add a power supply,
  • make a frame to hold...

3 Overlooked Embedded Software Elements

Jacob Beningo July 9, 20223 comments

Have you ever wondered, while you and your team are busy writing software if the foundation of how embedded software systems are built has changed and left you in the dust? What if while you were busily focusing on getting your product out the door, fighting bugs, and dealing with supply issues, there were techniques and processes that you completely overlooked that could save the day? I’ve found three elements embedded software teams often underutilize that could dramatically improve...


Here Comes The Noise!

GLENN Kirilow July 10, 20241 comment

Noise. That awful thing which nobody wants that most sadly never learn about. It's time to change that with this blog post.


Breaking AES with an Oscilloscope

Nathan Jones October 1, 2025

AES is a powerful encryption algorithm that protects some our most important secrets. But did you know that many devices are inadvertently leaking the value of their private key through their power pins?! Join me in this special preview of my upcoming workshop at the Embedded Systems Summit (14-16 October 2025 in San Jose, CA) as we explore the world of hardware security and discover just how easy it could be to break AES encryption with only an oscilloscope and some math.


Make Your Own MCU Boards (2023 Teardown Conference)

Nathan Jones March 7, 2024

Ditch the development boards! Products like the Nucleo development boards serve a wonderful purpose, but they’re ill-suited for projects that need to be small and cheap, such as hobby projects or products just beginning a production run. In this talk (a recording from the 2023 Teardown Conference), you’ll learn how to put a microcontroller or other custom circuit on a PCB a little larger than a stick of gum for less than $3 a board.


Introducing The VolksEEG Project

Steve Branam October 31, 2021
Introduction

The VolksEEG project is an open-source project with the goal of creating an electroenchephalogram (EEG) machine, fully cleared by the FDA for standard clinical use. All designs will be freely available for others to manufacture.

The project was founded by Alan Cohen, a medical device systems engineer with an electrical engineering/software (EE/SW) background in Boston, USA, and Dr. Bryan Glezerson