Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minute
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11
ThatPainter is reader-supported. When you buy through links on our site, we may earn an affiliate commission. Learn More
Build a tactile drawing toy with two rotary encoders, an Inkplate 6 e‑paper display and an MPU6050 motion sensor. Turning one knob moves the cursor horizontally, turning the other moves it vertically, and shaking the case clears the screen. The result captures the Etch A Sketch interaction without copying its mechanical display.
This is a reproducible DIY prototype, not a fast or finished consumer tablet. The Inkplate’s e‑paper refresh makes each stroke deliberately slow, while the published sketch needs calibration and a few reliability improvements before it deserves a permanent enclosure.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →As an Amazon Associate I earn from qualifying purchases.
What the project builds
The project described by All About Circuits (published March 27, 2024) uses an ESP32-based Inkplate 6 as the display and controller. Two KY-040 rotary encoders supply the two axes:
- The horizontal encoder changes the X coordinate.
- The vertical encoder changes the Y coordinate.
- Each accepted encoder event places a small filled black circle.
- An MPU6050 accelerometer detects a deliberate shake and requests a full erase.
The circles overlap, so a sequence of dots looks like a line. There is no touchscreen, pressure sensing or mechanical stylus: your fingers provide the two-axis input through the knobs.
#1 Best Overall
- Multi-Protocol Wireless Connectivity: Supports Wi‑Fi, Bluetooth 5 (BLE), and LoRa/SX1262 for flexible, long-range device management and data visualization across IoT, Meshtastic, and industrial applications.
- 2.13" Low-Power E-Ink Display: Features a 250×122 black-and-white E-Ink screen with 180-day static power-off retention (≈20μA deep sleep current) for battery-efficient, glare-free signage and status monitoring.
- Robust Development Ecosystem: Equipped with ESP32‑S3FN8 MCU and comprehensive tools (Arduino/PlatformIO/CircuitPython) for rapid prototyping, plus USB‑C for easy firmware flashing and debugging.
- Durable & Field-Ready Design: Included acrylic protective cover, wide operating range (0~50°C, 35~70% RH), and compact form factor ideal for retail price tags, asset tracking, and outdoor IoT nodes.
- All-in-One E-Ink Solution: Preloaded display refresh engine with drag‑and‑drop BMP image support; perfect for custom electronic tags, identity badges, and real‑time remote monitoring with minimal power footprint.
Parts, tools and skills
| Part | Quantity | Purpose and qualification |
|---|---|---|
| Inkplate 6 | 1 | 6-inch, 800×600 monochrome e-paper and ESP32 board. |
| KY-040 rotary encoder module | 2 | Horizontal and vertical controls; inexpensive modules can bounce. |
| GY-521 MPU6050 breakout | 1 | Three-axis accelerometer/gyro used for the shake gesture. |
| Male-to-male jumper wires | At least 12 | Direct module-to-board connections. |
| 90-degree pin headers | As needed | Keep wires parallel to the Inkplate for a thinner case. |
| 3D-printable enclosure | Optional | STL files accompany the original project; exact fit should be checked against your Inkplate variant. |
| LiPo battery | Optional | The Inkplate has charging circuitry and a JST input, but battery polarity, protection and physical retention must match the manufacturer’s guidance. |
| Barrel jack or USB breakout | Optional | Useful when charging or programming access is needed after installation. |
You should be comfortable with Arduino IDE basics, GPIO and I²C wiring, rotary-encoder signals, ESP32 uploads and basic soldering or secure jumper-wire assembly. A 3D printer is only needed for the supplied case.
Why Inkplate e-paper changes the experience
The Inkplate 6 combines a 6-inch, 800×600 e-paper panel with an ESP32. Soldered lists monochrome and greyscale support, partial updates, Wi‑Fi, Bluetooth, microSD storage, Arduino support and battery charging. Its published refresh figures are approximately 264 ms for a partial update and 1.26 seconds for a full refresh.
The project uses partial updates for individual dots and a full refresh for erasing. The original article describes drawing as roughly four frames per second, so cursor movement is visibly delayed compared with an LCD or OLED. That delay is part of the paper-like, low-power aesthetic, but it rules out fast handwriting, smooth animation and detailed digital art.
Partial refresh is well suited to adding black pixels. Turning pixels back to white can leave ghosting, which is why a clean erase uses a full refresh. Actual battery life also depends on refresh frequency, battery capacity and whether Wi‑Fi or Bluetooth is enabled; the board’s charging hardware does not guarantee a particular runtime.
Wire the controls and sensor
Use 3.3 V logic throughout. The project’s published connections are:
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Clear out junk files and repair common Windows errors3Scan for outdated or missing drivers - takes under a minuteRank #2
- This is is 1.54inch e-Paper AIoT development board. Onboard 1.54inch e-paper display, 200 x 200 resolution, features ultra-low power consumption and ambient light readability, suitable for portable devices and long-battery-life scenarios. Supports 2.4GHz Wi-Fi (802.11 b/g/n) and Bluetooth 5 (LE), with onboard antenna.
- Integrated with an RTC chip, SHTC3 temperature and humidity sensor, TF card slot, low-power audio codec chip circuit, and Lithium battery recharge management circuit. Reserved interfaces including USB, UART, I2C, and GPIO for easy functionality expansion and sensor connectivity, providing a flexible and reliable development platform for IoT terminals, electronic tags, portable displays, and other applications.
- Supports AI Speech Interaction: Allows access to online large model platforms such as ChatGPT, DeepSeek, Doubao, etc. Onboard audio codec chip, supports voice capture and playback, enabling AI voice interaction applications.
- Built-in 512KB Static RAM, 384KB ROM, with integrated 8MB Flash and 8MB PS RAM. Onboard PCF85063 RTC chip and SHTC3 temperature & humidity sensor for accurate RTC management and environmental monitoring.
- Onboard TF card slot for external storage of images or files. Onboard programmable PWR and BOOT side buttons for customized function development. Reserved 2 × 6 2.54mm pitch pin header for convenient external expansion.
| Inkplate connection | Module connection |
|---|---|
| Pin 39 | Horizontal encoder CLK |
| Pin 36 in the published code | Horizontal encoder DT |
| 3V3 | Horizontal encoder power |
| GND | Horizontal encoder ground |
| Pin 13 | Vertical encoder CLK |
| Pin 14 | Vertical encoder DT |
| 3V3 | Vertical encoder power |
| GND | Vertical encoder ground |
| SDA | MPU6050 SDA |
| SCL | MPU6050 SCL |
| 3V3 | MPU6050 VCC |
| GND | MPU6050 GND |
Resolve the horizontal-DT discrepancy before powering up
The article’s wiring table says horizontal DT goes to Inkplate pin 96, while its code declares #define DT_H 36. Those are not interchangeable instructions. Check the silkscreen and pinout for your exact Inkplate revision, then make the physical wire and the DT_H definition agree. Do not blindly follow both sections.
Mechanical assembly advice
- Mount the encoders so their shafts are accessible and their bodies cannot twist when turned.
- Keep the MPU6050 firmly fixed; a loose sensor changes the motion signature and causes false triggers.
- Route and strain-relieve jumper wires before closing the case.
- Provide USB and, if fitted, charging access. Insulate and retain a LiPo rather than letting it move against the board.
- The original project does not specify print orientation, material or layer height. Choose settings appropriate to your printer, and test-fit the STL against the exact Inkplate variant and encoder spacing.
Install the Arduino software
- In Arduino IDE, open Preferences and add this URL to Additional Boards Manager URLs:
https://raw.githubusercontent.com/SolderedElectronics/Dasduino-Board-Definitions-for-Arduino-IDE/master/package_Dasduino_Boards_index.json. - Open Tools → Board → Boards Manager, search for
inkplate, and install the relevant Inkplate package. - Open Tools → Manage Libraries and install the Inkplate library (which provides
Inkplate.h),Adafruit_MPU6050andAdafruit_Sensor. - Choose the Inkplate board under Tools → Board → Inkplate Boards, connect USB and select the correct port.
- Compile and upload the sketch. Menu names and package behavior can change between Arduino IDE and board-package versions; if Inkplate is missing, follow Soldered’s current documentation rather than removing the board check.
The original sketch contains this guard:
#if !defined(ARDUINO_ESP32_DEV) && !defined(ARDUINO_INKPLATE6V2)
#error "Wrong board."
#endif
An error here usually means the wrong board is selected, the package is absent, or the installed package uses a different board macro.
How the sketch turns knob movement into a line
Display and starting point
#include <Inkplate.h>
#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h>
Inkplate display(INKPLATE_1BIT);
Adafruit_MPU6050 mpu;
#define CLK_H 39
#define DT_H 36
#define CLK_V 13
#define DT_V 14
int position_H = 400;
int position_V = 300;
The initial coordinates are the center of an 800×600 canvas. The one-bit display mode gives black-and-white rendering.
Quadrature decoding
Each encoder has two phase-shifted signals, CLK and DT. The code watches a rising CLK transition, then reads DT to infer direction:
if (currentStateCLK_H != lastStateCLK_H &&
currentStateCLK_H == 1) {
if (digitalRead(DT_H) != currentStateCLK_H) {
counter_H++;
newDot();
} else {
counter_H--;
newDot();
}
}
The vertical encoder follows the same pattern. This is a minimal decoder: it has no explicit debounce, pull-up configuration, illegal-transition filtering, half-step/full-step selection, acceleration or coordinate limits. Cheap KY-040 modules can therefore produce jitter, skipped steps or several dots per detent.
Rank #3
- ◆ Bundle for E-Paper Development: Includes 7.5 inch e-ink display module (bare screen) + ESP32-C6 e-paper driver board; a complete e-paper display kit for embedded coding and rapid prototyping.
- ▰ Crisp 800×480 Black/White E-Paper: 7.5” e-paper screen with 800x480 resolution for sharp text and images; supports partial refresh and full refresh for different update needs in e-ink projects.
- ⇄ SPI E-Paper Interface, Fewer GPIO: Uses SPI interface for the e-paper module, reducing pin usage and simplifying wiring; ideal for eink display module SPI applications and maker projects.
- ⎓ 3.3V/5V MCU Friendly (Level Shifting): Onboard 3.3V/5V level shifter supports common controllers; reserved SPI connection for compatible with Arduino, STM32, and ESP32 development boards.
- ⚙ Driver Board with 24P FPC + Expansion: ESP32-C6 driver board offers 24P FPC connector for multiple e-paper models, BOOT/RST buttons, USB connector, SD card slot, and exposed GPIO for peripherals and storage.
Dot spacing and partial refresh
void newDot() {
display.fillCircle(
position_H + counter_H * 3,
position_V + counter_V * 3,
2,
BLACK
);
display.partialUpdate();
}
A radius-two circle is placed every three counter units, giving enough overlap for an almost continuous stroke. Every event requests a partial e-paper update, which explains the slow response.
How shaking erases the drawing
The sketch reads acceleration through Adafruit’s sensor interface, computes a magnitude, subtracts nominal gravity and squares the result:
sensors_event_t a, g, temp;
mpu.getEvent(&a, &g, &temp);
float shake = sqrt(
sq(a.acceleration.x) +
sq(a.acceleration.y) +
sq(a.acceleration.z)
);
shake -= 9.81;
shake = sq(shake);
It then erases only when the calculated value falls inside a narrow window:
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
if (shake > 400 && shake < 450) {
Serial.println(shake);
display.clearDisplay();
display.display();
delay(1260);
}
The 400–450 range is an author-tuned experiment, not a universal MPU6050 specification. Sensor orientation, mounting, noise, sampling timing and the force of the shake all change the value. A very forceful movement can jump above 450 and do nothing.
A safer erase design
- Log the computed value while the device is still, moved normally and shaken deliberately.
- Use a single threshold rather than a narrow window, calibrated to your enclosure.
- Require several consecutive samples above the threshold.
- Clear once, then ignore motion during the full refresh.
- Reset both counters and the logical cursor position after clearing.
- Wait for acceleration to fall below a lower release threshold before arming another erase.
The published code clears pixels but does not explicitly reset counter_H or counter_V; without that change, the next stroke can resume at an old logical coordinate even though the screen looks blank.
Rank #4
- The ESP32-S3-ePaper-1.54 is an e-Paper AIoT development board, equipped with ESP32-S3 microcontroller, adopts high-performance Xtensa 32-bit LX7 dual-core processor, up to 240MHz main frequency. Suitable for Voice Interaction and e-Reader, etc
- Supports 2.4GHz Wi-Fi (802.11 b/g/n) and Bluetooth 5 (LE), with onboard antenna. Built-in 512KB Static RAM, 384KB ROM, with integrated 8MB Flash and 8MB PS-RAM.
- Onboard 1.54inch e-paper display, 200 × 200 resolution, features high contrast and wide viewing angle. Onboard audio codec chip, supports voice capture and playback, enabling AI voice interaction applications. Supports AI Speech Interaction: Allows access to online large model platforms such as DeepSeek, Doubao, etc.
- Onboard PCF85063 RTC chip and SHTC3 temperature & humidity sensor for accurate RTC management and environmental monitoring. Onboard TF card slot for external storage of images or files. Onboard programmable PWR and BOOT side buttons for customized function development. Reserved 2 × 6 2.54mm pitch pin header for convenient external expansion.
- Supports ESP-IDF, Ardui IDE: Comprehensive SDK, dev resources, and tutorials to help you easily get started, please check: n9.cl/tseakv
First power-on test
- Power the board with no battery attached and confirm that the display initializes.
- Turn only the horizontal encoder. Confirm that dots move left and right; reverse the increment/decrement branches if direction is opposite to the intended control.
- Test the vertical encoder independently.
- Print counters and encoder states over Serial to identify bounce or a floating input.
- Test shaking last, after normal drawing works. Record values before choosing a threshold.
Troubleshoot common failures
Compilation stops at “Wrong board”
Recheck Tools → Board, confirm the Inkplate package and all three libraries are installed, and compare the board macro with the current package documentation.
The display works but movement is wrong
Verify the board revision and the horizontal DT conflict (pin 96 in the table versus pin 36 in code). Check 3.3 V and ground, test each encoder separately and inspect counter values over Serial.
The line jitters or advances multiple steps
Mechanical bounce is the usual cause. Add suitable pull-ups, debounce in software, shorten noisy jumper runs or use a quadrature library that rejects invalid transitions. Better-quality encoder modules also help.
The line leaves the screen
The original calculation is not clamped. Keep the full radius-two dot visible, for example:
int x = constrain(position_H + counter_H * 3, 2, 797);
int y = constrain(position_V + counter_V * 3, 2, 597);
Shaking does not erase, or erases accidentally
Print the motion value and recalibrate. A threshold that is too high misses ordinary shakes; one that is too low responds to handling. Consecutive-sample confirmation, cooldown and separate trigger/release thresholds prevent both problems. A dedicated erase button is a predictable alternative.
Best Value
- 13.3" FULL-COLOR ePAPER DISPLAY – Showcase photos, artwork, dashboards, and information on a spacious 1200 × 1600 E Ink Spectra 6 full-color ePaper display with a paper-like viewing experience and ultra-low power consumption.
- BUILT FOR DIGITAL FRAMES & COLOR DASHBOARDS – Turn photos, artwork, schedules, and live information into always-on visual displays. The large color ePaper screen is ideal for digital frames, home dashboards, office information displays, and other low-refresh visual applications.
- UP TO 6-MONTH BATTERY LIFE – A built-in 5000mAh rechargeable battery and energy-efficient ePaper display enable flexible placement without continuous power. Battery life can reach up to 6 months in low-power mode with a 6-hour refresh interval; actual runtime varies by usage.
- BUILT FOR MAKERS & OPEN-SOURCE DEVELOPMENT – Powered by ESP32-S3 with 8MB PSRAM and 32MB Flash. Build quickly with SenseCraft Seeedash, integrate with Home Assistant through ESPHome, or develop with Arduino and ESP-IDF for fully customizable projects.
- WIRELESS, SENSORS & EXPANDABLE I/O – Connect through 2.4GHz Wi-Fi and Bluetooth 5.0, monitor temperature and humidity with onboard sensors, and expand storage via microSD up to 32GB with a 16GB card included. UART, I2C, GPIO, and ADC interfaces support additional sensors and peripherals.
Battery behavior is uncertain
The Inkplate product page lists integrated charging and a JST input, but the project does not specify a battery model, connector polarity procedure, protection requirements or enclosure safety. Follow the manufacturer’s battery documentation and do not choose a pack solely because its plug fits.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →Useful upgrades
- Debounce and clamp: Replace the minimal decoder with filtered quadrature handling and constrain coordinates.
- Reset state: Re-center counters, cursor and pending motion after erase.
- Improve motion detection: Average or low-pass readings, use threshold hysteresis and add a cooldown.
- Save drawings: Use the Inkplate’s microSD for a bitmap or command log, while remembering that redraws still incur e-paper refresh time.
- Add controls: A button or third encoder could select brush size, menus or save/restore commands.
- Plan for color carefully: The described build is monochrome; a different display and refresh behavior would be required for a genuinely color interface.
- Manage power: Add sleep behavior and a battery indicator only after measuring the effect of refreshes and wireless features.
Is it worth building?
Build it if you want a tactile educational project that combines ESP32 programming, e-paper rendering, rotary encoders, I²C sensing and optional 3D printing. It is also a good base for a retro-hardware exhibition piece or a platform for experimenting with storage and menus.
Do not choose it for pressure-sensitive art, rapid handwriting, smooth animation or immediate erase response. The slow refresh, inexpensive encoder behavior, empirical shake threshold and unresolved pin documentation make the unmodified sketch a prototype that benefits from calibration and code cleanup.
The Inkplate 6 page currently shows variants and an observed price range of €74.95–€139.95, but its purchase area displayed “Coming soon” on August 18, 2026. Check regional stock, the exact variant and shipping before ordering. Buying the board alone does not produce a drawing pad: you still need two encoders, an MPU6050, wiring, software setup and—if portability is desired—a correctly matched battery and enclosure.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.
Recommended Free Tools




