Skip to main content

Allows control of SPOTLED bluetooth led displays via Python. (Unofficial)

Project description

SPOTLED Python Library

This allows you to control bluetooth led name badges which use the SPOTLED app. You can buy them here:

Disclaimer

Notice! This library is not affilated with the creator of this product.

If you brick your device (albeit unlikely) with this library, DO NOT BLAME ME!

Installation

You need python3-gattlib, which is installable on debian with:

sudo apt install python3-gattlib

Then install the package with:

sudo pip3 install spotled

Example usage

import spotled
sender = spotled.LedConnection('mac address of your device')

sender.set_screen_mode(spotled.ScreenMode.NORMAL) # change screen orientation
sender.set_brightness(100) # brightness seems to be 0-100

# send text using the default 6x12 font
sender.set_text('Hello world!')

# send text which does not move
sender.set_text(' Static', effect=spotled.Effect.NONE)

# send smaller text (you can use any 12x12 or smaller yaff or draw font)
sender.set_text('Static Text!', effect=spotled.Effect.NONE, font="4x6")

# send multiple pages of 2-line text
# you can adjust time per frame with the frame_duration param
sender.set_text_lines("You can show several pages of text!\nNewlines\nare allowed.")

# send multiple pages of scrolling 2-line text
# you can adjust animation speed with the speed param
sender.set_text_lines("A long time ago in a galaxy far, far away....", effect=spotled.Effect.SCROLL_UP)

# send number bars (used for music visualization)
sender.send_data(spotled.SendDataCommand(spotled.NumberBarData([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 11, 10, 9]).serialize()))

# send a static image (using the animation feature)
sender.send_data(
    spotled.SendDataCommand(
        spotled.AnimationData([
            spotled.FrameData(48, 12, spotled.gen_bitmap(
                '111111111111111111111111111111111111111111111111'
                '1..............................................1'
                '1..............................................1'
                '1..............................................1'
                '1..............................................1'
                '1..............................................1'
                '1..............................................1'
                '1..............................................1'
                '1..............................................1'
                '1..............................................1'
                '1..............................................1'
                '111111111111111111111111111111111111111111111111'
            ))
        ], 0, 0, spotled.Effect.NONE).serialize()
    )
)

See the example_monika.py file for an example animation and example_pepsi.py for an example scrolling bitmap text display. You can replay existing payloads from Wireshark as well fairly easily by using the SendDataCommand and chopping off the header (first 15 bytes).

Fonts from this software are from https://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html and are public domain.

You can get more fonts here: https://github.com/robhagemans/hoard-of-bitfonts

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

spotled-1.2.0.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

spotled-1.2.0-py3-none-any.whl (159.1 kB view details)

Uploaded Python 3

File details

Details for the file spotled-1.2.0.tar.gz.

File metadata

  • Download URL: spotled-1.2.0.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.2

File hashes

Hashes for spotled-1.2.0.tar.gz
Algorithm Hash digest
SHA256 a38e187aae30659a2e74eb9515f5cfd00721a5a9f864d2578c1da0bc115dff91
MD5 03325820d82fd78f51d795402ebeb898
BLAKE2b-256 184fa5111623136fd762fa7abb7bb2a85be6410e0850af2ab72f21c8b23c078d

See more details on using hashes here.

File details

Details for the file spotled-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: spotled-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 159.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.6.0 importlib_metadata/4.8.2 pkginfo/1.8.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.2

File hashes

Hashes for spotled-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e1666842783db3f788ba764f78f7be6ce3f5577ab8b6edc8c5d8b8cda5d0fbe5
MD5 0a224365c017971f3005414b20502b97
BLAKE2b-256 a7439849f7e50b3f8326bc9cb0707857a916de3ecc1a5a0b461a3982f09a08dc

See more details on using hashes here.

Supported by

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