Menu

Home

Hey there! Chris here, your host and founder of Simply Embedded. If you are new to embedded systems or programming in general, there are tons of excellent websites where you can learn various aspects of this vast and complex topic. But trying to understand and piece together all the information yourself can be a daunting task. Luckily for you, I created Simply Embedded to put it all together for you.

I started Simply Embedded as an offshoot of my own personal project to implement a light weight, easy to use embedded operating system. In my experience, teaching is always the best way to learn, because the questions people ask make you question what you already know – and this can lead to great insight. This first series of tutorials is aimed at teaching the fundamentals required to understand and start your own embedded projects using the Texas Instruments MSP430. We cover setting up the environment, toolchain, build system, the basics of the architecture, and writing drivers for each of the peripherals. Each lesson will build on the previous, so I recommend you follow them in order. All the code is explained in detail, so there is no guessing as to how it works. Also, there will be plenty of attention given to coding style, best practices, readability and writing modular code. This means you can take modules you may need for your own projects and modify them as needed with ease. If you want to create your own amazing project but don’t know how, take advantage of this free material and get started now!

What you need to begin:

1. Subscribe to the Simply Embedded mailing list below. This way you will get updates when I release new tutorials. I do have a real job and a life – sort of – so I can’t make any promises on how frequently tutorials will be released, but I will do them. And I won’t spam you with useless stuff. Promise.
2. The Texas Instruments MSP430 Launchpad. This will be the initial development platform. You can buy it directly from TI here for USD $10. The Launchpad kit comes with two microcontrollers – we will only be using the MSP430G2553. The reason I chose to start with this board is because it has a built in programmer which can be used to program any MSP430. This makes it very useful for future projects.
3. A computer with the capability of running a virtual machine. Everything will be taught in Linux environment. I don’t want you wasting time and energy trying to deal with incompatibilities in distros, toolchains or packages so I want everyone to have the exact same environment. I will go step by step in setting it up. I will be using VirtualBox for the VM, and Lubuntu as the distro. If you are not familiar with either of these you should do some reading here and here. If you have never used Linux before or are not comfortable with the command line, take some time to learn it. We will be using it extensively.
4. The desire to learn, ask questions and have fun. I really want you to take your time and understand the material. It’s not a race. Everyone will be starting off with varying levels of knowledge and free time to dedicate to these tutorials so it’s really important that you don’t skip steps or race ahead without fully understanding the material. There are a million places online you can copy/paste code from. That isn’t the goal here.

About

Simply Embedded is a website dedicated to teaching and collaborating on embedded programming projects. All of the projects will be completely free and open source, as will the development tools used. The first series is intended for those who have little experience with embedded software but have a decent understanding of the C programming language. It is a great resource for hobbyists, novice programmers, CS/EE students and hardware designers alike who could benefit from a better understanding of software. I encourage questions and discussions in the comments section and will be available to provide guidance along the way. The projects will be as real-world and practical as possible. The goal is to provide you with knowledge that is applicable to other projects and platforms.