There is a wide range of programming knowledge available in-house. Our embedded software expertise is focused mainly on ARM platforms using Linux operating system and different microcontroller solutions. Our software engineers have experience and competence of writing boot loaders and Linux device drivers as well as various wired and wireless data exchange protocol implementations (USB, EtherCAT, CAN bus, RFID). High level applications are written either in Java, C# or C++. All of our products have designed-in HW testing interfaces for manufacturing and repair usages.

Microcontroller-based systems

  • Cortex-M (ST STM32, NXP LPC, Cypress PSoC, Atmel SAM); AVR; 8051
  • Power usage optimization
  • Code size and resource usage optimizations
  • Bare-metal programming
  • Bootloaders
  • Firmware update (using bootloaders; using multiple partitions; self-update)
  • USB interfacing
  • Factory test system interfacing

Application processor based systems

  • ARM9 (Atmel SAM9, NXP LH7); Cortex-A (Freescale iMX; Atmel SAM); MIPS; x86
  • Bootloader development (i.e. iMX6 custom boot plugin)
  • Linux kernel driver development
  • Application development for Linux-based embedded systems
  • Android BSPs
  • Firmware updates on Linux-based systems (via bootloader; via failsafe dualboot; in-place while running from RAM)
  • Factory test system interfacing

PC software development

  • Windows, Linux, MacOS
  • Communication libraries for our devices
  • IoT back-end server daemons
  • Web front-ends
  • Factory test systems

Mobile platform development

  • Android
  • iOS