But now I see products like MKR, Portenta, even proper industrial DIN-mounted controllers that look quite capable. Those in the know, what's the current landscape, what ecosystem is worth buying into?
But now I see products like MKR, Portenta, even proper industrial DIN-mounted controllers that look quite capable. Those in the know, what's the current landscape, what ecosystem is worth buying into?
IMO: No.
Arduino, as a company, wants that to change, but I have yet to see anyone take them seriously. Most of the "industrial" Arduino products are unsuitable for purpose; they lack critical features which would be required for those applications like protected inputs, wide range power input, or field bus interfaces.
Why would you use a Raspberry when an Arduino will do everything required? If you don't need a full Linux OS, then why waste it on something that just doesn't need it?
I think Arduino boards are best suited for what they were originally designed for: education. While that covers some of the hobbiest market, it doesn't cover all hobbiests.
Depending on all of the things you listed just sounds like lazy to me. /s
I actually meant the Pis are easier to program since development can be self-hosted. Uploading a program to a microcontroller after each build is a royal pain in the bottom. Debugging (with a debugger) is also annoying, both from the perspective of setting up the software and having the necessary hardware.
With respect to laziness, I hold two points of view. I definitely agree the inefficient of resources should be viewed in a negative way. This is especially true when a solution goes from bytes or kilobytes to megabytes or gigabytes. More critically, I believe that laziness is a negative when the inefficiencies lead to less robust code. On the other hand, one of the chief benefits of computers is to reduce the burden placed upon people. Setting up a toolchain for microcontrollers can be nearly as complex as developing code for the microcontroller itself. That strikes me as wrong.
Aside: I periodically write software for microcontrollers for fun. One of my favourite exercises involves prototyping with high level code, such as using Arduino libraries, and rewriting it using increasingly low level code. It is how I approach learning a microcontroller, but I am also extremely conscious of both volatile and non-volatile memory usage. I am definitely sympathetic with your notion of avoiding laziness.
On the other hand, we should also realize that microcontrollers are often used because we are "lazy". There are many cases where microcontrollers are used even when a basic circuit can accomplish the same task since it is cheaper to throw an absurd number of transistors at something than it is to pursue more efficient solutions. (Labour costs add to project costs, along with the number/type of components, board size, the relative ease of iterating code verses iterating on board revisions, etc..) There are reasons beyond the challenge of generating the most efficient solution possible to consider because the efficiency of development is also a factor. As someone who pursues software and hardware development as a hobby, I often bemoan the state of affairs of commercial products. Yet I also realize that commercial development, or even the motivations of other hobbiests, leads to different perspectives.
The advantage of the platform is speed of development, not engineering good practice or mass manufacturing.