Drivers are easy but they are a lot of fun to write

It's been about five days since I've started working on the display driver for the SSD1306 and I'm quite happy with the progress so far, I have to say. Today I finally managed to write pixels to the screen, although the output was not what I expected, but it's progress nonetheless. Not sure what I'm missing because I was setting the entire display to 0x01, which should have turned all the lines on, but all I could see was four lines. I've gone through the data sheet about twenty times by now, but I've skipped over the bit about writing to the display RAM, so I'll probably start there tomorrow. Hopefully, tomorrow I can set the entire display on. Just as I was writing this, I've realized what I might have missed, but I've been at it for a couple of hours and will probably go through it tomorrow.

The next steps

The obvious thing would be to call a function that would allow me to write text and update the screen as the text gets updated. Writing text might be slightly complicated as pixels get written vertically, which would have been fine on its own, but it writes each bit of a single byte vertically. Not sure if I'm explaining that well, but this is what the datasheet says:

When one data byte is written into GDDRAM, all the rows image data of the same page of the current
column are filled (i.e. the whole column (8 bits) pointed by the column address pointer is filled.). Data bit D0
is written into the top row, while data bit D7 is written into bottom row

I had to read that about four times and then read the explanation in another blog to get what it was saying. It's all good. It's teaching me attention to detail and to follow instructions exactly as they are laid out, which I totally suck at. But with hardware there is no way around it. It's the instructions or nothing. At least so far.

Getting good at SQL

I've been avoiding SQL for a while now, I'm usually quite good at focusing on the things I suck at. But with SQL I've been telling myself that I don't really care about it too much, so I'm just going to let the AI write it for me. Which has worked fine so far, but it's slowing me down a bit. Most importantly, it's bothering me that I'm avoiding something I could get decent at with a little bit of deliberate practice. So from now on, I'm going to rely on the AI as little as possible to write my SQL.