Releases: vladkorotnev/plasma-clock
Releases · vladkorotnev/plasma-clock
PIS-OS v5.3
Added
- LED based driver (Akizuki Denshi K875) using crossed over shift registers and a bunch of DMA/MCPWM trickery
- Noritake GU7000 driver can now do blanking instead of full shutdown to reduce repeated strain on the heater filaments
.env
file can now have default WiFi credentials- Support for incontiguous monospace fonts
- Support for per-character font fallbacks (when a character doesn't exist in a font, find it in other known fonts)
- Load (a hardcoded list of) fonts from LittleFS (bespoke format: Monospace Font a.k.a. MoFo)
- Allow loading translations from JSON files off LittleFS instead of hardcoding them
- Japanese fonts (no more broken track names in FB2K for me yay!)
- Photo gallery
New Ringtones
Fixed
- Alarms and other on-screen menus now won't be disrupted by HTTPFVU
- Wordnik and Weather tasks don't block indefinitely waiting for cache
- Pause power management during HTTPFVU
- Avoid doing direct LittleFS calls around the code
- Japanese talking clock now has longer delays in speech
- New Year easter egg now correctly shows on displays significantly wider than 100px
- Mostly fully migrate to UTF8 in I/O and file strings, UTF16 internally instead of CP866 (DOS) encoding
Removed
- Deprecated
Beeper::beep_blocking()
method is now removed - Due to SPI Flash vs. PSRAM congestion issues in the font loader, Rev0 and Rev1 silicon of ESP32 is not supported anymore. Things will try their best but eventually explode and fail to boot! Rev3 seems to work just fine for all builds so far.
PIS-OS v5.0 "'straya, matey!"
Added
- HTTP updates from this repos CI
- Bring up the music screen whenever receiving a Foobar2000 track change event in idle state
- WS0010 power management now works as expected (when powered from 5V only)
- Configurable webadmin login and password
New ringtones
Fixed
- Avoid hangs and core congestion by sequential start of Wordnik and Weather services during boot
- Don't refresh Wordnik if nothing is using it
- Breaking change: random melody is now index 0, change your settings accordingly
PIS-OS v4.1 "Take some nori"
Added
- Noritake Itron GU7000 series graphical Vacuum Fluorescent Display support
- WS0010 OLED: now has intra-frame strobing (BFI) to reduce smearing and tearing of the image, especially noticeable in scroll strings
- The 12h display mode now shows an AM/PM indicator
- Now possible to disable seconds display on the main clock screen
- Now possible to choose brightness of the screen between Low, High and Auto (availability depends on hardware configuration)
- Speaking time on headpat in idle can now be turned off
- Light sensor can now be calibrated from the on-screen menu easier than in webadmin
- Headpat in timer screen now starts or stops the countdown
- Shows the network name and IP address in idle if running in SoftAP mode
- Button beep can now be turned on even on non-touch devices
New Ringtones
Fixed
- More sensible target names
- Some old ringtones were out of tune due to an error in the conversion script, they were converted from scratch again
- Occasional hang on boot should be fixed now
- Coming back to the idle screen now resets the current widget's screentime
- Easter egg screen now properly calls out to the PM task to pause and/or resume
- Fix headpat being broken in the alarm ringing state
- Don't try to bring up AM2322's humidity sensor if the temperature sensor has already failed
- Next alarm countdown screentime setting now works correctly in webadmin
- WiFi No Signal icon now shows properly when disconnected and running in SoftAP mode
- Don't bootloop when WiFi password is incorrect
- Shorten the polling time for the motion sensor to accomodate direct comparator output modules such as Panasonic PaPIRs
Removed
- microPISOS devkit target (WS0010 + touch plane)
PIS-OS v4.0 「ヨシ!」
Added
- Webadmin is now fully hosted within the device
- Separate music player app for listening to full ringtones with visuals
- Fireworks effect during the first few days after New Years
- Small easter egg animation and melody for New Years
- Voice can now be switched between loud or clear resampling modes
- Timer screen now blinks after the time has elapsed
- Devices without motion sensors can now also use screen blanking and shutdown
- Music can now be stored in a compressable file format PoMF :3c (Portable Music Format)
- Music is now located in a separate LittleFS partition! Don't forget to upload filesystem images.
New Ringtones
- Minamotoya feat. motoko - Stasis
- Roxette — Stars
- HIRO — Space Harrier
- A-ha — Take On Me
- Ennio Morricone — My Name Is Nobody
Fixed / Changed
- 12/24h voice setting in menu was actually changing a different parameter
- Sampler can now correctly change the pitch of the sample
- Timer tick doesn't sound weird on minute/hour boundaries anymore
- Headpat behavior is now unified no matter the device class
melody_item_t
is now just 5 bytes in size (was 12 bytes)- Hook points are now a subset of loop points (saving capacity for later sequencer command IDs)
- Screen blanking and shutdown are now separate device class capability flags
- Performance of the MIDI IN mode has been significantly improved by removing excessive log spam
Removed
- Due to firmware size constraints, the PNG encoder was removed and thus the web screenshot feature is now gone.
v3.7
PIS-OS v3.7 "I Can't Believe It's Not Codenamed!"
Added
- Rendering of Cyrillic letters (UTF8 → CP866 conversion)
- Multiple language display modes: English, Russian
- Fahrenheit/Celsius temperature display (but not settings)
- Multiple language TTS modes: English, Russian, Japanese
- 12h mode for display or voice (but not settings)
- Graphical (re)boot screen
- Some songs now have a "hook" defined: a shorter version to be used as a hourly chime or preview
New Ringtones
Fixed
- Glitchy sound when starting to play a sequence sometimes
- (Techdebt) Move all songs to their own .h files
v3.5
PIS-OS v3.5 「ゆっくりしていってね」
Added
- Weather app in menu
- 2-day weather forecast view
- Precipitation and pressure charts
- Serial MIDI mode toggle in settings
- Talking clock (in Japanese only, uses AquesTalk Pico: requires a paid license, see readme in
lib/nonfree-aquestalk
for how to install) - Advanced text rendering modes: outlined, no background, etc (quite slow for now)
- Sprites and anisprites are now rendered using a Composable rather than direct framebuffer calls
New Ringtones
Fixed
- Going past the max ringing time of an alarm while snoozing doesn't cancel it anymore
v3.0
PIS-OS v3.0 "Skibidi Bop Bop Yes Yes"
Because every alarm clock needs a built-in sampler and remote desktop access!
Added
- Screenshot feature in WebAdmin
- Remote control feature using a crappy Python/Tk based GUI over UDP
- Fully featured 1-bit audio engine (CBA to resolder both clocks I have to make use of the internal DAC. And if I wanted an alarm with MP3 quality audio I'd just use my phone!)
New Ringtones
- Bouken Desho Desho, Gentle Jena, Gammapolisz: reworked for polyphonic driver
- Hiroyuki Oshima - The Ark Awakes From The Sea Of Chaos
- Timbaland - Give It To Me also known as Skibidi Toilet
- PinocchioP - God-ish (神っぽいな)
Changed
- Sequencer format is now more MIDI-like rather than the old format of
{frequency, length}
due to the new polyphonic sound driver
Removed
- Support for Beeper channels and priorities
- Sequencer object is now shared across all apps
v2.2 codename "Peace Door Ball"
Note: I need to attend to some important work stuff and plan a vacation from now on, so this is the last one for a while — things seem to be stable enough. (I PRAY TO FINALLY PAUSE WORKING ON THIS)
Added
- Stopwatch app. Access from menu, Right to start/pause, Down/Up when paused to reset.
- Uptime display under Settings → Status.
- Periodic uptime and free RAM logging.
Changed
- Weighing app now shows arrows when the weight has stabilized rather than when it is zero
- LED of Balance Board is now constantly on when Weighing app is launched, off otherwise
- Periodically blink the LED of Balance Board to keep it awake and connected (Yes you better wire-mod it unless you want to eat batteries like crazy)
Fixed
- Don't furiously blink the LED of the Balance Board upon connection, which congested the Bluedroid queue and made the connection freeze
- Keep the Balance Board alive so that the connection does not get stuck over time and require a reboot of both the board and the clock
Composable
class allows to constrain aRenderable
into a part of the screen "automagically". One step ahead to a proper composition engine with rects and all?DroppingDigitView
class allows to easily draw dropping digit numbers without direct calls to theDroppingDigits
trait. (The trait currently remains for use-cases with non-standard easing curves, such as the clock view)
v2.1 codename "Peace Door Gun"
Added
- Support keypad instead of touch plane
- Smart alarm (wake up a bit earlier if motion is detected within a set margin before the alarm's set time) for devices with motion sensors
- Remaining sleep time widget
- Option to set max duration of an alarm so your neighbors don't have to listen to Guitar Hero for the next few weeks if you left for a trip and forgot to turn off the clock :-)
- Sequencer can now loop a ringtone from an arbitrary point and change generator's duty cycle ("timbre")
- Support for connecting to a Wii Balance Board. For now only displays weight.
New Ringtones
- Dougal & Gammer — Guitar Hero
- 蜂屋ななし — シャボン
- Takeshi Abo — Gate of Steiner
- deadballP — 永遠に続く五線譜
- Cream puff — Mermaid girl
- Brisk & Trixxy — Eye Opener
Fixed
- Fix bug when alarm app would continuously call the stop function while animating the fade out, thus potentially stopping a neighboring upcoming alarm
- Alarm struct now uses bitfields instead of bitwise operations
change_state
is now just setting a variable and the actual switch is done in the main thread. Fixes an issue where a timed out alarm would effect in the next alarm timing out at 0ms into the ringing.put_fanta
doesn't corrupt the source buffer anymoreStringScroll
now pre-renders the whole scrolling string in-memory for the sake of reducing microlag- Blitting functions now properly skip the out-of-bounds areas of the drawing plane instead of idle-looping through respective pixels, improves microlag, especially when there is a long (200+ character) StringScroll being displayed.
- PSRAM is now being used more agressively; use
gralloc
when allocating graphics buffers to ensure they are in the fast RAM area. - Looping point is fixed in most existing ringtones
v2.0
Wow that's a ton of shitcode.
Added
- HID subsystem for buttons or things
- Janky touch panel driver for a 4 zone touch pad on top of the screen (left/right/up/down)
- Even jankier menu subsystem that has been born in need of refactoring right away!
- Flip through screens in idle using up/down buttons
- Go into a menu from idle using the left button
- Simple countdown timer
- Alarm mode with up to 9 alarms and snooze
- Settings menu to allow basic clock/calendar configuration without using WiFi
- Add more alarm tones, which are covers of:
Fixed
- If an API request fails, now it is retried quicker than upon the configured interval
- Clean up the views folder of the source code
- Lines in the FB2K view now don't slide out of phase
- Bring the PIS-OS and microPIS-OS version numbering in line