The VFD Collective

View Original

Stopwatch for Fluorescence: Firmware Update Version 2.3!

Hey there, have a fantastic new year filled with happiness, good friends, adventures and great promises!

Dark theme! 🤩🎇🎆🍾

Have you ever heard of or even tried a social media detox? Well usually the first thing I do is to check my phone when getting up. Whatsapp, Instagram, mailbox, Pinterest and Instagram and Instagram… oh! Unobtrusively I happened to waste half an hour of the morning. In the quieter days between new year and the first day of work I thought of why not giving the detox a shot since there’s not that much happening on the phone anyways (at least it’s boring scrolling through the same content over and over again). As a consequence, my phone and all tech gadgets are turned off during nighttime.
I tell you that I’m the sluggish kind of person so I need a todo list for every day, especially for the morning to actually get things done. One thing in my routine is to declutter and clean my place for exactly 30 minutes. Why the heck am I telling you this? Well the morning I woke up with my all my tech stuff turned off I realized that I couldn’t precisely track my decluttering time with my phone stopwatch. Hey, so why not program a stopwatch yourself and add it to Fluorescence? That’s why I’m here now and super excited to announce a little big software update for Fluorescence by The VFD Collective, to share my stopwatch extension to Fluorescence with you. Let’s see what’s new and how you can enjoy the new features:

New Features of Version 2.3

  • Use Fluorescence as a stopwatch!
    -> Navigate to the stopwatch using F1. Start the stopwatch by pressing F2, pause and resume with F3 and reset with F2 when stopwatch is paused
    -> Running time and paused time is kept when switching to time display
    -> Track time precisely to a hundredth of a second using the milliseconds display up to one hour!
    -> 1 second resolution up to 99 hours. The stopwatch will start over automatically

  • The colors of spectrum fade are now customizable in level of saturation and brightness!
    -> Short press F3 to change brightness (40%, 70% and 100%), long press F3 to change saturation (50%, 75%, 100%)

  • The colors of cross fade and chase fade are now customizable in level of brightness!
    -> Long press F3 to change saturation between 50%, 75% and 100%

  • Customization is made possible by a more efficient color space transform algorithm that uses fast 32 bit fixed point arithmetics to calculate a transform between HSL and RGB

  • A bug has been fixed that caused Night Shift to become unstable under certain conditions

As too many things in the Fluorescence firmware, the stop watch and the new night shift are simple finite state machines (FSM). Here is a very practical article I’ve found on Instructables about how your project can benefit from FSMs. A basic sketch of how they work is illustrated below (don’t have to be correct by any means):

Sketch of finite state machines of stop watch and night shift found in firmware version 2.3f of Fluorescence

Update to the newest firmware by visiting the download area, or brew your own version on GitHub.

New Git Repo: Another 565 Bitmap Library

I have taken the color space transform function out of an open source MP3 player project. I was responsible for coding and communication with the visual interface last summer. Besides working on a heavily improved version of the MP3 player currently myself, I had a lot of fun working with the TFT display, which at the end was capable of drawing color wheeled texts. The display has a 16 bit of color resolution in R5, G6, B5 format. I didn’t get enough of that so I had to create a simple library myself that does a lot of insane, senseless or insane and senseless stuff with RGB565 bitmap (.BMP) images. It’s written in hardcore plain C with some kind of object oriented code:

https://github.com/hey-frnk/another565lib

Original image. Mountain greets!

Output after 2D plot overlay, point curve, two rotations, gaussian blur and bicubic downscaling

  • The basic C-class RGB565Image can load and save a 565 format bitmap

  • There’s a 2D plot class which takes an image and creates a 2D graph of one or multiple discrete functions

  • Make pictures instagrammable with the processor class! Just like Lightroom, you can define a point curve for each color channel, rotate, scale (both with bicubic, linear or simple interpolation) and dreamify (lol, sounds funkier than ‘blur’) pictures

  • Help me to make it more efficient or to valgrind. No memory leaks yet (I hope)!


That’s it for now! I’m working on a lot of amazing things for The VFD Collective which I will uncover and reveal soon. Until then, stay amazing and have a random picture of a broken lift going viral at my uni.

See this gallery in the original post