Embedded systems are a fundamental part of almost all human activities. This, coupled with the availability of free and open software development tools, opens up great possibilities for developing countries as they are not large capital investments needed for the conception, design, and manufacture of these systems. However, currently very few universities offer courses for building the skills necessary to achieve a marketable product, increasing dependence on Asian technology. This paper presents a methodology for teaching embedded system design using open hardware and software tools.