Firmware Design Engineer.

Firmware Design

The brain of each device is Firmware and Software that work inside the device and implement full logic of the work and integrates with current platform (MCU or MPU)
Contact

Key capabilities

Languages

C/C++ / Assembler

C language
C++ Language
Assembler language

Diagrams

Block / UML / Workflow / APIs

Diagram
UML Language
Workflow
API

Interfaces

I2S / SAI / MIPI-DSI / MIPI-CSI / USB 2/3.x / LTDC / DDR3/DDR4/LPDDR4 / I2C / SPI/QSPI / UART / CAN / Ethernet

I2S
SAI
MIPI-DSI  MIPI-CSI
USB superspeed
LTDC
DDR
DDR4
2C

Wireless

NB-IoT / LTE M / GPRS / GPS / LTE / UWB / WiFi / BLE / ZigBee / Z-Wave / LoRa / Thread / 6LoWPAN / Sub 1GHz / NFC (13,6 MHz) / RFID 433 MHZ and 128 kHz

NB-IoT
LTE M
GPRS
GPS
LTE
UWB alliance
WiFi
BLE
ZigBee
Z-Wave
LoRa
Thread
LoWPAN
Sub 1GHz
NFC
RFID

Protocols

MQTT / HTTP / FTP / Modbus TCP/RTU / SNMP / TCP/IP / UDP/IP / DLMS / custom protocols

MQTT
HTTP
FTP
Modbus TCP, RTU
SNMP
TCP-IP

Security

AES / SSL/TLS / custom algorithms

AES
SSL
TLS

Libs and frameworks

TouchGFX (GUI lib for MCU) / emWin (GUI lib for MCU) / LVGL (GUI lib for MCU) / WolfSSL (SSL/TLS) / Mbed TLS(SSL/TLS) / osxMotionFX (Sensors fusion algorithm based on the Kalman theory) / FatFS / lwIP (TCP/IP stack) / WICED (Wifi stack) / aws/amazon-freertos / Paho MQTT / TensorFlow

emWin
LVGL
WolfSSL
Download mbed TLS
osxMotionFX
fatfs
1wIP
Wiced by cypress
Amazon free RTOS
paho
TensorFlow

Embedded OS

FreeRTOS / TI-RTOS / ZephyrOs / Embedded Linux / Yocto / ROS

FreeRTOS
TI-RTOS
ZephyrOs
Linux
Yocto
ROS

MCUs

NXP (i.MX-RT1160, i.MX RT1064, LPC1100, LPC4000) / Nordic (NRF52/NRF53/NRF9160, NRF7002 ) / TI (CC3220/CC26xx/CC1100/CC3200/MSP430) / Espressif (esp32-s2, esp32-s3, esp32-c2, esp32-c3, esp32, esp32-h2, esp8266) / ST(STM32H7/F7/F4/L4/F0/L0/WB/WL/G0 and STM8) / Atmel/Microchip(SAM D20/D21/L21/R21/V70/V71/SAMA5/SAM4/SAMD4) / Silicon Labs(EFR32/ ZGM130S) / Cypress (PSoC 3/PSoC 4) / Kinetis (Family MK81FN256VDC15) / Holtek (HT66xx, HT68xx)

NXP
Nordic
TI
Espressif
ST
Atmel
M
Silicon Labs
Cypress
Freescale
Holtek

MPUs

Analog Devices (ADSP-2156x SHARC) / Qualcomm (Snapdragon 625/425/610/845) / Allwinner (V3S, V3LP, A64, A33, H3, H6 series) / NXP (I.MX6/I.MX7/I.MX8) / ST(STM32MP1)

Analog
Qualcomm
Allwinne
NXP

SOMs

Toradex (Colibri iMX6, IMX7, IMX8) / Raspberry pi (CM3, CM4 modules) / Inforce (Qualcomm Snapdragon 410, 820, 845 SOM) / 8devices (Mango on Qualcomm IPQ6000/IPQ6010 Soc) / Sensiedge(SensiBle 1 and 2, SensiLora) / NVIDIA (Jetson Nano, Jetson Orin) / Compulab (CL-SOM-iMX8Plus, UCM-iMX8M)

Toradex
RaspberryPi
Inforce
devices
Sensiedge

Tools that we use

ST Cube IDE

ST Cube IDE

CCSTUDIO

CCSTUDIO

Segger embedded studio

Segger embedded studio

Eclipse IDE for  Espressif

Eclipse IDE for Espressif

PSoC® Creator

PSoC® Creator

Simplicity Studio

Simplicity Studio

Atmel/Microchip Studio for AVR® and SAM Devices

Atmel/Microchip Studio for AVR® and SAM Devices

MCUXpresso IDE

MCUXpresso IDE

CrossCore® Embedded Studio

CrossCore® Embedded Studio

GCC (Bar metal)

GCC (Bar metal)

Arduino

Arduino

Holtek ht-ide3000

Holtek ht-ide3000

Project process

Requirements design

As a first step our team makes technical requirements of the firmware, it describes all hardware parts (wireless/wires interfaces, sensors, control parts), communication protocol, and power modes with full logic of the work
Alternate Text

Diagram design

At this stage, we do architecture design based on the requirements. It usually includes a workflow diagram (describe deep logic of the work) and UML/API diagram(describe all files and code classes/modules )
Alternate Text

Start code development

In this stage, we divide the scope of the work based on the UML/API into small sprints (usually 2 weeks each) and plan the delivery with the delivery of each part. Each week we make small delivery of the code based on the planning
Alternate Text

Code review and testing

If the code size and budget are enough (we have some rules), we do a code review by a responsible engineer of each code file and after testing(as pass review) by QA engineer (manual or write a test code). For the current steps, we use the standard GIT mechanism with merge request and management schema from Jira
Alternate Text

Code delivery

As some part of the code is done that we agree with the customer, we make delivery of the firmware. Use usually for this GIT standard mechanism of the delivery/release code and GIT tags. The delivery includes full development of the current stage, code review, full regression testing and a demo project that shows how the current part of the code works on the dev kits or the custom device (if it’s ready at this stage)
Alternate Text

Bring up the device with the hardware developer

As the samples of the device are ready, we prepare a test code for samples testing. The test code usually checks all peripherals (interfaces, sensors, control parts) and out the result of the testing to the console. If something is wrong, the firmware developer works together with the hardware developer to find and fix issues
Alternate Text

Finalizing code development

It’s the last hot stage of the development, on this stage we finish the development, code review and testing of the final code with the final device version. We make sure with the customer, we fit with technical requirements and work how we expect
Alternate Text

Support and bug fixing

Each project has a support stage and bug fixing because after production or field testing, will need some improvements and bug fixing. We usually agree with the customer on a period of support. It could be how a few months and a few years (if complicated device)
Alternate Text

Our Offices

Vinnytsia. Droid-technologies office

Kyiv City, str Vaclav Havel 4, office 422

Kharkiv. Droid-technologies office

Vinnytsia City, Kyivska 41

Kharkiv City, St. Karazyna 1,

Alternate Text
Kyiv
Vinnytsia. Droid-technologies office
Vinnytsia
Kharkiv. Droid-technologies office
Kharkiv

What can we do for you?

Feel free to get in touch

+380442374050

Ready to request a quote?

Describe your project

Ask for advice from our experts right now

Want to learn more? Need some help with product development? Tell us about your business needs. We will find the perfect solution