One of the things I am most skeptical about for the future of IoT is that it's just REALLY hard to get the basics of networking, meshing, security, and updates down without an experienced and dedicated engineering team.
Realistically, Whirlpool just isn't going to be able to field that team to make their laundry machine resilient to malware attacks or a bricking update.
I always thought the only way forward with IoT was if it a big tech player offered an SDK / IoT platform that allowed developers to focus on the widgety part of their widget without having to think about the complexities of running an internet connected device. This seems like a big jump towards that.
There's the worry that your platform vendor is going to squeeze you for all your profit, harvest "your" data, use your data to bootstrap competitors (seems like X is profitable!), "cancel" your platform or all the other things they will definitely make sure they retain the ability to do.
"Pray we do not alter the Terms and Conditions further". Walled gardens, app stores and closed ecosystems are FAANG staples at this point.
I think in many cases the technical delivery risks (say, having crappy updates, janky apps and the odd CVE) seem more survivable than taking on those kinds of business risks.
And as a end-user and a potential customer, I see it as a mugger mugging another mugger. IoT isn't added to appliances to make anyone's lives easier; it's added to a) make the product look more "hot", b) create data streams that can be sold to marketers, and c) facilitate planned obsolescence - because while even today, a properly cared-for appliance can last a decade, adding IoT into the mix significantly shortens the time to replace.
When Blackberry bought QNX I thought they would leverage their carrier network footprint to build a security managed turnkey/white box IoT business in controllers from white goods to plant.
Everything I have since read about the major mobile hardware/phone companies taught me to stop over estimating the ability for organisations who are monomaniacally focussed on exploiting initial (fluke by statistical measures) in SF insights implemented by early engineering focus by arguably genius minds, have no ability whatsoever to understand how anything can interoperate or even coexist, because they are hell bent on protecting the boundaries of their product features and technology surface.
<Shameless plug> The company I work for, Particle [1] has set out to do exactly that, and we have built up quite the community of developers and enterprise customers who needed to solve this problem. Our founder started the business after trying to build an IoT product and realizing how much value there was in the common underpinnings of every IoT product.
Our offering comes down to three things:
1. Pre-certified hardware modules (open source [2]) that support WiFi or Cellular in a few form factors.
2. An on-device OS (also open source) that handles communication in the background and abstracts away the hardware using an Arduino-like API.
3. A cloud-based "command center" (closed source) that allows you to link up your backend services with events flowing to and from your devices via webhooks, manage over the air updates, and see connectivity metrics across your fleet. No data is stored - just ferried between your devices and the other end of the pipe that you configure.
Oh, and you can buy our devices off-the-shelf in small volumes and get them up and running in a few minutes!
How would you compare your WiFi products to alternatives like the ESP32?
I see that your dev kits are more expensive than pure ESP-based boards but aside from Argon (which is an ESP32 with an extra processor), it's unclear why. Photon, P0 and P1 all have an STM32F205 which is much less powerful than an ESP32 yet the P0, which is a raw module, is more expensive than the retail price for an ESP32-PICO-KIT, which is a full dev board. The Cypress chip doesn't look to be anything special either.
From a cost perspective, our hardware designs are more expensive because they are highly integrated (6 to 8 layer PCBs, blind and buried vias, dense component packing, etc) and carry certifications from the FCC and CE, among others. This saves you an expensive certification process when you scale your product, enabling you to get to market faster.
Our core products are our cellular modules, as the certification burden on them far outweighs the process for WiFi modules (PTCRB, carrier certs). While we definitely have customers that use our WiFi products in a production capacity, generally our customers use our WiFi portfolio to prototype in their offices and then migrate to a cellular module for their end product. Saves cost and complexity when you just want to get something working, and our DeviceOS allows you to use the same or similar publish APIs regardless of the underlying connectivity technology.
When you purchase one of our modules, you are buying into a proven and tested platform that is guaranteed to work with our cloud. You just need to make your hardware and set up your backend. We handle the rest. Additionally, we don't make a lot of margin on our hardware - it's not the business we are in.
In terms of processing power, we target applications that don't need to crunch numbers. A great way to describe our platform is a "pipe" that takes your data from some sensor out in a field and drops it in your cloud backend/database. Our best applications are ones in which someone needs to answer "where is my device?" or "how is my device functioning?". In these verticals, it's all about data transmission rather than processing. Often these devices are battery powered and geographically hard to access. They spend a lot of time asleep, and when awake want to consume as little energy as possible.
The IoT landscape is vast, and we have narrowed in on a set of solutions that work well with specific verticals. Our product isn't a fit for every situation, as you have pointed out. For the ones it does fit for, we can provide significant value as a platform.
There's a school of thought that says if your target customers are mass producers, it doesn't matter how much your development kit costs. Because any professional engineer on a work project can afford a $30 dev kit, and a good portion a $3000 dev kit.
Of course, not everyone follows this line of thinking; due to their cheap, accessible hardware there are innumerable people with Arduino/ESP8266 experience, which might lead people to attempt mass produced projects with them.
> Of course, not everyone follows this line of thinking; due to their cheap, accessible hardware there are innumerable people with Arduino/ESP8266 experience, which might lead people to attempt mass produced projects with them.
That was my experience exactly. I've been working on an embedded project for work and since I'm so used to using the ESP32s at home, I chose them without much thought for work as well.
Wait, what? Open source cellular modules? Can you point me to something? All I could find in the linked repo was some helper utility to address a couple of modules.
The hardware designs are open source, but we utilize off-the-shelf hardware including cellular modems which inherently are closed source at their core. I wish there was an open source modem design on the market!
Hmmm. About 9 months ago I was looking to add IoT functionality for a large industrial device. I looked at Particle briefly, but TBH, they seemed more focused on the "maker" market than industrial applications and that would definitely be a negative in the market the product is going to be sold into.
I don't know if I missed it before, but the products I'm seeing on your site now really look more suited to what I need than they did back then. I've done a lot of network programming and IoT work, but since connectivity is such a minor feature of the machine, it would definitely be preferable to have a smart module to abstract away most of it for me.
> Realistically, Whirlpool just isn't going to be able to field that team to make their laundry machine resilient to malware attacks or a bricking update.
I think you're just using Whirlpool as an example, but they're not a great one. They have a fairly large IoT group that spans their entire ecosystem. (I'm a vendor in said ecosystem, and work with them on a weekly basis).
Your point is well taken, though: I work with many smaller companies on their IoT products, and they aren't in a position to manage their IoT projects.
I wish the sibling comment wasn't dead so I could point out that Amazon's Choice for microwaves is one with Alexa integration. Amazon has already taken over the Smart Microwave market.
> I always thought the only way forward with IoT was if it a big tech player offered an SDK / IoT platform
Yes, well hopefully not _a_ provider who will lock their customers into a proprietary platform. Hopefully many providers so manufacturers have options to choose from. Even better would be if there is an open standard, and then providers can compete on providing a better implementation.
The whole point of being a platform provider is to get lock-in. The chances of an open standard getting any traction are just about nil, because those with the ability to pull it off will be fighting every step of the way.
The real problem is that everybody wants to be the rent seeker in the middle rather than the guy at the end trying to put a useful device together and make it earn money.
If I'm the guy at the end and I'm good enough to build the device, I don't need the rent-seeking guy in the middle.
If I need the guy in the middle, I, by definition, am not good enough to be the guy at the end building the device.
This mirrors what’s happened in banking and healthcare SaaS. You can be much smaller than Amazon and have a focused, compliant product with amazing customer lock in. But just like in banking and health records solid regulation in the IoT space needs to come first to force companies to the table.
You just described the reason most b2b SaaS vendors exist. Whirlpool will buy (and is buying) that which they cannot do in house and integrating it with their apps.
>I always thought the only way forward with IoT was if it a big tech player offered an SDK / IoT platform that allowed developers to focus on the widgety part of their widget without having to think about the complexities of running an internet connected device.
You would be amazed how many of the big players are doing exactly that. But I shouldn't talk about it any more, I work for one.
Washing machine manufacturers already focus on the washing part of the appliance without having to think about the complexities of running a water supply system.
It merely remains for IoT device management to achieve the same level of maturity as plumbing. Wait a couple of millennia, we'll get it right.
My least favorite engineering problem is the "dusty router" concern.
At some point, you may want to version your apis in a breaking way. You'll spend weeks sketching out a migration plan for all active routers in the field, sell it internally , get a thumbs up, then try to prep customer support. Customer support might tell you that you still need to support some devices which were unplugged on a firmware released 6 months ago. Oops.
When building deployed firmware, you always need to include a reliable fallback that allows you to bump the firmware on that device, even when it can't talk to anything else wirelessly.
"We can solve any problem by introducing an extra level of indirection."
I'm extremely skeptical that this solves any particular problem other than for Amazon building devices, silicon vendors who want to be in Amazon devices. Which is fine, but the scope of this seems to be broader. It just doesn't sound like the right idea to me.
The biggest issue is the "common" part. You want to produce an api or abi common across OSs? How many chances do you have to get it right and not run into a web of api version bugs & issues? Who has made this successful in the past? UDI? (nope) And then you want a common api across an RTOS and Linux? Good luck.
Oh and by the way, where's the source code for this middleware?
I don't know why you wouldn't take the approach of making the underlying OS's easier to work with. If FreeRTOS is missing something, enhance it. If embedded Linux(s) are hard to integrate with, start an open source project to work on that problem.
I like the clear statement that the components are memory optimized (as opposed to execution-time optimized). Their target audience are device developers (and of course users of those devices), they're making good steps towards that, but of course both should be wary of how auditable the toolkit is, and most importantly can it be abused by Amazon
You do realize this toolkit is designed to deeply embed Alexa and other Amazon products into the device. So people WANT amazon to have a microphone and maybe a speaker and I'm sure lots of other metrics feeding back into an Amazon datacenter.
"Can" amazon, if they wanted, abuse this? It seems likely all the technical items are in place that they could. I don't see why they would, you are voluntarily putting everything they want into the device for them.
You can design a device that uses Amazon software for microphone audio "processing" AND have a hardware (or semiconductor based) switch at the microphone wire that you (or user) controls.
These IoT stacks like AWS greengrass (yes the marketing department smoked that day) or Azure IoT hub are missing something fundamental in my opinion : device management.
It would be nice if they could do stuff such as updating the Linux distribution.
The biggest hurdle I've found for updating Linux distros is that the chip vendor doesn't provide any newer Linux kernels. We're supporting some hardware right now that still runs 2.6.34 because that's the last kernel the chip vendor ported their driver patches too. And we will probably be supporting it for the next 5 or 6 years.
It's a good point for sure. That said, I don't think there are enough compelling IoT products on the market that have vendor lock-in potential. Hopefully that changes.
Edit: To be clearer: I hope the products get better and more compelling. I don't look forward to the attempts at vendor lock-in :-)
Verbally setting alarms/timers/reminders or anything based on numbers without receiving visual feedback is bad design. The safety features aren't going to ensure that the food is cooked properly and not burnt to an inedible char just shy of combustion.
I use an Echo for timing stuff in the kitchen all the time. It repeats the number you said back at you, I've never had a 15 -> 50 minutes type mistake.
It's like a mini-OS layer that can be used to integrate Amazon's SDKs.
Basically it allows vendors to plug this low-level wrapper on top of their hardware's OS so they can easily add things like Alexa capabilities without writing their own API for that.
From what I understand, this is more or less what it does. It's like OpenWRT but for IoT devices and with the single purpose of integrating Amazon's SDKs in your hardware.
Please keep in mind that IoT is not just home device, but also machines in factories, utilities and so on. Amazon already has an offering for those devices at https://aws.amazon.com/iot-core and the machine learning and AI support to back it up. This allows them to better compete with players such as Siemens and GE in that area.
Betting that Amazon is using this big-time to provision devices in their own facilities. Provisioning is major issue not just in devices, but also in cloud software - its one thing to sign up for a service, its another thing to to get to 'doing useful things'. Most enterprise apps struggle with this.
Most hardware companies suck at making software. If AWS can get a decent traction, maybe they will replace their custom crap with better engineering software, which would be a win.
Also a win for AWS, of course, as this would make it easier to use their services.
100% agreement on that. The number of companies that can competently make good hardware and software is vanishingly small.
But the problem is that most hardware makers either refuse to realize that they're bad at making software.
I'm a "fan" of what Apple tried to do with HomeKit ecosystem, but vendors hate it because it removes some of their control, and also is a pain to get right, so the whole thing ends up looking terrible even though the ideas and implementation are solid.
Realistically, Whirlpool just isn't going to be able to field that team to make their laundry machine resilient to malware attacks or a bricking update.
I always thought the only way forward with IoT was if it a big tech player offered an SDK / IoT platform that allowed developers to focus on the widgety part of their widget without having to think about the complexities of running an internet connected device. This seems like a big jump towards that.
(I worked at a wifi router company.)