Or, you could just, you know, buy them.
My beef with people who say, like you do that 3D printers are cheap or you can buy an arduino/pi/whatever, is simple.
People consistently fail to value their time, and the startup cost.
The startup cost because your thinking works on the assumption that people know how to use, e.g. a 3D printer out of the box. The reality is that most people don't. And as such, they will expend a great deal of time with Mr Google and various internet forums trying to figure it out. They will then proceed to flush money down the pan on materials during their learning.
Second people seem to value their time at zero. If you value your time at zero, then sure, its cheaper to make it yourself. But if you value your time realistically, its cheaper to either (a) buy it or (b) pay a domain-expert to make it for you.