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 900+ 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, 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 / 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

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.