EmbeddedRelated.com
Blogs

Video-Based STEM Embedded Systems Curriculum, Part 1

Steve BranamOctober 24, 2021

Contents:


Introduction

This is a suggested curriculum for in-class, after-school, or home-based middle-school, high-school, college, or adult STEM education, teaching introductory embedded systems, using free online videos as the primary educational resource. It assumes no previous background in the material. You can also use it for self-directed, self-taught education.

Feel free to use it all, or pick and choose what works for you, and share it with others!

Based on my experience as a Boy Scout adult leader for 9 years and running a middle-school robotics club for 4 years, I believe this is within the capabilities of middle-school students, starting with grade 5. I'm absolutely sure it's within the capabilities of high-school students and beyond.

They have the dexterity, intelligence, and focus to play video games and operate smartphones and home computers. If they can do that, they can do this.

The goal is to teach basic software and hardware skills for working on embedded systems, from programming microcontrollers to building custom boards. This will arm participants with the knowledge and skills to pursue more advanced training and education, and potentially to start working professionally at an entry level.

This is a complex and wide-ranging subject. It's virtually impossible to find a single resource that teaches it all. For all that I've learned over 40 years of experience, there's still plenty I don't know. This curriculum just scratches the surface.

Ten or 20 years ago, this wouldn't have been feasible. It would have required thousands of dollars of college courses; hundreds of dollars of textbooks; thousands of dollars of development workstation and test equipment; and thousands of dollars of embedded systems hardware and development software. It might have cost $10,000-30,000 per student. 

But modern software, hardware, and communications put it within reach. The course material and development software are free; the development workstation, books, and test equipment are only hundreds of dollars; and the embedded systems hardware is only tens of dollars. The cost per student is under $1500. The potential return on that investment is enormous.

Then it only takes a few teachers, volunteers, and mentors to carry it out. Or you can do it for yourself.

If you'd like additional information beyond what I'm going to cover in this post, see these previous posts:

I may also adjust these posts, so check back for updates.

What's An Embedded System?

It's a computer that's embedded inside another product, like a car, a microwave, a robot, an aircraft, or a giant industrial machine in a factory; or an IoT device like an Amazon Echo, a Sonos speaker, or a SimpliSafe home security system. You think of the thing as the end product, not as a computer. The computer happens to be one of the things inside that makes it work.

The fascinating thing about embedded systems is that you get to have your hands in the guts of things. The code you write makes a physical object interact with the real world. It's a direct control feedback loop. Working on them is incredibly fun and satisfying.

Embedded systems are a multi-disciplinary endeavor. At a minimum they require a mix of electronics and software knowledge. Depending on the particular application (the end product you're building), they may also require some combination of mechanical, materials science, physics, chemical, biological, medical, or advanced mathematical knowledge.


Adapting To Your Circumstances

Everything I'm going to cover assumes ideal circumstances in terms of funding, time, and availability. That may be unrealistic for you. Adapt it to your particular circumstances.

If some of my suggestions aren't practical for you, ignore them, and make use of the things that are. Pick and choose what works for you. There's a lot you can do with this no matter what, from the most bare-bones version all the way up to my ideal assumptions.

In particular, I'm assuming a 1:1 ratio of every item of equipment, books, and supplies per student. I realize it's a challenge for some to afford a single item per school, let alone per student. Find a ratio that works for you.

I also suggest that you give every student all those items outright at the end of the program to keep as their personal property. "You mean give everything away for free?" Yes. Those who support their students will rise to the top. Those who don't, won't; they will in fact fall to the bottom as others pass them by.

I realize that's even more challenging, since it means re-funding everything for the next cycle, and not everyone agrees with the basic concept. Find a set of items to let them keep that works for you. Maybe all you can let them keep is the experience.

The equipment includes sufficient items to work with several different embedded system boards and do basic board design and assembly. Some of that may be more involved than you want to do. If you need advice to scale it back, post a comment and I'll respond to it. That way others can benefit from the information.

Because this is a fairly ambitious curriculum, you may want to split it up over two school years, as beginner and advanced levels. If you exhaust this material, there's plenty more out there, building on this foundation.

Adapt all this to the practical realities you have. In addition to established budgets, fundraisers and formal grants may help.

But it's based on the philosophy of giving people the training and equipment they need to launch them into the world. Lack of access to equipment can hobble even the best-trained people, wasting opportunities.


Suggested Policies

The safety requirements and risks are equivalent to doing experiments in high-school chemistry and physics classes. Students should wear safety glasses when doing anything with hardware.

  • Power levels are low, using small batteries, solar cells, USB cables, or wall-plug power adapters similar to chargers for consumer portable electronics like smartphones, laptops, and video games. Even at these low levels, small electronic components can pop and be destroyed if overloaded or connected incorrectly.
  • Soldering irons and solder are very hot during assembly steps.
  • Cut wire ends and component lead ends are sharp. Wire ends and lead ends may fly across the room when cut.

Encourage good computer use habits.

  • Follow good cybersecurity hygiene.
  • Avoid websites with inappropriate content.
  • Do not install software that may contain viruses.
  • Regularly make copies of files to SD cards and USB sticks (removable storage). Make multiple copies in case one gets lost or corrupted.
  • Expect to lose all files and software on a laptop or removable storage that gets damaged, infected with viruses, or corrupted. In addition to malicious software, software bugs or failed updates may cause file corruption. So back them up and make multiple copies!

Encourage students who are doing well to help out students who are having difficulties. Sodoto (See One, Do One, Teach One) is an outstanding learning method and encourages mentorship. Real-world engineering is a cooperative team effort.

Encourage students who are having difficulties to ask for help. Encourage them to help others with their strategies when they overcome those difficulties.

Allow students who complete the program to be volunteer assistants for subsequent cycles. That builds a pipeline of experience and mentorship that will carry into their professional lives.

Provide a full set of equipment, books, and supplies for each individual student. Allow them to take items home as desired to use there.

Let them keep that full set as their own personal property at the end of the program.

Encourage experimentation and treating failures as learning opportunities. As long as there's no damage and no injury, there's no harm done. Sometimes failures teach more than successes.

Pace the program according to the actual progress of the students rather than trying to achieve a particular completion goal. There's no target schedule to be maintained; you get done what you get done. Slow down when necessary to allow all the students to progress together, subject to your judgement about what's practically achievable. Flexibility is key.

Encourage students to continue their education on their own after the program ends, armed with the skills and tools they've acquired. That includes continuing with the curriculum if they didn't complete it, and seeking out additional material to expand their skills. That encourages self-paced lifelong learning, since the technology and the field are constantly changing (remember the communicators on Star Trek that could talk to orbit and across a planet? These days we call them cellphones!).

Remind students that this curriculum is only enough to get them started and prepare them to go further. They need to take it from there.


The Video Educators

There's a vast ocean of professional and amateur educational videos available. Part of the challenge in learning is curating all that material. I've found these people to be particular effective in their presentation and content; I've listed the student level their material tends to target.

  • Bryan Vines: beginner.
  • Troy Baverstock: beginner to intermediate.
  • Ryan Riley: beginner to advanced.
  • Collin Cunningham: beginner to intermediate.
  • Shawn Hymel (pronounced "hee-mel"): beginner to advanced.
  • Miro Samek (pronounced "mee-ro"): intermediate to advanced.

Many of their videos have accompanying written material. Many are watchable at 2x speed.

My thanks to them for creating spectacular educational content! Let's put it to use.

In some of the sections below, I've listed an educator last name to indicate who covers the topic.

You'll see additional recommendations come up on YouTube that are worth investigating. Feel free to add your own additional educators if you've found some you like. It's always good to learn from multiple sources, since each has their own particular emphasis, coverage, and ability to convey the material. Sometimes it takes an alternative perspective to get it down.


Equipment, Books, and Supplies

These lists are per student if possible, with budgetary price estimates in USD. Most of the items are modest cost. A few are more significant, and constitute the bulk of the funding requirements. Includes Amazon affiliate links.

Some items are fairly generic, with a variety of choices in a range of prices, and can be substituted with similar products. Others are very specific. There are also other suppliers than the ones I've linked to.

Alternate products or suppliers may be necessary due to parts shortages and long lead times (pay attention to stock availability and lead time listed on supplier websites).

Plan on having one or two spares of everything to cover loss or damage.

Some websites and documentation incorrectly refer to soldering as "welding". This curriculum does not include actual welding.

Equipment

  1. Software development and board design station:
    1. Low-end to medium-range Windows laptop computer, USD 250-600. These tend to offer the best capability for a given price point. Mac and Linux laptops are suitable as well. While desktops tend to be cheaper, the portability of laptops allows students to take them home. (Note: I've bought a USD 250 Windows laptop to see how effective it is for this use.)
    2. USB mouse (such as Logitech B100 Corded Mouse – Wired USB Mouse for Computers and laptops, for Right or Left Hand Use, Black, USD 10), USD 10-20.
    3. USB stick, 32-128 GB (such as PNY 128GB Turbo Attaché 4 USB 3.0 Flash Drive, USD 18), USD 5-20.
    4. SD or MicroSD card that fits in laptop slot, 32-128 GB, USD 10-30.
  2. Test and measurement instruments:
    1. Digital Multi Meter (DMM) (such as AstroAI Multimeter 2000 Counts Digital Multimeter with DC AC Voltmeter and Ohm Volt Amp Tester, USD 15), USD 10-80.
    2. One of:
      1. Saleae Logic 8 logic analyzer, USD 399, or USD 199 with student/enthusiast discount code.
      2. Digilent Digital Discovery logic analyzer, pattern generator, and power supply, with 2x16 flywires, USD 210.
      3. Digilent Analog Discovery Systems Kit: USB Oscilloscope & Logic Analyzer (adds oscilloscope and other functions to Digital Discovery), USD 419. 
  3. Embedded system boards:
    1. ELEGOO UNO Project Super Starter Kit with Tutorial and UNO R3 Compatible with Arduino IDE, USD 40, or similar (Vines). This includes an Arduino Uno, breadboard, wires, sensors, motors, and a variety of electronic parts and components. It also includes a DVD containing instructions and experiments (also available as a downloadable PDF).
    2. Raspberry Pi Pico, USD 4 (Hymel).
    3. STM32L476 Nucleo-64, USD 15, or similar (Hymel).
    4. Espressif ESP32 (such as HiLetgo ESP-WROOM-32 ESP32 ESP-32S Development Board 2.4GHz Dual-Mode WiFi + Bluetooth Dual Cores Microcontroller Processor Integrated with Antenna RF AMP Filter AP STA for Arduino IDE, USD 11, or FeatherS2 - ESP32-S2 Feather Development Board, USD 25), USD 10-30 (Hymel).
    5. TI Tiva C LaunchPad Evaluation Kit, USD 16 (Samek).
  4. Soldering and assembly station (Cunningham):
    1. Two alternative to buying most of the individual items in this section, plus a DMM, at different price points:
      1. Ladyada's Electronics Toolkit, USD 100.
      2. ANBES Soldering Iron Kit 60W Adjustable Temperature Welding Tool, Digital Multimeter, USD 22; I received this as part of the student kit for a course I attended.
    2. Soldering iron with stand (such as Adjustable 30W 110V soldering iron - XY-258 110V, USD 22, or ATTEN 65-Watt Soldering Iron With Digital Adjustable Temperature, USD 30; plus Soldering iron stand, USD 9), USD 25-60.
    3. Assorted spare soldering iron tips (fine tip, chisel/screwdriver tip), USD 5-10 each.
    4. Heat-resistant silicone soldering mat (such as Kaisi Heat Insulation Silicone Repair Mat with Scale Ruler and Screw Position for Soldering Iron, Phone and Computer Repair Size: 13.7 x 9.8 Inches, USD 8), USD 5-15.
    5. Solder fume extractor fan (such as AC Infinity MULTIFAN S3, Quiet 120mm USB Fan, UL-Certified for Receiver DVR Playstation Xbox Computer Cabinet Cooling, USD 13), USD 10-60.
    6. Brass sponge and holder (such as Ruiling 1pc Solder Iron Tip Clean Ball Holder, Brass Wire Cleaner Sponge Ball Heat with Resistant Stainless Steel Case Need No Water, USD 8), USD 8-15.
    7. Solder sucker (such as Solder sucker, USD 5), USD 3-10.
    8. Panavise Jr., USD 30.
    9. Helping Hand Third Hand with magnifying glass, USD 6.
    10. Wire strippers (such as Multi-size wire stripper & cutter, USD 7), USD 5-10.
    11. Diagonal cutters (such as Flush diagonal cutters, USD 8), USD 5-12.
    12. Needlenose pliers (such as Simple pliers, USD 3) USD 3-10.
    13. Tweezers (such as Fine tip straight tweezers - ESD safe - 135mm, USD 4), 3-10.
    14. ESD-safe cleaning brush (such as ESD-Safe PCB Cleaning Brush, USD 3), USD 3-5.
    15. Mini screwdriver set (such as Syntus Precision Screwdriver Set, 63 in 1 with 57 Bits Screwdriver Kit, Magnetic Driver Electronics Repair Tool Kit for iPhone, Tablet, Macbook, Xbox, Cellphone, PC, Game Console, Black, USD 15), USD 10-30
  5. Miscellaneous components:
    1. Adafruit USB to TTL serial cable, USD 10.
    2. Adafruit BME280 I2C or SPI Temperature Humidity Pressure Sensor, USD 15 (Hymel).
    3. Zipper tool pouches (such as Augbunny 100% Cotton 16oz Heavy Duty Multi-purpose Canvas Zipper Tool Bag Organize Storage Pouch 4-pack, USD 13), USD 10-15.
    4. Backpack or carrying case for everything (such as WORKPRO 16-inch Wide Mouth Tool Bag with Water Proof Molded Base, USD 23), USD 15-50.

Books

These provide supplementary tutorial and reference information at a beginner to intermediate level.

  1. Learn Electronics with Arduino: An Illustrated Beginner's Guide to Physical Computing, by Jody Culkin and Eric Hagan, USD 20.
  2. Hacking Electronics: Learning Electronics with Arduino and Raspberry Pi, Second Edition, by Simon Monk, USD 30.
  3. Programming Arduino: Getting Started with Sketches, Second Edition, by Simon Monk, USD 15.
  4. Get Started with MicroPython on Raspberry Pi Pico, by Gareth Halfacree and Ben Everard, USD 20.
  5. Python for Microcontrollers: Getting Started with MicroPython, by Donald Norris, USD 20.
  6. Hands-On RTOS with Microcontrollers: Building real-time embedded systems using FreeRTOS, STM32 MCUs, and SEGGER debug tools, by Brian Amos, USD 45. This specifically uses the NUCLEO-F767ZI board, USD 71, but can be used with other boards, and is a great tutorial on FreeRTOS (see my review).
  7. Make: Electronics: Learning by Discovery: A hands-on primer for the new electronics enthusiast, by Charles Platt, USD 35 (see my review).
  8. Make: More Electronics: Journey Deep Into the World of Logic Chips, Amplifiers, Sensors, and Randomicity, by Charles Platt

Supplies

  1. Adafruit Parts Pal kit or similar, USD 20.
  2. Adafruit Perma-Proto Half-sized Breadboard PCB - 3 Pack, USD 13.
  3. Adafruit Hook-up Wire Spool Set - 22AWG Solid Core - 6 x 25 ft, USD 16.
  4. Solder (such as Solder Wire - SAC305 RoHS Lead Free - 0.5mm/.02" diameter - 50g, USD 15), USD 10-20
  5. Solder tip tinner (such as Thermaltronics FBA_TMT-TC-2 Lead Free Tip Tinner, 20 g in 0.8 oz. Container, USD 7), USD 5-10.
  6. Solder flux (such as MG Chemicals - 835-100ML Liquid Rosin Flux, for Leaded and Lead Free Solder, 125 ml Bottle, USD 16), USD 10-20.
  7. Solder wick (such as Solder wick - 1.5mm wide and 1.5m / 5 feet long, USD 3), USD 3-5.
  8. Chip Quik SMD Removal Kit, USD 16.
  9. uxcell Silicone Tube 5mm(1/5") ID x 7mm(7/25") OD 3.3' Flexible Silicone Rubber Tubing Water Air Hose Pipe Translucent for Pump Transfer (put small piece on end of solder sucker), USD 6.
  10. Multi-Colored Heat Shrink Pack - 3/32" + 1/8" + 3/16" Diameters, USD 5.
  11. Isopropyl alcohol wipes
  12. Q-tips
  13. Kimwipes (such as Kimberly-Clark 34155 Kimwipes 1-Ply Delicate Task Wipes, 4.4" x 8.4", Tissue (Pack of 280), USD 8), USD 5-10/box.
  14. Gikfun Electronic LED Flashing Lights Soldering Practice Board PCB DIY Kit EK1874, USD 12.
  15. Gikfun DIY SMD SMT Welding Practice Soldering Skill Training Board NE555 CD4017 Water Flowing Led DIY Kit EK1885, USD 8.
  16. ALMOCN for Digital Oscilloscope Kit Open-sourced 2.4" TFT 1MSPS for Digital Oscilloscope DIY Kit Handheld Pocket Sized 13803K, SMD pre-soldered, USD 20 (Cunningham). See my review of it on Amazon, with a short video. For anyone interested in the MCU source code for this, it's available as a zip file download at the bottom of this page. The actual DSO application code is distributed as a binary archive, but all the rest, for interfacing to the ADC, buttons, and display, is in source form.

Software

This list is provided for completeness, but doesn't involve any cost. All software used is free.

  1. Arduino IDE (Vines)
  2. Kicad (pronounced "kee-cad", Hymel)
  3. Thonny Python IDE (Hymel)
  4. STM32Cube IDE (Hymel)
  5. FreeRTOS (Hymel)
  6. IAR Embedded Workbench For ARM, size-limited free version (Samek)

Lesson Summary

These are the general lesson topics. In subsequent posts, I'll provide lesson plans with links to specific videos and accompanying information.

  • Programming Arduino and using various components, sensors, and motors (Vines).
  • Drawing circuit pictures and schematics with Fritzing (Baverstock, Riley).
  • Basic electronics (Cunningham).
  • Using test and measurement instruments (Cunningham).
  • Basic soldering and assembly skills (Cunningham).
  • Custom board design with Kicad, including ordering and assembling the actual designed board for under USD 50 (Hymel).
  • Raspberry Pi Pico and MicroPython (Hymel).
  • Getting started with STM32 and Nucleo (Hymel).
  • Introduction to RTOS (Hymel).
  • Designing with state machines (Samek).

Suggested Teaching Method

This is intended as a very hands-on, experiential program. The key to learning the material is to actually do it, developing the skills with all the attendant mistakes and successes.

As a teacher or assistant, you act as a facilitator in an advisory capacity. Review the material and perform the hands-on activities ahead of time, following the sodoto model. While prior experience or expertise in the subject matter helps, it's not required; it will come with time, just as it does for the students.

One thing you'll need to do is figure out how the current version of the software you've installed works, compared to the version shown in the videos. Complex software tools inevitably change, so the menus and icons may be a little different, the names of things may have changed, and the sequence of dialogs may be different. But overall the tools should still operate largely the same, and with a few minutes puzzling through, you can figure it out.

Your role is to:

  • Present the videos and related material.
  • Answer questions and provide additional information, filling in the blanks and holes if necessary, and relating the videos and lessons to each other. If you do have the knowledge, act as a supplementary resource.
  • Assist with software installation, setup, and use as shown in the videos, covering any differences in versions.
  • Run hands-on activities, supervising safety.
  • Help out with problems, using leading questions when possible rather than offering solutions.
  • Guide the students in learning any lessons that failures might offer.
  • Help the students maintain a positive attitude in the face of adversity, fostering patience, resilience, persistence, and tenacity. These are critical for success working as an embedded systems developer, because a lot goes wrong and can be frustrating.

A typical session might consist of:

  1. Discussion of how the previous session went, including any particular challenges and lessons learned from failures, and demonstrations of results.
  2. Brief show-and-tell about the lesson topic, showing the hardware and demonstrating items.
  3. Watch one or more videos, taking questions at the end of each one.
  4. Hands-on activities performing what the videos covered. This might require re-watching and pausing the videos step-by-step, or skimming through parts at 2x speed. It might also require multiple attempts.

For some topics, it might be useful to show all the videos first and then do hands-on, and for others it might be better to alternate one video and hands-on activity at a time. Again, flexibility is key.

You may want to carry out additional hands-on projects based on the material to date before proceeding on to new material.


Continue to Part 2

Part 2 provides the first 3 specific lesson plans.



To post reply to a comment, click on the 'reply' button attached to each comment. To post a new comment (not a reply to a comment) check out the 'Write a Comment' tab at the top of the comments.

Please login (on the right) if you already have an account on this platform.

Otherwise, please use this form to register (free) an join one of the largest online community for Electrical/Embedded/DSP/FPGA/ML engineers: