Skip to main content

A driver to connect to and control a Brilliant Labs Monocle peripheral

Project description

Brilliant Monocle Driver

brilliant-monocle-driver is a simple Python library that uses Bleak to connect to and control a Brilliant Labs Monocle display device.

Install

pip install brilliant-monocle-driver

Usage examples

Display battery and then blank screen

import asyncio
from brilliant_monocle_driver import Monocle

def callback(channel, text_in):
  """
  Callback to handle incoming text from the Monocle.
  """
  print(text_in)

# Simple MicroPython command that prints battery level for five seconds
# and then blanks the screen
COMMAND = """
import display
import device
import time
from brilliant_monocle_driver import Monocle

def show_battery(count):
  batLvl = str(device.battery_level())
  display.fill(0x000066)
  display.text("bat: {} {}".format(batLvl, count), 5, 5, 0xffffff)
  display.show()

count = 0
while (count < 5):
  show_battery(count)
  time.sleep(1)
  count += 1

display.fill(0x000000)
display.show()

print("Done")

"""

async def execute():
    mono = Monocle(callback)
    async with mono:
        await mono.send(COMMAND)

asyncio.run(execute())

Receive touch events

import asyncio
from brilliant_monocle_driver import Monocle

def a_touch():
    print("A touch!")

def b_touch():
    print("B touch!")

async def execute():
    mono = Monocle()
    async with mono:
        await mono.install_touch_events()
        mono.set_a_touch_callback(a_touch)
        mono.set_b_touch_callback(b_touch)
        await asyncio.sleep(30000)

asyncio.run(execute())

Details

brilliant-monocle-driver attaches to a Monocle via the UART characteristics exposed over BLE in Monocle's default firmware, as specified in the Monocle documentation. Once connection is established, commands can be sent directly to the Monocle as MicroPython. The driver avoids MTU overflow and does some convenience / correction massaging (sending Ctrl-C to stop any running command and wrapping the incoming command in Ctrl-A | Ctrl-D to avoid interference from the REPL's echo and auto-formatting convenience behaviors).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

brilliant-monocle-driver-0.1.3.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file brilliant-monocle-driver-0.1.3.tar.gz.

File metadata

File hashes

Hashes for brilliant-monocle-driver-0.1.3.tar.gz
Algorithm Hash digest
SHA256 cda6261cd24d896820ab764a02ca2c603a9cdad930cd9037989073ba7dace516
MD5 31ea9c0e8a5b23f1a4c8737b14ea05db
BLAKE2b-256 05e35b295b81c0e5fa5c7a6785b71000dab4acd1f014c9ed13cd862a1ff45fe6

See more details on using hashes here.

File details

Details for the file brilliant_monocle_driver-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for brilliant_monocle_driver-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6b8fd210fdb33d35fd19e4839fcb0459d8802e6db33a7575009919abb8b41bf9
MD5 3701aef9f3599634f93088841126ee56
BLAKE2b-256 ae5019eb4dac188b5b25eb0b94ac3af2d42a5f56544120b9e66e62865d6ef3be

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page