# Are there any powerful processors that exist that are hobbyist friendly?

Ok so I have a project I am wanting to create but it would require a bit of processing power. The most powerful thing I've seen yet has been the ATMega1284P. Really by power I mean I need Program Memory and RAM, not raw MIPs.

Is there anything else out there that is hobbyist friendly?

By hobbyist friendly I mean not having to have any expensive machines to solder it (rework stations etc). Also of course being capable of buying just a couple of them without spending an arm and a leg. And of course having freely available compilers and other software tools.

My project is to build a small (portable) calculator with simple graphing capabilities and possibly some limited programming capabilities.

-
Can you give some more information on your project? External Flash and RAM are available if you just need more memory. Also, what does "hobbyist friendly" mean to you? Are you concerned about the physical package, toolchain, cost, program complexity, peripheral complexity, and/or something else? –  Kevin Vermeer Aug 18 '10 at 17:21
If you define hobbyist-friendly as 'in DIP package': The PIC32 series has a lot of DIP-packaged chips. example: PIC32MX250F128B 128kB Flash, 32 kB RAM, 40 MHz. –  Wouter van Ooijen Jul 6 '12 at 6:52

Low-cost ARM boards like the LPCXpresso and mbed are easy to use, and will give you a lot more performance.

-
I ended up going with mbed. It's online compiler concept is a bit weird, but working right out of the box is something I'm very fond of. Also, the specs of mbed are a good step up from Arduino along with letting me explore the ARM architecture.(which I've been wanting to do for a while) –  Earlz Mar 19 '11 at 23:50

Take a look at something in the OMAP family.

-
I wouldn't consider gumstix hobbyiest friendly. tiny connectors and OE isn't exactly easy for people to use. :-) –  akohlsmith Aug 18 '10 at 20:17
The tiny connectors are definitely a pain, but with a breakout board, I think they're pretty good. Personally, I think I'd take the Beagleboard over a Gumstix. –  pingswept Aug 18 '10 at 21:06
By the way, just out of curiosity, why is it so hard to find powerful boards that are easy to use? Is it just that as the power goes up, the complexity rises? Or are most hobbyists too poor to afford more expensive boards, so none of the vendors care about ease of use? –  pingswept Aug 18 '10 at 21:08
@pingswept - I was considering the same question, and I came to the conclusion that more powerful micros are useless without complexity to exercise the functionality. It's like the "If you give a mouse a cookie" story: If you give a processor designer lots of memory, he's going to want lots of peripherals to go with it. If you give him lots of peripherals, he's going to want an NVIC and DMA to go with them. If you give him DMA and an NVIC, he's going to want lots of pins to exercise them. If you give him lots of pins, he's going to want a fine pitch package. –  Kevin Vermeer Aug 18 '10 at 21:28
Also, "Powerful" doesn't ever mean the same thing to everyone. This question is about the availability of an 8-bit micro with gobs of memory. Maybe the OP has a use for it, but a faster 32-bit micro with more complexity to go with that memory is useful to more people. –  Kevin Vermeer Aug 18 '10 at 21:33

Depending on the specifics of your project, I might suggest the NSLU2 "Slug" which is an ARM processor, clocking in at 133 or 266 Mhz.

That gives you a very small (embedded) board and some USB ports and even one or two serial ports (UART plus MAX232).

You could write your app to run in Linux, compile it with GCC, etc.

-
And use the built-in "bc" precision calculator =) And a USB keyboard for user input, and a USB LCD Display for the frame buffer. Hmm, the Slug has everything you need! –  Brad Hein Aug 19 '10 at 17:27

Parallax Propeller. 8-32 bit parallel cores and built in VGA support.

It would be very easy to build a programmable graphing calculator using this processor. The chip is in 40 pin DIP configuration and there are a number of prototyping boards available, several of which have video, keyboard and mouse support hardware built in.

-

Cool project! I suppose that your choice of processor (and reason for needing external memory) will depend on how you define "simple graphing capabilities" and "limited programming ability".

Stop and consider that the TI-83 calculator has a 6 MHz processor, uses 8KB of RAM for system functions (24KB is free for user programs), and has 512KB of Flash with an external 2MB Flash chip on the special "Silver" editions. It runs a proprietary OS, and has support for more mathematical functions than I've ever heard of or used, as well as programming in 4 languages. Your ATMega1284 has 16KB of RAM and 128KB of Flash. Do you think you're going to generate enough code to fill those 128KB, given that TI only used about three times that much? I doubt it.

If you just want to use a character LCD and a LED array for graphing with basic math functions (Buttons 0-9, variables x and y, +-*/%=, and some kind of storage), then an ATMega or Arduino is more than adequate for your needs.

If, on the other hand, you want to run a color TFT with embedded Linux, scripting/programming in bash, lua, or whatever programming language you choose, graph with gnuplot, and enter everything on a mini querty keyboard/numpad, then you should look at more powerful chip. Definitely go for 32-bit if you want to deal with big numbers, and if you want to address lots of memory. Most of these chips (I recommend ARM) come in QFP packages - But don't be afraid! You don't need expensive machines to solder a [LT]QFP or PLCC device - Just a steady hand, a fine tip, and decent technique will be adequate. Oh, and a well-made board with soldermask. However, many dev boards will be well suited to this project.

You can buy these chips in singles for $2 to$15, depending on the options you want. Also, many manufacturers will send samples if you just ask, in hopes that you'll buy thousands once everyone is taking the ACT and SAT on an EARLZ-9000 calculator!

-
Can you give some specific places to buy ARM chips? I can't seem to find very many ARM processors outside of development boards. And yea I guess I need to work on my SMD soldering skills then :) –  Earlz Aug 20 '10 at 20:57
And also I think I'll take this project in stages. At first I'll just worry about the basics with AVR and such, eventually I think it'd be nice to expand to a more powerful system though utilizing ARM –  Earlz Aug 20 '10 at 20:58
@earlz re: your first comment - Any place which sells micros at all will sell ARM products - Digikey, Mouser, Newark, Arrow, Allied, Future, sparkfun... Just name your distributor. It's important to understand that ARM doesn't manufacture any physical chips, they make IP, which they then sell to a chip manufacturer (Atmel, TI, etc.) who make an ARM-compliant microcontroller. To select a chip, first choose your core (ARM7, ARM9, Cortex M3, etc.), then go to a distributor, and see what options the manufacturers have. –  Kevin Vermeer Aug 20 '10 at 23:10
@earlz re: your second comment - This depends on your approach. Your AVR -> ARM proposal is a fine idea if you want to write pure C for your application code, and then just write a hardware abstraction layer for each processor. You won't use the full capabilities of the ARM this way, but that's OK. However, the AVR and embedded Linux approaches are fundamentally different. If you expect to go to embedded Linux, I'd suggest purchasing a dev kit with a screen and button pad interface (this could be an AVR daughter board or keyboard), and then the second stage would be to make your own board. –  Kevin Vermeer Aug 20 '10 at 23:17

You've received a ton of great information on microcontrollers, but if you want to simplify your job on the display end, you might want to take a look at some LCDs that make designing GUI and displaying graphics easy. Although I haven't used its graph functions before, I have used Amulet Technologies' LCDs (both monochrome and color) and have been very pleased with how easy it is to use in combination with a little microcontroller. You just have to implement its RS232 serial protocol, which is pretty simple.

-

Depends on your definition of "powerful" of course. Personally I have seen the Propeller processors do some incredible things, and I am partial to most ARM variants, although again, the definition of "powerful" needs to be evaluated. :-)

32-bit processors are everywhere and come in relatively easy to use packages (leaded PQFP, etc.) What are you trying to do?

-

Many processors/microcontrollers support external memory.

For instance, the AVR XMega can support several MiB of external SDRAM for data storage (can't execute from the external bus). (There is a GCC limitation of 16bit pointers for AVR-GCC).

Many ARMs have external buses as well: LPC2478, Luminary parts, AT91SAM series.

-

Bifferboard?

    * 150MHz CPU, Intel 486SX instruction set, MMU.
* 1 watt power consumption (200mA @5v)
* 68mm x 28mm x 21mm (weight 28g)
* 32MB SDRAM/8MB Flash
* OHCI/EHCI USB 2.0
* 10/100 ethernet
* Serial console 115200 baud (can be used as 2 GPIO)
* 4-pin JTAG (can be used as GPIO)
* 2 permanent GPIO (1 LED, 1 button)
* Linux 2.6.32.16
* Supplied pre-flashed with OpenWrt
* 35 GBP each

-
For later readers, the "35 pounds each" is the cost, not the weight. It's a little more than $60 US to get it to the States at the current exchange rate. – Kevin Vermeer Aug 29 '10 at 2:02 Heh, somehow these have went up in price now to 69 pounds, or about$90 USD –  Earlz Jul 6 '12 at 8:24