Git Product home page Git Product logo

microbit-corona-scanner's Introduction

microbit-corona-scanner

The micro:bit finds BLE Beacons according to the Google/Apple COVID-19 Exposure Notification specification (https://www.blog.google/documents/70/Exposure_Notification_-_Bluetooth_Specification_v1.2.2.pdf)

LEDs indicate received Exposure Notification beacons (or BLE devices - see below).
There's one LED per Rolling Proximity Identifier (RPI) so up to 25 active RPIs with all 25 LEDs.

Video

usage video

Usage

BBC micro:bit

microbit

BBC micro:bit (german)

microbit

Calliope Mini (german)

calliope

Text description

The number of devices is output every ~8 seconds via the USB serial port.

Press B to change visualisation mode:

  • 0: persistence with fadeout from RSSI [DEFAULT]
  • 1: blink with RSSI brightness (one blink per RX event)
  • 2: persistence at full brightness (useful in sunlight)
  • 3: blink at full brightness (one blink per RX event - useful in sunlight)

Press B for 3 seconds to see all BLE devices, not just COVID-19 Exposure Notifications.
Press again for 3 seconds to switch back to COVID-19 Exposure Notifications only.
When visibility of all BLE devices is enabled LEDs blinking at 2Hz are COVID-19 Exposure Notifications, the rest is other devices.

Press A to toggle sound output.
Beacons from the device with the strongest signal do not trigger a click.
BBC micro:bit: connect headphones to PAD 0 and GND.
Calliope Mini: connect headphones to PAD 1 and GND.
You can also use the builtin speaker of the Calliope Mini: Pressing A the first time enables headphones output, pressing A again switches to speaker output, a third press turns sound output off again.

Press A for 3 seconds to see received Data via USB serial port.
Press again for 3 seconds to disable.

How to Build

This project uses yotta to build, not pxt.
This project uses the another SoftDevice(S130). That enables BLE Central feature.

Follow these steps to build the project.
** Don't forget copying NRF51822_S130.ld to NRF51822.ld ! **

# set target to use S130 SoftDevice.
yotta target bbc-microbit-classic-gcc-s130

# the linker uses `NRF51822.ld` file, then copy `NRF51822_S130.ld` to `NRF51822.ld`.
cp NRF51822_S130.ld yotta_targets/bbc-microbit-classic-gcc-s130/ld/NRF51822.ld

# build the project
yotta build

# transfer the hex file to micro:bit. (for example, macOS X)
cp build/bbc-microbit-classic-gcc-s130/source/corona-scanner-combined.hex /Volumes/MICROBIT/

Building on Ubuntu Linux

sudo apt install yotta ninja-build srecord

Building on Windows

get https://launchpad.net/gcc-arm-embedded/+download for arm gcc
get https://github.com/ninja-build/ninja for building with cmake
get https://sourceforge.net/projects/srecord/ for linking

microbit-corona-scanner's People

Contributors

kshoji avatar momo-aux avatar znuh avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

momo-aux ash-labs

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.