Skip to main content

🏷 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

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.1.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.1-py3-none-any.whl (13.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: gicisky-0.2.1.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.1.tar.gz
Algorithm Hash digest
SHA256 61496c6200412efc374c800df21420683b87d82ff86bf6f6b09dab2cc7d34244
MD5 c0d4c1fca12f713d780a358647665c12
BLAKE2b-256 961d26e0e7624be14ad8fdefae28dcf2c8fa240993863236a4f7ce36c234d7a5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gicisky-0.2.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cf61e08f1b56822c2dfeb96d28d2716303a4975b73926aa63d6f2a79cfc82c8e
MD5 1a004332754ddbb73b875fa4a2df5a49
BLAKE2b-256 2f8a22827728a6e3950268dcb4def8b90b7c84ae1eafdf5459879156b5e7744f

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 files

0.2.0

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

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