Some time ago my RPi with running Doton crashed. It was quite a surprise but happens:) Reason was trivial, I moved it and SD card was pressed against the wall and ejected 🙂 But after a restart, it crashed again but this time with a fatal error. This hits me! We have no way of showing a temperature that is under zero!
This also remembered me that I didn’t do anything with the project for some time. I still have a window manager to redesign and rewrite.
But let’s start low and first clean up a GIT repository by removing submodules and changing a readme.
This project started its life with Daj się poznać competition but competition is over. Time to clean it up from additional modules and leave only files that are used.
The fastest method was to manually delete .gitsubmodule and directories 🙂
To use our beautiful ILi9325 display with ProxyLCD we need to manually edit settings.ini. This is not a good way:) Why is that? Because we cannot set a proper size. We are using a selector with predefined values. We need to change it to two text fields.
And we need the formatters, what is that you may ask? You shall see 🙂
Last time we wrote an HD44780 driver that takes GfxLCD compatible display and works with CharLCD package. This is nice because we can use big ILI9486 as a character display.
You may ask, why?
Because with ProxyLCD we can see a big output from Symfony 🙂 And because we can 🙂
Today we will focus on two bugs from a previous part and we will see if all chipsets can work with HD44780 driver.
Finally, something that is missing from the start, the ability to write some text on display. In Doton we needed an ability to display numbers and we have done it via images. It was a partial solution but good enough. But we want more 🙂
So this time fonts, text and another step in endless struggle with displaying anything anywhere 🙂
We can rotate both ILI displays but NJU and SSD are awaiting their turn. Let’s give them some attention and add rotation to them.
This will close another task on endless list of improvements 🙂
From what I see we should change drawing functions (recalculate coordinates) and flushing buffer should stay the same because it works directly on hardware.
We have tests for page drawing algorithm. We can move on and add tests for area one. Writing tests for area drawing is much harder. This mode works on the device directly.
We need to create a dummy driver and chip class in such way that it would translate device’s command to an array. (more…)
We need tests for GfxLCD and we need it now! But this is a driver so what can we test? W can and must test all drawing functions. We have two algorithms the page and the area. Let’ begin with page one.
We can mock a chip class in such way that it won’t use a driver and all drawing would go to a buffer and we always can check if buffer looks as we want.
We have a driver for ILI9486 320×480 display and we can run Doton on it. But currently, it would use only half of the screen. Our window manager has hard-coded dimension 240×320.
We need to do something with it. I think we can update manager to calculate grid from dimensions and additionally we can add tiles auto positioning.
Why? Because it seems that not setting position on the screen can be better 🙂 System can add pages when required and take care of horizontal vs vertical position.
But I think that we should be able to set coords if we want to.
Last time we ignored a touch panel. But without it, our Waveshare shield is half-functional. So let’s do something about it: )
We have an XPT2046 panel that is compatible with AD7843 and it is compatible with AD7846 🙂 XPT has additionally a pressure sensor.