Favorite IoT platform?

I’d like to get into the IoT space, and am looking for a good platform to get started on. I’d like to be able to do basic development myself on the app and cloud side (these aren’t my primary areas at all), but picking the right toolchain seems to be an important step.

Initial research took me to AtmosphereIoT.com, which does a lot of the work for you, but after digging in it seems that the there are severe limitations to using their platform for everything.

Azure gets lots of props for security and having a lot of business clients, but their hardware platform also seems limited, and they don’t support cellular connections out of the box.

I typically llike to use platforms that are widely adopted and have lots of momentum behind them, as well as lots of templates or use-cases. I’m definitely more of a hardware / firmware designer, so I’m trying to pick a platform where I won’t have to re-invent the wheel.

Looking forward to hearing your experiences!

IoT is mostly a software and firmware endeavor. There are some folks that develop hardware, but IoT is about communication, in order for communication to be relevant there need to be standards, and standards lead to commodity HW. Most HW for IoT is some sort of vertical application bolt-on to a standardized (or semi-standardized) comm platform.

If you’re looking to eliminate the communication and cloud aspects from your workflow, here are a few options.

  • Particle
  • The Things Network (LoRaWAN)
  • Twilio IoT – uses NB-IoT, not sure where it stands in beta.

I was using analog.io but the guy running it shut it down…

The Particle platform looks pretty mature. It seems they support firmware over the air update (FOTA), which was something I wasn’t looking forward to doing. They also have dashboards to be able to view data that is published from devices, as well as an IDE to develop firmware on.

However, it appears that they offer SDKs for mobile apps. Any opinions on toolchains for developing mobile apps? I’m coming mostly from a background in developing desktop applications using Visual Studio.

Development for the Windows desktop as a target has become a niche.

When I deploy GUI SW these days, it’s usually via some sort of web dashboard. As an embedded dev, this is simply something you need to know how to do, now, at a minimum viable level (or at least know how to find some freelancer who can do it for you). For JS front-end, IMO the least annoying way to get from 0 to 1 is the next.js framework.

Can you access USB peripherals with a web dashboard?

Kiiinda: https://developer.chrome.com/apps/app_usb

I’ve used some tools that make use of features like this, and it’s sort of wild to think about a webapp being able to reach out into a device plugged into the thing I’m typing on. One hopes the browser devs involved have given the security considerations a good long think.

I believe Github’s 2FA process uses this for authenticating against security keys etc.

1 Like

I’m actually a software developer that got pulled into hardware largely because of iot. I’m currently working on an iot job using mongoose os with an esp32 running on the Google cloud iot platform. So far I’m really happy with it.

I actually landed on an ESP32 with an XBee 3 cellular modem to use with Atmosphere IOT.

Are you able to do firmware updates with your platform?
Cellular or Wifi?

Mike

I have done over the air updates using WiFi for sure but I haven’t tried on cellular. The update is delivered via MQTT so I can’t think of a reason why anything that has a connection wouldn’t work.

You can access anything you want (literally, anything), as long as there’s a daemon running on the server to supply that data via a socket or websocket. This workflow is actually pretty nice for embedded devs, because you can stay entirely in the firmware and systems programming part of the stack, and just hire some scabs to slap together a front end.

If you prefer to build in an IDE with an operating systems API, that’s certainly fine, but you’re not going to be able to leverage nearly as much open source software that’s available now for web & cloud. Since we’re discussing IoT, this is extremely relevant.

1 Like

Google Cloud is my favorite. Easy to set up and administer, minimum BS, and quite a lot of flexibility as far as what software you’re able to deploy. But, of course, there’s a price – which is the price. That said, for limited volume deployment, I highly recommend it.

@mike.barber Particle has a good platform, with OTA, and various other bits that make life a lot easier. You can integrate into most systems quite easily if you need more functionality.

(I work for Particle as a remote support engineer, so this is a biased view)

How do you like Atmosphere?

Digikey has a white-labeled Atmosphere offering which I was really excited about. Then I tried it with ESP32 and while I could get to blinky with it, what I really wanted was the ability to send some bytes in/out on a UART. Sadly, that did not work – it would actually crash the runtime – and after not getting any response on how to address this, I gave up.

I’d love to give them another look if it’s really worthwhile, as they provide a UI app so that you can run pre-canned UI elements – which would be great for prototyping.

Separately, I’m planning to look more into Node-RED at some point.

I had a similar experience. As soon as I tried to do something that wasn’t canned (pull data from the cloud to update a mobile app), the lack of documentation and worked examples caused me to hit a wall.

Mike Barber
Edge Scientific
mike.barber@thinkedgesci.com
1826 Golden Willow Court
Fort Collins, CO 80528
m. 970-231-4859
http://www.thinkedgesci.com

I found part of the solution I was looking for with Xamarin (Microsoft IDE to develop mobile apps on iOS and Android). Also, I ordered a Particle Boron since it natively supports cellular connectivity.

What is the best way to use Particle’s Cloud SDK with Xamarin?

Hi Mike,

The officially supported Particle IDE is Visual Studio Code, for which we have an extension.
The API will work no matter what IDE you use, and you can use the Particle CLI tools to compile and flash the code to your devices. I don’t believe there is an SDK in the traditional sense, but I will check for you.
Edit: I was pointed to this: https://github.com/michael-watson/particle-xamarin
It’s a little old, so your mileage may vary.

Anyone have experience with Pycom FiPy? I see my local phone company started offering IOT over cellular network with nb-iot. Considering buying one to test it out.

I have used a couple of PyCom products, including the FiPy. In general, it’s a great experience if you’re using it how they recommend. The MicroPython code makes for very succinct startup code. The pitfalls appear when things go wrong. Getting under the hood was very difficult and it made me dependent upon the grace of their developers who hung out on the forums. I’m sure the software has improved in the two years since I last used those devices.

Another thing of note is that while the code is relatively easy, the power requirements are pretty high. This is due to having a cellular modem onboard and them using the ESP32 chipset, which at the time I was using it had very poor power management.

1 Like

Just discovered this really cool opensource solar charging controller called libre.solar. The hardware and firmware is available on github and their newest controller being developed now is here.

Anyways, looks like the same guy who created that made this IoT communication protocol called ThingSet for those solar charge controllers to communicate. Its more of a communication protocol than platform but I thought someone here may find it useful!