Tutorial 6 of 10

Examples catalog

Explore all 32 development examples without overstating evidence.

Difficulty
Beginner
Time
15 min
Review baseline
App 0.2.0 beta · firmware 0.6.0 · PBLE/1

Prerequisites

  • Familiarity with GitHub import and explicit Run

Outcomes

  • Find an example by category and planned release
  • Distinguish designed profiles from physical validation
  • Open every source link at one immutable repository commit

Release-aware guidance

Compatibility

The review baseline above is not a promise about the installer currently being served. Confirm the active version, exact profile, and enabled action on the current firmware and flash page before provisioning or changing hardware.

Qualified firmwaredescribes firmware evidence. The table below describes this lesson's scope; it does not turn designed compatibility into hardware validation.

Lesson scope for the five firmware profiles
Firmware profileLesson scope
Classic ESP32 (4 MiB)esp32-4mbDevelopment example — physical validation not recorded
ESP32-S3 N16R8 · lean genericesp32-s3-n16r8Development example — physical validation not recorded
Waveshare ESP32-S3-LCD-1.47Bwaveshare-esp32-s3-lcd-147bDevelopment example — physical validation not recorded
ESP32-C3 (4 MiB)esp32-c3-4mbDevelopment example — physical validation not recorded
Raspberry Pi Pico 2 Wrpi-pico2-wDevelopment example — physical validation not recorded

Designed profiles record author intent. Validated profiles are empty for every entry in this snapshot, so no example below is presented as physically validated or supported.

Before you begin

Full runnable .py source, catalog metadata, future release tags, and HIL records belong to the separate PyBLE examples repository. This site shows metadata and immutable links rather than duplicating complete programs.

Reviewed snapshot

Repository state
Development · unreleased
Examples
32
Firmware baseline
0.6.0
Protocol
PBLE/1
Commit
8f4529b3cd0d62e8d53d7deb4f37e5cd2a171fd1

Complete static index

All 32 authored examples

Planned 0.1.0

8 entries · planning label only

Basics · portable · planned 0.1.0

Hello Console

Confirm import, Run, and bounded console output.

Designed profiles
ESP32 4 MiB · ESP32-S3 N16R8 · Waveshare LCD 1.47B · ESP32-C3 4 MiB · Pico 2 W
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

Basics · portable · planned 0.1.0

Paced Counter

Use variables, a finite loop, and paced console output.

Designed profiles
ESP32 4 MiB · ESP32-S3 N16R8 · Waveshare LCD 1.47B · ESP32-C3 4 MiB · Pico 2 W
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

Basics · portable · planned 0.1.0

Runtime Information

Report non-identifying runtime and free-heap information.

Designed profiles
ESP32 4 MiB · ESP32-S3 N16R8 · Waveshare LCD 1.47B · ESP32-C3 4 MiB · Pico 2 W
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

Workflow · portable · planned 0.1.0

File Round Trip

Create, verify, and remove one tiny text file safely.

Designed profiles
ESP32 4 MiB · ESP32-S3 N16R8 · Waveshare LCD 1.47B · ESP32-C3 4 MiB · Pico 2 W
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

GPIO · capability · planned 0.1.0

Blink an External LED

Drive an explicitly configured external LED for finite toggles.

Designed profiles
ESP32 4 MiB · ESP32-S3 N16R8 · Waveshare LCD 1.47B · ESP32-C3 4 MiB · Pico 2 W
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

NeoPixel · capability · planned 0.1.0

Single NeoPixel

Show a dim finite color sequence on an explicitly configured pixel.

Designed profiles
ESP32 4 MiB · ESP32-S3 N16R8 · Waveshare LCD 1.47B · ESP32-C3 4 MiB
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

GPIO · exact-hardware · planned 0.1.0

Pico 2 W Onboard LED

Blink the exact Pico 2 W onboard LED by its named pin.

Designed profiles
Pico 2 W
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

Display · exact-hardware · planned 0.1.0

Waveshare LCD Hello

Render one bounded hello frame on the exact B-version display.

Designed profiles
Waveshare LCD 1.47B
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

Planned 0.2.0

17 entries · planning label only

Basics · portable · planned 0.2.0

Data and Decisions

Combine values, collections, and branching in one bounded example.

Designed profiles
ESP32 4 MiB · ESP32-S3 N16R8 · Waveshare LCD 1.47B · ESP32-C3 4 MiB · Pico 2 W
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

Basics · portable · planned 0.2.0

Reusable Functions

Use parameters, return values, and function composition.

Designed profiles
ESP32 4 MiB · ESP32-S3 N16R8 · Waveshare LCD 1.47B · ESP32-C3 4 MiB · Pico 2 W
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

Basics · portable · planned 0.2.0

Error Handling

Validate data and catch one deliberate expected error.

Designed profiles
ESP32 4 MiB · ESP32-S3 N16R8 · Waveshare LCD 1.47B · ESP32-C3 4 MiB · Pico 2 W
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

Workflow · portable · planned 0.2.0

Console Input

Read one non-secret console response without an input loop.

Designed profiles
ESP32 4 MiB · ESP32-S3 N16R8 · Waveshare LCD 1.47B · ESP32-C3 4 MiB · Pico 2 W
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

Data · portable · planned 0.2.0

JSON Data

Encode and decode a small object entirely in memory.

Designed profiles
ESP32 4 MiB · ESP32-S3 N16R8 · Waveshare LCD 1.47B · ESP32-C3 4 MiB · Pico 2 W
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

Workflow · portable · planned 0.2.0

Async Cooperation

Run two finite cooperative tasks with paced waits.

Designed profiles
ESP32 4 MiB · ESP32-S3 N16R8 · Waveshare LCD 1.47B · ESP32-C3 4 MiB · Pico 2 W
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

Data · portable · planned 0.2.0

Binary Data

Pack, inspect, and unpack one fixed-size binary record.

Designed profiles
ESP32 4 MiB · ESP32-S3 N16R8 · Waveshare LCD 1.47B · ESP32-C3 4 MiB · Pico 2 W
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

Workflow · portable · planned 0.2.0

Stop a Program

Practice Stop on visible paced work with a hard upper bound.

Designed profiles
ESP32 4 MiB · ESP32-S3 N16R8 · Waveshare LCD 1.47B · ESP32-C3 4 MiB · Pico 2 W
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

Workflow · portable · planned 0.2.0

Expected Runner Error

Raise one announced ValueError to teach runner error state.

Designed profiles
ESP32 4 MiB · ESP32-S3 N16R8 · Waveshare LCD 1.47B · ESP32-C3 4 MiB · Pico 2 W
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

Workflow · portable · planned 0.2.0

List a Directory

List a capped set of sanitized names from one absolute directory.

Designed profiles
ESP32 4 MiB · ESP32-S3 N16R8 · Waveshare LCD 1.47B · ESP32-C3 4 MiB · Pico 2 W
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

GPIO · capability · planned 0.2.0

Read an External Button

Report transitions from an explicitly configured button input.

Designed profiles
ESP32 4 MiB · ESP32-S3 N16R8 · Waveshare LCD 1.47B · ESP32-C3 4 MiB · Pico 2 W
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

GPIO · capability · planned 0.2.0

Button Controls LED

Combine an explicitly configured button and external LED.

Designed profiles
ESP32 4 MiB · ESP32-S3 N16R8 · Waveshare LCD 1.47B · ESP32-C3 4 MiB · Pico 2 W
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

GPIO · capability · planned 0.2.0

PWM Fade

Apply a bounded low-duty PWM fade on a reviewed pin.

Designed profiles
ESP32 4 MiB · ESP32-S3 N16R8 · Waveshare LCD 1.47B · ESP32-C3 4 MiB · Pico 2 W
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

GPIO · capability · planned 0.2.0

ADC Sampling

Take a small set of raw and 0-to-1 scaled ADC readings.

Designed profiles
ESP32 4 MiB · ESP32-S3 N16R8 · Waveshare LCD 1.47B · ESP32-C3 4 MiB · Pico 2 W
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

Buses · capability · planned 0.2.0

I2C Scan

Scan one explicitly configured software I2C bus.

Designed profiles
ESP32 4 MiB · ESP32-S3 N16R8 · Waveshare LCD 1.47B · ESP32-C3 4 MiB · Pico 2 W
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

Buses · capability · planned 0.2.0

SPI Loopback

Verify one finite payload on an explicitly configured SoftSPI bus.

Designed profiles
ESP32 4 MiB · ESP32-S3 N16R8 · Waveshare LCD 1.47B · ESP32-C3 4 MiB · Pico 2 W
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

NeoPixel · capability · planned 0.2.0

NeoPixel Strip Chase

Move one dim pixel through a capped strip for finite cycles.

Designed profiles
ESP32 4 MiB · ESP32-S3 N16R8 · Waveshare LCD 1.47B · ESP32-C3 4 MiB
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

Planned 0.3.0

7 entries · planning label only

GPIO · exact-hardware · planned 0.3.0

Pico 2 W LED Patterns

Compose reusable finite patterns on the exact onboard LED.

Designed profiles
Pico 2 W
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

Display · exact-hardware · planned 0.3.0

Waveshare LCD Shapes

Draw the qualified framebuffer primitives in one bounded frame.

Designed profiles
Waveshare LCD 1.47B
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

NeoPixel · exact-hardware · planned 0.3.0

Waveshare Onboard Pixel

Show a dim finite sequence on the exact board's GPIO38 pixel.

Designed profiles
Waveshare LCD 1.47B
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

Projects · project · planned 0.3.0

Button Press Counter

Debounce and count external button presses for a finite interval.

Designed profiles
ESP32 4 MiB · ESP32-S3 N16R8 · Waveshare LCD 1.47B · ESP32-C3 4 MiB · Pico 2 W
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

Projects · project · planned 0.3.0

ADC Data Logger

Write finite ADC samples to one capped CSV-style board file.

Designed profiles
ESP32 4 MiB · ESP32-S3 N16R8 · Waveshare LCD 1.47B · ESP32-C3 4 MiB · Pico 2 W
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

Projects · project · planned 0.3.0

Button and NeoPixel

Map a configured button state to dim strip feedback.

Designed profiles
ESP32 4 MiB · ESP32-S3 N16R8 · Waveshare LCD 1.47B · ESP32-C3 4 MiB
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

Display · exact-hardware · planned 0.3.0

Waveshare LCD Dashboard

Refresh elapsed-time and free-memory data in five display frames.

Designed profiles
Waveshare LCD 1.47B
Validated profiles
None recorded
Status
Development example — physical validation not recorded
Source at reviewed commit

Follow in order

Tutorial steps

  1. Start with evidence, not the title

    Read the snapshot banner, planned release, classification, designed profiles, and validation line before choosing an entry. A familiar board name or an official repository does not promote planned source.

    Expected: every card says that physical validation is not recorded and no card claims a validated profile.

  2. Choose the smallest relevant slice

    Begin with a portable Basics or Workflow entry. Use the 0.1.0, 0.2.0, and 0.3.0 headings as planned content slices, not as published examples releases. Capability and project entries add explicit hardware review.

    Expected: you can identify one bounded example whose summary matches the concept you want to practice.

  3. Check designed scope profile by profile

    Portable entries list all five profiles. Generic capabilities still require explicit pins. ESP NeoPixel entries list the four ESP profiles, never Pico 2 W. Exact-board entries list only Pico 2 W or the Waveshare B-version profile.

    Stop if: your exact profile is absent from Designed profiles or the required hardware and wiring have not been reviewed.

  4. Open the immutable source

    Use the Source at reviewed commit link on the chosen card. Confirm the browser URL contains the full snapshot commit, then read the README and complete Python source in the examples repository.

    Expected: the source URL contains the exact 40-character commit rather than a moving main branch.

  5. Import into a disposable child folder

    Return to the GitHub import workflow, create the exact destination first, pin this snapshot commit, browse one folder, and review every selected source and target. Import does not make the example validated.

    PyBLE 0.2.0 beta on a Lenovo Android tablet showing one completed Hello Console import to board DA86 without opening or running it.
    Actual Android tablet · Lenovo TB-J616XExamples · one completed import with execution still explicit

    Expected: the terminal import result and refreshed Files list agree without any automatic open or Run.

  6. Run only within the documented boundary

    Open and read the imported source. For hardware examples, repeat the electrical checklist and define every documented configuration value. Choose Run explicitly, observe only the bounded effect, then Stop and perform the example's cleanup.

    Expected: the observed result stays within the reviewed summary; your personal test is not represented as project HIL evidence.

Need recovery help?

Stop at the current step, record the exact profile, board identity, app and firmware versions, and the first useful error. Then use the PyBLE support and recovery guide.