Done with the Bootloader for now - Continuing with Charger Software

A project log for High Efficiency MPPT Solar Charger

A 75 watt MPPT Solar Charger with tons of features. Efficiency > 97%, USB interface, data logging, 2 USB charging ports and much more...

Lukas FässlerLukas Fässler 10/03/2018 at 21:160 Comments

There's not much to show in terms of pictures but the last few weeks have seen intense work on the bootloader software. Most of the FAT16 implementation has been re-written, API functionality added, tested and debugged. It is now possible to write files to the flash drive with a minimum of write operations. This is possible by cleverly buffering data in RAM before performing an actual write on the flash. This means, each page only needs to be written once, even when sending data in small chunks. So the flash (which has a limited number of write operations) will not wear out even if the firmware is updated very frequently.

With that work behind me, I have once again turned to the acual SolarCharger firmware. A number of code files are shared between the bootloader and the charger software. That includes the FAT16 implementation mentioned above but also all the USB code and hardware drivers. The first step was to integrate them and make everything compile again. That's done. So the charger immediately profits from the work I did on the bootloader.

What remains to be done is to separate the API functionality from the USB code. The charger has its own API which previously has only been available via USB. Now I'm putting this into a separate module so that it can be accessed via any of the interfaces. Exactly the same thing I did for the bootloader a few weeks ago. Once that's done, it's automatically accessible via SPI as well - That code is shared with the bootloader and already in place. I expect this to be all up and running by the end of the week.

After this rather technical step I will resume to work on more visible features again. I'm very much looking forward to it. There are several things to be done:

So you see, I'm not running out of work. I have one of those chargers set up here in my office with a panel just outside the window and it's harvesting power every day. But there are always things that can and should be improved, particularly in software. I'm on it.