//
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)
ContactC/C++ / Assembler
Block / UML / Workflow / APIs
I2S / SAI / MIPI-DSI / MIPI-CSI / USB 2/3.x / LTDC / DDR3/DDR4/LPDDR4 / I2C / SPI/QSPI / UART / CAN / Ethernet / 1-Wire / Analog HD(AHD) / CVBS
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 / RAIN RFID 860-960 MHz / Wi-Fi HaLow Sub-GHz
MQTT / HTTP / FTP / Modbus TCP/RTU / SNMP / TCP/IP / UDP/IP / DLMS / custom protocols
AES / SSL/TLS / custom algorithms
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 Lite
FreeRTOS / TI-RTOS / ZephyrOs / Embedded Linux / Yocto / ROS
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)
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)
NVIDIA (Jetson Nano, Jetson Orin SOMs) Toradex (Colibri iMX6, IMX7, IMX8 SOMs with IMX6/IMX7/IMX8 SOCs) Compulab (CL-SOM-iMX8Plus, UCM-iMX8M SOMS on NXP -iMX8Plus and iMX8M SOCs) Raspberry pi (CM3, CM4 SOMs) Inforce (Qualcomm Snapdragon 410, 820, 845 SOC) 8devices (Mango SOM on Qualcomm IPQ6000/IPQ6010 SOC) Sensiedge(SensiBle 1 and 2, SensiLora SOMs) Amdesigner(CM3588, MINI1126 SOMs with Rockchip RK3588 and RV112 MPUs)
ST Cube IDE
CCSTUDIO
Segger embedded studio
Eclipse IDE for Espressif
PSoC® Creator
Simplicity Studio
Atmel/Microchip Studio for AVR® and SAM Devices
MCUXpresso IDE
CrossCore® Embedded Studio
GCC (Bar metal)
Arduino
Holtek ht-ide3000
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
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 )
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
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
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)
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
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
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)
Kyiv
Ukraine, Kyiv City, str Vaclav Havel 4, office 422
Vinnytsia
Ukraine, Vinnytsia City, Kyivska 41
Kharkiv
Ukraine, Kharkiv City, St. Karazyna 1,
What can we do for you?
Feel free to get in touch
+380442374050
Ready to request a quote?
Describe your project
Want to learn more? Need some help with product development? Tell us about your business needs. We will find the perfect solution