SeedSigner / seedsigner

Use an air-gapped Raspberry Pi Zero to sign for Bitcoin transactions! (and do other cool stuff)
MIT License
712 stars 163 forks source link

[C/C++ Exploration R&D] Port ST7789 Waveshare display driver to C #364

Open bitcoinprecept opened 1 year ago

bitcoinprecept commented 1 year ago

@kdmukai suggests that research should be done to port the ST7789 driver to C and then call it via bindings. Keith is unsure this approach will work but assigns an informal 93% probability that it could work.

Context: I believe the motivation here is to minimize downstream library dependencies. @newtonick mentioned in unrelated testing thread about reliance on the OpenCV library that "In my dev build I saw an error about the numpy lib missing. I’m guessing numpy is a dependencies for opencv. So I added BR2_PACKAGE_PYTHON_NUMPY=y to the config and built in dev (with opencv removed). It worked."

The ST7789 display driver itself does not have specific library dependencies as it is a hardware component. However, when working with the ST7789 driver to control a display module, you may need to use additional libraries depending on your programming language and development environment. Possible dependencies related to Graphics Libraries: If you plan to draw graphics, images, or text on the ST7789 display, you might use a graphics library such as OpenCV, PIL (Python Imaging Library), or Cairo. These libraries provide various functions and APIs to manipulate and render graphics and images.

bitcoinprecept commented 1 year ago

Possibly related to the desired outcome of this issue, @SeedSigner commented that "When the timing makes sense we should also take a look at the custom camera driver that e had commissioned for SeedHammer."