Software

SFO Technologies has software teams specializing in firmware, embedded software and related platforms such as GIS, Enterprise solutions, digital technologies, etc that are assessed at CMMI Dev v2.0/5 maturity level and enjoying a slew of ISO certifications that help us offer world-class software services coupled with design, engineering, and manufacturing services. SFO has immense expertise in delivering fully integrated solutions across Healthcare, Transportation, Communications, Aerospace & Defence, Energy & Industrial domains. These teams are located in state-of-the-art facilities in Kochi, Thiruvananthapuram, and Bengaluru in India, Dubai, UAE and selected locations in the USA. Our software capability is proven with many of our customers who are able to get their final product into the market faster, as we offer total solution under one roof starting from design, engineering, and software development to manufacturing of the final product.

Whatever the operating platform (Embedded, Desktop, Client-Server, Web, Cloud, IoT, etc) the software operates on and whatever its purpose (simulate, monitor, measure, control, automate, display, report, analyze or store) SFO follows standard processes and development methodologies (Agile, iterative or waterfall) to create software. Being a responsive organization, SFO gathers customer inputs such as high level system requirements, specific design (if required), clarification on requirements, tools which would be provided by the customer, planned support for test set up, any specific requirements on using development/ testing tools, standards to be followed, inputs on test environment, etc to guide the development process.

SFO templates are used for all development phases as specified in QMS –
  • Master List of Requirements
  • Traceability sheet
  • Software Requirement Specification
  • Architecture Design Document
  • Detailed Design Document
  • Test Cases Document
  • User Manual
  • FMEA (Failure Mode & Effects Analysis)
  • Release Notes.
  • Six Sigma tools such as FMEA, Traceability, etc are used during the design process.
The Firmware & Embedded software teams are specialized in writing code in C, C++, C# etc using development tools such as:
  • Code Warrior
  • CCS
  • Source Insight
  • Eclipse
  • IAR
  • GHS
  • Softune
  • Visual Studio
  • MPLABX
  • Code Platform builder
  • GNU tool chain
  • Atmel studio
  • Keil
  • Mathlab Simulink
Popular Microcontrollers and/or Microprocessors are used in the design and development, such as:
  • Freescale Kinetis, Freescale i.MX6, Freescale MPC,
  • Cypress Traveo, TI Tiva series, TMS470
  • Renesas RH850, Infineon Aurix, MC56F8037
  • MSP430F6779A, STM32L162RE, ATSAM91,
  • PIC12F1572, MC56f8037, iMX51
  • PXA270, PXA320, LPC1788
  • TI CC1310, TI CC1120, ATMEGA328
  • ATMEGA8, SAME70, SAMD21
  • NRF51, SAM3X8E, TI CC2530
  • SAMR21, STM32F4, Rabbitcore
  • CC2640, IMX6Q

We also have expertise in using peripherals like ADC, WDT, I2C, I2S, PWM, PORT, SPI, DDR3, PMIC, Display drivers, Serial flash, EMMC flash, SDIO in putting together the systems.

The common communication protocols used are:

Wired protocols –
  • CAN, CANFD, LIN, MOST
  • Automotive Ethernet,
  • AVB
  • Industrial modbus communication for SCADA based systems for flow meters
  • Modbus communication for panel meters
Wireless protocols –
  • ZigBee, Bluetooth, BLE
  • Wi-Fi, GSM, GPS
  • GPRS,6LoWPAN

During Embedded system development, our engineers work with a host of communication interfaces such as Ethernet, CAN, CANFD, USB-Serial, USB-MassStorage, USB-HID, USB-CDC, USB-Hub,RS232, Bluetooth, BLE (Bluetooth module from Laird, RN42 Bluetooth module from Microchip, BLE module from TI -CC2640, BLE module from Nordic, Nrf52), GSM, GPRS, GPS,USB-OTG,SPI,I2C, etc.

The hardware / software stacks used for building embedded products include BlueZ stack, Linux stacks, Wi-Fi stacks provided by Selex, TI etc. MOST stack by Mocean, UDS, KWP2000 stacks, Contiki OS 6LoWPAN stack, TIRTOS based BLE stack from TI, Intel Edison Module, Broadcom WICED platform, TCP/IP stack from Microchip and MQX RTOS based stacks.

Embedded systems run on Real Time Operating Systems mostly and SFO has notched up successes in working with RT OS such as
  • MQX, uCOS-ii, uITron
  • TIRT OS, VSTAR OS,CMX RT OS
  • Windows CE 5.0,6.0,7.0,Segger embOS, MicroC OS
  • FreeRT OS, Wiced Platform, Vxworksc.

We also have experience in working with User Interfaces like TFT LCD displays, 7 SEG Display and OLED and GUI libraries such as QT, OpenGL ES, etc. The systems designed by SFO are capable of remote firmware upgrade via Wi-Fi, Ethernet, USB, CAN, CANFD and BLE and have also undertaken Embedded Web server development in PIC32(Microchip Starter Kit) and RabbitCore(from Digi).

On the application software side, capabilities exist in integrating embedded systems with business solutions such as ERP (Enterprise Resource Planning), CRM (Customer Relationship Management), SCM (Supply Chain Management), BI & BA (Business Intelligence & Business Analytics) software to maximize automation and glean insights from the mass of data generated. The application software teams are also specialized in bespoke development using Microsoft, Java and other Open Source technologies.

During testing, SFO conducts static analysis based on MISRA, Unit testing, Module testing, Integration testing and System testing (Black box). Typical instruments used include Oscilloscope, Logic analyzer, Multimeter, CANoe, CANalyzer, etc.