About the Customer:
Our customer is a prominent tier-2 supplier of electronics and mechanical systems for various industries, automotive being the most crucial one.
Every ECU needs a flash bootloader for ECU flashing and re-programming. For one of their recent projects our customer wanted such a bootloader solution, but with some specific requirements. One of the major requirements entailed the bootloader to be specific to Volkswagen OEM guidelines. Every OEM configures their bootloader with re-programming strategies and data integrity mechanisms specific to them.
These parameters may be related to how data is communicated, kind of seed-key algorithms in place and various other aspects. Developing a VW specific bootloader over UDS from ground-zero would mean at least 6 months of development time which would reduce the time-to-market further. A ready-to-deploy UDS software was the first requisite for this bootloader to work.
Upon learning about our flash bootloader development capabilities and the prior customers that we delivered our bootloader to, the customer came on-board.
Our task was to provide a complete solution to enable ECU reprogramming. Since the ECU was intended for VW, the flash bootloader software had to be developed as per the OEM specifications. The bootloader development also brought about the need for a UDS protocol software and a PC based ECU-reprogramming tool along with the low-level drivers for the Microcontroller unit on which the Bootloader will run.
Our final deliverables to the customer were:
UDS Stack- Service level configuration and DID level configurations were performed to our ready-to-integrate UDS protocol stack.
Bootloader Development: Bootloader software was developed as per the OEM specifications which in this case was Volkswagen. Since we had worked on a somewhat similar Bootloader project before, we had the basic bootloader framework and architecture ready.
PC based Re-programming tool: It was developed for re-programming the ECU as per Volkswagen specifications including data transmission mechanisms and seed-key algorithm. The tool was developed in QT based C++ environment.
Low-level drivers: Thanks to our vast library of platform software solutions, we could re-use our low-level drivers for this project.
50-60% of effort was saved since we had platform software ready for the microcontroller platform that our customer intended to use for their project. The ready-to-deploy UDS stack and Bootloader framework also contributed to faster time-to-market for the solution.
Tools and Techniques:
IAR Embedded workbench: Compiler used for development
QT, C++: A cross-platform application and UI framework used to write applications for multiple platforms.
Vector Hardware Interface: Acts as an interface between the PC based software and embedded hardware
CAPL Script: A scripting language used to access CAN protocol for simulation purposes