Arduino Enters The Cloud






61 thoughts on “Arduino Enters The Cloud

    1. Of course it will only work with genuine Arduino hardware (e.g. USD$45 MKR1000), as opposed to USD$1 generic ESP8266 silicon. And they wonder why nobody will use it.

      I gave adafruit IO a try recently – super easy, just works, no fuss, super fast to get a device online, compatible with generic devices, open standards and protocols such as MQTT, working example code – nothing locked-in or proprietary.

      1. Luke The IOT cloud at the moment works with the MKR boards because they have security features that a 1$ ESP board doesn’t have. Our requirement was strong security from the ground up. In the next release we’ll allow the connection of unsecure devices as well. Arduino IOT cloud is based on open standards as well (MQTT etc) and the various code libraries are already open source including the npm library that we use to build the web interface. Actually we encourage people to adopt our payload formats and other code that we developed for their own products too. We focus a lot on user experience and each new board we support require crafting the experience carefully, it takes time (and money) but our solution is as open as the alternatives you mention.

      2. I’ve been using the Particle stuff for a while now and they seem to be pretty healthy. They have really grown their ecosystem and seem to have a solid setup.

        I’ve been a big fan of adafruit as well. They used to overprice things by what I considered a pretty significant margin (which honestly may not be 100% fair considering the huge competitive advantage Chinese ebay vendors have, not to mention the quality differences) but regardless, their value to dollar spent ratio has steadily increased over the years.

  1. We want/need better Arduinos, instead, and 5-volt at that–instead.

    Aduino/Atmel is working hard on the flash-in-the-pan projects, while its base processors/boards are not improving. For instance, an Arduino is not fast enough to run an ultrasonic motor because the ports cannot be flipped fast enough.

    There are many Arm solutions out there, but 3.3 volts might be nice in the same box, but I would rather have at least 5 volts for sending signals along wires. A 100% threshold safety factor represented from 3.3 to 5v is nice to have.

    I would rather have a new Nano that’s 5 volt, works with the same IDE, with no weirdness, and is twice as fast.
    I would rather have a Mega that I can drop into a card slot such as the compute modules.
    I would rather have a Mega that has pins optimized for bread-boarding.
    I would rather have a chip that I could set the GPIO voltage from 3.3 to 5 volt from the IDE without implementing level shifting.
    I would rather have products with faster GPIO ports.

    1. Sometimes if no one else is making what you want, you need to make it happen yourself (and if the widespread need is there you could either release open source documentation and/or sell your boards). I often find this is the case when I have some requirement that just isn’t met with what is available or cheap.

      A small note about your comment that the arduino is too slow to do ultrasonic signalling, the atmega clocked at 16MHz is more than capable but it is the inefficiencies of the arduino libraries that is holding you back. If you use the digitalWrite function then of course it will be much slower. However, if you directly write to the port you can fairly easily toggle pins much faster than necessary (in 2 cycles/8MHz for digital pin change or up to ~63kHz at 8bit fast pwm). Here’s a nice article about how to squeeze more performance by making the code more efficient:

    2. I would prefer for Arduino to remember it’s maker past and stop crafting it’s self to seemingly industrial and educational-exploitative applications. 40 to 80+ $ boards gives the average hobbyist maker so little room to maneuver for fear of damage and waste .. making many to seek cheaper unreliable(ish) alternatives. Arduino became greedy(?) and lost my support. NodeMCU .. you have my sword and shield.

      1. I agree @Vije and we’ve seen it happen in the industry many times. The Netbook segment comes to mind. Cheap laptops at $249 with an efficient and free OS and software(Linux). And then the hardware vendors are manipulated by Microsoft and the price jumped and because of the required hardware boosts Windows required and the segment fizzled. Years later, Google picked up with the Chromebooks.

        I wonder who the partners are who are directing Arduino towards the high end and wonder if their motivation is like the Netbook. ie to kill off the product line.

      2. Vije Thanks for your comment. Our product are the response to the request we get from customers . We’re working more and more with SMEs which are going through a digital transformation and are unsatisfied by what they find on the market. That informs the design of our MKR products for example. The “Maker” market is very difficult because many customers are extremely price sensitive and they don’t mind buying a 3 EUR clone and working an hour to fix it rather than paying more for something that works, has support , is certified and fair. That’s the way the market works. If you have suggestions on how to fix this please let us know.
        I resent your characterisation of our work as “educational-exploitative applications”, we provide tools that make the teacher’s job much simpler and we have people using our tools allover the world.
        We do a lot of R&D which we open source, we manufacture in Europe and pay people properly. That requires to have a decent income. There is a difference between contributing actively to open source and exploiting it for personal gain like so many companies do.


          Marketing make this arguement to justify the price. Problem is it’s not 100% correct.
          Yes, marketing may do research, test a few boards and they may find some people have poor experiences but marketing in essence is the means to it’s own end.
          Picking the data that they want to make a point for marketing reasons and distorting the truth to fit a narrative which will enable sales.
          That’s marketing 101.

          Instead of this argumement that you suggest where people dont value their time, the reality is that if it’s ever a problem with a new board its’ once. Then you know how to do it. Not every time.
          So the money saved on a board was €3 rather than say €5 (being generous, more like €10 or more)
          Then for 10 boards for a “maker” it is quite a big number and well with an hour of difficulty.

        2. “There is a difference between contributing actively to open source and exploiting it for personal gain like so many”

          Oh and the irony meter is off the frkkin scale on that one.

        3. Why does Arduino not make a Nano and mini using the ARM cpu? I had a project that I was doing and wanted the Zero’s performance but a nano/mini form factor. I know I’ll probably be told the MKR series but they have other things/features I do not need and it seems a waste to have have them on the board to never be used.

          I mostly deal with my own peripherals and just want a processor board. In the end I was told about another manufacturer who was making (nearly the size was a little bigger) pretty much what I wanted. I was even willing to pay the ‘Arduino tax’ to support the company but Arduino simply did not make what I was after :(


          Wait, what? What is that difference?

          I would say, the person injecting the pejorative “exploiting” simply isn’t using words that place positive value on open source. If it is possible to “exploit” it, then you’ve failed to successfully include the Freedom. Oopseeeee.

          You have no right to take offense at “educational-exploitative applications,” because you make the exact same mistake later in your own post, and claim that some uses of “open source” are more morally and ethically virtuous than others; but that is exactly the sort of gatekeeper nonsense that open source successfully defeats. Note that I’m not suggesting open source is merely opposed to that attitude; I’m saying that it successfully defeats it in a guaranteed way, because open source is based on licenses that prevent any application of external control.

          And lets also remember, these tools are thin layers on top of microprocessors that can also be used with regular tools; the “R&D” is mostly just making carrier boards with standard breakout pins, and repackaging open source software. You can literally just buy the microcontroller and program it on a breadboard with a very small additional layer of knowledge. So lets not get excessively self-congratulatory about what is actually a very small part of the ecosystem carefully designed to create a user-facing brand in order to sell products.

          Some people want to make a moral attack on “$3 `clone’ boards” but wait, they’re just uC carrier boards. They’re not really a clone of anything, the uC itself doesn’t need any hardware to run code written in the Arduino GUI. How is a buying a generic $3 carrier board somehow immoral, when I can buy the original chip for $2 from the company that actually made it, and just use that instead? It seems the whole ecosystem is riding on top of somebody else’s R&D and trying to get users to lock themselves in without realizing nothing is locking them in.

          Businesses who work with open source would do better to understand that they don’t have traditional competitors, they only have a cooperative marketplace; they won’t have any exclusivity. So they would be wise to build their business model not to need it! If they have the right attitude, then a “$3 clone board” maker is a friend, who is also embracing open source. If there are issues with brand names and trademarks, those are often easy to fix with small tweaks to the sales wording that can be achieved in a friendly manner.

    3. Stop your complaining and take a Blue Pill ;-) The Blue Pill clone from RobotDyn with its STM32F103C8T6L is pretty good example:

      Here’s the Arduino compatible version:

      The schematic:

      And the pinout diagram:

      Note: Unlike many Blue Pill clone boards from China, the RobotDyn board has the correct 1.5K pullup resistor on D+.

      The RobotDyn board is actually black not blue, but it isn’t a so-called Black Pill board; that’s different (but very close). See here for more on this confusion:

      Here are the Blue Pill features:

      32-Bit STM32F103 ARM Cortex M3
      72 MHz system clock
      64 KB/128 KB Flash (128 KB flash on C8 version)
      20 KB RAM
      Reset button
      On-board LED
      On-board 32 kHz Real Time Clock (RTC) crystal
      Jumper links on Boot0 and Boot1
      Micro USB connector for power and data
      ST-Link header on the top of the board.

      There are plenty of other Blu Pill clones and other STM32F103 boards out there, not just the one from RobotDyn. See here:

      It’s just that I’ve had good luck with RobotDyn’s boards plus they sell on Amazon with “free” Prime two day U.S. shipping. RobotDyn’s boards with the Arduino bootloader preloaded cost $3.49 each if you buy factory direct from China (link above), or $8.99 on Amazon with Prime 2-day U.S. shipping:

      RobotDyn’s boards come with the Arduino bootloader or stock STM bootloader pre-loaded. Obviously, pick the Arduino bootloader option if you plan on using the Arduino IDE. The boards with the preloaded Arduino compatible bootloader are a little more expensive due to the labor involved with burning the bootloader. The boards also come with the headers loose or or presoldered, it’s your choice.

      If you are still latched onto the Arduino IDE nipple, the STM32duino core supports the STM32F103C8T6L chip pretty well. Installing blue pill support in the Arduino IDE is fairly simple. Follow the instructions here:

      The STM32F103 is a 3.3V part. As for 5V vs. 3,3V, a series 10K current limit resistor solves the input compatibility issue (remember there are built-in stacked protection diodes for the voltage). The output is compatible in most of the cases just as it is. If it isn’t, drop-in a transistor and flip your logic.

      So that’s it. Just because Arduino has been wasting time fighting with itself and building boards nobody wants, that doesn’t mean you have to be stuck using an Uno for all your projects. Try an STM32F103 ARM Cortex M3 instead. And don’t forget the little ESP8266 is all grown up now too (the ESP32 is getting there).

      Have Fun, David

      1. Counts agree more with ST! Having native USB (albeit not high speed) on such a cheap chip is really nice. Using CubeMX to configure the peripherals is a little annoying, but it generally works and thankfully isn’t web-based like Atmel’s Start (ugh).

        I love where the ESP32 is going, but I’m still bummed it doesn’t have native USB.

    4. > “For instance, an Arduino is not fast enough to run an ultrasonic motor because the ports cannot be flipped fast enough.”

      Why on earth would you run an ultrasonic motor by bitbanging it? That’s a complete waste of a microcontroller.

      1. What if a dedicated motor controller is just a programmed microcontroller with different silkscreening, is it still different?

        Everything is analog under the hood, so everything is “bitbanged.” It might only be a useful word when the application is supposed to do something else too; if the application host uC is also doing the motor control, then it makes sense to call it “bitbanging.” But if it only does that, and you have a second uC as the host controller, then the motor controller isn’t “bitbanged” at all, it is a dedicated controller.

        Even an op-amp is “bitbanged” other than the fact it is a dedicated device. That’s why the industry worked so hard to get engineers to stop calling some of the op-amps “choppers;” it sounded pejorative, but they’re better in every way. Bitbanging is the same; if people viewed it as a neutral word, nobody would even use it. And yet, it is the only game in town, so how is it a negative?

        I see this with USB interfaces all the time; if it is an AVR85-series with custom silk screening it is “dedicated,” and the same chip with the same software with the generic silkscreening is “bitbanged.” But the existence, or lack, of tradeoffs is only based on if you’re trying to share that micro with other code.

        The potential for waste seems to be in the other direction; motor controllers are often a uC core packaged with beefy mosfets and isolation, so it might be a waste of a motor controller if the motor is so small you could just drive it from a uC.

    5. Do you want it made with only through-hole components too, because SMD is scary?

      Most devices in the world are 3.3V logic today. (Or 1.8V, 1.2V etc).
      Connecting things together with 3.3V logic works fine for everybody.
      The microcontrollers, sensors, peripherals and radios people will typically want to use are 3.3V devices.
      Do you really want to have a 5V microcontroller and translate all the logic levels? It’s obsolete.

      (If your application needs differential CAN or something for long-distance signal integrity, or 24V logic for industrial process control, for example – then that’s just using the right tool for the right job. Logic level TTL isn’t the right tool for every job.)

      1. I don’t think people avoid SMD because it is scary, but because it requires a lot more tooling and isn’t breadboard-friendly.

        IME people also like to fib about how often they get solder bridges when hand-soldering SMD. They typically feel some macho social pressure to brag about how good their soldering technique is, so when they adopt a process with a lot more problems and reworks, they don’t admit that part. But it is smaller, and your fingers are the same size, and your eyes are the same resolution, so of course SMD hand-soldering has more problems than through-hole. Guaranteed; and that is still true when you conclude that SMD is better overall. And yet, there is a strong social pressure to claim that SMD is better in every way, even to the extent of conflating “still possible” and “exactly the same.”

        Why would people care if it is labeled “obsolete?” That’s just a word, you can also simply say that it is “still popular” and it is just as true. They just need to become more familiar with the 74LVC245 which is sold by most places that sell maker stuff, and they can shift levels with ease. Also it is good to have buffers on the workbench anyways, because things like the ESP8266 glitch pretty bad if you take any current off the outputs. The first time that happened to me I spent all day thinking I had a software problem!

    6. Personally, I’d like to see an Arduino-compatible replacement for the Uno/Nano with a newer replacement microcontroller for the ATmega328P, offering a similar number of pins, low cost, similar ADC/timer/PWM count, lower power and 3.3V logic levels, maybe more memory and resources.

      1. There are arduino zero boards in similar form factor. They are based on the SAMD21 which is what you are asking for. However, they are not popular enough to come at a small price, even though the controller is not that more expensive than the atmgea328.

      2. ATmega328 does fine at 3.3V. The built-in 8Mhz oscillator is calibrated at 3V, and is rated down to 1.8V.

        With an external oscillator it is rated up to 10Mhz at 2.7V. The datasheet doesn’t list 3.3V they just give a graph, but it appears that it would be rated up to ~12Mhz at 3.3V.

        In practice, people often have success at 3.3V even with a 20Mhz crystal. Just now I tried it at ~3V for giggles with what I already had breadboarded, running 2 PWMs, 2 channels of free-running ADC, and an OLED display that updates with the ADC. The display’s charge pump was bouncing VCC around a bit at that voltage, but everything runs fine. It was dipping down to ~2.7V lol. And that is on a breadboard with untrimmed leads on the through-hole crystal. (I did at least trim the leads on the caps)

    7. Just write your own GPIO high_or_low function with assembly, you will probably get by with 3 instructions which is enough for your motor control with a clock of 8MHz or above. You just have to set a GPIOXn register with simple assembly.

  2. A few comments. The vidor is not supported yet… the MKR1000 and MKR1010 are (the vidor is MKR 4000) maybe it wasn’t working because the Cloud recognises only those two boards. We will add a message saying that you have an unsupported board plugged in.
    With the products we support it’s very seamless and in some cases you only need 2 lines of code to get a working device.
    It’s important that we build it from scratch to be secure, a lot of options out there leave this as an “exercise left for the reader”

    PS: Hackaday it’s time to grow up, you don’t have to start every article about Arduino with a variation of “Love it or hate it, for many people embedded systems means Arduino. ” We get it, let’s move on , thanks , love :)

    1. We just have to get it out ahead of the comments, because they will come regardless of how we say it or don’t say it. As for the MKR4000, I didn’t realize it wouldn’t target that, although I think it is something more odd with my setup. It has worked in the past, but something has changed and the MKR4000 isn’t even enumerating. Now why your software sees an Inside Out Edgeport/8 with nothing connected to it as multiple Arduinos, I have no theory for. And it hasn’t done that in the past.

      1. Al, I’ve been reading your articles since the times of Dr Dobbs, you don’t need to get anything out, you’re an authority :)

        Sometimes the SAMD21 gets stuck, double clicking on the reset button tends to bring it back to life. in case that doesn’t work contact me and we’ll figure it out

    2. Maybe, and for those experienced one’s toolkit is filled with a full range of embedded systems. For those “loving or leaving” hopefully it’s for all the reasons one makes an engineering decision.

  3. Is this because people don’t buy desktop or laptops any more and do most things on a phone? Can you imagine coding with your thumbs on a tiny screen? Ok, one could use a tablet too but why the browser?

    Sounds more like someone is looking for a use for a cloud backend and they want to join the embedded space. ie have a nail and looking for a hammer.

    There’s already Blockly, Snap4Arduino, S4A and others which cover beginner programming and control of the Arduino. They’ll do sensors and it’s not too tough to connect to LoRaWAN, etc.

    1. I used to use ArduinoDroid to develop Arduino sketches using my phone.

      I never really considered doing that by touch on the tiny screen though. I used that with my Motorola Lapdock and it was great! Unfortunately the Lapdock and support for it were discontinued. I used mine until the phone was just too far behind to run current apps well and finally had to give it up.

      Now Samsung has their Dex. It’s basically the same idea, dock your phone. They don’t have a laptop-like dock though. They expect you to connect a monitor/keyboard/mouse separately like a desktop. Also they only support widescreen modes. Try to plug into a non-widescreen monitor (such as an old Motorola lapdock) and you get an image that fills only about half the vertical space and squished, unreadable text.

      I’ve read that HP’s Windows phones had a lapdock that might be compatible with Dex. (Who knew? I never heard of that before it was already discontinued.) That is another already-discontinued solution though and still costs more than I want to spend on an accessory that might not even work once I am forced to replace THIS phone.

      Anyway.. developing from a phone CAN work and if the manufacturers ever get their heads out of their asses and implement docking right I can definitely see it becoming a common thing.

      I don’t know why one would want to do it from a browser though….

  4. Respectfully, it’s digitalWrite is an important language feature for compatibility and readability.
    By your numbers, the port still likely isn’t fast enough to produce a usable synthetic sine wave at 20kHz. I should think that 4 bits or 8x levels of PWM to create it in the positive domain before pulling it down.

    As far as language, the additions I want would be a 24-bit integer/long, and a 1-bit automatically bit-packed data type, would be useful.

  5. Given the 8266 and esp32, is anyone still using the ardunio boards? Software library, yes, but the boards?
    And even the software (which can be a bit bloaty) is under threat as the esp32 underlying access isn’t that hard to use – or even mix into the code..

    1. We sell millions of units every year so yes people are using it. a lot of the ESP8266 parts are great if your playing around at home but if your trying to build a secure product which works in more professional environment it’s a different story. Everything that is simpler to understand for regular human beings gets described as “bloaty” by some engineers.. The fact is that you can now port code between MANY different processors with minimal modifications thanks to Arduino.

  6. The comments seem to have drifted away from the core subject – cloud based Arduino services. While cloud based services make it easy for beginners, they are usually there to give the vendor control and to vacuum up the users data. This will usually result in more long term cost, less privacy, less security, more danger of being hacked and less resilient system that require an Internet connection to work. I would only recommend cloud based IOT systems for quick prototyping. I believe it is foolish to use such cloud based systems for any “live” IOT system. Increasingly, there is software available that can provide the same sort of services as the cloud locally, and without the intervention of third parties in the data stream. Examples of these are the Snips voice command system, RPi based image recognition software and various cloud-free home automation software.

    1. I agree – but would even go futher and say that it assume that eveyone is always connected to the internet – not true – and that you are not being charged for data -often not true – and also that the other end will always be there – which is unlikely over the longer term. ie I have software that I paid for, and reinstall on a new computer, but can’t acitvate as the ‘mothership’ on the interent no longer exists… Do we want to do that with our embedded hardware as well??

    2. hackadave we are not in the business of vacuuming personal data. If you’re trying to build a secure scalable system you can’t always solve the problem with a RPi placed somewhere.. We build our system on open standards with a robust infrastructure which uses modern components like kubernetes etc so that it can securely withstand heavy loads. If somebody gets to the point they want their own private version of the cloud we provide white label versions and even “on-prem” upon request (this is the work that we’re doing with some customers)

      1. I am happy to hear that, but most cloud based IOT services seem to do so, hence my suspicions. You may wish to emphasize that your approach can be implemented completely locally and that you don’t and won’t harvest data.

  7. If “security” is what matters to you, then don’t connect everything to the internet if you don’t have to!

    Are the users who are consuming data from sensors or devices, or controlling those devices, in the same building 20 metres away from the devices, on the same LAN? If so, and if you want security, then don’t punch every device out onto the internet and into “cloud services” and then back in from the internet!

    If you want security, then keep it all in-house in the local area network.
    As a bonus – it’s faster, more reliable, you won’t care if the internet link goes down, and less cost.

    Every man and his dog is trying to monetise “IoT cloud services”, it’s nothing new.

    1. Monetizing IOT services is not a bad thing to do, assuming value is being added. Doing so by inserting an unnecessary cloud service into the communications to, essentially, spy on users is a very bad thing to do. I am encouraged by the increased awareness of the problem and the new local/cloud-free IOT services that are now becoming available. Hopefully I can stop having to “roll my own” and leverage open systems while contributing to them.

  8. I wouldn’t use any cloud based IOT that isn’t also configurable in a self-hosted manner.

    It would be a bummer if i had dozens of these things around my house performing different things in hard to access places (after all, cloud code push is terribly useful for things that you tuck away somewhere hardly reachable), and suddenly one day you can’t turn your lights on and off any more because you were 2 days late on your internet payment. Or worse, because for some perfectly legit financial reason, the platform went the way of the dodo.

    I am ok with cloud IOT in the cloud, IF it can be migrated to something self-hosted.

    But maybe it is my own bias towards home automation that prevents me from seeing how this wouldnt be such a bad idea with different types of projects.

    Hell, I would do home automation only on an isolated LAN with self-hosted in-house services available on it.

    1. Well put. Local hosting is the way to go, with the internet just being used as “plumbing” to allow secure remote access. I like to use self-signed client side certificates with my own app to access my home control system remotely using secured MQTT. Self-signed certificates put me in full control of who can access my system and I can have my own revocation lists to quickly handle lost devices etc. Authority signed certificates provide few, if any, additional benefit for this use case and can actually be less secure, depending on how they are used. Unfortunately, it is getting harder and harder to use self-signed certificates on Android.

      1. Did the Arduino people say they are open sourcing the cloud server software so you can run it locally too? If not then they need to be asked why not and if it is because of proprietary software or licensing they run away quickly.

  9. I’ve used ESP32 bought on aliexpress. Had trouble connecting to, so used my own website. I created a text file that updates on click of a button. The ESP32 looks at text file online every 1 second and takes action based on the value it sees.
    No need to use complicated codes if you want to do a simple project like mine – move servo to switch on/off the ac switch.

  10. I’ve been paying the $0.99 / mo fee to access their cloud arduino editor, I think it’s pretty awesome. I love being able to edit and run code on any internet connected arduino devices from my chromebook or whatever straight from the cloud. This IoT functionality is just the next logical step in adding to that. I can’t wait to see support grow for more boards.

    1. Monthly subscription fees are seductive but are becoming increasingly a problem. We are moving to a world where a tiny number of people own everything and everyone else “owes their soul to the company store” paying rent for everything at a price the seller sets. A subscription service to allow quick prototyping is fine, as are fees to access resources that would otherwise be too expensive to purchase, but multiple long term subscriptions will gradually suck us all dry. A dollar month may seem like peanuts but when everything has a monthly fee it will start to add up. Service suppliers can put prices up at any time as there is no competition because you are locked in. The time could come when most people subscribe to about everything. Then we may have a new age of aristocrats owning everything, with everyone else being serfs owning nothing.

      Examples of this have been reported on Hackaday many times. For example, John Deere tractors that farmers can’t service themselves. It is important to be able to buy and truly own things and that means being able to service and hack them if you want.

      While this may be an extreme scenario and may never happen, it is one of my motives for trying to promote open cloud-free IOT where your smart home is under your control with no dependencies on external services to keep it running. Would you want your home heating system to suddenly stop working because the IOT service has gone out of business or because a vendor mistakenly thought you were late in paying your, ever increasing, monthly service fee? I believe it is worth the effort to have you systems fully under your own control. What is more, this is as important for businesses as for individuals.

  11. Cloud service without non-cloud equivalent+Physical device= garbage. Often literally.

    Arduino works perfectly fine. The IDE is used by everyone from grade schoolers to some professionals. The IDE itself sucks, but who writes big programs in it? You put your heavy lifting in a library that your write with a real editor.

    Cloud stuff isn’t really easier to use most of the time. I like Gmail and other stuff that’s already all about the web, but an IDE? No thanks.

Leave a Reply
