A client asked us recently if we could update a design we (as Watchfront) did for them nearly 20 years ago! It is a fire safety related product that went through extensive (and expensive) safety testing and approvals, and has proven so popular that it is still selling well.
They wanted to sell it as part of a new control system, with a much faster bus and more complex protocols. The original design used an 87C51 microcontroller, relatively modern at the time but now decidedly ancient! Fortunately that architecture is still supported (which shows the importance of choosing long-life components), with modern drop-in replacements available with luxuries such as in-system programmable Flash memory (the original devices had one-time-programmable ROM, which made debugging rather arduous to say the least). This meant no hardware changes were needed to the design, saving a bundle on R&D, testing and approvals.
However, updating the firmware was fun! The original development tools from the early 90s are a far cry from modern tools, but with a bit of ingenuity we managed to get the original code to build on a modern platform. Next we had to handle a much faster bus and more complex protocols, using the very restrictive 87C51 architecture. By coding in assembler, and using some rather unusual tricks to make the best of the limited resources, we managed it – phew.
The design is now working well with a modern control system, and the client is very pleased to get a new lease of life out of it.
We feel this goes to show the importance of retained knowledge. All of the client’s employees who worked with us on the original design have since left. Fortunately we remembered the job well, and had kept good documentation. And unlike an employee, we will probably still be around in another 20 years!
Ben Mack, January 2013