# Asset Credits

Single source of truth for every asset pulled from an external source and added to `assets/`.
Original material by Salah Abdeljabar is listed as "Original" and covered by the repository
[CC BY 4.0](../LICENSE) license. Third-party material lists its source, author, license,
and any required attribution text.

**Last updated:** 2026-08-04 (Project 11 Part 1 added: Arduino IDE Library Manager screenshot for PubSubClient)

## Column key

| Column | Meaning |
|--------|---------|
| File | File name inside `assets/` |
| Description | What the asset is (schematic, photo, screenshot, icon, etc.) |
| Source | Where it came from (URL, or "Original" for self-created work) |
| Author | Creator or owner of the asset |
| License | License under which the asset is used (CC BY 4.0, MIT, GPL, etc.) |
| Attribution | Text that must appear visibly if the license requires it (blank otherwise) |

## Assets extracted from the vendor manual

The schematic diagrams, wiring photos, component photos, and pinout diagrams used across
the course were extracted from the original LAFVIN vendor manual PDF included in this
repository (`ESP32 Basic Starter Kit.pdf`). The PDF was obtained from LAFVIN's official
tutorials page (<https://lafvintech.com/pages/tutorials>, product LA043 ESP32 Basic Starter
Kit) and is included unmodified for reference. It remains the copyright of LAFVIN and is not
covered by this repository's [LICENSE](../LICENSE).

| File | Description | Source | Author | License | Attribution |
|------|-------------|--------|--------|---------|-------------|
| `p1-concept.jpeg` | Concept photo for Project 1 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p1-schematic.png` | Breadboard schematic for Project 1 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p2-adc-nonlinear.jpeg` | ADC non-linearity illustration for Project 2 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p2-adc-range.jpeg` | ADC range diagram for Project 2 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p2-highlighed-adc-pins.png` | Highlighted ADC pins image for Project 2 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p2-schematic.png` | Breadboard schematic for Project 2 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p3-pwm-concept.jpeg` | PWM concept diagram for Project 3 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p3-schematic.png` | Breadboard schematic for Project 3 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p4-pir-sensor.jpeg` | PIR sensor photo for Project 4 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p4-schematic.png` | Breadboard schematic for Project 4 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p5-schematic.png` | Breadboard schematic for Project 5 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p6-color-mixing.png` | Color mixing diagram for Project 6 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p6-common-cathode.jpeg` | Common cathode wiring photo for Project 6 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p6-overview.png` | Overview diagram for Project 6 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p6-schematic.png` | Breadboard schematic for Project 6 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p7-relay-control-pins.jpeg` | Relay control pins photo for Project 7 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p7-relay-diagram.jpeg` | Relay diagram for Project 7 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p7-relay-jumper.jpeg` | Relay jumper photo for Project 7 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p7-relay-photo.jpeg` | Relay module photo for Project 7 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p7-schematic.png` | Breadboard schematic for Project 7 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p8-overview.jpeg` | Overview diagram for Project 8 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p8-schematic.png` | Breadboard schematic for Project 8 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p9-schematic.png` | Breadboard schematic for Project 9 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p10-oled-photo.jpeg` | OLED module photo for Project 10 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p10-schematic.png` | Breadboard schematic for Project 10 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `f2-board-labeled.png` | Labeled ESP32 board diagram for Foundation 2 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `f2-boot-button.jpeg` | Boot button close-up for Foundation 2 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `f2-devkit-board.jpeg` | DevKit board photo for Foundation 2 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `f2-packing-list.jpeg` | Kit packing list photo for Foundation 2 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `f2-pinout.jpeg` | ESP32 pinout diagram for Foundation 2 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `f3-boards-manager-install.jpeg` | Boards Manager install screenshot for Foundation 3 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `f3-boards-manager-installed.jpeg` | Boards Manager installed screenshot for Foundation 3 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `f3-boards-manager-open.jpeg` | Boards Manager open screenshot for Foundation 3 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `f3-boards-url.jpeg` | Boards Manager URL screenshot for Foundation 3 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `f3-connecting.jpeg` | Board connecting screenshot for Foundation 3 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `f3-done-uploading.jpeg` | Upload complete screenshot for Foundation 3 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `f3-example-wifiscan.jpeg` | WiFi scan example screenshot for Foundation 3 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `f3-preferences-menu.jpeg` | Preferences menu screenshot for Foundation 3 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `f3-select-board.jpeg` | Board selection screenshot for Foundation 3 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `f3-select-port.jpeg` | Port selection screenshot for Foundation 3 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `f3-serial-output.jpeg` | Serial output screenshot for Foundation 3 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `f3-wifiscan-sketch.jpeg` | WiFi scan sketch screenshot for Foundation 3 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p1-demo.jpeg` | Demo photo for Project 1 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p2-demo.jpeg` | Demo photo for Project 2 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p3-demo.jpeg` | Demo photo for Project 3 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p4-demo.png` | Demo photo for Project 4 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p5-demo.png` | Demo photo for Project 5 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p5-webui.jpeg` | Web UI screenshot for Project 5 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p6-demo.png` | Demo photo for Project 6 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p7-demo.png` | Demo photo for Project 7 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p8-demo.png` | Demo photo for Project 8 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p9-demo.png` | Demo photo for Project 9 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p10-demo.jpeg` | Demo photo for Project 10 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p11-mqtt-pubsub.gif` | Animated demo of MQTT publish/subscribe for Project 11 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual |
| `p11-ubidots-device-created.png` | Screenshot: Ubidots Devices page showing a device auto-created after the first MQTT publish, for Project 11 | [Ubidots, "Connect an ESP32-DevKitC to Ubidots over MQTT"](https://help.ubidots.com/en/articles/748067-connect-an-esp32-devkitc-to-ubidots-over-mqtt) | Ubidots | Ubidots proprietary | Screenshot from Ubidots' help center article on connecting an ESP32-DevKitC over MQTT |
| `p11-ubidots-dashboards-nav.png` | Screenshot: Ubidots top navigation with the Dashboards menu open, for Project 11 | [Ubidots, "Create Dashboards and Widgets"](https://help.ubidots.com/en/articles/2400308-create-dashboards-and-widgets) | Ubidots | Ubidots proprietary | Screenshot from Ubidots' help center article on creating dashboards and widgets |
| `p11-ubidots-create-dashboard.png` | Screenshot: Ubidots Dashboards list with the CREATE button highlighted, for Project 11 | [Ubidots, "Create Dashboards and Widgets"](https://help.ubidots.com/en/articles/2400308-create-dashboards-and-widgets) | Ubidots | Ubidots proprietary | Screenshot from Ubidots' help center article on creating dashboards and widgets |
| `p11-pubsubclient-library-manager.png` | Screenshot: Arduino IDE Library Manager with "PubSubClient" searched, showing Nick O'Leary's library, for Project 11 Part 1 | [EMQX, "ESP32 Connects to the Free Public MQTT Broker"](https://www.emqx.com/en/blog/esp32-connects-to-the-free-public-mqtt-broker) | EMQX | EMQX proprietary | Screenshot from EMQX's blog post on connecting an ESP32 to a public MQTT broker |

## Original assets

| File | Description | Source | Author | License | Attribution |
|------|-------------|--------|--------|---------|-------------|
| `favicon.svg` | Site favicon: blue rounded rectangle with white "E" | Original | Salah Abdeljabar | CC BY 4.0 | |
| `favicon-32.png` | 32x32 PNG favicon generated from `favicon.svg` | Original | Salah Abdeljabar | CC BY 4.0 | |
| `apple-touch-icon.png` | 180x180 Apple Touch Icon generated from `favicon.svg` | Original | Salah Abdeljabar | CC BY 4.0 | |
| `og-hub.png` | Open Graph social card (1200×630) for the hub page | Original | Salah Abdeljabar | CC BY 4.0 | |
| `og-f1.png` | Open Graph social card for Foundation 1 | Original | Salah Abdeljabar | CC BY 4.0 | |
| `og-f2.png` | Open Graph social card for Foundation 2 | Original | Salah Abdeljabar | CC BY 4.0 | |
| `og-f3.png` | Open Graph social card for Foundation 3 | Original | Salah Abdeljabar | CC BY 4.0 | |
| `og-p1.png` | Open Graph social card for Project 1 | Original | Salah Abdeljabar | CC BY 4.0 | |
| `og-p2.png` | Open Graph social card for Project 2 | Original | Salah Abdeljabar | CC BY 4.0 | |
| `og-p3.png` | Open Graph social card for Project 3 | Original | Salah Abdeljabar | CC BY 4.0 | |
| `og-p4.png` | Open Graph social card for Project 4 | Original | Salah Abdeljabar | CC BY 4.0 | |
| `og-p5.png` | Open Graph social card for Project 5 | Original | Salah Abdeljabar | CC BY 4.0 | |
| `og-p6.png` | Open Graph social card for Project 6 | Original | Salah Abdeljabar | CC BY 4.0 | |
| `og-p7.png` | Open Graph social card for Project 7 | Original | Salah Abdeljabar | CC BY 4.0 | |
| `og-p8.png` | Open Graph social card for Project 8 | Original | Salah Abdeljabar | CC BY 4.0 | |
| `og-p9.png` | Open Graph social card for Project 9 | Original | Salah Abdeljabar | CC BY 4.0 | |
| `og-p10.png` | Open Graph social card for Project 10 | Original | Salah Abdeljabar | CC BY 4.0 | |
| `og-p11.png` | Open Graph social card for Project 11 | Original | Salah Abdeljabar | CC BY 4.0 | |
| `og-p12.png` | Open Graph social card for Project 12 | Original | Salah Abdeljabar | CC BY 4.0 | |
| `og-p13.png` | Open Graph social card for Project 13 | Original | Salah Abdeljabar | CC BY 4.0 | |
| `og-ref-gpio.png` | Open Graph social card for GPIO Pinout reference | Original | Salah Abdeljabar | CC BY 4.0 | |
| `og-ref-comp.png` | Open Graph social card for Components Glossary reference | Original | Salah Abdeljabar | CC BY 4.0 | |
| `og-ref-further.png` | Open Graph social card for Going Further reference | Original | Salah Abdeljabar | CC BY 4.0 | |
| `p12-telegram-unauthorized-user.png` | Screenshot: unauthorized Telegram user for Project 12 | `ESP32 Basic Starter Kit.pdf` (LAFVIN) | LAFVIN | LAFVIN proprietary | Extracted from the LAFVIN Basic Starter Kit for ESP32 vendor manual
| `p1-demo.gif` | Animated demo GIF for Project 1 (button + LED) | Original | Salah Abdeljabar | CC BY 4.0 | |
| `p2-demo.gif` | Animated demo GIF for Project 2 (potentiometer ADC) | Original | Salah Abdeljabar | CC BY 4.0 | |
| `p3-demo.gif` | Animated demo GIF for Project 3 (PWM fade) | Original | Salah Abdeljabar | CC BY 4.0 | |
| `p4-demo.gif` | Animated demo GIF for Project 4 (PIR motion sensor) | Original | Salah Abdeljabar | CC BY 4.0 | |
| `p5-demo.gif` | Animated demo GIF for Project 5 (LED web server) | Original | Salah Abdeljabar | CC BY 4.0 | |
| `p6-demo.gif` | Animated demo GIF for Project 6 (RGB color picker) | Original | Salah Abdeljabar | CC BY 4.0 | |
| `p7-demo.gif` | Animated demo GIF for Project 7 (relay web server) | Original | Salah Abdeljabar | CC BY 4.0 | |
| `p8-demo.gif` | Animated demo GIF for Project 8 (state synchronization) | Original | Salah Abdeljabar | CC BY 4.0 | |
| `p9-demo.gif` | Animated demo GIF for Project 9 (DHT11 web server) | Original | Salah Abdeljabar | CC BY 4.0 | |
| `p10-demo.gif` | Animated demo GIF for Project 10 (OLED display) | Original | Salah Abdeljabar | CC BY 4.0 | |
| `p12-demo.gif` | Animated demo GIF for Project 12 (Telegram bot) | Original | Salah Abdeljabar | CC BY 4.0 | |
| `p13-demo.gif` | Animated demo GIF for Project 13 (capstone concept) | Original | Salah Abdeljabar | CC BY 4.0 | |
| `p12-telegram-getupdates-chatid.png` | Illustration: browser showing Telegram's `getUpdates` JSON response with the chat id highlighted, for Project 12 | Original | Salah Abdeljabar | CC BY 4.0 | |
| `og-p14.png` | Open Graph social card for Project 14 | Original | Salah Abdeljabar | CC BY 4.0 | |
| `p14-schematic.png` | Wiring diagram for Project 14 (DHT11 on GPIO 4, LED on GPIO 26) | Original | Salah Abdeljabar | CC BY 4.0 | |
| `p14-demo.png` | Illustration: a Wi-Fi browser and a BLE app both showing the same live LED state and sensor reading at once, for Project 14 | Original | Salah Abdeljabar | CC BY 4.0 | |