We have had the pleasure of working on a project for a Silicon Valley-based Hard Disk Drive manufacturing giant. We developed firmware for an SSD (Solid State Drive) testing rig, that will be used for testing one of their upcoming SSD product lines. The SSD testing rig was a complex project that required a high degree of accuracy and precision. We are proud to have contributed to the development of this cutting-edge technology and we are looking forward to seeing the finished product in action.
When Innovolo was brought on board for the project, they originally had firmware for an older version of this test rig. However, now they have to develop a new rig with new hardware and none of the original developers were available anymore. Therefore, we had to start from scratch which posed the following challenges: understanding the original firmware with little or no documentation, understand the new hardware, develop the new firmware including writing peripheral drivers and implementing FreeRTOS as well as new commands while still supporting legacy commands for backward compatibility.
In addition, testing and debugging with hardware as well as documenting our process was essential. Despite the challenges, we were able to successfully complete the project and deliver a working product.
How We Helped
We started working in parallel to understand the schematic and review the existing firmware. We quickly discovered that the schematic was full of errors, and the existing firmware was full of bugs. We worked continuously with the hardware design engineer to test and debug my firmware. We even pointed out their mistakes in their schematic. Our firmware was reviewed by two highly reputable Silicon Valley engineers, one of them an ex-Apple employee. They both agreed that our firmware was superior to the existing firmware, and we were able to quickly fix the errors in the hardware design. As a result, our product was much more reliable and easy to use.
We developed most of the firmware when the PCB boards were manufactured and the hardware setup was in progress. When the hardware arrived, we went there to bring up the hardware and perform testing and troubleshooting on the physical hardware and finalize the system. The team worked together closely during this period to make sure that everything was working as intended before we shipped it out to our customers. We are proud of the fact that our firmware development process is iterative and that we are able to deliver high quality products to our customers on time.