Skip to main content

A Python library for interacting with Gicisky E-Ink display tags via Bluetooth Low Energy

Project description

🏷 Gicisky Python Library

🐍 PyPi Page - 📄 Source code

A Python library for interacting with Gicisky electronic ink display tags via Bluetooth Low Energy (BLE).

ℹ️ Features

  • Advertisement parsing: Discover compatible devices and get their info (battery level, model, hardware and software version)
  • Image uploading: Upload images to your ESL, with all the features it supports (including third color and compression!)
  • Bluetooth library independent: Use the provided Bleak backend or implement the BLE Interface to use any other Bluetooth library.
  • Image conversion: Provide any image and let the library convert it for you to the device's format.

📱 Supported Devices

  • EPD 2.1" BWR (0x0B)
  • EPD 2.9" BWR (0x33)
  • EPD 4.2" BWR (0x4B)
  • EPD 7.5" BWR (0x2B)
  • TFT 2.1" BW (0xA0)

⬇️ Installation

pip install gicisky

Or install from source:

git clone https://git.boxo.cc/massivebox/gicisky
cd gicisky
pip install -r requirements.txt

▶️ Quick Start

Check out the examples!

python3 examples/send_bleak.py ~/path/to/image.png
python3 examples/send_bleak.py --no-optimize ~/path/to/image.png # Without dithering

⚙️ Components

  1. BLE Interface (gicisky.ble/): Handles Bluetooth Low Energy communication
  2. Core Protocol (gicisky.core/): Implements the Gicisky communication protocol, independent of the Bluetooth library
  3. Image Processing (gicisky.image/): conversion formats images to the Gicisky format, optimizer (optional) uses dithering and letterboxing for better results
  4. Logging (gicisky.logger/): Provides detailed logging capabilities

⚠️ Version 0.2.0 Migration Guide

Breaking Change: Starting with version 0.2.0, all components are now under the gicisky namespace to prevent conflicts with other packages.

Import Changes

Before (v0.1.x):

from ble.bleak import BleakBackend
from core.advertisement import parse_advertisement
from image import optimize

After (v0.2.0+):

from gicisky.ble import BleakBackend
from gicisky.core import parse_advertisement
from gicisky.image import optimize

Quick Import

For convenience, you can still use star imports to access all public APIs:

from gicisky import *  # Imports: BleakBackend, parse_advertisement, optimize, etc.

🧱 Requirements

  • Python 3.7+
  • bleak (for BLE communication)
  • PIL/Pillow (for image processing)
  • numpy (for image manipulation)

Install all requirements:

pip install -r requirements.txt

❤️ Credits

🤝 Support the Project

Thanks for your interest in supporting the project.

  • Help me by opening issues and creating pull requests: all contributions are welcome!
  • If you want to contribute financially, take a look here. Thanks a lot!
  • If you haven't bought your Gigisky ESL yet, please buy it through my AliExpress affiliate link. I will earn a small commission from your order, but it will not cost you anything. Thanks!

📚 License

MIT License

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

gicisky-0.2.0.tar.gz (12.3 kB view details)

Uploaded Source

Built Distribution

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

gicisky-0.2.0-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

Details for the file gicisky-0.2.0.tar.gz.

File metadata

  • Download URL: gicisky-0.2.0.tar.gz
  • Upload date:
  • Size: 12.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for gicisky-0.2.0.tar.gz
Algorithm Hash digest
SHA256 3a24dcaf99d123a25ac0e4e56981ffc17ad948419289849cb4e84036e1d4d606
MD5 b53008c0bbdca0fb1bc670b7a0463b95
BLAKE2b-256 569e4fc4599526fd9c785f719a5be09ea9d748ba4232e6f6bce22299f0e23c32

See more details on using hashes here.

File details

Details for the file gicisky-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: gicisky-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 13.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for gicisky-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4425ef5f87d0ecf06cc9e06e777927241ade8aa4e2c30a325cfbd3b5a885fc4d
MD5 a5b95f0b67f853634ceffea90b2ce80d
BLAKE2b-256 7debe7b301e7d46b8919e431d5f24f3e1914e216564f5bb842115394793a744c

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