HUGE usability improvements, optimizations, and the first new features of this firmware!!
So I know its been a few days since I haven’t posted an update here, but I have been reallly busy! I’ve got a lot of news, so let’s start from the top!!
Really cool thing happened today and yesterday - I brought my XTEINK X4 with me out in public! So we went to the post office (sat in line for a few hours) and read 35% of Alice in Wonderland using this custom firmware! It felt amazing, I was productive (rather than doomscrolling on my phone) and I got immersed in the story. So yeah, this firmware works. Was not distracted, and it was INSANELY efficent because my battery is still at 100% and I haven’t charged it since Friday (that’s two full days of reading and its still at full battery! Gotta love optimizing firmware and e-ink displays!!)
Now, this was mostly due to the major new optimizations that I have spent countless hours on. I experimented with turning off the display power rails after 5 seconds, but this was a realllly bad idea because I didnt test it properly and I ended up trying to read in bed with text overlapping each other because the power rails were actually needed to properly remove the old text during a page turn!!
By far the most helpful optimizations were the preloading and caching everywhere. This allowed for partial refreshes throughout everywhere on the display, which means less energy is spent on a full refresh but instead on a smaller piece of the screen. This meant that I could both improve the performance and reduce latency of the application AND reduce power usage, which was a massive win!!
I did a quick speed test comparison between my brother’s XTEINK running CrossPoint and my firmware and there is without a doubt that my firmware is faster now with these optimizations. Eyeballing it, it seems like i am getting 200% faster page turns and menu switching.
As if I couldn’t optimize more, I managed a few more major improvements. I made compiled books more sensible, since they no longer require the epub on the device and embed everything in the highly optimized binary file format. I made the file format even faster with image handling, and it is about as small file-size as it gets, so you can drop an 8GB or 4GB card in the device and get more books on it. I personally think I wouldnt ever hit 2GB of books on the device!
Structurally, the position files are no longer stored in a special directory and instead they are stored in the book folder, so you dont need to know its ID! And the actual data/settings are stored in a single file in the home now, so i just got rid of the .wintergreen/ folder, which is a nice little cleanup. This is as minimal as it gets now, SD card wise. This is better for the SD card health as well!!
As for the reading experience, there is SO much new and improved stuff. You know the sleep cover that appears when you turn the device off? It had annoying bars on the sides or the top, which was really distracting. I experimented with a background which filled to the same color as the book background, yet it was ugly and didnt work with books which had a different color on the sides.
So heres what I did differently which actually looks better than it sounds: i made the book stretch to fill! It actually makes the text look BETTER, everything looks nicer and we aren’t wasting any screen space with empty bars. Just look at the images below!! It looks amazing.
And in the quick menu, I made it so you can select the actual book to continue reading it again, without needing to move your thumb to the back button. I use this feature so often since its conveniently placed at the top near the settings, so you can adjust a setting, go up and then start reading again.
(I hit the 4000 character limit, posting a second devlog to finish this lol)