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

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions