Embedded systems are computing devices designed to perform specific tasks as part of larger systems such as digital cameras, measuring instruments, cars, etc. Technological advances have added complexity to embedded-systems development, which needs to be reflected in academic curricula. This paper presents the design and delivery of an intermediate embedded-systems course that follows up on a typical introduction to microcontrollers and, while doing so, it offers an example of engineering-course development that makes use of collaborative learning, outbound ties and learning modes of a community of practice. The paper explains planning, learning objectives, activities and other aspects of the course, including hardware and software tools used as well as lessons learned. A section is dedicated to student projects and current results.