Follow our illustrated blog on Embedded Software Architecture

How to build a hybrid solar/wind energy harvester?

Embedding a Basic interpreter

The green4 stm32 cortex m3 microprocessor we selected is – according to today’s standards – a rather small microprocessor in Flash (128KB) and RAM (8KB). why an interpreter The Green4 device is running control software on top of FreeRTOS, with a couple of drivers, and exposes a communication and an information protocol. We think our […]

Share

Green4 charge controller: wiring diagrams part 2

Wiring diagram: wind turbine to dump load In contrast to solar panels, a wind turbine can’t be disconnected in case it generates too much power. We need to brake it by attaching a load to it. However, wind power can’t always flow through the charge controller: high volts and/or amps might damage the internal circuitry […]

Share

Green4 charge controller: wiring diagrams part 1

Introduction Instead of endlessly listing requirements and specifications, we prefer to demonstrate the architecture of our Green4 charge controller by means of wiring diagrams and other illustrations. The Green4 is designed to be a versatile device that enables you to evaluate different charge controller architectures. Call it a charge controller emulator. There are several reasons […]

Share

Open source implementations of malloc

On (very) small embedded systems without a full OS (e.g. because there is only a scheduler), one can (and should) usually live without dynamic memory allocation. But sometimes, it is really needed or it is just more convenient. It is possible to write your own simple dynamic allocator on top of a pre-defined memory region, […]

Share

DC motor control with the mosfet switch board

Although, there is no such thing as a general purpose mosfet switch board because of the wide variations in application specific load (resistive, capacitive, inductive or mixed) characteristics, we were able to investigate and demonstrate DC motor control with our prototype board. Then, we performed the same tests on the energy2switch board. The brushed DC […]

Share

Object-orientation in C – Part 4

We continue to build on the example in Part 3, but we go another step further. Even more abstraction and information hiding can be achieved by partially mimicking (part of) the COM manner of programming: strictly talking with interfaces. This style of coding is not for everybody, nor is it a fit for every project. […]

Share

Current limiting with PWM

For particular applications, such as our energy harvester or at least the battery charger part of it, the ability to control the current is an essential property. We must emphasize that the presented method will limit the average current; the instantaneous current might be higher. So, although it works well for our particular application, it […]

Share

The embedded hierarchy – Part2

So how can we represent the embedded hierarchy in software? Before we can answer this question, we must make our goals clear: setting up and defining a new board should be as easy as possible, and code re-use should be optimal. With these goals in mind, it is useful to divide the hardware hierarchy into […]

Share

Coming Soon

Finally, we are almost there. Our first product – a joint development result of cooperation between IACS and RTOS.BE – is about to be commercialized. The Energy2Switch is a DC switch board with 2 channels rated up to 50V and 40A. Continuous power is limited at 1500W per channel, which boils down to 40A @ […]

Share

Object-orientation in C — Part 3

For non-trivial class hierarchies the method proposed in Part2 is probably not optimal. The main reason is that there is only one C struct which is used by base and subclasses. Consequently, the hierarchical tree is only implicitly contained in the data structures and therefor, in this last part of the series, we introduce a […]

Share