Building the TileCube

The TileSystem is the required flexible and compact embedded processing platform.

The concept was finalized during the MARISense project.

TileCube System

When all the parts of the system came, we were able to check the designed mechanical integration of a multi-board design using the Altium Designer CAD against the actual hardware. Initially, each component was checked that fit properly the mechanical enclosure. This was a preliminary test to verify PCB width and component height that might affect the assembly. Although the backplane boards are missing from the below setup, the HAT and other connectors and protruding pins were checked for potential conflicts.

4-Channel Hydrophone Edge Processing System

Then we added the back/front plane boards to complete and final check the system assembly.

PhD in 10 minutes

A few weeks ago Ilias Alexopoulos presented part of his PhD work on IoT performance Estimation.

Engineers involved in developing IoT either remote or not, have to deal with key parameters like power consumption, computation speed, or resources, depending on the cost function of each project.

The presenter making the introduction

The problem is to estimate the best performance according to the key project parameters of an implementation and more specifically of an algorithm with respect to different hardware. Each hardware can offer different kinds of optimizations so the combinations of each implementation involving algorithm variants and hardware optimization is unmanageable.

The framework flow
Presenting the Framework Flow

The work of this research is to establish a framework that can estimate this individual performance and provide guidance to the designer of the best hardware without the need of implementing the algorithms on any platform.

Presenting Conclusion and Challenges
Conclusion and Challenges

It is a long shot to achieve this goal, but research and progress are about challenges. Challenging methods, tools, or our limits to achieve more.

EOC2022 Compact Heterogenous Computing Platforms

Embedded Online Conference 2022

This year we will present how to create heterogeneous embedded platforms using Coldfire or Kinetis microcontrollers and FPGAs. We will touch on some interesting points related to such implementations.

EOC2022 Compact Heterogenous Computing Platforms
Compact Heterogeneous Computing Platforms

We hope that you will enjoy this talk and the small demonstration of integration between MCUs and FPGAs.

Edge Computing for Maritime IoT @BTS

“Breaking The Surface 2021” event was very successful and interesting. Many scientists of all over thw world presented the latest developments in archeology, marine robotics, sensing and other applications.

We were honored to present our maritime IoT platforms and share our knowledge on embedded system design and hardware acceleration.

BTS Tutorial

We discussed things like power management, showcasing the power management board for the MARI-Sense ASV, hardware acceleration, and versatile heterogeneous platforms.

Ready for the Tutorial with all Hardware
Power Management GUI
Power Management GUI

For more details see the following link.

Tutorial 2 Intro – AI Zerocaliber: Edge Computing for Maritime IoT – Breaking the Surface (fer.hr)

EDGE COMPUTING FOR MARITIME IOT Tutorial on BTS 2021

For anyone attending the multi-disciplinary conference of “Breaking The Surface 2021” event, I will be giving a tutorial on multiple topics on using embedded computing in maritime applications.

Hydrophone Processing System
Hydrophone Processing System

For more details see the following link.

Tutorial 2 Intro – AI Zerocaliber: Edge Computing for Maritime IoT – Breaking the Surface (fer.hr)

Platforms

The Problem

Hardware and Firmware development is essential for the age of the Internet of Things or the more traditional term embedded systems. Recently more and more processing is required to be performed closer at the physical locations where the sensory or IoT devices exist, called edge processing. The traditional way of developing such systems is using application processor systems running on Linux.

Development of such products is fast due to the ecosystem using commercially available platforms and proof of concept projects are easy to achieve; However when someone tries to make the necessary modifications to create a custom product, comply with certifications, and perform changes required to make it a viable product, soon he/she may fail short, as:

  • There is not much control for customizing the core boards; Design from scratch is the only option if a single board is needed or there are mechanical constraints
  • The base hardware is complicated for the majority of  applications
  • Highly skilled hardware engineers and sophisticated tools are needed
  • Cost for the production of a custom-featured PCB usually is much higher for individual production
  • Critical parts are hard to source in small quantities
  • Designs may not be efficient from a power or performance perspective

We are often obliged to select and change parts because of the limitations of our mainstream microcontrollers to a higher-end one or we need to add external logic and circuits to accommodate richer input-output architecture.

Wouldn’t be great to have a polymorphic platform that could easily scale to work with for the majority of our projects, smaller or bigger?

Another aspect that is considered is design verification. Embedded systems usually need to have real-time performance, thus classic debugging (step-through) under real-time conditions is not always possible or is an additional challenge. Stack checking on RTOS or timings is not easy to observe accurately without the help of hardware otherwise, a performance penalty is taken.

Wouldn’t be great to have a much easier time debugging embedded systems?

our Solution

Microcontrollers offer a small footprint system with a high level of integration (memories, peripherals etc), but sometimes the internal peripherals or the processing capabilities are not adequate to tackle more demanding applications. FPGA on the other side is more flexible and capable but they are not the best option for control flows and require expertise for development. In addition edge processing often requires a higher processing capacity at a lower power rate.

We created a heterogeneous embedded platform with its firmware ecosystem, that allows fast application development, without compromising the later steps for final production. To combine the benefits of both microcontrollers and FPGAs the PerseusCLE was built.

This platform provides the following key features:

Key Features

  1. Simple 2 or 4-layer PCB, which is within a medium-skilled engineer to modify
  2. 32-bit microcontroller
  3. Programmable Hardware to create custom peripherals and interfaces
  4. A firmware framework that allows fast development in C language
  5. A compact and extensible platform
  6. Support of External Hardware parts for specific interfaces (motors, servos etc)

First Generation Specs

  1. Wide range DC 9-36V ac/dc supply voltage
  2. MCF52258 Coldfire @48MHz, 512KB Flash, 64KB RAM
  3. Spartan XC6S-9LT FPGA @48MHz
  4. 24MB/sec Link between MCU-FPGA, memory mapped
  5. RTOS based design framework
  6. Developed with and supporting TDD or Unit Testing
  7. Olimex UEXT Connectors for external modules
Perseus CLE Board
Perseus CLE Board
Perseus Computing Module Architecture
Perseus Computing Module Architecture

The two major parts (MCU, FPGA) are interlinked with a high-speed connection to enable FPGA mapping inside the microcontroller’s memory space, giving programming simplicity for the firmware, while achieving high-speed transfers and allowing the use of internal MCU DMA. Eventually, this provides a two-chip solution and simple two-layer PCB which allows low cost on low production quantities.

MCU vs FPGA Layer Stack Comparison
MCU vs FPGA Layer Stack Comparison

On the left side, we see the traditional CPU stack. If we upgrade the CPU we need to change the Driver/OS layer to fit the new CPU/Hardware

On the right side, the FPGA device is replaced. We need to “recompile” the FPGA-Logic (Program) to the new device. Driver/OS does not need to change! Using FPGAs moves the programmable barrier lower to the layer stack of a product.

As an example, the flexibility of these platforms is demonstrated next, where the same platform can be used for DC motor control or drive an HDMI monitor, with the use of an adaptor board.

Stepper Motor FPGA Drive
Perseus CLE board driving the DVI signals
DVI Setup
Working DVI
Working DVI pattern

This example demonstrates how a core computing module can drive diverse applications, without requiring power-hungry complicated hardware (ie. high-end processors).

As not all applications require an FPGA, our next generation of embedded platforms is based on a scalable and flexible architecture in which additional elements can be added to the main microcontroller-based processing unit. The programmable hardware can provide one more level of expansion thus providing a more reach peripheral set than the ones included in of the shelf microcontrollers.

In the next picture, the design of a 2 channel hydrophone acquisition and processing system is shown. Note that the hydrophone analog front-end was a new requirement that the platform was not specifically addressed, which is managed to interface without any issues.

Hydrophone System

The hydrophone front-end is in the new form factor of the embedded tile, so it can fit on the mechanical chassis. The box offers a constant volume that can fit any combination of hardware in the same externally allocated space.

Applications

This platform can be used very effectively for the following applications.

Embedded System for Hydrophone Processing with Chassis

Unmanned Vehicles

As the hardware is flexible, controlling multiple motors and acquiring sensor data from multiple sensors, make this platform ideal. The MCU can be off-loaded from low-level motor driving while concentrating on the main control system. The FPGA can handle the low-level functions along with the sensor fusion for multiple sources (ie. camera).

3D Printers

Having a platform that can handle more motors can create a more capable 3D printer or even a 3D printer in combination with a lathe. Again the high-level functions can run on the controller while the FPGA keeps track of the precision in time.

Small Video Applications

The video signals stopped being analog and transformed into high-speed interfaces. The Spartan 6 series can handle these and create video input or output generators (or a combination thereof) while the microcontroller can handle the content (ie. transfer it through the USB). No more complex CPU high-frequency arrangements are required.

Edge Processing

As the FPGA can offer a high degree of parallelization, applications that require a high number of parallel units or hardware acceleration are good candidates for this platform. For example, this platform is going to be used in the MARI-Sense project for signal classification at the edge.

Embedded Design Verification For many applications the FPGA is an overkill device to have. However, you may be able to test the real-time embedded firmware, without any performance impact if you use the FPGA for capturing processor data. For example, stack checking in hardware is very efficient and accurate. So you can use the combined system to trace events, check stacks, and any other aspects of your embedded system before you deploy it and gain more confidence in the quality of your product. 

Other solutions

Well, why should I use this platform when I can get similar setups from the FPGA vendors? I can get single or dual ARM cores along with a larger set of available logic.

This is true, however, these solutions are micro-processor based and not micro-controller based. The PCB is challenging to accommodate these devices and they still need a lot of external peripherals to make it work (SDRAM, Flash etc). Our solution offers a two-chip solution (MCU and FPGA) that is more compact less power-hungry and within the design reach of a small or medium-sized company. In addition, the platforms are scalable.

What is the advantage of a microcontroller-based solution that contains logic?

Using an external FPGA device your solution is not bonded to a specific microcontroller or FPGA device. The split architecture allows more flexibility. You can scale up capacity for example using the same footprint (just replace the FPGA with a higher capacity logic one), or you may decide you need another processor (ie. Coldfire or Kinetis) that supports the same inter-chip interface.

Please contact us for further information on your heterogeneous embedded platform!

Firmware and Software

Mastering the Deterministic Edge

In embedded systems, firmware is the specialized, performance-critical software that runs directly on the hardware, often with limited resources and a requirement for deterministic execution in real-time. We treat firmware not merely as code, but as the core intelligence driving your system’s reliable operation.

The Challenge of Embedded Reliability

    Debugging embedded systems, especially those controlling physical processes like motors, is notoriously difficult. Unlike conventional software, physical resources often cannot freeze while code is being traced. Intermittent errors and problems related to unpredictable, real-time environments require expert-level strategies not found in typical software development.

    A quality firmware solution is judged by fundamental criteria:

    • Low Fault Density: How many bugs are revealed during rigorous testing?
    • Maintainability: How easy is it to change operations, add features, or resolve issues?
    • Portability: How fast can the solution be adapted to different microcontroller architectures?

    Our Methodology: Building Quality In

    The first rule of embedded development is to avoid creating bugs in the first place. Our approach prioritizes architecture and testing, which pay massive dividends in quality, speed, and budget adherence.

    With over 40 man-years of specialized embedded firmware experience, we have mastered the techniques required for mission-critical reliability:

    PillarDescriptionKey Benefit
    Safety-Critical DesignWe have strong experience in production-grade safety-critical systems, utilizing methodologies like Test-Driven Development (TDD) and layered architectures from the project’s inception.Certifiable Trust: Ensures robust, verifiable code and a clear path to required safety certifications.
    Architecture FirstA significant amount of time is dedicated to architectural decisions and comprehensive test scaffolding before the first line of functional code is written.Efficiency & Quality: Drastically reduces bug count, debug time, and overall time-to-market.
    Portability & PerformanceWe primarily use C and optimized Assembly code, ensuring the software can be ported to different microcontroller architectures fast with minimal overhead.Future-Proofing: Protects your investment and maximizes hardware flexibility and performance.

    Advanced Debugging and Lifecycle Support

    While we strive for zero-bug code (beware there is no zero-fault code), we plan for the unexpected. Our debugging strategies are multi-faceted and reflect the complex nature of embedded systems:

    • Expert Toolset: We combine software debuggers with external hardware tools like oscilloscopes and logic analyzers to effectively pinpoint difficult-to-resolve, intermittent issues in the electrical and timing domains.
    • Support & Instrumentation: We build support for debugging directly into the final firmware, ensuring that valuable diagnostic capabilities are available during later phases of the product’s operational lifecycle.
    • Supporting Tools: We utilize languages like Python and GUI scripting to create powerful automation and instrumentation tools that support the development and testing process.

Hardware Engineering

Designing for Mission Success

Every successful product starts with robust requirements. At AI Zerocaliber, our hardware design process is a disciplined, multi-stage methodology focused on performance, predictability, and production efficiency. We transform high-level requirements into detailed specifications that drive the schematic phase, ensuring optimal outcomes from day one.

    Advanced Design and Integrity

    Our expertise goes beyond conventional PCB layout to address the complexities of high-speed and high-density systems:

    • High-Density Interconnect (HDI) Boards: We specialize in complex, multi-layered HDI boards, which are essential for minimizing physical size while maximizing computational density. This capability enables smaller, lighter, and faster products—a critical advantage in space and demanding industrial applications.
    • Signal Integrity (SI) Simulations: We rigorously perform Signal Integrity (SI) Simulations to predict and mitigate high-speed signal issues such as reflections, crosstalk, and timing errors before manufacturing. This step is mandatory to ensure clean, reliable data transmission at speed.
    • Power Delivery Network (PDN) Simulations: We conduct detailed Power Delivery Network (PDN) simulations to guarantee stable and efficient power delivery across the board. This is vital for complex devices like FPGAs and microcontrollers, ensuring they receive clean, consistent power to operate reliably under all load conditions.

    Integrated Testing and Lifecycle Support

    Production is not the final step; guaranteed reliability requires thorough verification.

    • Provisions for Test: We integrate provisions for selected test strategies directly into the board design. Depending on technology and quantity, this includes features for Functional Test, JTAG/Boundary Scan, and other custom testing methods.
    • Deep Domain Experience: Our hardware experience spans the full product lifecycle, from initial specifications to long-term product support, covering critical systems involving DC motors, sensing platforms, Microcontrollers, FPGAs, and seamless mechanical integration.
    • Documentation: This part is often neglected from non-experienced teams but is necessary for product continuity, its support by other teams (ie. software) and avoid future unnecessary architectural changes from new teams given that these has been already analyzed and reviewed during the design process.

    We utilize top-of-the-line CAD tools (Altium Designer) to tackle all these aspects of product design and lifecycle maintenance, further leveraging strong collaboration capabilities to enhance documentation, change control, and design reviews.

    PCB Example

    Component Lifecycle and Production Mastery

    An often-neglected yet critical factor is the long-term viability of the electronic design. We mitigate risks through:

    • Strategic Component Selection: We meticulously select parts based on technical fit, high availability, and low-risk lead times. We also consider component packages carefully, balancing PCB area requirements with assembly process efficiency to control costs.
    • Design for Manufacturability (DFM): We possess a deep understanding of PCBA production phases. This knowledge allows us to design an efficient PCB that can be produced smoothly and reliably in quantities without disruptions, avoiding the higher manufacturing classes and cost escalations associated with inefficient density.
    • Risk Mitigation: Poor decisions in these early stages can quickly lead to budget overruns and missed time-to-market advantages—the common failure point for many kick-start projects. Our experienced approach eliminates this uncertainty.

    FPGA Development

    For more demanding applications we support FPGA development as a solution for edge processing and hardware acceleration. From RTL (VHDL) code to final implementation and timing closure we finish the design cycle to the bench were the design is verified against the specifications.