💡 Hello World: Course Overview#
Note
Registration is live! Course quizzes and grades are available at https://q.utoronto.ca/.
In this course, you will build a minimal working example for a self-driving lab, using dimmable LEDs and a light sensor to perform a color-matching task. This introduction will help you implement microcontroller programming via a Pico W, Bayesian optimization via the Ax Platform, device communication via MQTT, and database integration via MongoDB. Finally, you will piece together the individual components to complete your self-driving lab. This introductory course will prepare you for deeper dives in data science, robotics, software development, and system design in later microcourses.
🔑 Prerequisites#
Warning
This course requires physical hardware and a 2.4 GHz WPA2-Personal wireless network
If you do not have the hardware, you will need to purchase the required components, replacing the USB power adapter with the correct style for your country (e.g., European type C), if necessary. You may also refer to “Before you Begin”.

Tip
If the AS7341 sensor shows as being on backorder, you can either order it from DigiKey still and wait until it comes back in stock or source it from another supplier (see e.g., Adafruit’s listing, Mouser). If you have trouble accessing the DigiKey cart, see the CSV version of the cart [permalink].
You will need access to a 2.4 GHz WPA2-personal wireless network (i.e., WiFi name and password only, without usernames, which is required for most internet-of-things devices). If you do not already have access to one, some alternatives include setting up a home network to broadcast both 2.4 GHz and 5 GHz networks per your router’s specific instructions, or perhaps easier - using a mobile hotspot in extended compatibility mode. Likewise, you may also use a SIM-enabled router or check if your organization supports IoT devices. Eduroam is not yet supported as of 2024-07-16. See additional recommendations for gaining access to the required network.

Tip
If you need a quick solution that can be standalone and dedicated, we have tested the Cudy AC1200 SIM-enabled Router with a Hologram IoT SIM Card and pay-as-you-go plan, though pay-as-you-go data is expensive at US$100/GB (US$0.10/MB) and intended for low-bandwidth data transfer.
For participants to complete this course within the expected timeframe (approx. 25 hours), at least beginner proficiency in Python programming is recommended. Those with advanced programming expertise will likely require a significantly shorter amount of time, whereas those with no prior programming experience may require 50 hours or more.
🎯 Learning Outcomes#
Define and explain key terms and principles of self-driving labs to demonstrate understanding
Apply MQTT or similar frameworks to send commands and receive sensor data over WiFi
Demonstrate the ability to use MongoDB to store and retrieve experiment configurations and results effectively
Develop and implement software on a Raspberry Pi Pico W microcontroller to control device power and read sensor data accurately
Modify a Bayesian optimization script using the Ax Platform to iteratively propose new experimental configurations
Integrate the individual SDL components to orchestrate the full ‘Hello World’ workflow
🛠️ Competencies/Skills#
Basic self-driving lab literacy
Microcontrollers and sensors
Bayesian optimization
Hardware/software communication
Database management
Workflow orchestration
🧩 Modules#
The orientation modules are intended to be completed in under one hour in total. The modules after are intended to take approximately 3-4 hours each, assuming that the recommended prerequisites from above have been met.
Module Name |
Topics |
Learning Outcomes |
|---|---|---|
1.0 Orientation |
|
|
1.1 Run the demo |
|
|
1.2 Blink and read |
|
|
1.3 Bayesian optimization |
|
|
1.4 Device communication |
|
|
1.5 Database Management |
|
|
1.6 Connecting the pieces |
|
|
⚖️ Course Assessments and Grading Schema#
Each student is required to complete various quizzes and GitHub Classroom assignments. The course is structured into an orientation module followed by several modules. The course is graded on a pass/fail basis with 70% as the threshold for passing. Here is the breakdown of the points for each part of the course:
- 🧭 Orientation Module: Worth 15 points.
- 📚 Modules 1-6: Each includes:
- 🧭 A guided notebook tutorial (ungraded)
- 📓 A knowledge check (graded, 5 points)
- 🛠️ A GitHub Classroom assignment (graded, 10 points*)
*The final module's GitHub Classroom assignment is worth 30 points.
Note that partial points are available on certain assignments.
👤 Course developer(s)#
Sterling Baird, PhD Materials Science and Engineering (Acceleration Consortium)