Embedded platforms for beginners?

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From English to

Threaded View
    I want to learn Embedded systems, but don't know how to start it,
do you recommend any platform to start?

Re: Embedded platforms for beginners?

to:
Quoted text here. Click to load it

mbed.org.

They have cheap hardware, an online IDE (bleah), tutorials, demo, etc.
IMHO it's better if you choose the hardware, and then download the official
 IDE from the producer.

Bye Jack

Re: Embedded platforms for beginners?
Elof Huang wrote on 9/1/2017 2:07 AM:
Quoted text here. Click to load it

"Embedded systems" is a pretty general term.  I would recommend any of the  
many ARM eval boards.  TI has a few that are pretty cheap with free tools.  
Their MSP430 boards are pretty interesting as well.

Do you have any particular goals?

--  

Rick C

Viewed the eclipse at Wintercrest Farms,
We've slightly trimmed the long signature. Click to see the full one.
Re: Embedded platforms for beginners?
On 01/09/17 16:07, Elof Huang wrote:
Quoted text here. Click to load it

If you're really a beginner, there is really nothing better than
the Arduino system. So much code, blogs, forums, etc, no matter
what you want to do, someone will have done it...
... mostly badly, but they will have done it, and it'll give you
time to learn how to do better.

I suggested the following shopping list for my son (the only one
why didn't major in computer programing!) to start just recently:

As discussed, the best tutorial ecosystem for learning this stuff
is Arduino, and the easiest "getting started" because of the huge
number of projects you can just copy from. The C language is close
to the machine, so you'll learn things that you can apply to other
CPU types, not just the AVR, without hiding what's really going on.
The downside is that before you go too far you should read an
introductory book on C. If you can borrow a not-ancient version
of this it'd be good:
<https://en.wikipedia.org/wiki/The_C_Programming_Language

I tried to find everything from  the same AliExpress store to make
the ordering easier. This stuff runs off USB or a power pack. I
don't think you should buy Chinese power packs, they are often
unsafe. Start with just USB power.

The Arduino I started with is this "Uno" (the name refers to the
CPU type and connection layout). Get two or three. You'll need a
USB cable, which is included in the second link here (from the
same store) (one of those and one or two of the others, unless
you already have the right cable):

<https://www.aliexpress.com/item/Free-shipping-UNO-R3-MEGA328P-with-usb-cable-for-Arduino-Compatible-Dropshipping/32241074510.html
<https://www.aliexpress.com/store/product/UNO-R3-MEGA328P-new-and-original-ATMEGA16U2-Good-Quality-USB-Cable/912692_1442349460.html

To wire up projects in a similar way to many you'll see online,
get a couple of each proto-board and jumper wires.

<https://www.aliexpress.com/store/product/Free-Shipping-Quality-400-point-mini-bread-board-breadboard-8-5CM-x-5-5CM-400-holes/912692_32325177584.html
<https://www.aliexpress.com/store/product/Free-Shipping-male-breadboard-cable-Breadboard-Wires-male-to-male-2-54pitch-20cm-in-stock/912692_711782213.html

They make bigger ones too:

<https://www.aliexpress.com/store/product/MB102-Bread-plate-experiment-socket-plate-165-x-55-x-10-mm-MB-102-experiment-for/912692_1444529207.html

This board seems to provide a lot for very little money and no
soldering. It plugs directly on top of the UNO and gives you buttons,
lights, a numeric display, buzzer, infrared receiver (for a TV remote),
and a servo interface for controlling hobby servos:

<https://www.aliexpress.com/store/product/Multifunctional-expansion-board-kit-based-learning-for-arduino-UNO-r3-LENARDO-mega-2560-Shield/912692_1891771170.html

Clifford Heath.

Re: Embedded platforms for beginners?
Thank you for so much information, I have saved it


 >Clifford Heath ? 9/1/2017 7:49 PM ??:
Quoted text here. Click to load it

I manage to learn C, but I want to know which should I start, C or  
Embedded C?

Having checked Arduino site several times, its forum says it uses C++,
I don't know how to program in C while the libraries are not C.


 >Do you have any particular goals?

Still looking for it, but I am interested in making an open source  
hardware correspond to close source hardware like OBD.

Re: Embedded platforms for beginners?
On 02/09/17 13:57, Elof Huang wrote:
Quoted text here. Click to load it


C is C. Embedded C is a small set of mostly unnecessary extensions
to C, which in any case are not well-supported by tools. Ignore it.
The things you might eventually need (like fixed-point arithmetic)
can be handled in regular C through libraries, with no need of
language extensions.

Quoted text here. Click to load it

Although C++ is a fairly large set of (mostly) compatible extensions
to C, very little of the Arduino API uses the features. Arduino is
mostly C, with just a few C++ features used mostly to manage namespaces.

If you know C at all, you'll quickly get to grips with the C++ features
that are used in Arduino standard APIs and most projects.

Clifford Heath.

Re: Embedded platforms for beginners?
Clifford Heath ? 9/2/2017 4:25 PM ??:
Quoted text here. Click to load it


All I need to do is learning C, and do not need to worry about Embedded  
part and Arduino?

Re: Embedded platforms for beginners?
On 03/09/17 17:37, Elof Huang wrote:
Quoted text here. Click to load it

Arduino is a development platform and a set of C/C++ libraries to
talk to the hardware. If you use an Arduino device, you'll want to
start with the Arduino platform. You might move beyond it, but not
soon.

You don't need to worry about Embedded C. I've been writing embedded
C for over 20 years, and until you mentioned it, never even knew that
"Embedded C" existed.

Clifford Heath.

Re: Embedded platforms for beginners?
Elof Huang wrote on 9/3/2017 3:37 AM:
Quoted text here. Click to load it

Then use C tools on your computer or phone and play away!  Nothing is  
simpler (in terms of getting the tools up and running) and 90% of what you  
learn will be useful no matter what your target is.

I actually recommend that you learn Forth though.  It is *much* easier to  
ramp up with and runs on nearly any target.  MPE in Europe and Forth Inc in  
the US supply eval versions you can learn with and there are many open  
source versions.  I used Win32Forth for a commercially used test fixture  
which has made me a lot of money for very little hassle.

--  

Rick C

Viewed the eclipse at Wintercrest Farms,
We've slightly trimmed the long signature. Click to see the full one.
Re: Embedded platforms for beginners?
On 09/01/2017 07:49 AM, Clifford Heath wrote:
Quoted text here. Click to load it

Unless you actually want to learn to build systems.  Arduino is sort of  
embedded-Python-lite, and (last time I looked) has horribly archaic  
development tools.  I've had source-level debugging since Microsoft 5.2  
for DOS, circa 1989.  Arduino?  Not last time I checked.

Quoted text here. Click to load it

If they have the time and the discipline.  The percentage of code I see  
that is stitched together from sample code and snippets of stackexchange  
is mind-boggling.  For instance, my son and I are in the midst of fixing  
one of those right now, re-doing a customer's instrument that the  
contract engineering firm botched. The customer paid us to demonstrate  
the concept and write the HDL but had the board and firmware done for  
cheap overseas.  (That was nearly three years ago--an expensive mistake.)

I'm a big fan of the LPCxpresso ecosystem myself.

Cheers

Phil Hobbs



--  
Dr Philip C D Hobbs
Principal Consultant
We've slightly trimmed the long signature. Click to see the full one.
Re: Embedded platforms for beginners?
On 03/09/17 01:41, Phil Hobbs wrote:
Quoted text here. Click to load it

C has so little resemblance to Python that I can't understand why
you said that. I know that you know both languages.

Quoted text here. Click to load it

I must agree with that. But is there another simple architecture
with such a broad supportive beginner community? I'm not counting
cases where you never need to see the machine, like RPi, the various
micro-Python or Node things; they're just desktop-lite.

Quoted text here. Click to load it

Yes, but there is some quite nice stuff too. It's worth being exposed
to both good and bad practices, and learning to distinguish them.

Quoted text here. Click to load it

That's pretty sad. However, the error was not because the contractor
chose Arduino, but because the customer chose that contractor.

Clifford Heath

Re: Embedded platforms for beginners?
On 09/02/2017 07:44 PM, Clifford Heath wrote:
Quoted text here. Click to load it

It's not the language I mean, it's the ethos of bolting stuff together  
from giant libraries made of code you couldn't write yourself.

Obviously there are limits--I'm not going to try reimplementing the C++  
standard library any time soon--but one of the good things about  
learning on embedded systems is that you're closer to the metal.  It's  
sort of like Montessori schools--the children learn that glass things  
break if you drop them, for instance.  Reality obtrudes into the process  
a bit more.

Quoted text here. Click to load it

Agreed.  Rubbing a puppy's nose in its mistakes, and all that. ;)

Quoted text here. Click to load it

It wasn't Arduino--they actually cloned the LPCxpresso board for the  
LPC1769.  That isn't a bad start at all except that it's massive  
overkill for the job.  But then they didn't use the 12-MHz crystal  
oscillator they specified--in fact they didn't set up the clock at all,  
so this nice 120 MHz MCU is running at its default 4 MHz on the internal  
RC oscillator.  We'll probably use an LPC1764 running at 96 MHz on the  
RC, which is way better than good enough.

(We, or at least I, don't do enough embedded stuff to get good at more  
than one or two MCU families.  I can find my way round ATmegas and NXP  
ARMs, but that's about it these days.  My son Simon does big-ass FPGAs  
and manly stuff like that, whereas I've done exactly one Verilog project  
on a CPLD.)

Cheers

Phil Hobbs


--  
Dr Philip C D Hobbs
Principal Consultant
We've slightly trimmed the long signature. Click to see the full one.
Re: Embedded platforms for beginners?
On 03/09/17 10:39, Phil Hobbs wrote:
Quoted text here. Click to load it

Ahh, I see. Well, that's not my practice. I detest many aspects
of the standard Arduino APIs, and have a plan to completely
rewrite them and all the other libraries I use, from the GPIO
pin level up. But for a newb, I think it's an acceptable
approach.

Quoted text here. Click to load it

I've always used as little as possible of the C++ stdlib,
even when writing million-line products. It encodes and
hides too many assumptions about what might be "good for me".
I'll be the judge of what is good for me, thanks all the same!
We used libraries we wrote ourselves, in almost all cases.

Quoted text here. Click to load it

Exactly. And for a beginner, it needs to be as little metal as
possible, consistent with running an HLL. STM32 is great, but
you couldn't expect a beginner to configure the clock chains,
for example. I don't imagine that many ARM chips are as simple
as an AVR (talking peripherals here; the instruction set is
the domain of the compiler). I really liked the MSP430, but
it doesn't have the support that AVR has. I tried to build an
Arduino-style platform for it once - big job though. I had
also tried the same thing earlier with the 68HC11 - got a
good toolchain going using gcc and my own debugger DL11, but
never packaged it for newbs. Insufficient RAM and no hardware
breakpoints were its downfall, but the MSP430 solved that.

Clifford Heath.

Re: Embedded platforms for beginners?
Quoted text here. Click to load it

Circuit Python?  https://www.adafruit.com/product/3501

I haven't tried it yet but it doesn't look that desktop-ish.

Re: Embedded platforms for beginners?
On 03/09/17 11:21, Paul Rubin wrote:
Quoted text here. Click to load it

* No need to allocate or manage memory (it's GC'd)
* API access to all port pins, audio, touch, etc
* No need to touch a peripheral device directly
* No need to initialize the chip or devices

In other words, it's fairly highly-managed.
That's a fine thing, but the skills are not easily
transferable to other MCUs.

Clifford Heath.

Re: Embedded platforms for beginners?
Clifford Heath wrote on 9/3/2017 12:26 AM:
Quoted text here. Click to load it

What is GC?


Quoted text here. Click to load it

I'm not sure that is really true.  There are many other skills that are  
learned in this process which *are* transferable.  Just learning to use the  
tools and debug a program is the most important skill of all I think.  The  
rest is just details that differ largely between targets.

--  

Rick C

Viewed the eclipse at Wintercrest Farms,
We've slightly trimmed the long signature. Click to see the full one.
Re: Embedded platforms for beginners?
On 03/09/17 16:14, rickman wrote:
Quoted text here. Click to load it

Garbage collection. Make new objects and just lose them,
the GC will pick them up. You never know when the GC will
run, and you need a *lot* more memory, so it's not a good
way to get the most out of an MCU.

Quoted text here. Click to load it

Yes. But all those skills can also be learned in a desktop environment.
If you actually want to learn embedded, the primary need is to learn
how to control hardware, especially to deal with fine-grained real-world
timing constraints (timer/capture hardware, etc).

Clifford Heath.

Re: Embedded platforms for beginners?
Clifford Heath wrote on 9/3/2017 3:52 AM:
Quoted text here. Click to load it

Why didn't you write garbage collection?  It's not like "GC'd" is a commonly  
used abbreviation.

--  

Rick C

Viewed the eclipse at Wintercrest Farms,
We've slightly trimmed the long signature. Click to see the full one.
Re: Embedded platforms for beginners?
Quoted text here. Click to load it

At least among language geeks, it's definitely commonly used.

Re: Embedded platforms for beginners?
Paul Rubin wrote on 9/4/2017 1:20 AM:
Quoted text here. Click to load it

Exactly, when you are talking to people who already know what you are  
talking about.

--  

Rick C

Viewed the eclipse at Wintercrest Farms,
We've slightly trimmed the long signature. Click to see the full one.

Site Timeline