Joe Lee's software has been controlling industrial processes since 1984.
His safety critical software includes cutting-edge drug research processes, vehicle windscreen manufacturing, and naval engine monitoring and control systems.
Whilst much of his work must remain confidential, one interesting project was to try to sort out a control system which worked some of the time, but kept falling over at random. The system controlled a novel R&D process using a mix of equipment each of which used a different communications protocol, some of which required different baud-rates, but all were connected to a single RS485 bus driven by a single laptop RS232 port.
Extensive probing with oscilloscopes and multiple laptop bus interceptors eventually identified the problem as being caused by a very specific but not very common data value. This value was generated by one instrument which was running a particular baud rate, and was sending a reply message which was interpreted by another instrument (using a different protocol) as a message start sequence.
The result caused data corruption on the bus due to two instruments trying to talk at the same time, which caused the system to close down into safety mode.
In view of the critical time-scales involved and the amount of time already lost, it was decided on a Friday afternoon that the best solution would be to build a hardware bus multiplexer to isolate each instrument onto it's own data bus.
Joe returned home and during the weekend designed a 1 to 8 RS232/RS485 multiplexer and drew up the board schematics. On Monday morning the Gerber files were emailed to a prototyping manufacturer. Whilst waiting for the boards to arrive he wrote and simulated the required embedded controlling software.
When the boards arrived on Wednesday, Joe populated and tested two of them over the next two days.
The following Monday he returned to the client's site to install and test the faultless system. This took him just 6 working days from problem identification to the final working solution.