SparkFun Forums 

Where electronics enthusiasts find answers.

Discussions on the software and hardware for Atmel's STK standard.
By newbiehere2012
#144869
Hello everybody.

As a newbie myself in electronics, I'm having a hard time grasping some concepts.

I know the Arduino is basically a circuit built for (apparently) ease of use both in coding and electronic messin' headed towards simplicity I guess.
Now, I see there are lots of "shields" that SparkFun sells, that as far as I understand are basically like plug and play devices (so to speak) that you just put in top of the Arduino and everything works, you load some code and start having fun.
I understand you can even stack shields on top of others (but not everything is compatable I know) and you have more fun.

But then I think the Arduino is a bit expensive and all those shields are as well.

I see there are also verboards or stripboards with the sole purpose of "stripping" an arduino and making it more permanent. I'm not quite sure if I'm correct to assume these are meant for people who don't wanna waste 30 bucks buying several Arduinos but rather just using some cheap circuits to make their once-based Arduino project and then reusing the real Arduino.

But here my confussion starts...

If those veroboards are so easy to assemble and cheaper than an Arduino, why using an Arduino instead, at all?

Also, I see there are "breakoutboard" options along with the shields. Are these supposed to be as plug and play as the shields but using your "own" circuit instead of plugging directly into the Arduino, or stacking if I may.
But, can these breakoutboards also work with the Arduino, except for the stacking?

And last but not least why is it that most people just use Arduino?
I'm trying for instance to find a SD card reader example using a simple ATMega, but all the good examples are always using the Arduino.

If I wanted a project, let's say, a simple MP3 player (things involved, a uController, MP3 interpreter, SD card reader, DAC to output sound) would it be just easier to get an Arduino and stack a lot of shields and get done with it, or would it be a LOT cheaper to build my own and learning more in the process (any good resources?).

Thanks for your time :)
By stevech
#144890
MP3 player, SD card reader... these are not at all simple.
As a newbie... start with the classic "hello world". blinking LED.
Also suggest you learn the C language using a PC - simple text in/out programs, no graphical user interface. Several free C compilers around.
Then move your C skills to a microprocessor. You can also read the tutorials on Avrfreaks.net, and ask for tips for the newbie as you did here.
Starting without C skills at all is like learning to ride a bike as a child without training wheels.. microprocessors just crash with no clue due to your beginner's mistakes, whereas the PC will tell you what line of code cause the crash, etc.

Ardino tries to hide C and C++ (avoid C++ for now) from those wanting to do things Leggo-style. Kit-like. Which is OK, if that's your goal. But even with that, the glue winds up being C and C++ with Arduino.
By newbiehere2012
#144902
Thanks stevech.

Well, sorry not to specify more.
I know how to program (Computer Scientist), very well. It's what I do for a living.
I've used a PIC 16F84 in the past.
And I've done some basic blinking leds and piezzo thingies.

Now I would like to move towards something less boring.

With that in mind, would your answer change?

I just want some light on arduino vs barebones AtMega, or shields vs breakout boards vs diy boards?

Guess I'm also confused because I don't understand if an user at home can make his own, let's say "movement sensor" (the component per se) or there are simply "components" in electronics world that can only be made at a production line (like a microcontroller).
Guess I find it hard to know what's real haha, if you know what I mean.
By motopic
#144905
I know how to program (Computer Scientist), very well. It's what I do for a living.
Well then you would know the supreme advantage of the HUGE library of software thats for the Arduino.
Its like linux, its sometimes more time consuming to eval all the different libs...

The shields and arduino UNO are 'conveniences'. You proto with those, then once your circuit is down and tested, and its something you want to make smaller, cheaper, faster, then you redesign using components. Think of the shields as lego blocks that let you test software until you get the 'real' hardware.

Also search for arduino compatible...stuff like the RBBB from moderndevice.com for example. $13 and runs arduino sw. There are lots of these out there.
By newbiehere2012
#144911
motopic wrote:
I know how to program (Computer Scientist), very well. It's what I do for a living.
Well then you would know the supreme advantage of the HUGE library of software thats for the Arduino.
Its like linux, its sometimes more time consuming to eval all the different libs...

The shields and arduino UNO are 'conveniences'. You proto with those, then once your circuit is down and tested, and its something you want to make smaller, cheaper, faster, then you redesign using components. Think of the shields as lego blocks that let you test software until you get the 'real' hardware.

Also search for arduino compatible...stuff like the RBBB from moderndevice.com for example. $13 and runs arduino sw. There are lots of these out there.
So you mean, the shields are great for fast protoyping, then I get something small and arduino compatible (something like a small cirtuit, with an Arduino bootloader, or maybe even the nano arduino boards) when I wanna settle it down on a veroboard or make my own (I think this last option doesn's sound so good as I've never quite gotten the intrinsics of Eagle and that stuff, but probably SHOULD. :D

Now, the question is, how would I be on my way to "transfer" or "redesign" the circuit? I'm guessing you mean, like stripping down the stuff I don't need and then if I use for instance a regular Arduino UNO and a MicroSD Shield, then I could be on my way to make an Arduino-compatable small circuit with just the parts of the "body" (I see Arduino as a body with a brain which is the ATMEga) and an ATMega with the bootloader, and also stripping down the MicroSD circuit?
But then I would need to have a lot of electronics knowledge, to say "I don't need this resistor here, I can go without these ICs, I can toss away this BR" and so on...?

Also, shields are stackable in the sense (if they are compatable, as I said, I understand not all shields can be stacked on top of another) that you take them, use male pins (whatever) to "extend" the free pins of the Arduino and if anything make a couple connections, load the software and off you go?

Now, what is the main difference between the shields and the breakout board versions? I see in SparkFun most fun stuff (thinking WiFly for instance) carries both a breakout board version and a shield version for Arduino.
So my guess is that the breakout version will be a pain in the *** to put in a breadboard with an Arduino? Or the shield JUST offers the convenience of stacking but if I don't require stacking I can get on my merry way with the breakout board version (these are usually cheaper)?
Moreover, there are items (again, WiFly or also the robot voice thingy ala Siri, Mr Clip from Microsoft, you get me, I forgot the real name for those things) that carry just the separate components (brain, anthena, circuit), would these be the ones I would use on a more "permanent" circuit after prototyping with the shields?
By stevech
#144932
newbiehere2012 wrote:Thanks stevech.

Well, sorry not to specify more.
I know how to program (Computer Scientist), very well. It's what I do for a living.
I've used a PIC 16F84 in the past.
And I've done some basic blinking leds and piezzo thingies.

Now I would like to move towards something less boring.
.
Ah so.
Well, I'd say the next step is into the ARM Cortex M0 or M3 world. Lots of low cost things. One I use and like is mBed.org's hardware and on-line compiler. Or the Atmel ARM Cortex M3 with the free Studio 6 development based on Microsoft Visual Studio.
(Olimex and others, SFE here has very few ARM boards so far).
There are lots of $50 or so Cortex M3 boards around the 'net.

The 8 bitters are increasingly pressured for a place, with the high end of the 8 bitters costing more than the M3's and certainly more than the M0's.

These ARM CPUs, with the single address space, unlike AVR and PIC, simplify things a lot.

Or like me, order a $35 Raspberry Pi board that runs Linux.

There's a board that can run Microsoft's (yikes) .NET libraries and if that's your persuasion you can write in C# (bleah).
By motopic
#144955
Well compared to most here my experience is different. I didn't grok eagle, I dislike products that limit me.
So I went in search of Free, Open Source tools. I ended up learning TinyCad and FreePcb.

I also don't proto with shields either. I breadboard using a RBBB and breakout boards (like SF breakout boards). Then what I do is get the wiring and schematics into TinyCad. From there I export the netlist to FreePCB (and get the parts + footprints in there). Then layout the board, run the autorouter and cleanup. Then its off to double check the routes and spacing and make a pcb (usually a home etch to start). Thats for 'work' like stuff where I might order 200 brds at a shot.

Yes you need some knowledge to 'transfer' circuits.

The diff is a shield is designed to work together, fit together, and be easy to use with arduino.
A breakout is simply pins taken out to a convenient form, generally no consideration is given in a breakout to a target, like arduino.

For a 1 off, I would hardwire breakouts and perfboards together.

Cortex M3 is a BIG steep learning climb above arduino. Not much for community code out there, IDEs and jtag debuggers cost $$$, no 'shields' or stuff like that. And theres a LOT more to getting one of these to just run blink too.
By newbiehere2012
#144965
stevech wrote:Well, I'd say the next step is into the ARM Cortex M0 or M3 world. Lots of low cost things. One I use and like is mBed.org's hardware and on-line compiler. Or the Atmel ARM Cortex M3 with the free Studio 6 development based on Microsoft Visual Studio.
(Olimex and others, SFE here has very few ARM boards so far).
There are lots of $50 or so Cortex M3 boards around the 'net.

Or like me, order a $35 Raspberry Pi board that runs Linux.

There's a board that can run Microsoft's (yikes) .NET libraries and if that's your persuasion you can write in C# (bleah).
Thanks, I'll investigate a bit more about this.
I heard bad things about the Raspberry (pain in the *** to do something, I think it was drivers for don't know what), but will delve more.
And about C#, I dunno, could be interesting, I'm yet to learn C# (tho' it's easy as pie), but then I think I'd preffer something more "optimized" since we're talking about low-scale processors here.
motopic wrote:Well compared to most here my experience is different. I didn't grok eagle, I dislike products that limit me.
So I went in search of Free, Open Source tools. I ended up learning TinyCad and FreePcb.
Oh ok, well, I'll check those out.
motopic wrote:I also don't proto with shields either. I breadboard using a RBBB and breakout boards (like SF breakout boards).
Interesting. So the RBBB is like a watered down Arduino compatable board. Will check it out.
motopic wrote:Yes you need some knowledge to 'transfer' circuits.
Alright, so probably I'm not so interesting in the transferring part for the meantime, and since I won't make a living out of this I don't think I'll get into the "let's learn for 10 years then when I'm a master I'll consider messing with this" but more the mediocre wannabe approach "let's use easy tools and start being productive".
motopic wrote:The diff is a shield is designed to work together, fit together, and be easy to use with arduino.
A breakout is simply pins taken out to a convenient form, generally no consideration is given in a breakout to a target, like arduino.
But then, connecting the breakout board version of a given component means nothing more than thinking about board placement (stacking vs fitting somewhere around a breadboard, for instance) and connecting the cables and off you go, or you need to consider adding resistors and whatnot? (and here you have to use your vast knowledge and so on?)
motopic wrote:For a 1 off, I would hardwire breakouts and perfboards together.
I understand.
This will be a one off I think, or maybe twice or thrice at most for each "circuitry", no mass production so I will have in mind the perfboard option (seems to be better, I did a couple circuits in the past using chemicals and whatever but it was so boring).
motopic wrote:Cortex M3 is a BIG steep learning climb above arduino. Not much for community code out there, IDEs and jtag debuggers cost $$$, no 'shields' or stuff like that. And theres a LOT more to getting one of these to just run blink too.
Ok thanks.
By stevech
#144968
I suggested Cortex M3... the free CMSIS library helps you get started.

The OP has been-there-done-that with PICs so this seems like a logical path.
By village idiot
#145060
newbiehere2012 wrote:I heard bad things about the Raspberry (pain in the *** to do something, I think it was drivers for don't know what), but will delve more.
I believe the only pain in the *** regarding the Raspberry Pi is actually getting your hands on one.