Embedded Systems 101


An essential course for new grads entering embedded systems and industry professionals who want a refresher. This course looks at the fundamentals of hardware and firmware in embedded design and focuses on the relationship between the two. Approaching embedded design with this knowledge and perspective will enable creation of the best designs possible, with less trial and error regardless of whether your work focuses on firmware or hardware.This course uses the Engenuics ARM7 development board, however the material is taught so that it can be applied to any other board. Participants are taken through the schematics, key components and board design. The IAR IDE is introduced along with the basics of firmware, startup code and JTAG debugging. Students then learn and program essential embedded peripherals including interrupts, GPIO, timers, UART and analog to digital conversion. Although this exercise closely follows those in University embedded courses, the practical lessons and feedback from an industry perspective will help introduce you to how industry is different from the world of academia. Throughout the course, topics such as the product design cycle, project management, design for production, planning and time management, working with others and many other “softer” topics are also discussed.


Electrical, computer or software engineering degree or equivalent. Knowledge of basic circuit components and analysis. Capable programming in C. Exposure to assembly language an asset.


4 days

Class Size



Cortex-M3 Razor Board


$995 Student: $395*
*Valid ID required

Upcoming Courses


Attention Employers – you may be eligible to receive up to two-thirds of the tuition for this training for your employee through the new Canada Job Grant. The grant is a cost-sharing program that encourages employers to invest in training for new or current employees. Visit Employment and Social Development Canada site for more information. We will also provide assistance with the Canada Job Grant application.


Helen Roy – January:

The boot camp was invaluable.

Graeme Lyall – January:

I will definitely recommend the bootcamp to anyone interested. I feel like the bootcamp would have been a huge benefit to a lot of students this semester. Both the CENG255 and 355 are now using the STM32F0 Discovery (32-bit ARM M0) board and many people were unsure where to start.

A W – January:

The course was useful and fun. I came to it with a computer science/programming background, so I learned a lot, especially from the hardware portions of the course. The firmware portion required only rudimentary programming knowledge, so I was able to focus on learning about the hardware, the way firmware is structured, how processor peripherals work and interact, and so on. Jason also really focused on teaching the process of design and development and passing on his own experience (especially things he’d learned from mistakes), so the knowledge gained is applicable to much more than just an ARM7 board. My favourite discovery was just how easy setting up a processor and peripherals is–basically, you read the data sheet and then set some registers! The course is definitely illuminating; I recommend taking it.

Alex K – January:

I was pretty overwhelmed by the amount of information covered in this course, however I learned a lot, figured out how to put the theory into practice and have remembered a lot more than I expected to. I think the course would have been less overwhelming had I come into it with more of a foundation in C. Overall, I’m really happy I took this course and expect to make good use of the industry lessons for the entirety of my career.

Bertrand Bozek – January:

ARM yourself with this course !
I found it was a valuable complement to my hardware design engineering skills. Jason’s professional, hands-on approach will get you excited about Embedded Systems Programming.
Highly recommended.