Follow our illustrated blog on Embedded Software Architecture

How to build a hybrid solar/wind energy harvester?

AC generation experiments

Power with green inspiration. A couple of weeks ago, an electricity blackout in our neighborhood was announced by the power company. We thought this was the ideal time for some experimentation with ‘green’ off-the-shelve products and also explain a bit about the inspiration for the energy harvester project. The various “domain knowledge gathering” experiments (e.g. […]

Share

Debounced Buttons

A button-driven handbrake Buttons (or switches, or keys) are quite common in the world of the embedded systems. In most cases buttons trigger a software action and – in our context – we will use buttons for configuring the settings of the charge controller. We can also use the buttons as a debugging utility. The […]

Share

Driving LEDs by GPIO: finally resolved!

Introduction Probably one of the most fascinating things you had to do in your early embedded career was controlling some LEDs by means of GPIO (General Purpose I/O). This – of course – is so easy i.e. until your project manager passes by: “I want this LED to blink a little faster” “Why is the […]

Share

MCU pin configuration, GPIOs and a word on software architecture

Basic peripheral setup: pin configuration All MCUs have pins. They might come in different package types such as QFP (Quad Flat Package – Figure left) or BGA (Ball Grid Array – Figure right). But for us, embedded software engineers, pins or balls, we don’t really mind: MCUs have pins and we need to configure them. […]

Share

The energy harvester is ready for iteration 1

Iteration 0 overview A few months passed since the start of our energy harvester project and, given our limited project time, we’re making a steady progress. Implementing a new product in a new domain introduces technological uncertainties, and therefor, we proposed a top-down, bottom-up development approach which is part of an iterative engineering process. At […]

Share

Energy harverster logic hardware design

Introduction As embedded software engineers, we might not have an in-depth understanding of all electronic charge movements through semiconductor circuits, but at least we’re able to reason about hardware design at a concept level. In a previous post we introduced the energy harvester’s Power Management concept. We now elaborate on this and propose our initial […]

Share

Simple Platform Abstraction

What When prototyping, it is uncertain and sometimes even unlikely that the experimentation platform will be the basis of the final industrialized product. Therefor, it is good software developer workmanship to protect the logic development from change with regard to board, processor and real-time operating system, if and whenever possible. A platform abstraction – in […]

Share

Development facilitators

This might be a good time to talk about developer (or technical development procedure) facilitators. Although these are not even regarded as intermediate requirements – and certainly are not considered to be as important as user requirements – some development facilitators could be considered as development procedure requirements that have big impact on the process […]

Share

Early Prototyping: ‘blink those leds’

A bottom-up or a top-down approach? In order to be able to try something out, to proof something is technically viable, it is absolutely necessary to do early prototyping and provide ‘POTs’. A Proof Of Technology is just substantiating that there is a potential solution to a technical problem: We must emphasize that it is […]

Share

The relay

Introduction A relay – in this context – is an electronic switch and can be controlled by micro-controller logic. There are different types of relays, with different pin configurations. A 4-pin relay can be OFF (not conducting current) or ON (conducting current): 2 pins are powering and thus controlling the relay and the other 2 […]

Share