Decided to do a small overhaul, removing some unused features and making some small improvements to performance and readability.
For starters the "calibrate" option was removed as it's no longer necessary - psieg's Prismatik now has global calibration available within the wizard.
The "ground pin" setting was removed for being confusing at best and destructive at worst. It was originally added to provide a convenient way to use an I/O pin as ground reference in case the other ground pins on the microcontroller were taken or inaccessible. But because this came with no documentation it was possible for someone to think that they could use it as the ground for the entire LED strip. The I/O pins have a low current limit and doing that would damage the port and possibly destroy the microcontroller. Rather than writing a detailed explanation of when to use it, I just decided to remove the feature altogether. It's trivial for the user to add the register writes back in if it's needed.
Some of the extra functions were removed for cleanliness and performance, like moving the adalight() function contents into the main loop and rewriting the serial flush functionality as a macro. The extraneous static keywords from when I was chasing that memory bug were removed for all of the global variables, and I also cleaned up the comment formatting and added function prototypes for PlatformIO compatibility.
Last but not least I made some tweaks to the README, such as correcting the website link and changing some formatting.
As this removes several features it's going to require a new major version: 2.0.
Decided to do a small overhaul, removing some unused features and making some small improvements to performance and readability.
For starters the "calibrate" option was removed as it's no longer necessary - psieg's Prismatik now has global calibration available within the wizard.
The "ground pin" setting was removed for being confusing at best and destructive at worst. It was originally added to provide a convenient way to use an I/O pin as ground reference in case the other ground pins on the microcontroller were taken or inaccessible. But because this came with no documentation it was possible for someone to think that they could use it as the ground for the entire LED strip. The I/O pins have a low current limit and doing that would damage the port and possibly destroy the microcontroller. Rather than writing a detailed explanation of when to use it, I just decided to remove the feature altogether. It's trivial for the user to add the register writes back in if it's needed.
Some of the extra functions were removed for cleanliness and performance, like moving the
adalight()
function contents into the main loop and rewriting the serial flush functionality as a macro. The extraneousstatic
keywords from when I was chasing that memory bug were removed for all of the global variables, and I also cleaned up the comment formatting and added function prototypes for PlatformIO compatibility.Last but not least I made some tweaks to the README, such as correcting the website link and changing some formatting.
As this removes several features it's going to require a new major version: 2.0.