where hardware and software coexist
Our firmware engineers specialize in firmware development and have created many on board solutions with embedded systems. We have experience with numerous embedded microprocessors and microcontrollers, including those from Silicon Labs, STMicroelectronics, muRata, TI, Microchip, Dialog, NXP, and Atmel. While we use mostly C/C++ for a variety of platforms, our expertise includes low- and high-level descriptive languages for bare-metal, RTOS and embedded environments such as Linux or FreeRTOS. We do extensive sensor and other peripheral system development.
We are experts in embedded software for wearable devices and IoT systems. Our firmware team has hands-on experience with Google Assistant, Amazon Alexa, SmartThings and other cloud integration platforms. We have worked on many Artificial Intelligence projects, using machine learning and image recognition libraries, among other features.
Let us apply our knowledge to design firmware that ensures your embedded hardware works as smoothly and efficiently as possible. We can develop a firmware solution for your needs - whether it is to make the most of the hardware’s limited resources, to optimize its performance for real-time processing or to develop a cloud integration with Google Assistant or Amazon Alexa.
Proficiencies: C/C++, LINUX, VHDL, Cloud Integration
We talk numbers not adjectives
requirement synthesis
Acknowledging what is necessary of the firmware is crucial for its development. Documentation of requirements allows for an organized workflow guaranteed to deliver accountable results. During this stage, we gather information about the system functionality and the use-case scenarios. We do the research and propose an optimal solution for the product. We always look at the big picture and keep an open mind for future improvements.
system design
The scope for system design could be as small as controlling an LED or as big as building a smart city. Let us create the necessary drivers and system functionality for your custom hardware to ensure that it performs correctly, efficiently and smoothly as a standalone device or as part of a more complex system.
fault prevention
The structure of the code, or otherwise known now as the “coding style”, plays a huge role in the reduction and prevention of bugs. We create extensive code documentation for each project that is easy to follow and process over time. Our development process includes feature-wise implementation and testing, version control and code review.
protocols and algorithms
Our team of engineers has experience with a broad range of protocols and algorithms, which makes us confident in our ability to create functional solutions. We have hands-on experience with:
- Communication Protocols (MIPI, UART, SPI, I2C, 1-Wire, PCM, PCIe, TCP/IP)
- Communication Drivers
- UART/RS-232
- USB (host and device)
- RS-485, CAN
- SPI, Quad SPI
- Cellular (2G, 3G, 4G/LTE)
- Modbus RTU
- NFC
- Video interfaces (HDMI, MIPI)
- Audio interfaces (I2S, SAI)
- Related TCP/IP Functions
- TCP, UDP, SMTP, HTTP, MQTT, BACnet
- TLS/SSL and IPsec security
- Embedded HTTP server, including UX/UI design (for dedicated web server devices, and for the AP phase of headless commissioning)
- Communication of telemetry data with the cloud (custom protocols such as REST-oriented approaches, and popular infrastructures like Amazon AWS)
- Over-the-air (OTA) firmware update
- RF & Wireless Communication (802.15.4 MAC, ZigBee, Zwave,Thread, Bluetooth, Wi-Fi, LoRa, NFC, RFID)
- WiFi Functions
- Station (STA) mode
- Access point (AP) mode
- Commissioning of “headless” WiFi devices
- Data processing and DSP Algorithms
- Multi-Sensor Arrays
- User Interfaces and Custom Keyboards, Custom Displays and Human Machine Interfaces (HMI)
- Motor Drivers and Controllers
- Google Assistant, Amazon Alexa, IFTTT, Nest, Smart Things integration
- Communication with applications (Android, iOS, Windows)
- Cloud integration (AWS, Google, IBM, etc.)
industry standard libraries
- lwIP
- OpenSSL
- Mbed TLS
- OpenCV
- OpenVPN
- TouchGFX
- STemWin
- Video4Linux2
- GStreamer
- CUDA
more
- Interfacing with storage media (flash, EEPROM, SD card, eMMC, SDRAM)
- Signal conditioning and analog-to-digital conversion of sensor data
- PID motor control
- Data logging
- FatFs file system implementation
- Image and video processing (using OpenCV and CUDA)
- Graphical user interfaces (using TouchGFX and STemWin)
- Automotive diagnostics (ELM327, OBD-II, J1939, ISO 15765-4)
- Data integrity and authenticity (hashing algorithms, checksum, CRC)
- Apple MFi compliance
- Building Linux distributions for embedded projects using Yocto