Customer:
I want to set up an Inkplate 10 with ESP32 to work as follows:
- The Inkplate stays powered off. When powered on by pressing the button, it connects to an existing WLAN.
- WiFi credentials should be entered once on first startup. On subsequent startups, it should remember these credentials and not ask again.
- I want to send images to the Inkplate as if printing to a printer.
- The Inkplate should render images automatically in black and white or grayscale.
- I will only ever send images of size 1200 x 825 px to the Inkplate.
- I send only one image at a time. When the image appears on the display, I turn off the Inkplate and the image remains displayed. No slideshow.
- The Inkplate 10 has an 8GB SD card and a 3000 mAh battery.
Originally submitted via email support on 10 March 2025. Migrated to the forum for community visibility.
Customer:
Is there a solution where the Inkplate pretends to be a printer (CUPS library) so it’s easier to send pictures to the Inkplate and have them display directly?
Customer:
I found the SDWebServer.ino example, which also seems useful for uploading pictures over the network.
Soldered Support:
I’m unsure about implementing Inkplate as a virtual printer. Your best approach would be to upload the picture to a local web server at a static address, then have Inkplate check periodically and download the picture from the same path (updating the picture when you need it to refresh).
You could write a companion app in Python - a simple web server that does this:
from flask import Flask, send_file
import os
app = Flask(__name__)
# Route to serve the image
@app.route('/')
def serve_image():
# Path to the image located in the same folder as this script
image_path = os.path.join(os.path.dirname(__file__), 'image.jpg')
# Return the image file as a response
return send_file(image_path, mimetype='image/jpeg')
if __name__ == '__main__':
# Run the Flask app on your local network accessible to other devices
app.run(host='0.0.0.0', port=5000, debug=True)
This will serve the image on http://your.local.ip.address:5000/