I recently sold a USB controller to a large company and then the Experiential Marketing Team there had a few calls with me about what they wanted to do next, which was build a “very large” controller. I gave them a huge quote (because it would have been a huge project involving custom fabrication) and they eventually got back to me saying they found someone local who would do the fabrication, but wondered if I could still do the programming part of it. I said “Of course!” and we got going…
As we talked through the project I realized that if I just sent them a microcontroller with a bunch of bare wires it may not be the best experience for them, so I offered to build a prototype/testing unit that would be fully functional, and then also provide the “bare wire” version they could install into the custom fabricated unit they were having built.
One of the people asked if they should have a backup in case of failure, and of course that’s always a good idea so I said I would throw in a spare as well.
Projects like this tend to be pretty easy for me. I’ve got my own OpenSCAD library to easily create the enclosure with the holes I need, and I can easily add new holes as needed. I can choose to print the top lid integrated or separately (and attach with hardware) and I tend to do the lid separately now because it means faster printing, less support material, and I can easily iterate when needed.
The electronics for most controllers I build is the same, so if I don’t have code that does what someone wants, it’s fairly simple for me to rewrite existing code to do what is needed. I test things on macOS and Windows for every project, and Linux if that is needed. (It is sometimes, but it’s rare most of the time.)
Anyway, a project like this is actually pretty fun for me, which is why I keep doing them. I can get away with not charging a ton because I have my system down really well to produce what people want.