Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.
Shake It Off! is a DIY drawing-pad prototype that borrows the Etch A Sketch’s two-knob controls and shake-to-erase gesture. Two rotary encoders move a virtual cursor across an Inkplate 6 e-paper display; an MPU6050 accelerometer detects a shake and clears the screen. It is a tactile electronics project, not a touchscreen tablet—and its e-paper refresh makes drawing slow and deliberate.
What the project builds
The original All About Circuits project, published March 27, 2024, recreates the basic interaction of an Etch A Sketch without reproducing its mechanical display. One encoder moves the cursor horizontally, the other vertically, and each detected step adds a small black dot. Overlapping dots form a line. Shake the device to erase the drawing.
The display is an 800×600 monochrome e-paper panel on the Inkplate 6, a board that combines the display with an ESP32. The project uses partial updates while drawing and a full refresh to erase. This preserves the paper-like look and tactile controls, but not the speed of an LCD or OLED. The project article describes drawing as roughly four frames per second; expect visible pauses rather than smooth, real-time strokes. Read the original project description and sketch.
Parts, tools, and prerequisites
| Part | Quantity | Purpose or note |
|---|---|---|
| Inkplate 6 | 1 | ESP32-based 6-inch e-paper board; the project uses its 800×600 display. |
| KY-040 rotary encoder modules | 2 | One for horizontal movement and one for vertical movement. |
| GY-521 MPU6050 module | 1 | Accelerometer/gyro breakout used for shake detection. |
| Male-to-male jumper wires | At least 12 | For connecting the modules to the board. |
| 90-degree pin headers | As needed | Optional; they route wires parallel to the board to help fit a thinner enclosure. |
| 3D-printable enclosure | Optional | The project provides enclosure files; check that they suit your exact Inkplate variant. |
| LiPo battery | Optional | For portable use; follow the board manufacturer’s battery guidance. |
| Barrel jack or USB breakout | Optional | May help provide access to power when the board is enclosed. |
You should be comfortable with basic Arduino IDE use, GPIO and I²C wiring, library installation, ESP32 uploads, and assembling or soldering connections reliably. 3D printing is optional. The project can be wired without a breadboard, but a finished handheld build benefits from secure connections and wire strain relief.
#1 Best Overall
- Built-in ESP32-S3 Controller & SPI Interface - Comes with ESP32-S3-WROOM-1-N8R8 as the main MCU (up to 240 MHz) and standard 3-/4-wire SPI (default 4-wire) for easy integration. Supports the classic e-ink reader feel and responsive development flow
- Ultra-Low Power & Power-Off Retention - This epaper display only consumes power during refresh. Static content stays visible without a continuous power supply — ideal for battery-powered devices, smart labels and always-on displays
- High-Resolution e-ink Display - This 4.2″ e-paper display with 400x300 resolution delivers sharp black/white contrast and a wide viewing angle. Provides crisp clarity and a paper-like reading experience for smart tags and DIY devices
- Reflective, Sunlight-Readable - The pure reflection mode means no backlight required; the content remains clearly readable even under strong sunlight. Hard-coated anti-glare surface ensures excellent visibility and durability
- Rich Interfaces & Ready for Development - Includes BAT interface (2.2 V-3.7 V), UART0, 2x10 pin GPIO header, back/home/boot buttons, rotary switch, hard-coated anti-glare surface. Compatible with Arduino IDE, and suitable for DIY makers alike
How the hardware and display behave
Inkplate 6 and e-paper
The Inkplate 6 is an ESP32-powered board with a 6-inch, 800×600 e-paper display. The manufacturer lists partial updates, greyscale capability, Wi-Fi and Bluetooth, microSD storage, battery-charging circuitry, and Arduino-library support. It lists approximate refresh times of 264 ms for a partial update and 1.26 seconds for a full refresh. Those are manufacturer specifications; the project’s drawing experience also depends on its code and how often it requests an update. Check Soldered’s Inkplate 6 specifications and documentation.
Partial refresh is suitable for adding black marks incrementally, but e-paper is not a fast redraw surface. It can leave artifacts when the image needs to change from black to white, so erasing uses a full refresh. The result is best treated as a slow sketching toy or an e-paper interface demonstration, not a handwriting device or digital-art tablet.
Encoders and motion sensor
Each rotary encoder supplies two phase-shifted signals. The sketch watches a clock-signal transition and compares the other signal’s state to infer direction. The MPU6050 supplies acceleration readings over I²C. The project calculates an acceleration magnitude and compares a transformed value to an empirically chosen range to decide when to clear the display.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Wire the modules—and resolve the pin conflict
The original project has a material inconsistency: its wiring table assigns the horizontal encoder’s DT connection to Inkplate pin 96, while the published sketch defines DT_H as pin 36. Do not connect the module based on one section and assume the other agrees. Verify the pin labels against your board revision and use one consistent mapping in both the wiring and code.
| Inkplate connection | Module connection | Qualification |
|---|---|---|
| Pin 39 | Horizontal encoder CLK | As listed in the project wiring table and code. |
| Pin 36 | Horizontal encoder DT | The published code defines DT_H 36; the project wiring table instead says pin 96. |
| 3V3 | Horizontal encoder power | Confirm module compatibility and pin labels. |
| GND | Horizontal encoder ground | Share ground with the board. |
| Pin 13 | Vertical encoder CLK | As listed in the project wiring table and code. |
| Pin 14 | Vertical encoder DT | As listed in the project wiring table and code. |
| 3V3 | Vertical encoder power | Confirm module compatibility and pin labels. |
| GND | Vertical encoder ground | Share ground with the board. |
| SDA | MPU6050 SDA | I²C data. |
| SCL | MPU6050 SCL | I²C clock. |
| 3V3 | MPU6050 VCC | Confirm the breakout’s voltage requirements. |
| GND | MPU6050 GND | Share ground with the board. |
Before applying power, check module pin labels, supply voltage, and ground continuity. Cheap encoder boards and sensor breakouts are not necessarily identical, so do not rely on wire colors alone.
Install the Arduino board support and libraries
The project’s setup uses Soldered’s board-definition package and the Inkplate and Adafruit sensor libraries. Arduino IDE menus or package labels can change, and the original article does not specify tested IDE, board-package, or library versions. If a label differs or a package is unavailable, use the current Soldered documentation rather than assuming the older instructions apply unchanged.
-
In Arduino IDE Preferences, add this URL under Additional Boards Manager URLs: https://raw.githubusercontent.com/SolderedElectronics/Dasduino-Board-Definitions-for-Arduino-IDE/master/package_Dasduino_Boards_index.json.
PerformanceWindows Errors? Fix Them Before They SpreadDriversOutdated Drivers Are Slowing You DownPerformancePC Slower Than It Used to Be?Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy. -
Open Tools → Board → Boards Manager, search for
inkplate, and install the relevant Inkplate board package.Rank #2
ESP32-S3 1.54inch e-Paper Development Board, 200 × 200 Resolution, Black/White Display Color, Onboard Audio Codec Chip, Supports 2.4GHz Wi-Fi and BLE 5, Supports AI Speech Interaction- ESP32-S3-ePaper-1.54 development board 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
- ESP32-S3 1.54inch e-Paper AIoT development board adopts high-performance 32-bit LX7 dual-core processor, up to 240MHz main frequency. Supports 2.4GHz Wi-Fi (802.11 b/g/n) and Bluetooth 5 (LE), with onboard antenna
- Onboard PCF85063 RTC chip and SHTC3 temperature & humidity sensor for accurate RTC management and environmental monitoring
- Built-in 512KB Static RAM, 384KB ROM, with integrated 8MB Flash and 8MB PSRAM
- 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
-
Open Tools → Manage Libraries and install the Inkplate library that provides
Inkplate.h, along with Adafruit’s MPU6050 and sensor libraries that provideAdafruit_MPU6050.handAdafruit_Sensor.h. -
Select the appropriate Inkplate board under Tools → Board → Inkplate Boards, connect the board by USB, and upload the project sketch.
Understand the sketch before changing it
Board check and setup
The sketch’s preprocessor guard accepts particular ESP32 or Inkplate board definitions and stops compilation if it does not recognize the selected target. If that error appears, check the board selection and installed package first; do not remove the guard just to force a build. The sketch creates an Inkplate display object in one-bit mode and an Adafruit MPU6050 object.
Recommended Free Tools
Cursor and drawing
The published code starts the logical cursor at (400, 300), the center of an 800×600 display. Its newDot() function draws a radius-two black circle at the cursor position calculated from the starting coordinates plus the horizontal and vertical counters multiplied by three, then calls partialUpdate(). The three-pixel spacing makes the circles overlap enough to resemble a continuous line.
The code does not show coordinate clamping. As encoder counters continue changing, calculated positions can move outside the visible area. Clamp the dot’s center so the entire radius-two circle remains on screen—for example, keep X between 2 and 797 and Y between 2 and 597 for an 800×600 display.
Encoder decoding and its limitations
For each encoder, the sketch detects a change in CLK, checks the other channel to infer direction, changes a counter, and draws a dot. It is a basic quadrature-decoding approach, not a complete input-handling system. The original implementation does not appear to include software debouncing, explicit pull-up or pull-down configuration, illegal-transition filtering, or limits on the counters. KY-040 modules can bounce mechanically, leading to jitter, missed steps, or multiple apparent steps per detent. Add appropriate input configuration and debounce or use a tested quadrature-encoder library; test each encoder independently before enclosing the device.
Shake detection and erase behavior
The sketch reads acceleration through mpu.getEvent(), calculates the vector magnitude, subtracts approximately 9.81, squares the result, and triggers an erase only when that value is greater than 400 and less than 450. This narrow, empirically tuned range is not a universal MPU6050 threshold. A forceful shake can exceed the upper bound and fail to erase, while orientation, mounting, sampling timing, and module variation can change the readings.
Free tools Windows power users keep installed
One-click scans. No signup required.
For calibration, print the calculated value to Serial while the device is still, moved normally, and deliberately shaken. A sturdier detector would filter or average readings, detect a threshold crossing (rather than a narrow interval), require several consecutive samples, and apply a cooldown. Use a lower release threshold so the same sustained motion does not repeatedly trigger. The published erase sequence clears the display and waits for a full refresh, but it does not explicitly reset the encoder counters; add a logical cursor and counter reset so the next drawing starts where you intend.
Rank #3
- 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
Test the build in stages
-
Compile and upload with the correct Inkplate target selected. Resolve missing board or library errors before connecting all modules.
-
Initialize the display and confirm it refreshes. If it remains blank, check the selected board variant, display mode, and current Inkplate package guidance.
-
Test one encoder at a time. Print counter values to Serial, verify both directions, and check that one detent does not cause erratic multiple changes.
Recommended: Update Every Outdated Driver on Your PC in One Scan - Free →Recommended: PC Feels Slow? A Free Scan Shows What's Dragging Windows Down →Recommended: Crashes or Glitches? A Free Driver Scan Usually Finds the Culprit →Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy. -
Confirm the horizontal DT wire matches the pin defined in the code; the original table/code disagreement is especially easy to miss.
-
Test motion readings and tune shake detection before relying on erase. Add debounce/cooldown behavior to avoid accidental clears.
-
Only after the electronics are stable, secure the wiring and fit the enclosure. Check encoder access, USB or barrel-jack access, and battery clearance before closing the case.
Common problems and practical fixes
The sketch will not compile
-
Confirm the selected board under Tools → Board and that the Inkplate board package is installed.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy. -
Install the Inkplate and Adafruit libraries needed by the included headers.
Rank #4
ESP32-S3 1.54inch e-Paper AIoT Development Board, 200 x 200, Black/White, Supports Wi-Fi and Bluetooth Dual-Mode Communication,Supports AI Speech Interaction, DIY Creative Function, etc.- 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.
-
If the board macro in the guard is not recognized, check whether the installed package uses a different target definition and consult current Soldered documentation.
The display works, but the drawing is wrong
-
Check the horizontal DT discrepancy and verify the physical pin mapping against the board revision.
-
Check encoder power, ground, and signal wiring; print counter values to distinguish input problems from display problems.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy. -
If the line moves in the opposite direction from expected, reverse the increment/decrement logic for that axis.
The line jitters or jumps
-
Mechanical bounce, floating inputs, unsuitable pull-up or pull-down configuration, and noisy jumper connections can all cause unreliable counts.
-
Configure inputs appropriately for the module, add software debounce or a quadrature decoder with invalid-transition rejection, and secure the wiring.
The device does not erase—or erases unexpectedly
-
For missed erases, inspect Serial readings and check whether the value never reaches the threshold or jumps past the sketch’s upper limit. Calibrate for the installed sensor and use a threshold-crossing detector with filtering and cooldown.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchPC 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 & 11Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy. -
For accidental clears, require consecutive samples above threshold, increase filtering, and consider adding a physical erase button as an alternative gesture.
Best Value
Waveshare ESP32-S3 3.97inch e-Paper Development Board, 800 × 480 Resolution, Supports Wi-Fi/BLE 5, and AI Voice Interaction, Onboard Microphone- Equipped with ESP32-S3R8 high-performance dual-core processor, max main frequency up to 240MHz
- Supports 2.4GHz Wi-Fi & Bluetooth 5 (LE), with onboard antenna
- Built-in multi-spec storage, integrated 8MB PSRAM + external 16MB Flash
- Comes with 3.97-inch e-paper display (800×480), high contrast & wide viewing angle
- Onboard audio codec, 6-axis IMU, temp&humidity/RTC chips for multi-scenario expansion
Drawing leaves the screen or erase appears incomplete
-
Clamp coordinates with the dot radius in mind; the original code does not show bounds handling.
-
Allow the full refresh to complete after clearing. Partial updates are intended for incremental drawing and may leave artifacts when changing black pixels back to white.
Enclosure, battery, and sensible upgrades
The project’s optional 3D-printed case brings the board and modules together. Right-angle headers help keep jumper wires parallel to the board for a thinner package. However, the original instructions do not establish a guaranteed drop-in fit across Inkplate variants or fully specify print orientation, material, layer height, encoder mounting, or battery retention. Dry-fit the exact board and modules, leave access for the charging/USB connection, insulate and secure the battery, and add strain relief before carrying the device.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →The board includes charging circuitry and a JST battery input, but that does not make every battery with a matching-looking connector appropriate. Verify voltage, polarity, protection, physical fit, and the manufacturer’s instructions before connecting a cell. Battery life will depend on battery capacity, refresh use, wireless activity, and software behavior; the project does not establish a runtime figure.
-
Make drawing reliable: debounce inputs, reject invalid encoder transitions, clamp coordinates, and reset the cursor after erasing.
-
Make erasing predictable: filter motion readings, calibrate a threshold for the enclosure, add a cooldown, and provide a button fallback.
-
Add features carefully: microSD drawing storage, menus, a third encoder, or color support require more than a hardware feature alone. They also need a defined data format, interface state, and refresh strategy.
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 minuteSpecial offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Is this project worth building?
Build it if you want a retro-inspired input experiment, an introduction to e-paper rendering, or a platform for learning rotary encoders, I²C sensors, and ESP32 development. The concept is straightforward, the parts are modular, and the controls make the drawing process physical rather than touchscreen-based.
Do not copy the prototype unchanged if you need dependable input or a polished portable device: resolve the horizontal DT pin mismatch, add encoder debouncing and coordinate limits, and redesign shake detection and post-erase cursor handling. It is also a poor fit for fast handwriting, detailed art, smooth animation, or immediate erase feedback. Check the manufacturer’s current variant and stock information before sourcing the Inkplate; its product listing and availability can change.
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.

