Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Microcontroller kit for a beginner embedded systems hobbyist

  1. Feb 2, 2014 #1
    I am interested in learning how to design embedded systems. I have a solid background in high level C++ (primarily for modelling and visualisation), but my knowledge of computer hardware is somewhat limited. I am interested in starting an embedded system design project to educate myself on the subject of embedded systems hardware and learn some new skills.

    I am currently looking to buy a starter microcontroller kit. I would like to keep things at a "high level" and hope to find something that would include an IDE, device for flashing and debugging code from a PC and good documentation. Standard extensions, like sensors for user inputs and some form output (e.g. external LED or LCD) would be an advantage. I am primarily looking to write code for applications, e.g. simple games, various sensor based information processing software, etc. My programming language of choice is C.

    I looked around online and found out that, most likely, my hardware of choice should be an open-source single board computer. For now I narrowed my choices down to:
    - Raspberry Pi
    - BeagleBoard
    - Pandaboard
    However, I cannot seem to make a decision with regards to which one I should buy (potentially due to the lack of technical knowledge and experience in working with embedded systems).

    I would like to hear some comments about the boards I listed from people who were in a situtation similar to mine or from more experienced/professional embedded systems developers. Recommendations for alternative boards are also welcome. I have a reasonable budget, so do not take price of the boards into consideration.

    I am looking for the answers to the following questions:
    1). Can I buy a kit for any of these boards that would include an IDE and a device that would allow me to flash and debug software? How well documented is the IDE and flashing process? Are there any standard (i.e. provided by the manufacturer/developer of the kit) examples that I can run to get me started? How well documented is the hardware?
    2). What are the options for connecting and interfacing the controller with the digital and analogue sensors?
    3). What form of graphical outputs are available? How difficult is it to interface the controller with an external LED or LCD display?
    4). What other options for information transfer and communication are available? Say, later on, I would like to interface the device with a controller for an actuator of some form. Would I be able to do it easily with any of these boards?
    5). Which board would you suggest to buy considering my experience (or lack of thereof) and application of interest?
  2. jcsd
  3. Feb 2, 2014 #2

    jim hardy

    User Avatar
    Science Advisor
    Gold Member

    You know, it probably doesn't matter a lot which you start with.

    Twenty years ago i used some embedded microcontrollers from Micromint. They were one of the earlier pioneers in affordable hobbyist equipment and have moved into industrial. Back then I was able to get personal help from the company's founder because they were small; we joked about where do you connect filament voltage....... Now large manufacturers are offering inexpensive starter systems. I was trying to solve work related problems on a petty cash budget, and once out of my own pocket when i didn't want to risk the bosses money on what i thought was a low probability of success. ( I did succeed, though)

    To your specific questions:
    1. I don't know much about IDE, will remain silent on that one
    2. I/O is another little world. In my day there was RS232, parallel I/O (Centronics interface), I^2C serial, and Basic was the language best suited to my low level of expertise. Nowadays you'll find USB ports on them as well. Plan on buying their development board which should cost a few score of dollars.
    Real world I/O modules abound, check opto-22, micromint, action instruments, ,,, "Answer-Man" was a clever implementation for its day.
    3. I think it'll be up to you to interface to a graphics device, probably your PC for starters . National Instruments has a whole line called Labview aimed at getting measurement systems up and running quickly, but it's a tad expensive for most hobbyists
    4. Yes communication is via some industry standard protocol. Interfacing is fun - you learn the nitty gritty, for example when using both I^2C and parallel devices i had to tell the parallel device to ignore the I^2C line during I^2C activity. It's easy in principle but requires patience and humility. Your programming experience will be a plus.
    5. Depends on budget. Check hobbyist sites for robotics like sparkfun. Arduino is increasingly popular. Texas Instruments has got serious about this market and Micromint still is. Just make sure you can use your PC for the development system. Look for tutorials and user Q&A on the suppliers' sites. Go with somebody you expect to be around for your whole career.

    Disclaimer - i am way out of date. There are people here far more qualified and current.
  4. Feb 2, 2014 #3


    User Avatar
    Science Advisor

    The Raspberry Pi, BeagleBoard, Pandaboard are not really micro-controller boards where you flash programs to bare-metal. They are SoC type systems that normally have a 'Linux' like OS that allows system calls to hardware interfaces. There are digital/analog interface boards for the Pi and other systems but they normally are programmed at a higher level than typical bare-metal systems like the PIC or ATMEL micro-controller systems.

    Last edited: Feb 2, 2014
  5. Feb 2, 2014 #4
    I'm unfamiliar with the products you mentioned, however I recommend starting with the basic micro components found at this site.


    although they use basic as an interface lanquage as opposed to C++. Their development boards and cpu is inexpensive but highly flexible. Each pin on their chips can be assigned as either input/output both analog and digital. Flashing the software is done via USB as opposed to IDE.

    The basic program is compiled into the PIC controller language, which is a specific form of assembly language. They also have numerous interface components to allow you to design whatever application you desire. I have developed some rather complex projects using their products. Some of those applications are being used in various industries, and have been for a couple of years now. Which will give you some indication of its reliability.

    hope this helps
  6. Feb 2, 2014 #5


    User Avatar

    Staff: Mentor

    Check Arduino.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook