Think about the items that reside in your average office. Printer? Coffee pot? Thermostat? Guess what. Not only do they all run on power, they also require onboard instructions – or firmware – to make them do what they do.
Firmware is generally defined as non-volatile memory embedded in a device. It contains the commands that make the device do what it does. Developing firmware requires an ability to analyze, design, program, debug and modify in a number of different languages, from assembly to high level language like C++. Strong investigative skills are a must, to ensure that the product performs as promised by product architects.
At SRI Infotech, our firmware development team has worked across industries and product lines.
One of our recent projects involved a government-based multichannel traffic monitoring system. The system was slated to not only provide remote control access to video cameras and the resulting data feeds, but also to provide real time processing of visual information, including auto recognition and identification, and on the fly speed and distance measurements.
Automotive camera surveillance involves several unique challenges, including weather, positioning and time of day. Moreover, as a governmental agency, the client sought a custom built solution to reduce the likelihood of security breaches and to allow for complete control over the code base as well as the data collected. The system required high reliability and efficiency on a 24 by 7 basis. Development efforts were budget sensitive.
Successful firmware development requires a precise and unique plan. What are the requirements? Are they unambiguous? Are they testable?
In this particular case, the solution was created by merging upper and lower levels of software with different functionality to ensure performance. Lower layer software received video frames, buffered them and then redirected them to processing program modules. Technical considerations with this layer involved managing memory and support queues to avoid collisions and balance load.
Upper layer software involved enhancing single frames or frame sequences to provide additional functionality. Examples of enhancements include filtering, picture enhancement, snow/rain/frog removing, scaling, panorama view, auto-detection of moving objects, range measurement and more.
Furthermore, in developing this firmware solution, the team needed to address the significant challenge of balancing the complexity of algorithms necessary to achieve stated end goals against the real-time need for the data streams. To meet this challenge, the team implemented part of the calculations using dedicated device with programmable logic.
Additional projects SRI Infotech has successfully completed in the area of firmware include:
- Oilfield wireless network sensor development: Development of low power instrument controllers for the purpose of both extending device longevity and collecting, reading and transmitting data to a central storage and processing device. Firmware was custom written due to the lack of standard systems which met project goals.
- Temperature control devices: Development of industrial grade temperature control devices for use in plastic extrusion and molding. The controllers not only obtained and displayed temperature information, but allowed for a preset package of controls to ensure optimal operating conditions.
- Datalogger devices for machine monitoring applications. Development of datalogging devices for use in elevators, elevating machines and cranes in the automotive industry, to predict failure and manage maintenance schedules. The loggers enabled data transfer control, data collecting, processing and reporting, and database access in a removable flash memory device and web-based control systems.
About SRI Infotech
Our unique discovery process, our focus on understanding your unique culture and business needs and our highly qualified development professions ensure that your firmware project will complete on time and in budget.
Contact SRI Infotech today to learn more about how we can support your firmware efforts.