Follow our illustrated blog on Embedded Software Architecture

How to build a hybrid solar/wind energy harvester?

Energy Harvester Telemetry

Everything becomes networked Development focus is very important in order to prevent scope creep, however it does not hurt to look a bit further in the future to try to see how things evolve. Our development track for the energy harvester is … [Continue reading]

The energy harvester is ready for iteration 4

charge controller

Iteration 3 overview Essentially, a charge controller is a high-power switching device. The switching core determines how much energy flows to batteries, and how much excess energy is burned by a dump load. Next picture is key and PMD2 of our system … [Continue reading]

The embedded hierarchy — Part 1

embedded hw hierarchy

Good programming skills is not the only quality a software engineer needs to have in order to write extendable, reusable and manageable software. Understanding the domain is equally important because it enables you to build good abstractions, and to … [Continue reading]

The linker demystified – part 2

 In part 1, we explained the main purpose of a linker: to put pieces of object code together into a single executable file. In this second and final part, we will discuss how we can control and adjust this process using linker scripts. … [Continue reading]

Object-orientation in C — Part 2

uml shape

In Part1 we have laid the foundation of how a class could look like in C. This simple class is good for creating an Abstract Data Type but it doesn't support polymorphism and inheritance...yet. Here is an UML diagram (made with dia) of what we are … [Continue reading]

Beware of premature optimization

One should only write optimized code? No, one should not write only optimized code. One should write maintainable and readable code, which adheres to the KISS principle. Depending on the foreseeable scenario, certain optimizations could be … [Continue reading]

4 reasons you should stay away from Almost-Scrum

"Almost-Scrum" or what is also known more generally speaking as the Avalanche Model is not a good project approach to find yourself in with your development team. On Wiki you'll find the following description: "The Avalanche model is a Software … [Continue reading]

Object-orientation in C — Part 1

Object-orientation Object-orientation is about classes and objects. A class is an abstract data type: data type: because it defines a new type to work with by providing data and operations on this data, but also abstract: because it … [Continue reading]

5 reasons why embedded device development projects fail

Missing stakeholder support  “The project is defined, so implement it and roll it out” does not work well in human organizations. Every entity and person has its own target, purpose and agenda. That is the way the world works, so one must take into … [Continue reading]

To smarter battery charging

Each battery(bank) has properties such as voltage and maximum load amperage and It also behaves differently (in our context of energy harvesting) depending on its state of charge (empty, half, full). To charge a battery efficiently … [Continue reading]