2020-03-14 21:38:12 -06:00
|
|
|
Wall Art
|
|
|
|
========
|
|
|
|
|
2023-01-07 12:19:42 -07:00
|
|
|
This project's primary home is
|
|
|
|
https://git.woozle.org/neale/wallart/
|
|
|
|
|
2022-07-17 22:22:16 -06:00
|
|
|
This an art piece I have
|
|
|
|
hanging in the wall of my house, with
|
2020-03-14 21:38:12 -06:00
|
|
|
pixels crammed into a cardboard box.
|
2023-01-07 12:24:37 -07:00
|
|
|
Newer versions use an 8x8 grid,
|
|
|
|
in a 3D-printed enclosure.
|
2020-03-14 21:38:12 -06:00
|
|
|
|
2020-03-14 21:39:40 -06:00
|
|
|
It doesn't display anything significant.
|
2020-03-14 21:44:43 -06:00
|
|
|
The idea is to have something to look at if you're idle,
|
|
|
|
without it being a distraction from more pressing issues.
|
|
|
|
If you're familiar with the album "music for airports",
|
|
|
|
it's that.
|
2020-03-14 21:38:12 -06:00
|
|
|
|
2020-03-14 21:44:43 -06:00
|
|
|
Most people, after watching it for a bit,
|
2020-03-14 21:38:12 -06:00
|
|
|
form different ideas about what it's displaying.
|
|
|
|
That's cool.
|
|
|
|
|
2023-12-06 10:50:31 -07:00
|
|
|
|
|
|
|
Setup
|
|
|
|
-----
|
|
|
|
|
2023-12-06 13:33:33 -07:00
|
|
|
When you first plug it in,
|
|
|
|
you will see a yellow pattern with blue or red bars around it.
|
|
|
|
The pattern is your mac address.
|
|
|
|
If the bars are red and a pixel is flashing,
|
|
|
|
that means you need to set up WiFi.
|
|
|
|
|
|
|
|
You can also look at the back for a red LED.
|
|
|
|
If it's lit, you need to set up WiFi.
|
2023-12-06 10:52:39 -07:00
|
|
|
|
|
|
|
Get your phone or computer to connect to an access point
|
2023-12-06 10:50:31 -07:00
|
|
|
called "WallArt".
|
2023-12-06 10:52:39 -07:00
|
|
|
The password is "artsy fartsy", unless you changed it in the source code.
|
|
|
|
Once connected,
|
|
|
|
you should get a browser window that lets you connect.
|
|
|
|
If not, try going to http://neverssl.com/.
|
2023-12-06 10:50:31 -07:00
|
|
|
|
2023-12-06 10:52:39 -07:00
|
|
|
Please configure the clock before the WiFi.
|
|
|
|
This will set up your time zone,
|
2023-12-06 10:50:31 -07:00
|
|
|
so it doesn't blind you in the middle of the night.
|
|
|
|
|
2023-12-06 10:52:39 -07:00
|
|
|
You can clear the wifi information with a reset.
|
|
|
|
|
2023-12-06 10:50:31 -07:00
|
|
|
|
2023-09-04 16:30:21 -06:00
|
|
|
Reset
|
|
|
|
------
|
|
|
|
|
|
|
|
Plug the device in,
|
2023-12-06 10:50:31 -07:00
|
|
|
and connect GND to pin A0 (right next to GND).
|
|
|
|
The red LED on the Feather board should come on immediately,
|
|
|
|
indicating it needs the network set up again.
|
2023-09-04 16:30:21 -06:00
|
|
|
|
|
|
|
|
2023-01-06 12:50:46 -07:00
|
|
|
Network Server
|
|
|
|
--------------
|
|
|
|
|
2023-01-07 12:24:37 -07:00
|
|
|
If you `#define` a wallart server,
|
2023-01-06 12:50:46 -07:00
|
|
|
the program will periodically fetch an image/animation from it,
|
|
|
|
and display that image/animation.
|
2023-01-07 12:24:37 -07:00
|
|
|
I added this so we could send little pictures to my daughter in college.
|
2023-01-06 12:50:46 -07:00
|
|
|
|
|
|
|
Because the fetch takes some time,
|
|
|
|
one of the animation patterns actually shows progress of the fetch.
|
|
|
|
It's the one with the four lights of the same color.
|
|
|
|
After it's either succeeded or failed,
|
|
|
|
it stays on that color for a while,
|
|
|
|
so you can tell how everything is going.
|
|
|
|
Here's what the colors indicate:
|
|
|
|
|
|
|
|
Color it stays on | Status
|
|
|
|
--- | ---
|
|
|
|
Blue | Unable to connect to access point
|
|
|
|
Aqua | Some sort of problem initiating the HTTPS request (DNS?)
|
|
|
|
Green | HTTPS server request failed (404 or similar)
|
|
|
|
Yellow | Image download failed
|
|
|
|
Orange | Everything worked!
|
|
|
|
|
|
|
|
A happy setup will cycle through each color once,
|
|
|
|
and then display orange for a while.
|
|
|
|
|
|
|
|
|
2023-01-08 17:15:33 -07:00
|
|
|
Clock
|
|
|
|
-----
|
|
|
|
|
|
|
|
At night,
|
|
|
|
and sometimes during the day,
|
|
|
|
it displays something like a clock.
|
|
|
|
|
|
|
|
* Each pixel in the top row is 1 hour (3600 seconds)
|
|
|
|
* Each pixel in the middle row is 5 minutes (300 seconds)
|
|
|
|
* Each pixel in the bottom row is 25 seconds
|
|
|
|
* There are four pixels around the bottom that move every 5 seconds
|
|
|
|
|
2024-06-09 21:53:19 -06:00
|
|
|
Build Dependencies
|
|
|
|
------------
|
|
|
|
|
|
|
|
You'll need the following:
|
|
|
|
|
|
|
|
* esp32 boards: Arduino ESP32 Feather
|
|
|
|
* FastLED library
|
|
|
|
* WifiManagerTZ library (and its dependencies)
|
|
|
|
* ArduinoHttpClient library
|
|
|
|
|
2023-01-09 07:19:55 -07:00
|
|
|
|
2023-12-08 20:37:55 -07:00
|
|
|
Updating Firmware
|
|
|
|
-----------------
|
2023-10-13 20:38:01 -06:00
|
|
|
|
|
|
|
python3 esptool.py --chip esp32 --port "/dev/ttyUSB0" --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size 4MB 0x1000 wallart.ino.bootloader.bin 0x8000 wallart.ino.partitions.bin 0xe000 boot_app0.bin 0x10000 wallart.ino.bin
|
|
|
|
|
|
|
|
|
2023-09-04 16:30:21 -06:00
|
|
|
|
2020-03-14 21:49:00 -06:00
|
|
|
Philosophy
|
|
|
|
----------
|
2020-03-14 21:44:43 -06:00
|
|
|
|
|
|
|
I was trying to make pixels fade in and out,
|
|
|
|
and got the math wrong.
|
|
|
|
But what I wound up with looked more interesting
|
|
|
|
than what I was trying to make,
|
|
|
|
so I kept it.
|
2020-03-14 21:49:00 -06:00
|
|
|
|
|
|
|
After many trips to Meow Wolf's House of Eternal Return,
|
|
|
|
I realized that the presentation of the piece
|
|
|
|
is more important
|
|
|
|
than how complicated the algorithm is.
|
|
|
|
|
|
|
|
It's hard to encapsulate in a git repository,
|
|
|
|
but if you want to make NeoPixel art,
|
|
|
|
think hard about what the end result should look like.
|
|
|
|
It's not enough to make a cool light show;
|
|
|
|
it has to make people wonder "what is that for?"
|
2024-06-09 21:53:19 -06:00
|
|
|
|
|
|
|
|
|
|
|
Apology
|
|
|
|
----------
|
|
|
|
|
|
|
|
I am no longer a C++ programmer.
|
|
|
|
The structure of this code is awful.
|
|
|
|
I'm sorry.
|
|
|
|
I didn't feel like a 2-day refresher in a language I never use,
|
|
|
|
for code nobody else is likely to ever compile.
|