Earlier quoted context omitted.
Its all readily googlable, certainly. My point was that its poor practice when writing a piece aimed at introducing people to a subject; if they have to go to google every few lines to see what something means, that distracts attention from what the article is actually trying to convey. For that matter, they could just as easily google for a different article.
Your confusion stems from what kind of beginner the author means. You read it as "total beginner to anything vaguely related to microcontroller programmer". I assume the authors means it as "has programmed stuff with microcontrollers before but never made a hardware design from scratch yet". After all, picking a microcontroller is a design/architecture choice more than a programming choice.
How to pick a microcontroller
61–70 of 100 posts
Re: How to pick a microcontroller
#62Earlier quoted context omitted.
I would say that if you are looking at getting started with embedded electronics from an electrical engineering/professional stand pint and looking to put things into production then don't start with Arduino and certainly don't view an RPi as a viable embedded solution. A PicKit 2 and a 16F series Microchip microcontroller would be a much better starting point just to get up and running without feeling overwhelmed.
I agree with not starting with the RPi (to avoid the complexities of the Linux kernel), but I started with the PIC and SX series (before Arduino was a thing) and wouldn't recommend it anymore. If you want to learn an assembly language and twiddle registers then maybe you'd like the PIC, but I don't think it's more "professional" - virtually everyone uses C if at all possible at this point, and the AVR (or bigger PICs…
Re: How to pick a microcontroller
#63Earlier quoted context omitted.
One of the things I like about this choice is one does not need an IDE, at least not with the 2.0. One can do non-graphical (systems) programming on an underpowered computer with no graphics. I statically compile the loader. On BSD at least, no 3rd party libs are needed. Then all I need is avr-gcc. I can do everything from the command line. No closed source tools. No requisite graphics layer (e.g., Windows OS). No la…
The AVR-based Arduinos (Really, I think most AVR-based boards, unless it has some really strange proprietary way of flashing). The MSP430-based TI Launchpads. The various ESP-something WLAN boards have open toolchains and programming over serial as well as far as I know.
I got it to the point of booting (very slowly) up to the command line prompt and processing basic commands, but unfortunately I never figured out how to make the screen work, so that's where the project stalled. The hardware's since been broken up and repurposed.
All in C and hand-written assembly tied together with a makefile, using tools that are in Debian. The standard flash tool (also in Debian) is really easy to use and even supports JTAG debugging over USB. (Also the MSP430 has a lovely assembly instruction set if you want to work with that sort of thing.)
Can't comment about AVR or ESP; never used them.
Re: How to pick a microcontroller
#64Generally solid advice (although its more like "how to pick a micro-controller for your design you're trying to keep as cheap as possible.") and one of the areas where I quibble is the use of "generator" tools to generate I/O code. The STCube application is easy to use for beginners but easily uses twice as much flash as actual user written code. That isn't a problem if your app is small and the flash is large but pu…
I don't think it uses twice as much flash per se, but it definitely does use 'more' than hand-rolling your own code.
But ST-Cube has also gotten MUCH better over the last few years and no longer generates a lot of unnecessary, yet compiled, code. The version I first used in 2012ish was pretty weak.
I try to approach this from the direction of what gets me up and running fastest (and what has the lowest barrier to entry for my team - including communication), and then I re-factor out the guts afterwards if needed.
Practically speaking, my workflow is that I have a set of heavily unit tested and mocked out middleware and device drivers, that are portable to any ARM... So, all I need are the low-level drivers which interact with the peripherals.
I can generate them with ST-Cube, hook them into my middleware/drivers through interfaces (C++) or linking (C).
From here, I run my automated integration tests to make sure everything works on my hardware - and once that's done, I evaluate my flash usage.
If needed, I gut the generated code in favour of something hand-rolled, while being able to make sure everything is still 'correct'.
Also, contextually, I almost never use anything less than 32kB flash - so I don't often need to hyper-optimize.
Re: How to pick a microcontroller
#65Related on EE.stackexchange: https://electronics.stackexchange.com/questions/264794/how-d... I agree with OP's "grief factor" - difficult to estimate but really critical to your project timeline. I'm also going to advocate my "pick something " suggestion; the first one of anything you buy in an unfamiliar product area will always be wrong. This applies to computers, cars, cameras, houses, everything; when you're ente…
I agree with "pick something" with the addendum of "pick something that someone experienced you know/trust recommended after hearing how little you know about it".
Re: How to pick a microcontroller
#66Parallax Propeller
As someone who has used the parallax propeller, I feel like you a doing a bit of a disservice to not include some reasons for or against it. Cons: - Comparatively high price point at $8 - The custom 8-core architecture is more difficult to make full use of - No other chips in the family (can't flexibly move up or down in flash size / IO / core count) - No interrupts - Uncertain availability, and may be nearing end-of…
I also found this article by the founder informative: http://www.parallax.com/propeller/qna/Default.htm#HomeTopics...
Re: How to pick a microcontroller
#67Related on EE.stackexchange: https://electronics.stackexchange.com/questions/264794/how-d... I agree with OP's "grief factor" - difficult to estimate but really critical to your project timeline. I'm also going to advocate my "pick something " suggestion; the first one of anything you buy in an unfamiliar product area will always be wrong. This applies to computers, cars, cameras, houses, everything; when you're ente…
Built in wifi, Linux, plus USB and GPIO, means it's perfect for the device end of an hobbiest-level IoT project.
Re: How to pick a microcontroller
#68Parallax Propeller
As someone who has used the parallax propeller, I feel like you a doing a bit of a disservice to not include some reasons for or against it. Cons: - Comparatively high price point at $8 - The custom 8-core architecture is more difficult to make full use of - No other chips in the family (can't flexibly move up or down in flash size / IO / core count) - No interrupts - Uncertain availability, and may be nearing end-of…
Other advantages to Propeller in addition to what you say:
- DIP form factor, easy to breadboard
- Very little supporting circuity needed. Very easy to set up.
- Enthusiastic intimate helpful community on the forum
- GCC available (not an advantage over Arduino but it exists you don't have to use SPIN)
- Pretty high performance compared to Arduino -- 80mhz on 8 cores [tho that doesn't tell the whole story since memory accesses to the shared memory take a lot of cycles)
Other disadvantages: - Small memory space. 32k of slow shared memory space, only 2k per cog (core)
- New Propeller 2 is taking years to come out and the old Prop 1 is really starting to show its ageRe: How to pick a microcontroller
#69A quicker guide for real beginners: Do you want to understand in detail what's happening? => Arduino UNO Is the UNO too small/slow? => Arduino Due Still too small or you really just want a small computer running Linux but with GPIO-Pins? => Raspberry PI
I disagree. Everything you listed a) can't be used for products, b) doesn't let you make progress beyond "oh look, I lit up an LED!". Sure, if you never programmed a small device, by all means, start with an Arduino. But after you do light up that LED, please learn more. Go bare metal, learn about interrupts, state machines, entering sleep states -- without those things you'll stay forever in the toy world. In the re…
Re: How to pick a microcontroller
#70Related on EE.stackexchange: https://electronics.stackexchange.com/questions/264794/how-d... I agree with OP's "grief factor" - difficult to estimate but really critical to your project timeline. I'm also going to advocate my "pick something " suggestion; the first one of anything you buy in an unfamiliar product area will always be wrong. This applies to computers, cars, cameras, houses, everything; when you're ente…
If we're recommending pet favorites, the Raspberry Pi Zero Wireless, despite being the newest, is now my recommended "microcontroller". There are a few tweaks needed on top of the base Rasbian distro to make it appropriate for use as a microcontroller, but with a base price of $10, it's cheaper, more powerful, and has accessories (ie - anything USB with open source Linux drivers), than some Arduinos. Built in wifi, L…
You will inevitably need adc functionality, possibly real time clock and battery usage.
Most servos don't need wifi or Ethernet. Instead, you will usually want to be able to read a voltage and then time how long it takes for that to change.
15 cent quartz crystal and built in adcs. Bitbanging pwm from raspberry pi is also horribly inaccurate... You need a ton of shields to just run a motor with an encoder on it... While arduino can do all that around 10mA