views:

589

answers:

12

I had been working as an embedded systems software engineer for 5 years (more of CAN and core level programming, I2C, SPI) and I took up a graduate program. Currently I work as an application software programmer which is also interesting. But, the fun and the satisfaction that I had with embedded systems projects is missing. I would like to start of with projects that I can do from home ot keep my interests going. I would appreciate if any of you can share information about development kits with a 16bit or 32 bit micro with some peripheral devices to get my hands on them. Or suggest a good place to re-start.

A: 

Did you try Amazon.com? Something like this maybe? What level of complexity are you looking for?

vector
Thank you Vector. No I have not looked at the kits yet. I am browsing through answers here for similar or related questions and trying to get what I want. I should also say that since all my experience was from work, I am confused as to where to start on my own. I think I would like to have a processor with the peripherals and a commpliler linker workbench like IAR, and ability to download and run programs may be UART or thru emulators.
+1  A: 

the AVR uControllers are quite popular and of course the 8051 will never go away. I have two projects that interest me (but embedded is not my cup of tea). They are wideband O2 controller (yes, I know there are already devices out there for this, it looks like a challenging endeavor) and very small scale electronic fuel injection. (yes, I know there are mid sized projects on this too).

Just a thought.

KevinDTimm
+1  A: 

This may be an unconventional suggestion, but a group of friends and I went to Defcon this year, and got our badges. The microproc that came on it is quite amazing. Sincearly none of us had much experience on the hardware side, but had plenty of software skills and still got a kick out of it.

The freescale DSP micro proc along with codewarrior proved to be a delightful experience. Except for having to do everything in my windows xp vm.

In any case, it sounds right up your alley.. UART programmable, i2c interface, plenty of programable pins, internal clock.. Hope this helps

Phillip Jacobs
+4  A: 

I would check out what your local electronics distributors have available (you don't state where you are).

In the US you might check out Sparkfun.

The easiest to set up are 8-bit Atmel AVR controllers, a 7805 and some capacitors on a breadboard suffice, plus a programmer. The GNU tools (gcc etc.) for AVR are very nice.

ARM Cortex M3 is a small 32-bit architecture which is quite new, so that might put you ahead of the curve. Luminary and ST (STM32F) controllers exist for some time, the release of NXP (ex-Philips) LPC17xx controllers is imminent.

For something completely different, FPGAs are also cool. There are relatively cheap boards (~150€) with lots of hardware on it, targeted at students.

starblue
+1  A: 

Consider contributing to Linux open source device driver efforts. This should satisfy your urge to go low-level, and help others in the process. I realize this is not strictly speaking embedded dev, but it may give you some of the same rush.

Todd Stout
linux device drivers are quite high level, almost application level compared to embedded
dwelch
Embedded dev can be rather high level as well if you are using an OS like VXWorks.
Todd Stout
+2  A: 

Having played with a few of these things, I'd suggest one of Luminary Micro's Stellaris development boards as a good place to get started. The ARM Cortex-M3 they're based on is a 32-bit architecture, which is convenient coming from the desktop world, and seem sort of midrange between tiny 8-bit microcontrollers and the more powerful things like the ARM Cortex A8 in a Beagleboard that run Linux. The boards themselves have a nice "fun" set of peripherals on them -- typically things like a small LED screen, some buttons, a micro-SD card slot, and an ethernet port. More importantly, they've got on-board debug hardware for loading your program onto the board and so forth; instead of needing to buy and hook up an external debug device for that, you just plug in a USB cable.

(Disclaimer: My company sells development software for these, so I'm not entirely unbiased here. Also, I should note that I am speaking for myself and my personal opinions, not for my company.)

Brooks Moses
+8  A: 

Luminary micro boards are good. Olimex boards are good, http://www.sparkfun.com is a great place for olimex and others. I dont like the avr instruction set but they are very popular, the arduino pro, which you can get at sparkfun or the lilypad depending on what they have in stock at the time. The armmite looks good, just ordered one yesterday. The msp430 has a very good instruction set, as does ARM. The stellaris boards are probably the best bang for your buck with the on-chip perhipherals to learn how to talk to. They have more and more tried to hide the magic in apis which defeats the purpose. Finally bought a stm32 primer 1 and primer 2 recently, extremely dissapointed, if you have to go with the primer1, but if you feel the need for the stm32 go with the olimex board. If olimex had a stellaris header (sold by sparkfun) I would be all over it.

dwelch
I have a STM32-Primer2, I wrote Solitaire for it and a Defender clone. It's OK, but the tools currently only support c and not c++. It could also use a bit more ram. Not bad, but I'm hoping that the Primer3 (when released) is much better.
KPexEA
I didnt like the lack of a linux solution, that is bearable. Then later read something about having to pay more money to put non-circle programs on it. It is the kind of thing that I would normally ban the companies entire product line over for life over. In this case it was an impulse buy and I did not read up on the product first, I assumed it was an stm32 eval not a circle os eval.
dwelch
+1 for the Olimex boards.
Adam Pierce
A: 

Subha - if you're a Linux-centric developer, or if you have an interest in learning embedded Linux, TinCanTool's Hammer Board is a very interesting option. It uses a Samsung micro and the development hardware has some generous peripherals including UART, SPI, I2C, and USB interfaces.

I own one of these boards and not only was I happy with the construction and functionality, but the support was quite good. You can get a complete set, including programmer for about $240.

dls
+1  A: 

The original PC architecture feels quite a bit like an embedded system - and modern PCs are still almost completely backwards-compatible with it.

I've written a simple real mode pre-emptive multitasking system for the PC, and later created a protected-mode system too - all in assembly language. Not many people would think of this as barrels of fun, but I do.

Firstly there's VGA - I think it's very well designed for its time (not truly part of the original PC but very widely supported anyway). The documentation can be a little cryptic, but VGA manages to tie together backwards-compatibility, ease of use (for experienced embedded programmers at any rate) and some nice speed-boosting features.

Then there's the parallel port - wire up some LEDs - or something more complex! You can write an interrupt handler to be triggered by the port, too. I've driven a speaker using pulse width modulation through the parallel port.

You can play with the timer chip (one of the timers can generates a "clock tick" interrupt, another can be used to play square waves through the internal speaker).

You can start in DOS, and replace portions of it - or you can boot straight from disk and be limited to calling BIOS functions. If you want to enter protected mode you lose that too, and basically have to write your own device drivers - e.g. issue requests to the disk, get sectors delivered via DMA...

Personally I like x86 assembly - for assembly programming. It's a silly instruction set if you're planning to use compilers to generate it, but for assembly programming it's rather nice.

This sort of stuff can teach you a lot about operating systems and language implementation. It may get you into fields like virtualisation and distributed programming...

Artelius
A: 

For 32-bit embedded systems I've always liked the LinuxStamp (theLinuxStamp.com). However for cheaper you can get a Linksys NSLU2 on amazon or eBay. Then look up unslung and/or slug OS for starting in development. It'll get you a full Linux system that you can start programming on.

Stephen Friederichs
A: 

Firstly tell which os you want to use? than only i can suggest you a good one board.

nitin
A: 

you should check out the new project from leaflabs http://leaflabs.com/ the maple which is basically an STM32 Cortex M3 32 bit micro that has an arduino interface it looks like a great and fun thing to try and for $50 you wont be able to find many dev kits for that price.

jramirez