Hardware is a much smaller world than software. Less people are doing it, so shared knowledge is much more sparse.
IoT products are tough to get right. It's scary to ship off a device knowing that a non-zero part of it will not be able to be changed later via a software update. Lots of things can go wrong that can brick the user's device.
There's really high demand for these products. Regular people want to buy real physical THINGS, not software. The things of today generally provide the most value when they include internet-connected capabilities.
Choosing a computer chip to drive your product introduces a tradeoff between functionality and risk:
Simple Chip (ie ESP32) == Low functionality, Low risk
Complicated Chip (ie RPI) == High functionality, High risk
Whether you need a more complicated chip for something like, I don't know, driving 24,576 LED pixels (https://thetickerscreen.com), or if your product is simple enough to run on an ESP32, things aren't going to "just work" out of the box.
Here's a non-comprehensive list of everything you'll need to implement BEFORE even starting on the features specific to your product:
- User Wi-Fi Setup
- Over-the-Air Updates
- Scalable Firmware Flashing
- Authorizing Device's Requests to Server
- Remote SSH
On top of all of that, if you are using a Raspberry Pi, you face the issue of relying on SD card storage, which is inherently unreliable. You have basically two options for dealing with this:
1) Flash the RPI with a custom OS with an A/B partition (one partition read-only) to minimize chances of storage corruption while reducing storage writes as much as possible throughout your application.
2) Pay thousands of dollars to get a PCB designed to use with the Pi Compute module (which includes eMMC storage)
For option 1, you have a range of options which cost anywhere from free to $1500/month. I won't get into it now, but basically all of these options are going to cost you either a lot of money, a lot of time, or both.
For option 2, spending thousands of $$$ sucks.
Now let's just add as the cherry on top that your country's government most likely requires you to pass compliance testing before selling your device, which will cost another multiple thousands of dollars.
So you had this great idea for a product which at first looked so simple and fun, but now you have dug into things and this is seeming like a whole world of pain and you left your job already and you are questioning your life choices (personal testimony).
This is feeling a bit like making a website in 1999. Where are the frameworks to simplify this? Where are the endless guides explaining exactly how to do it? Why isn't my hand being held right now?Hardware needs a platform to make building straightforward. A "boilerplate", if you will, but one that encompasses client software, server software, a directory of low-cost/high-quality vendors, educational material, and community.
We need to lower the barrier-to-entry for hardware. Demand is sky-high for COOL THINGS, but there's not enough people building them. A platform like this would make the speed of going 0 -> 1 with a hardware startup similar to that of software.
This could legitimately boost the global economy by increasing the amount of high-demand hardware products a thousand-fold. For me this is in the ideation phase right now. But someone will build this eventually, it's just a matter of who and when.