Nuvation provides a full range of embedded software services from simple bare metal solutions to sophisticated distributed systems. We offer embedded software development as a standalone service, or integrated with our custom hardware and FPGA design services.
Our software development methodologies have been perfected over 20 years and 1000+ electronic design projects. We are well-versed in modern software technologies, tool sets, and best practices such as agile methodology, continuous integration, comprehensive testing, and strict branching workflow. Our embedded software services include:
- Design documentation – specifying the work to be done before implementation, during which we engage in:
- Prototyping as needed to test feasibility
- Researching off-the-shelf tools and technologies to reduce project costs and accelerate schedules
- Design implementation – primary coding, code re-use, vendor code library integration, peer reviews
- Design validation – unit testing, system testing, integration
embedded Software Expertise
Embedded Devices
- Bare metal and embedded OS, e.g. Linux, Android, Free RTOS, MQX RTOS, QNX, OpenEmbedded
- Processor Families, e.g. ST Micro STM32, Texas Instruments MSP430, Atmel AT-SAM, NXP i.MX, Microchip PIC, Nordic nRF5x, Dialog DA146xx
- Custom bootloaders and board support packages – drivers and API
Communication Protocols
- Network protocols, e.g. Modbus TCP/RTU, UDP, TCP/IP, DHCP, HTTP, SDP, RTP, RTSP, RTCP
- Wireless protocols, e.g. Wi-Fi, Bluetooth wireless technology, Bluetooth Low Energy (BLE), SimpliciTI, ZigBee
- Communication buses, e.g. UART, SPI, I2C, CAN, MODBUS, PCIe, USB UVC
High Performance
- Real-time execution over multiple processors
- Multi-threaded / multi-processor systems
- Low-latency designs for video (including streaming with H.264) and other quick-response applications
High Reliability
- Distributed monitoring and control firmware for large-scale distributed systems
- Critical applications in the medical, defense, and aerospace industries
Low Power
- Battery-powered, e.g. wearable devices
- Energy harvesting
- Dynamic power scaling
System Integration
- Human Machine Interface (HMI)
- LCD / AMOLED displays
- Resistive / capacitive / touchscreen
- Wireless remote
- Buttons / keypads
- Sensor Integration with optional feature extraction
- Audio
- Video
- Analog / Signal
- Digital Signal Processing
- Inertial Measurement Unit (IMU)
- Bluetooth LE Profiles and Services (standard and / or custom)
- State Machines (FSM)
- Resource Management (e.g. power, peripherals, memory, DMA, etc.)
- Battery Management Systems (embedded)
- Clock and Power Management
- Firmware Update Service (Over-the-air / Over-the-wire)
- Non-volatile Persistent Storage solutions
- Wear leveling
- Standard or custom file system
- Operator interfaces (OI)
- User interfaces (UI): emWin, LittlevGL/LVGL, GTK
Mobile and Web (Full Stack) Services
- Native app development for iOS and Android
- Cross-platform app development using Cordova
- App deployment to App Store for iOS and Android
- Architecture and design of commercial and industrial systems
- Distributed computing for Internet of Things devices and wireless sensing applications
- Experience developing and using custom server architecture
- Development of REST web services and web servers with Java, Ruby, and Node.js
- Database development – small-scale as well as cloud-based
- Cloud computing solutions that are highly scalable, optimized for performance, reliable and secure
- 3rd party API integration
- Testing with jUnit, Selenium, Appium, and Robot
Manufacturing Test
- Design of testing process
- Coding of test fixture software
- Coding of cooperating test software within Device Under Test (DUT)
Development Tools
GNU development tools (Make/GCC/GDB/G++), Code Composer Studio, MPLAB, Microsoft Visual Studio, Keil uVision, Eclipse, IAR Embedded Workbench, Atmel Studio, Code Warrior, LabVIEW, MATLAB/Simulink, BitBake (e.g. OpenEmbedded, Yocto), buildroot (e.g. OpenWrt, DD-WRT), Java SDK.
Technologies
Nuvation uses the technologies that are best suited to your needs. We have experience with Obejctive C/C++, Python, Swift, Node.js, JavaScript (Angular, DoJo), HTML5 and PHP, like Amazon Web Services, Hibernate, Spring, and more.