Skip to content

feat: Add BLE RSSI room mapper example. #412

@nedseb

Description

@nedseb

Target repository

This example should be created in micropython-steami-sample, not in micropython-steami-lib. BLE examples are not tied to a specific driver and belong in the sample repo.

What

Create an example that records RSSI measurements at different positions in a room. The user moves around with the scanner board and presses a D-PAD button to log the RSSI of visible beacons at each position. Data is saved as CSV via daplink_flash.

Why

Fourth step in the BLE + indoor localization path. Builds the dataset needed for indoor positioning. Teaches data collection methodology and the relationship between physical position and signal strength.

Suggested approach

  1. Place 2-3 beacon boards at known positions in a room
  2. Scanner board scans all beacons and displays their names + RSSI on the OLED
  3. User presses D-PAD RIGHT to record a measurement point
  4. OLED shows the point number and number of beacons seen
  5. Data is written to a CSV file via daplink_flash (columns: point_id, beacon_name, rssi)
  6. Press D-PAD LEFT to stop and save

Learning goals

  • Experimental data collection methodology
  • Understanding RSSI variability (same position gives different readings)
  • File I/O on MicroPython via DAPLink flash
  • Introduction to the concept of a "radio fingerprint" of a position

Hardware

  • 3-4 STeaMi boards (2-3 beacons + 1 scanner)
  • SSD1327 OLED + D-PAD + DAPLink flash on scanner board

Depends on

Documentation

Write a pedagogical activity sheet for the STeaMi wiki covering:

  • Learning objectives (data collection, RSSI variability, radio mapping)
  • Room setup instructions (where to place beacons, grid layout)
  • How to retrieve and analyze the CSV data
  • Visualization suggestions (heatmap, scatter plot)

Metadata

Metadata

Labels

enhancementNew feature or request

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions