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?
Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on code.org, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.
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.