control all your 16x16 or 32x32 iDotMatrix Pixel Displays
Explore the docs »
Report Bug
.
Request Feature
- About the Project
- Built With
- Getting Started
- Usage
- Roadmap
- Contributing
- License
- Authors
- Acknowledgements
This repository aims to reverse engineer the iDotMatrix Android App for pixel screen displays like this one on Aliexpress. The goal is to provide a simple library which you can use to connect to your display(s).
To get a local copy up and running or use the latest pypi package follow these simple example steps:
Please install the following for your distribution (Windows may work but it is untested):
- latest Python3
- Python3 Virtual Env
- Clone the repo
git clone https://github.com/derkalle4/python3-idotmatrix-library.git
- Install the latest version locally
cd python3-idotmatrix-library/
pip install .
pip install idotmatrix
If you want to use the integrated bleak library to talk to your device, you have to initialize the ConnectionManager first. If you omit this step all classes will return the bytecode which you then can send to the device with your own bluetooth implementation.
import asyncio
from idotmatrix import ConnectionManager
async def main():
# connect to first found iDotMatrix Pixel Display
conn = ConnectionManager()
await conn.connectBySearch()
# do something with this connection afterwards
if __name__ == "__main__":
try:
asyncio.run(main())
except KeyboardInterrupt:
quit()
The Chronograph has 4 different modes. Using mode 1 will automatically open the Chronograph on the device and start the countdown. This should be the first mode used or otherwise the device may does not respond properly.
- 0 = reset
- 1 = (re)start
- 2 = pause
- 3 = continue after pause
from idotmatrix import Chronograph
chronograph = Chronograph()
await chronograph.setMode(1)
If you want to contribute please focus on the reverse-engineering part because my personal skills are not that good. Many thanks for all contributions! If you want to dive deep into other issues please check for "#TODO" comments in the source code as well.
- Reverse Engineering
- Chronograph
- Clock
- Countdown
- Graffiti Board
- DIY-Mode
- Animated Images
- Display Text
- Alarm & Buzzer (available according to issue #18)
- Cloud-API to download images
- Cloud-API to upload images to device
- Cloud-Firmware Update possible?
- Eco-Mode
- Fullscreen Color
- MusicSync
- Scoreboard
- bluetooth password protection
- understand the returned byte arrays of the device for better error logs
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- If you have suggestions for adding or removing projects, feel free to open an issue to discuss it, or directly create a pull request after you edit the README.md file with necessary changes.
- Please make sure you check your spelling and grammar.
- Create individual PR for each suggestion.
- Please also read through the Code Of Conduct before posting your first idea as well.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the GNU GENERAL PUBLIC License. See LICENSE for more information.
- Kalle Minkner - Project Founder
- Jon-Mailes Graeffe - Co-Founder
- Othneil Drew - README Template
- LordRippon - Reverse Engineering for the Displays
- 8none1 - Reverse Engineering for the Displays
- schorsch3000 - smaller fixes
- tekka007 - code refactoring and reverse engineering
- inselberg - Reverse Engineering for the Displays