This fork of the PixelIt firmware (version 2.2.0) is work in progress to bring current PixelIt funtionality to the Ulanzi Pixel Clock.
It is unlikely that additional features will be added to this fork as our overall aim is to (hopefully) provide what we learn about the Ulanzi back to the original project for incorporation into the firmware as a supported device.
Where we can, we will document our findings within this repository.
- Write Wiki to cover off building and installing the firmware
- Investigate building and attaching a single
firmware.bin
file (including bootloader, filesystem and firmware) for GitHub distribution Document which pins the Ulanzi uses for communication- Document API integration with Home Assistant
Fix the left button not being recognisedFix the constant tone generated after flashing the UlanziAdd show battery percentage on wakeAdd temperature and humidity sensors(thanks to @lubeda for help with this)
@wsbtak |
@aptonline |
The Ulanzi uses a ESP32-WROOM-32D board as shown below.
ESP32 PIN Number | GPIO Name | Usage or part | PixelIt Mapping |
---|---|---|---|
6 | ADC6 / GPIO34 | Battery sensor (displays battery % on wake) | n/a |
7 | ADC7 / GPIO35 | LDR (light) sensor (GL5516) | n/a |
8 | GPIO32 | Matrix Type 2 / Row Major | n/a |
11 | GPIO26 | Left button | Pin_D4 (Active low) |
12 | GPIO27 | Middle button | Pin_D5 (Active low) |
13 | GPIO14 | Right button | Pin_D6 (Active low) |
23 | GPIO15 | Buzzer | n/a |
n/a | n/a | Temperature and Humidity Sensors (SHT3x) | I2C address 0x44 |
The PixelIt is an ESP8266 / ESP32 (under construction) and WS2812B-LED based PixelArt display, controlled and fed via a JSON API. Settings and small tests are possible via the web interface, also a node-red node (node-red-contrib-pixelit) for the JSON API is available.
If you want to get an impression of the WebUI, you can do that here in Demo WebUi.
Thanks to these great people for supporting this project.
Dennis Rathjen |
Fab!an |
Miccgn |
Pplucky |
Fernando Muñoz |
Rozza-m |
HBach |
Martin Straub |
Hamster65 |
Rliegmann |
- (miccgn) Fix Show weekdays
- (miccgn) Fix probing onewire can break previos i2c communication
- (rliegmann) Bring ESP32 support back
- (foorschtbar) Removed support for ESP32. There are incompatibilities with the WiFi Manager lib and the maintenance effort to fix this is currently too high (PRs are welcome!)
- (foorschtbar) Swaped DFPlayer Mini TX and RX pins - Description in frontend and source code now fit together. [Breaking change! No migration takes place! You need to swap the pins in your config!]
- (foorschtbar) Support for NodeMCU v2
- (d4rkd3v1l) any "clock" json parameters are now optional pixelit-project#222
- (o0shojo0o) fix WebUi
- (foorschtbar) added Play a sound file on boot of PixelIt 🔊
!!! Breaking changes !!!
- (pplucky) fix Home Assistant MQTT discovery for buttons more
- (foorschtbar) readded support for tiled 4x 8x8 CJMCU Matrix in column major order
- (o0shojo0o) added new icons to UserMap
- (fmunozs) added proper "folder" icon and swap names with "file"
- (o0shojo0o) increase the timout for the wifi connection to 30 seconds
- (o0shojo0o) added send Telemetry data
- Send telemetry data is enabled by default, but can be disabled at any time in the WebUI under Options.
- (o0shojo0o) added UserMap to WebUI
- (foorschtbar) search and display of new FW versions
- (foorschtbar) new boot animation 👀
- (o0shojo0o) fix URLs in WebUi
- (o0shojo0o) added option to disable the weekdays on the clock over API / WebUi
!!! Breaking changes !!!
- (o0shojo0o) reworked the output of the buttons via API and MQTT to get the "press" and "release" event (press = true, release = false). Example:
{"buttons":{"rightButton":true}}
- (foorschtbar) added support for new "MicroMatrix by foorschtbar" more | Repo 🎉
- (foorschtbar) fixed the Tiled 4x 8x8 CJMCU Matrix Type (its doesn't work before)
- (o0shojo0o) fixed option for non-flashing time separator over JSON (internal clock)
- (pplucky) MQTT Discovery enhancements
- (o0shojo0o) update WebUi disallow decimals on 'Auto brightness' settings
- (o0shojo0o) extended WebUi for 'Wifi Reset' and 'Factory Reset'
- (o0shojo0o) added 'Wifi Reset' and 'Factory Reset' function for WebAPI and Socket
- (o0shojo0o) fix hexColor for bar and bars
- (rozza-m) added fat clock font more
- (pplucky) Improve MQTT discovery
- (o0shojo0o) fix weekday is not lighting if week is starting with monday (internal clock)
- (o0shojo0o) extended WebUi for non-flashing time separator option
- (rozza-m) remove leading zero from hours when in 12h mode (internal clock)
- (rozza-m) provide option for non-flashing time separator (internal clock)
- (o0shojo0o) added option to change the start of the week (internal clock)
- (o0shojo0o) added option to change date format (internal clock)
- (hamster65) increase AM2320 sensor delay from 600 to 800ms
- (o0shojo0o) fixed wrong DST handling
- (hermannbach) added support for BMP280 (only tested on D1 mini.)
- (miccgn) memory optimization
- (miccgn) added MQTT discovery information in HomeAssistant style
- (miccgn) fix mqtt LWT
- (miccgn) increase interval between reconnect attempts
- (miccgn) added support for Max44009 lux sensor
- (miccgn) offer Zigzag animation and random animation for Clock Auto Fallback
- (miccgn) added button actions for MP3 control
- (miccgn) rearrange and fix WebUI
- (miccgn) added support for local hardware buttons
- (miccgn) added LDR smoothing
- (miccgn) added support for BH1750 light sensor
- (miccgn) added ZigZagWipe, bitmapWipe and randomization for wipes
- (miccgn) fixed MP3Player
- (miccgn) added possibility to set GL55xx type and resistor value in settings
- (miccgn) added selectable pins for MP3Player and Sensors (ESP8266 only)
- (miccgn) optimization of read BME680
- (miccgn) added multiple Bitmaps
- (o0shojo0o) added offset options for gas sensor
- (miccgn) added BME680 support
- (o0shojo0o) added delay for AM2320 sesnor
- (o0shojo0o)
Pixel Gallery
is now a part of the WebUi
- (o0shojo0o) added option for auto fallback animation
- (o0shojo0o) fixed auto brightness overrides sleep mode
- (o0shojo0o) fixed clock auto fallback overrides sleep mode
- (o0shojo0o) added option for DayLightSaving
- (o0shojo0o) added option for 12H / 24H
- (o0shojo0o) added new WebUi on vue base
- (o0shojo0o) fixed clock draw
- (o0shojo0o) fixed auto brightness, to high values
- (o0shojo0o) fixed bitmapAnimation -> rubberbanding
- (foorschtbar) added some UTF8 icons to font
- (foorschtbar) rewirtten UTF8 mapper function
- (o0shojo0o) added offset options for sensors
- (o0shojo0o) added
Clock auto fallback
function - (o0shojo0o) added config for
Clock auto fallback
function
- (o0shojo0o) added API endpoint
/api/brightness
- (o0shojo0o) added config for temperature (°C or °F)
- (foorschtbar) added support for BME280
- (foorschtbar) moved most libs to common section
- (o0shojo0o) extension of the API with the call setGpio
- (o0shojo0o) added download statistics to the update page
- (foorschtbar) improved MQTT reconnect
- (o0shojo0o) support decimal number input for UTC
- (o0shojo0o) bugfix for Firefox
- (foorschtbar) added a customizable hostname
- (o0shojo0o) add update notification to dashboard
- (o0shojo0o) add GitHub link to dashboard
- (o0shojo0o) fix links in dashboard
- (o0shojo0o) transferred the other stuff from cdn to repo
- (foorschtbar) tweaked dashboard a little bit
- (foorschtbar) added a note field
- (foorschtbar) allow a Hostname as MQTT Server (Broker)
- (o0shojo0o) add dashboard.css and pixel.js to repo
- (foorschtbar) switches now have the proper mouse pointer
- (o0shojo0o) add auto brightness options
- (o0shojo0o) add auto brightness
- (o0shojo0o) add hexColor to Clock, Text, Bar and Bars
- (o0shojo0o) fix wemos_d1_mini32 build
- (xarnze) show message on hotspot mode
- (xarnze) added support for 4x 8x8 CJMCU 64 Matrix (Type 3)
- (o0shojo0o) reactivate for esp8266 builds getSketchSize
- (o0shojo0o) set mqtt setBufferSize to 8000
- (o0shojo0o) add env for d1_mini
- (rliegmann) add some missing llibs
- (rliegmann) add some libs into .pio
- (rliegmann) Merge pull request #2 from rliegmann/feature/clockDefaultsToFS-
- (rliegmann) block out getSketchSize temporary
- (rliegmann) change some build options in pio
- (rliegmann) clock default settings, adjust MQTT buffer size, some typo
- (rliegmann) Merge pull request #1 from rliegmann/feature/cross-esp-platform
- (rliegmann) add ESP32 and ESP8266 libs
- (rliegmann) remove VisualStudio overhead + port to platformIO
- (o0shojo0o) change MQTT_MAX_PACKET_SIZE from 4000 to 8000
- (o0shojo0o) new versioning
- (o0shojo0o) Added support for DFPlayer Mini MP3 Player
- (o0shojo0o) Bugfix of the JSON from the API response
- (o0shojo0o) Bugfix memory leak
- (o0shojo0o) Added special characters to font
- (o0shojo0o) Support for DHT22 added
- (o0shojo0o) Bugfix of the JSON decoder logic (thanks to @pixelthis )
- (o0shojo0o) There was a change in the send interval (via MQTT and Websocket) of the light sensor and the MatrixInfo
- The light sensor sends a maximum of once per second when the lux value changes.
- The MatrixInfo transmits once every 3 seconds when a value is changed.
- (o0shojo0o) Now the protocol websocket on port 81 has been added.
- (o0shojo0o) And the biggest innovation is the webinterface which is now available on PixelIt.
- (o0shojo0o) Added Wifimanager configuration timeout (180 seconds)
- (o0shojo0o) Added option to disable the boot screen
- (o0shojo0o) Add more option to set Matrix Temp Correction
- (o0shojo0o) Add new option to set Matrix Temp Correction
- (o0shojo0o) Bugfix animation handling
- (o0shojo0o) Bugfix DSToffset
- (o0shojo0o) Bugfix NTP TimeZone will now be interpreted correctly
- (o0shojo0o) Add new option to set NTP-Server
- (o0shojo0o) Bugfix bitmap handling on scrolltext
- (o0shojo0o) Bugfix Erroneous representation of full screen bitmap
- (o0shojo0o) Bugfix bitmap flickering on scrolling text
- (o0shojo0o) Bugfix, there were problems with the animations in combination with the fade transition effect, so they were not displayed correctly.
- (o0shojo0o) Bugfix Clock Color: If red was set to 0, the color was always ignored.
- (o0shojo0o) add optional BitmapAnimation param: limitLoops
- (o0shojo0o) Bugfix BitmapAnimation: First frame was displayed too short.
- (o0shojo0o) Bugfix BitmapAnimation: Animation was displayed a bit too late when a text was submitted with
- (o0shojo0o) add optional Internal Clock param: withSeconds
- (o0shojo0o) add config param: scrollTextDefaultDelay
- (o0shojo0o) add optional Text param: scrollTextDelay
- (o0shojo0o) add optional BitmapAnimation param: rubberbanding
- (o0shojo0o) replace umlauts
- (o0shojo0o) add support for "Pixel Bitmap Creator" Live Preview (beta)
- (o0shojo0o) Bugfixes MQTT was always enabled
- (o0shojo0o) add MQTT user & password
- (o0shojo0o) add "Text-Color" for internal Clock
- (o0shojo0o) add autoreboot after save config
- (o0shojo0o) add option to set Matrix Type at runtime (need reboot)
- (o0shojo0o) add MQTT Support
- (o0shojo0o) add animated 8x8 icons (max. 6 frames)