Skip to main content Skip to local navigation

Embedded Systems course in Karlsruhe, Germany

Embedded Systems course in Karlsruhe, Germany

I'll be teaching the IP 411 "Embedded Systems for Engineering Applications” class at HS Karlsruhe in October as part of my sabbatical activities.  It will take place over four days:

  • Fri 12 October 2018, 2 pm – 5.30 pm
  • Sat 13 October 2018, 9 am – 5.30 pm
  • Fri 19 October 2018, 2 pm – 5.30 pm
  • Sat 20 October 2018, 9 am – 5.30 pm

The classes will deal with the ARM Cortex M0+ processors in embedded applications. Specifically, we will look at the NXP Kinetis KL25Z, but we will keep the lessons as generalized as possible so that what you learn could be applied to other ARM Cortex processors like the SAMD or STM32. It will be an interactive and practical course, with in-class programming exercises.

The location is M 304 and further details will be added to this blog post when I get them.

We'll be using the FRDM KL25Z board available from, or Farnell Germany.  I have about 15 of these boards to share with students, but I recommend that you purchase your own (and a mini-usb cable) to bring to class.  They're about 20 euros and come with a built-in debugger.

While I am still finalizing the specific lessons for the class, you can optionally get a book on the board.  It's not required, but I'll be referring to it if you wish to have extra material.

The boards are easy to program, as shown in my "subway programming" video using an ARM board from the same family:

Programming an ARM board on the subway in Toronto.

Programming an ARM board on the subway in Toronto.


This is the planned schedule and assessment structure.  Schedule and topics are subject to change and approval.

Day 1 (3.5 hours)
  • Intro to Embedded Systems
  • Software Design Basics
  • Software Engineering
  • Lab 0: Blinky Lights (Assessment: 0%)
  • "Two stage test" on software design (Assessment: 5% for group test stage, 5% for individual test stage)
Day 2 (8.5 hours)
  • Cortex M0+ Processor and Assembler
  • Lab 1: Assembler introduction (Assessment: 5% based on demonstration)
  • C code from an Assembler perspective
  • Lab 2: Systick Timer and Blocking Delays (Assessment: 5% based on demonstration)
  • Interrupts
  • Lab 3: Systick Timer for non-blocking, exception-based (non-blocking) timing (Assessment: 5% based on demonstration)
  • General Purpose Output
  • Lab 4: GPIO LED  (Assessment: 5% based on demonstration)
  • Two-stage mid-point test (Assessment: 5% for group test stage, 5% for individual test stage)
Day 3 (3.5 hours)
  • Content to be finalized … (including review)
  • Lab 5: TBA (Assessment: 5% all-or-nothing, based on demonstration)
Day 4 (8.5 hours)
  • Content order to be finalized... including more on timers, ADC, inputs, communications modes...
  • Lab 6: TBA (Assessment: 5% based on demonstration)
  • Lab 7: TBA (Assessment: 5% based on demonstration)
  • Review
  • Final test is a two-stage test (Assessment: 25% for group test stage, 25% for individual test stage)

We'll be using a two-stage test on the last day for assessment.  The first stage is an open-book, open-class test.  Students are given a written test and possibly a task to perform on their microcontroller.  They can solve the problems in small teams, as the entire class or as individuals -- it's up to them.  Talking, cell phones, laptops and internet usage are alll permitted.  This allows students to continue their learning ("formative assessment") during the test.  The second stage is more traditional. It's an individual test ("summative") and is very similar (but not identical) to the first stage test. It will immediately follow the first test. Students will not be assessed on their level of English.  If students choose to answer written questions in German I will do my best to translate them after-the-fact.


Note 1: The FRDM KL25Z boards do not come with headers, so if you wish to add double-row Arduino-style headers, the Samtec parts are listed on the MCU on Eclipse page.

Note 2: Some older versions of this board have a firmware that requires updating.  The firmware update process works best on a Windows XP or Windows 7 machine, as per these instructions.