The MSP430 is a family of (very!) low-power 16-bit microcontrollers from Texas Instruments, who have been aggressively – if not necessarily successfully – marketing them towards hobbyists for a year or two now. The chips have been slow to gain traction in the hobbyist community for no particularly good reason. I mean, the standard dev board – the ‘Launchpad’ from TI – costs $5 or so, and allows you to program (DIP-package) chips with no extra hardware, which had ought to be mighty attractive when you consider that Arduino boards start around $25, and you need another $20 or more device to program additional chips.
16-bit microcontrollers, supported by GCC, DIP packages, run at up to 16MHz and 16 MIPS… Chips under $3 in single quantities, under a buck each in volume. What’s not to like?
Well, one thing, really. The lack of development boards for the thing.
The Launchpad is great as a programmer, and not too bad for experimentation on a breadboard, but it’s less-than-ideal for building into a project, even as a one-off prototype. There’s no compatibility with Arduino “shields”, for example, so interfacing stuff to the Launchpad is sub-optimal.
There are one or two other MSP430 boards out there, but not many, and none of them are really targeted – in my opinion, anyway – at hobbyists. I happen to think that this is not just a shame, but one of the major reasons the MSP430 isn’t more widely used by hobbyists.
So, because I have some experience with the MSP430, and microcontrollers in general, and a good amount of experience in PCB design, I figured I’d create a small, flexible, inexpensive, open-source hobbyist-friendly development board for the MSP430 family.
Here’s my thoughts:
Board will have space for sockets for three (?) 20-pin MSP430 devices – one largely devoted to output (see below), one largely devoted to input, and (?) one for, y’know, general microcontroller-ey things. Connected via SPI at 2Mbps, assuming 16MHz operation.
Board will be no larger than 60x95mm, and will be designed to mate with the ubiquitous 4×20 character HD44780 LCD modules, driveable by an MSP430 in four-bit mode. (Essentially making the display a serial interface.)
Board wil have on-board 5V and 3.3V voltage regulators, to permit use with whatever power sources one might want (I estimate a fully-populated board with LCD and backlight on to draw around 60mA);
Board will have sockets for on-board 23K256 32KB SRAM, should one want extra memory;
Board will have a socket for an on-board DS1302 RTC, with battery options.
Board will have several SPI and serial ports broken out, to interface with semi-standard microcontroller accessories like wireless/ethernet modules, GPSes, and whatever, and as many IO pins broken out to headers as will fit and makes sense.
All active components will be through-hole, so as not to terrify people with (too much) SMD soldering, and to – of course – permit reprogramming of the MSP430 chips on a Launchpad.
I know it seems like a kind of strange idea, to have a dev board with space for two or even three of the same chip, all serving different functions, but I think this is beneficial for five reasons:
The microcontrollers are cheap;
There’s room, given the arbitrary PCB size chosen;
It helps overcome the small amount of RAM each microcontroller has;
It’s a valuable way to learn real-world programming skills, like making multiple microcontrollers talk to one another;
It’ll make a certain proportion of the Hackaday readership / hobbyist community rage when people produce blinky “Hello, World!” designs using – ZOMG! – three microcontrollers. 🙂
Jokes aside, though, I think it’d be a valuable learning/development platform for people to explore microcontrollers in general, and the MSP430 in particular. And, to be honest, while the thing will never run Linux, a fully-populated board would be remarkably close to being a (very) small minicomputer from the dark ages of computing – essentially a sub-500mW 16MHz 16-bit processor with two comparatively beefy peripheral controllers, if you wanted to think of it that way. (You can write to SD cards via SPI, so there’s even a sort of disk-drive functionality. Heck, there’s even a version of BASIC that runs on the MSP430…)
So, microcontroller/electronics/hobbyist/open hardware geeks – thoughts? Anything I’m overlooking, here?