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

Metadata

Release files for gicisky 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gicisky 0.2.1
File Size Uploaded
gicisky-0.2.1.tar.gz 12.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gicisky 0.2.1
File Interpreter ABI Platform
gicisky-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 25.5 kB

Release files / gicisky-0.2.1.tar.gz

Download URL gicisky-0.2.1.tar.gz
Size 12.3 kB
Tags Source
SHA-256 checksum
How to use checksums
61496c6200412efc374c800df21420683b87d82ff86bf6f6b09dab2cc7d34244
BLAKE2b-256 checksum
How to use checksums
961d26e0e7624be14ad8fdefae28dcf2c8fa240993863236a4f7ce36c234d7a5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.0

Release files / gicisky-0.2.1-py3-none-any.whl

Download URL gicisky-0.2.1-py3-none-any.whl
Size 13.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
cf61e08f1b56822c2dfeb96d28d2716303a4975b73926aa63d6f2a79cfc82c8e
BLAKE2b-256 checksum
How to use checksums
2f8a22827728a6e3950268dcb4def8b90b7c84ae1eafdf5459879156b5e7744f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.0

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page