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?