Back when I was designing subsystems for museum exhibits, experimental apparatus, and recording studios (among other things) I quickly learned that if I didn‘t spend the time thinking about maintenance and repair when I built it, I cursed my past self for it.
As it is said in the code writing business concerning documentation, inline comments, and avoiding ”clever” code:
There is a broad overlap between making maintainable code and physical devices, but of course there are also differences. Some of the main points of commonality are solid documentation and eschewing obscurity. One thing that makes physical devices very different is that they can break without any changes being made.
Here are some of the things I included, off the top of my head so not an exhaustive list. But I am very interested in whether you did any of these things or not. I didn‘t always do all of them but I usually did as much as time allowed and criticality of the device demanded.
Status Indicators
An any important signal I put an externally visible indicator so at a glance and without tools you could see if it was present when it should be. This includes (when present):
These are only a few, there’s much more but I am going to stop. I was hoping to hear your reaction and about what you do in this area. Please comment with your best stuff!
As it is said in the code writing business concerning documentation, inline comments, and avoiding ”clever” code:
Be kind to the maintenance programmer because it’s very likely to be you.
And, even it it isn’t you, you could be the one getting the phone call to assist the unlucky person who inherited your not-easy-to-maintain code.
There is a broad overlap between making maintainable code and physical devices, but of course there are also differences. Some of the main points of commonality are solid documentation and eschewing obscurity. One thing that makes physical devices very different is that they can break without any changes being made.
Here are some of the things I included, off the top of my head so not an exhaustive list. But I am very interested in whether you did any of these things or not. I didn‘t always do all of them but I usually did as much as time allowed and criticality of the device demanded.
Status Indicators
An any important signal I put an externally visible indicator so at a glance and without tools you could see if it was present when it should be. This includes (when present):
- Power Supply Related
- Mains (usually a neon lamp)
- Battery (with a test button so it wouldn’t be a drain)
- PS Rails (each rail voltage, occasionally with comparators driving over/under indicators)
- Switching (inputs to relays, SSRs, and MOSFETs)
- Test Points (I used pin jacks to provide access to measure voltages without opening the case)
- Physical Aspect
- Easy open cases (minimal screws and/or quarter turn captive hardware)
- Connectors on all point to point wiring (including a way to plug it back in while disassembled, for testing. This sometimes meant providing an extension cable which was stored in or with the device, and was clearly labeled.
- Single fastener size (as much as possible using a single size screw, and making any other screws distinctly different when required)
- DIN rail mounting or simple ear type flanges
- If space permitted, documentation in a well attached 4-8mil zipper locking bag
- Fuses always had spares, on board (sometimes in the documentation envelope, sometimes in a parallel mounted fuse holder marked SPARE)
These are only a few, there’s much more but I am going to stop. I was hoping to hear your reaction and about what you do in this area. Please comment with your best stuff!