Earlier quoted context omitted.
Most of Arduino's value proposition is easy programmability by non-professionals, with a vast library of examples. Cheap and powerful STM32 boards have been around for years about as long as arduino, supported by a number of free toolchains. But the care and feeding of said toolchains and libraries requires a lot more technical knowledge than Arduino's ecosystem.
I agree with this statement, and really praise what Arduino have done in this space (I started on one years ago). However, I think if you really want to work with embedded systems, you have to understand the technical details. Understanding how communication protocols are supposed to work, knowing how to read a data sheet, and using those skills to set registers on an IC directly should be in everyone's toolbox. Othe…
Arduino Goes Pro at CES 2020
181–190 of 201 posts
Re: Arduino Goes Pro at CES 2020
#182I have pretty much given up on Arduino. They had me almost interested again when they announced the Pro IDE, but several months later they still haven't put the source code on Github: https://github.com/arduino/arduino-pro-ide I am not interested in the Electron-based IDE, but they seem to be using the Clang language server, which is perfect for integrating with Emacs. I have been sitting here for months ready to hac…
Re: Arduino Goes Pro at CES 2020
#183Earlier quoted context omitted.
I would have thought that the real competition was the ESP32. It stays in the microcontroller space (no OS to manage, should stay lower power, etc.), dirt cheap, ships with wifi+bluetooth.
I'm doing a hardware selection and after much consideration, I'm picking a 3$ esp8266. I don't see any purpose of Arduino outside education for kids. Makers should use cheaper products/knockoffs at worse.
Re: Arduino Goes Pro at CES 2020
#184I have pretty much given up on Arduino. They had me almost interested again when they announced the Pro IDE, but several months later they still haven't put the source code on Github: https://github.com/arduino/arduino-pro-ide I am not interested in the Electron-based IDE, but they seem to be using the Clang language server, which is perfect for integrating with Emacs. I have been sitting here for months ready to hac…
You have lots of microcontroller projects you want to do, but can't because you can't get up to date source on the arduino IDE? wat? Just use a different editor.
Re: Arduino Goes Pro at CES 2020
#185In my opinion Arduino and "pro" does not belong in the same sentence. I work as an embedded software engineer who's tasked with ripping all the terrible arduino code out of a fairly large codebase where I work and the arduino core libraries are the lowest quality code I've ever had the displeasure of working with. It's full of awful decisions everywhere in the arduino core libraries such as defining min and max macro…
If they could have a kid...
Arduino:
- crappy software environment, and no networking. (designed by hardware guys?)
+ wonderful hardware.
+ The pins are female and don't accidentally short on things.
+ There are a variety of devices available with the number of pins you need.
+ Powering the device is simple and straightforward.
+ Driving different types of hardware is easy.
Raspberry Pi:
- terrible hardware. (designed by software guys?)
- hard to power. Must be 5v, power supply must be carefully chosen, lots of limits.
- pins are male. who does this?
- hardware arbitrarily (capricously?) changed from release to relase (moved LEDs, etc..)
- hard to drive different hardware
+ software is wonderful.
+ you can run a variety of operating systems.
+ you can run really high level software (python, GUI, machine learning, compiler, web server, ... so much more)
+ networking (all the kinds)
Re: Arduino Goes Pro at CES 2020
#186In my opinion Arduino and "pro" does not belong in the same sentence. I work as an embedded software engineer who's tasked with ripping all the terrible arduino code out of a fairly large codebase where I work and the arduino core libraries are the lowest quality code I've ever had the displeasure of working with. It's full of awful decisions everywhere in the arduino core libraries such as defining min and max macro…
For amateurs, this is all fine. You don't care if the code is good, because you're just making a $60 555 timer. And you want your sketch to work when Adafruit sends you a new MCU in your monthly hacking box or whatever. So Arduino does very well there, because that's what users want.
Over in the real world, you pick a board and use that for the lifetime of your project. Going through 8 abstraction layers so you can run your code developed against an ARM M4 on an ATMEGA32U4 is not something anyone cares about.
What people do care about is developer productivity, and the Arudino toolchain is just terrible. I'm not talking about the IDE, which is what it is, but the actual mechanics of building and flashing devices. I have a Windows workstation, and the % chance of being able to successfully flash a sketch is about 50%. Sometimes the device switches ports and this confuses the IDE greatly. Sometimes the device just doesn't show up properly. Maybe this is all Windows' fault, I don't know, but I have the exact same problems on Linux. Meanwhile, the same board in UF2 mode works perfectly every time. I can edit Python code against a file sitting on the device, or run "tinygo flash" with a 100% success rate. What am I even getting from Arduino if I can't edit or try my code efficiently? I don't know where it all went wrong, but the arduino-cli manages to be just as flaky, so I think it's just systemic. You glue together an abstraction layer and 1000 flaky vendor-provided tools... and the result is flaky.
I think hobbyists tolerate it because they are told that hardware is "hard" (it's right there in the name), so they are perfectly happy to chant magic incantations because they don't know right from wrong. But if you've written software before, you know this is wrong. All the toolchain needs to do is translate C++ to machine code, which I know from writing C++ that can all work quite well. Then the toolchain needs to copy that machine code into Flash memory on the device, and tell the MCU to restart. I know this works quite well too because I've used UF2 programmers and it works every time. Finally, you need to make a virtual serial port to support debugging. My tinygo programs successfully send serial output to my computer 100% of the time. Arduino IDE? 50% on a very lucky day. Mostly I click around hopelessly, crawl around on the floor trying to plug and replug USB devices, press the reset button on the MCU 700 times... and then 30 minutes later I can see my debugging output. What was I working on again? I forget.
Anyway, I suppose that none of this is unique to Arduino. I've used Atmel Studio, I've used Nordic's NRF52 dev kit, I've used avr-gcc and teensy-cli... all are bad in their own way, but they do consistently work and don't get in my way. Arduino consistently gets in my way by not doing the basics right consistently. All so my code can run on devices that I don't have. It's not worth it. I am not sure how this appeals to pros. They should hire some actual software engineers and check back in in a year. I'd be happy to try Arduino again.
Re: Arduino Goes Pro at CES 2020
#187In my opinion Arduino and "pro" does not belong in the same sentence. I work as an embedded software engineer who's tasked with ripping all the terrible arduino code out of a fairly large codebase where I work and the arduino core libraries are the lowest quality code I've ever had the displeasure of working with. It's full of awful decisions everywhere in the arduino core libraries such as defining min and max macro…
I am new to this space, and have only heard of Rasberry Pi, MicroPython and Arduino.
Re: Arduino Goes Pro at CES 2020
#188Earlier quoted context omitted.
Most of Arduino's value proposition is easy programmability by non-professionals, with a vast library of examples. Cheap and powerful STM32 boards have been around for years about as long as arduino, supported by a number of free toolchains. But the care and feeding of said toolchains and libraries requires a lot more technical knowledge than Arduino's ecosystem.
I agree with this statement, and really praise what Arduino have done in this space (I started on one years ago). However, I think if you really want to work with embedded systems, you have to understand the technical details. Understanding how communication protocols are supposed to work, knowing how to read a data sheet, and using those skills to set registers on an IC directly should be in everyone's toolbox. Othe…
I was going to pick a few cheap books on Arduino as I thought that was the way to go.
I am a hobbyist, but I want to try to build some viable products.
Re: Arduino Goes Pro at CES 2020
#189I have pretty much given up on Arduino. They had me almost interested again when they announced the Pro IDE, but several months later they still haven't put the source code on Github: https://github.com/arduino/arduino-pro-ide I am not interested in the Electron-based IDE, but they seem to be using the Clang language server, which is perfect for integrating with Emacs. I have been sitting here for months ready to hac…
STM HAL isn't exactly great either, but Arduino is best placed IMO as entry level novice stuff, or blasting out something working in five minutes.
Re: Arduino Goes Pro at CES 2020
#190Not trying to troll - just don't know. Why would anybody use an Arduino versus a five dollar Raspberry Pi Zero?