Blume is a platform for LED projects. It combines the ESP32, a cheap Bluetooth- and WiFi-enabled Arduino-compatible microprocessor, with a cross-platform Cordova app. This app lets you control LEDs connected to the device with any smartphone or tablet. See the browser-based demo or download the app from the iOS App Store or Android Play Store. Demo video.
- Install npm if you don't have it
npm install -g cordova
- From inside this repository:
cd cordova/www/
cordova prepare
cordova run ios
(orandroid
, etc.)
NOTE: These instructions are for the Bluno Beetle by DFRobot, which was used in earlier versions of the software. The setup is mostly the same but you'll need to install the ESP32 Arduino Core and choose the ESP32 Board/Port accordingly.
- Install the latest Arduino IDE
- Open
blume.ino
- Under
Tools > Board
chooseArduino/Genuino Uno
- Under
Tools > Port
it's something like/dev/cu.usbmodem1411
on macOS or whichever one identifies asArduino/Genuino Uno
- Default settings for
DATA_PIN_0
,CLOCK_PIN_0
, etc. should work if you're using the recommended wiring layout and APA102 LEDs. Refer to FastLED's documentation to use other LED chipsets etc. - Change
NUM_LEDS
,BASE_WIDTH
,STAGGERED
, andZIGZAG
to suit your project.- The code currently assumes that projects with
BASE_WIDTH
greater than 1 are using flexible LED strips wrapped around an object, andBASE_WIDTH
is the number of LEDs per "wrap". - If the LEDs of one wrap are offset from the LEDs above and below, setting
STAGGERED
to true will account for this alignment, adding 1 toBASE_WIDTH
for every other row. ZIGZAG
should be set true if your LEDs are arranged in rows like a snake, where the direction of data alternates each row.
- The code currently assumes that projects with
- Upload code to board
- Investigate over-air programming options
- Add "locking" so a Blume can be "paired" with and only accessed by a certain app instance, or passphrase, etc.
- Some new modes:
- 2 or 3-color palette mode
- "Sparkle" ("random" is the start of this)
- Text to POV
- Monochrome POV with color setting after data is sent
- Full-color POV? Very limited frame storage available...
- Make a custom board that works even better with LEDs
- Develop for other bluetooth-enabled Arduinos
- Evaluate/refactor easyble and other Evothings remnants (a bit one-size-fits-all)