This is one of these things that look very obvious to me, to the point where it seems not worth discussing. However, I’ve heard the idea that “hardware magically makes things cheap” from several PhDs over the years. So apparently, if you aren’t into hardware, it’s not obvious at all.
So why doesn’t “hardware support” automatically translate to “low cost”/”efficiency”? The short answer is, hardware is an electric circuit and you can’t do magic with that, there are rules. So what are the rules? We know that hardware support does help at times. When does it, and when doesn’t it?
Make a robot friend with Adafruit’s CRICKIT – A Creative Robotics & Interactive Construction Kit. It’s an add-on to our popular Circuit Playground Express, FEATHER and other platforms to make and program robots with CircuitPython, MakeCode, and Arduino. Start controlling motors, servos, solenoids. You also get signal pins, capacitive touch sensors, a NeoPixel driver and amplified speaker output. It complements & extends your boards so you can still use all the goodies on the microcontroller, now you have a robotics playground as well.
Get the only spam-free daily newsletter about wearables, running a "maker business", electronic tips and more! Subscribe at AdafruitDaily.com !
Ha ha ha. Hardware is cheap for the most general purpose things like MCUs. Once you get into specialty and niche applications, they get rrrreeaaalllyyy expensive fast. That’s why FPGA and CPLD design is handy for those times when you need to roll a full custom design 🙂
The term “cheap”, here, refers to processing time required to do some task. If you ever get a job in industry designing either software or any kind of processor or memory unit, you will learn very quickly that you are only allotted small amounts of time to complete a task. If you are sloppy in your code or your design, it will take longer to complete a task and make your part either more expensive to produce or you will loose money from lost business.
From this problem, you are given two ways to better your final product to meet your timing specs – either you write more efficient software, or you design more complex hardware. When it comes to programming, you can only get so fast on a simple piece of hardware because you have to string together many, many bits of code to get a relatively simple thing done (take a class on assembly/machine code/ISA and you figure this out). When it comes to hardware design, you can make certain functions inherent parts of the chip that will execute extremely quickly. The problem with changing your hardware, however, is that it is extremely expensive (in time and money) to produce specialty chips for EVERY application.