Page 1 of 1

Where to start ?

Posted: Sun Jun 29, 2008 6:21 pm
by Lutino
Hi,
I'm the typical guy who have been to school for long but never been really passionated by what he was doing. I've a BS in computer sciences. But now I'm crazy about embedded systems. No background whatsoever in soldering nor in electronics circuits design.
I've read with interest anything I could find about embedded system design. The one book I really enjoyed was Embedded Software Primer by David Simon but I'm kind of stuck when it comes to hand on practice. I dont have the means to invest in the lab. So I've been looking around to find a small budget (less than $100) development board to start practicing. Also, I would like something I can program in C/C++.
My long term goal is to build a vonage-like box that would either run xp or linux, and that would have a sdcard extension for added programmed features.
I would definitely appreciate your shared thought about where to start.

Posted: Mon Jun 30, 2008 4:17 am
by Engineer1138
The Simon book is very popular. But my favorite by far is _The Art of Programming Embedded Systems_ by Jack Ganssle if you can find a copy. There is TON more information in that book.

I would suggest two things:
1) Get the AVR Dragon: it's about $50 and is an excellent tool for learning embedded systems. Also download the free WinAVR package which includes the gcc compiler.
2) Find a good first project: I would suggest a thermostat using ANALOG sensors if only because I was about to make a post about that :-)
It's interesting, useful and fairly easy to build and will teach you about both analog and digital construction.

Welcome to the club!

-lyndon

Posted: Mon Jun 30, 2008 6:16 am
by Sambuchi
Hello Lutino
Lutino wrote:My long term goal is to build a vonage-like box that would either run xp or linux, and that would have a sdcard extension for added programmed features.
If you want to run Windows for your project and add some peripherals.. take a look at one of my project that I did awhile back.

http://www.sambuchi.net/Projects/Work_D ... eboard.htm

System-on-Module (SOM) You design the baseboard to whatever you want from the SOM! Slap a PIC or MSP on the baseboard to receive information from the processor.. great for small box apps!

Just an idea
_________________
Tony

You can look at my projects here www.sambuchi.net

Posted: Mon Jun 30, 2008 8:46 am
by philba
You have a number of choices for learning microcontrollers (small 8 or 16 bit systems). You will program these directly on the HW with no OS. I'll list out a few but there are many more:

- AVR as point out above
- PIC. I'd get a PICKit2 programm+debugger ($35) plus a handful of free sample PIC18 chips. Get MPLAB (IDE) and the C18 compiler (free).
- MSP430 - you can get a programmer and target for $20. comes with IDE and compiler.

None of these will cost you more than $50.

Personally, I'd recommend the PIC series. while the architecture isn't as elegant as the other two it is much broader, tons more examples plus support and, more importantly for the beginner, the chips are hard to kill.

If you want to focus on "big" 32 bit systems running operating systems, the cost is going to be higher but not much. I use an Atmel NGW100 it is an AVR32 based board ($70 edit: oops, looks like it's gone up to $100) which runs linux, has 2 NICs, USB, SD card and can control graphics LCD directly. The PIC32 (mips based) processor is out but isn't as mature as the AVR32 line.

Lots of choices - good luck.

I'd consider an Arduino (or a clone)

Posted: Mon Jun 30, 2008 6:28 pm
by desy2820
I'd consider an Arduino (or a clone). It's an Atmega ATmega168 programmed with a bootloader. The development evironment is free, open-source and strongly resembles C. The code in the chip is also open source. I'm not sure how fast it is or how well it scales up, but should make a great learning platform.

Homepage: http://arduino.cc/
A good source: http://www.sparkfun.com/commerce/categories.php?c=103

I hope this helps!

Posted: Tue Jul 01, 2008 10:14 am
by kheston
Lutino,

Just a short time ago, I was in your position exactly. Because I didn't have any electronics experience at all, I went with a Parallax BS2 and a "Board of Education." However, no one (to my knowledge) has written a C/C++ compiler for the BS2, so it doesn't fit your requirements exactly.

I'm a full-time Java/C++/C#/etc. programmer, but I haven't found use of Basic to be an obstacle. I have, however, found the Parallax documentation to be stellar. If you're looking to build some simple circuits around an MCU, the "Stamps in Class" stuff is a pretty good introduction.

If you're looking at building an actual VOIP server. Take a close look at some of the single-board PC offerings out there. They're a couple of hundred bucks, but it will take a bit more than a BS2, a PIC, or and Arduino to run something like Asterisk.

Building a simple SIP device/client may be doable with a simple MCU so long as you can offload ethernet management and other memory/processor-tick hogs onto peripheral chips. Companies like Broadcom build chips custom-tailored for this sort of thing...rolling your own would be a fun (yet time-consuming) challenge. I'd go with making an LED blink with an MCU pin before jumping right into VOIP.

Enjoy!

--K