Which Controllers?

My hobby interests range from boat monitors to small robotics. As prolific as small controllers have become, there are LOTS of options to chose from. I have personally settled on the Raspberry Pi and the Arduino. My reasons are given below, as well as a very brief overview of a number of other options that were considered.

RASPBERRY PI

  • Runs LINUX, with full C, Perl, Python, etc. LOTS of packages available including FLASK (for web page serving), etc.

  • 4 USB ports - expandable with USB HUBS.

  • GPIO bus - however, conspicuously LACKS analog input!!

  • COST: About $40 + addons

In general, the Raspberry Pi is my go-to solution for the heart of a system. It can host your web page, store lots of data, etc, and interface to small microcontrollers for lots of IO.

ARDUINO

  • C-Based IDE

  • Analog and Digital I/O's

  • Serial port interface (plus I2C, SPI, etc...) But the serial port is the most ubiquitous and easiest to use.

  • Comes in a variety of flavors. Uno's are expensive, but have the capability of adding Shields. Nano's are about $10 each, and have all the pin features of the Uno.

ARDUINO UNO

  • Great development starting place, with lots of available Shields - including motor controllers, wifi, etc. However - why use an EXPENSIVE wifi shield with an arduino that would probably end up being underpowered when you can use a PI?

ARDUINO NANO

  • This is my go-to part for a small microcontroller.

  • C-Based

  • 30 pin DIP form factor - fits in a 40 pin DIP socket

  • Lots of A/D IO -- Easy to use bunches of these for IO collection, and tie it back to a central PI or laptop.

INTEL EDISON

  • Overpriced PI wanna-be.

  • Includes WIFI

  • Atom based - so may be able to handle web browsing.

  • $100 version also includes Arduino Analog I/O's.

  • Critically lacking in community support. EXTREMELY difficult to get up and running. (IDE and initial board downloads are REALLY PAINFUL).

ARDUINO 101

  • Intel CPU based Arduino. $30, difficult at this time to get.

  • Includes Bluetooth, GPS, and accellerometers.

  • Unforunately, no wifi, and no usable USB ports - so still have to go through bluetooth or serial. The GPS is cool, but there are cheaper GPS modules out there that can be plugged into a PI USB port.

QUALCOM DRAGONBOARD 410C

  • $75

  • Looks like Qualcomm's answer to the PI, but more expensive, and without the HUGE community of support that the PI already has.

BASIC STAMP and other BASIC microcontrollers

  • The original BASIC STAMP is on the order of $50.

  • Functional equivalents available for about $10.

  • Program in basic, single serial port, limite I/O devices.

  • Bottom line: Arduino nano is about the same price, has more IO pins, and FAR more program and memory space.

In the past, I spend a bit of time playing with the Kronos Robotics "Athena" family of microcontrollers. These were small 8 bit controllers, that I believe were based on the PIC microprocessor. Kronos basically took an existing chip, ported a version of TINY BASIC, and created an IDE programming environment to wrap around it.

It was a really cool part. The main downside was the very limited number of IO pins, and tiny memory - (about 256 bytes of compressed microinstructions). But then, since the parts were cheap, you could have a bunch of them just doing small tasks.

Unfortunately, it looks like Kronos Robotics exited the microcontroller business. So the replacement for the Athena is probably the Arduino.

PIC, AVR, 8051, and other bare bones microcontrollers

  • 8051: Yes, you can go with a bare bones microcontroller, but why? Programming in Assembly is a PAIN (C is painful enough), and doesn't have Analog ports.

  • PIC - lots of them out there! Cheap alternative to AVR

  • AVR - Need to look into this!! The AVR book suggests that an Arduino UNO can be used to program the part, then you pop the chip out, add a few components, and basically have a cheaper nano solution that would be more production worthy.