Based on waveshare RP2040-1.28-LCD
- Simulated fluid
- Grid display
- Four-direction shake to change colors
- Sleeps after being idle for a while
- Wake on motion
+ Wake on motion
- The original woke via a pin
+ Color change on shake
- The original was single-color
+ Added documentation and setup steps- https://mitxela.com/shop/fluid-pendant
- https://mitxela.com/projects/fluid-pendant
- https://www.youtube.com/watch?v=XmzBREkK8kY
- Fluid Pendant remake (Chinese)
You can either build it yourself or flash a prebuilt image. (For security, you might prefer building it yourself; the release should include matching builds.)
- Download the corresponding prebuilt
.uf2file from the GitHub release. - Hold the BOOT button on the board while connecting it to your computer. A mass-storage drive should appear; copy the
.uf2file onto it. (If it doesn’t appear, try again; you may also need a different cable or USB port.) - After copying the
.uf2, the board will reboot automatically and the app should start.
- Get a Waveshare RP2040-LCD-1.28 board without touch (the touch version uses different pins and code; you’d need to modify it yourself).
- Use a reliable data-capable USB cable and a stable USB 3.2 (or equivalent) port on your computer.
- Follow the Waveshare wiki to install the Arduino IDE (with the Raspberry Pi Pico support), and also install VS Code with the PlatformIO extension.
- Clone this repository from GitHub.
- After setup, click the checkmark (PlatformIO Build) in the top-right of VS Code to build.
- When the build finishes, a release/artifact folder will contain the
.uf2firmware file. - Hold the BOOT button while connecting the board; when the drive appears, copy the
.uf2file onto it. - The board will reboot automatically and start the app.
- Fluid behavior
- In
lib/FluidRenderer. You can adjust fluid particle constants inFluidRenderer.hpp.
- In
- Sleep modes
- In
lib/LowPower, which usesLowPowerRP2040.h. If you want to switch between wake-on-shake and pin-based wake, change it here.
- In
- Shake-to-color
- Implemented in the fluid code and partially in
main.cpp.
- Implemented in the fluid code and partially in
- Enclosure
- Download the
shellfiles in this repo and 3D-print a case.
- Download the
- Battery
- You can add a battery with a 1.25 mm connector (often called JST/MX 1.25) or solder your own leads.
- Power switch
- Add a physical switch and set its pin in the code to sleep/wake for better power savings.