Create reliable
embedded systems
for IoT and wearable tech


Bring your devices to life with embedded systems development. Apply a holistic approach to the firmware development with audits, BLE connectivity and accessible mobile & web apps.

What we do?

1

Embedded software

2

BLE connectivity

3

Mobile and web app development

4

Troubleshooting

Let’s talk about your project!

Bring your devices to life with embedded software. Apply a holistic approach to the firmware development with audits, BLE connectivity and accessible mobile & web apps.

Learn which embedded platform is right for you!

You will learn:

What questions need to be answered before choosing a platform

Why hardware availability is important when developing a prototype

What are to pros and cons of nRF52, ESP32, and STM32

Download the free guide:

"When Polidea got in touch, I actually recognized their name because we have been checking out one of their BLE libraries. I thought, "oh, these guys actually know Bluetooth very well". We [also] had a great use of Polidea assisting us in developing the firmware for the pillbox."

Viktor Eriksson

CTO,
Pilloxa

Our embedded systems projects

Finance

Albert


A Step Further in The Payment Solution Development

Albert by AEVI is one of the first payment terminals that brings together PCI certification and flexible application development with a full application ecosystem. Polidea team implemented a custom-made and hardened version of the Android Lollipop operating system. We also helped the client apply modern software development approach to the Operating System development. This required a lot of low-level hardware-related work as well as high-level design modifications of the Android OS. Apart from customizing the Android operating system, we modified recovery bootloader and Linux kernel.

Healthcare

Pilloxa


A Tech Way to Fixing Low Medical Adherence

Pilloxa is a start-up from Stockholm, on a mission to tackle poor medical adherence. Their embedded device is a smart pillbox, which informes forgetful users to take the right medicine at the right time. Polidea team improved the firmware of the device and tested the BLE and gprs connection with the Pilloxa mobile app. The cooperation resulted in fixing software bugs and speeding up the charging process.

Sport

Cuckoo


A lap timing device for amateur track racing

Cuckoo is a lap timing device meant to be used in amateur track racing. It’s an open source project, done internally by Polidea. The device is placed inside the car, giving instant feedback on driver’s performance (current lap time, best and last lap time). It’s a truly innovative approach to detecting cars passing through the finish line, and the good news is, it can be easily installed on any race track. Our team used simple and widely available components and popular NRF processors to create the embedded device. Cuckoo mobile app—which connects to the device via BLE—adds more functionality, as it shows detailed info on driver's performance and driving history.

A DIY guide to a BLE-powered lap timer

You will learn:

What hardware we used and why

How to program the device with the nRF Connect app

What are to pros and cons of nRF52, ESP32, and STM32

Download the free guide:

Our clients
are our partners

Have more burning questions about embedded systems?

We got the answers!

What is an embedded system?

It’s a system that consists of dedicated hardware and software which runs on that hardware. It’s usually dedicated to solving one specific problem and it’s often embedded in a physical device as an integral part of it.

What are the examples of embedded systems?

Embedded systems are everywhere. You can find them in your electronic watch, car, elevator, action camera like GoPro, coffee machine, remote controller for a TV, the TV itself, and even in your smart laptop charger. In all these devices there are different levels of complexity of an embedded system.

What is the biggest challenge when developing embedded firmware?

Making sure that both hardware and software are thoroughly tested and everything works as expected. When developing a mobile application for a new iPhone, you usually don’t care about the hardware part. If something doesn’t work it is usually a problem with your software—you can assume (in most cases) that it’s not a hardware related issue. However, when you’re developing both custom hardware and software, you don’t have such comfort.

Should I start from developing embedded firmware or hardware?

In general, it’s best to start with hardware. Developing on final hardware will save you some time and will allow for more thorough testing. It is possible, though, to start a project with a development board and move to final hardware later.

Do I need BLE technology when developing an embedded product?

It depends on whether you need short range connectivity in your product. If yes and you only want to send small packages of data, BLE is usually a good option.

What Rules to Follow When Working on an Embedded Systems Project?

What is an embedded system?

Embedded system is a combination of hardware and software. In simple words it’s a mini-computer with peripherals that control the sensors, and it usually has one specific function (for example to open a door). Modern embedded systems usually contain System on a Chip— an integrated chip that contains a microcontroller, RAM memory, Flash memory, input/output ports etc.

When do I need embedded technology?

If you have specific, custom project requirements that you can’t achieve with a simple mobile app—embedded systems are perfect. For example, you want to measure the acceleration in some vehicle. Of course, your phone can do that, but if you add additional constraints like small size, dustproof ability or even cost it often makes much more sense to go for a custom, small, embedded system to do that. Embedded systems projects give you more freedom: you don’t have to rely only on the phone’s set-up functionality—you can, for example, make your wearable screen work and look however you want. Additionally, very often an embedded device connects (via BLE, Bluetooth, Wifi etc.) with a mobile app, which serves as an extension or additional interface for your product.

What skills does my team need for an embedded systems project?

Here’s what you should look out for in your development team for an embedded system project:

  • They know a lot of hardware platforms, like Embedded Linux, STM32, nRF, ESP32 and others.
  • They are experienced in the newest standards of C/C++ language.
  • They can use real-time operating systems (e.g. FreeRTOS).
  • They provide holistic design of the complex embedded software architecture.
  • If that’s what your project requires—they are capable of delivering end-to-end IoT projects (embedded software, mobile apps, connectivity, backend).
  • They are aware of software profiling and optimization tools.
  • They can optimize power consumption of your device.
  • They offer hardware prototyping and hardware debugging.
  • They are skilled in developing connectivity solutions (WiFi, BLE, Bluetooth Classic).

What to keep in mind to improve the embedded systems engineering process?

  • Do code reviews—Seems obvious, but in the embedded systems engineering world code reviews are sometimes still being forgotten. Which is a shame, because code reviews can save you a lot of money and time. It allows developers to pick up on the early, significant bugs and fix them before the code is released. The costs of fixing the bug after the release are way bigger than doing it in the development phase. Code reviews also give space for less experienced developers to learn from the senior ones.
  • Write automated tests—Because by definition embedded products are a combination of hardware and software—it’s harder to test the whole solution. In case of a mobile app you can click through it and usually quickly tell if something is working or not. With an embedded project setting a complete test environment can be difficult (e.g. when it has to be able to send/receive data from far away). Since testing the whole system is challenging, it’s important to focus on the test-driven development approach—writing a test first and then the functionality, developing and testing as you go and not leaving it for the end of the process. The dream here would be an automated testing framework for testing the whole embedded system (both hardware and software), which for now is within the budget and capabilities of only huge enterprises.
  • Set up Continuous Integration—Thanks to continuous integration, every added change or code update in the repository will automatically kick off unit tests. Again, this will give your developers some peace of mind as well as save you time and money later on.
  • Get debugging skills—You should have in your team people who know how to diagnose hardware issues, as not all problems are caused by firmware. The right experts will audit and debug your device or prepare a detailed report for your hardware provider of what is wrong.

Common challenges in embedded systems projects

One of the main requirements our clients come to us with is the possibility to update firmware remotely, once the product is on the market. It’s a challenging task if you want it to be done in a secure way. It’s best to start designing a firmware update procedure at the beginning of the project—sometimes, you may even use a solution already prepared by your chip vendor. However, this becomes harder the bigger the embedded system you’re dealing with is (if you have few MCUs and the firmware has to be updated on all of them). It can be tricky to make sure that all of the components are updated successfully and that you have a way to roll back in case of failure.

If you have any questions on embedded systems or you’re starting an embedded project yourself and looking for the right partner—get in touch!