This is a great post. Nothing like some major consequences to burn a lesson into your brain. I have my own similar story:
Many years ago I was working with a friend of mine, George, in his basement. We were a two-man shop (his company) doing embedded hardware and software development. Working with George, we didn’t use commercial products like operating systems. We bought chips and read databooks. We’d code in assembly language and even wrote our own assemblers. We’d program to the metal and burn our own EPROMs. Fun stuff.
I met George when we both used to work for a company called Wico (remember Wico joysticks?). One of the projects at Wico that never got finished was a home-built 3-axis robotic table. It was a big sucker; the X and Y directions were 8 feet by 4 feet and the table itself probably weighed more than 4 tons. The mechanics were done but they couldn’t get the electronics right and the table was never really used.
After we both left Wico, the owners of the company at the time were trying to liquidate it and were selling off its assets. George kept in touch with them and somehow got them to sell him the robotic table for a very small amount of money (as I recall, he paid only a few hundred dollars for it – a steal!). He hired a machine moving company and brought the table home to his garage and we set about trying to make the thing work.
George re-did the electronics and had a Motorola 6805 processor on each axis doing the motor control. I was writing Motorola 68000 code to drive the three axes to do things like moving to locations, drilling, routing, etc. For my “hello world” program, I thought I’d just home the table, move the major axis the full length of the table, and stop. It was a pretty simple program.
We loaded the program and ran it. All 3 axes moved to the home position and the table started moving along the major axis. The table was traveling at a pretty good pace. As the tool carrier reached the end of the table I found out what happens when a few hundred pound object moving at a rapid speed hits the end of its travel without decelerating…
The 4 ton table jumped about 4 inches and landed with a huge BOOM! I looked out the garage door and everyone on the street that was home at the time was looking out their front door trying to figure out what happened. George’s wife came down to the garage from upstairs in their house and asked, “Honey, did you break the house?” And I had a newfound respect for the power of software.