Quote Originally Posted by dkulp View Post
Bit of history: When the Beagles were first used to drive pixels, the pins that were associated with each port were hard coded into FPP. The original F4B, F16B, and RGBCape48 pinouts were compiled directly into FPP. This basically meant that anyone that was designing new capes that used a different pinout had to add a bunch of code into FPP, wait for an FPP release, etc... in order for the boards to work. In the 2.x timeframe, the pinouts were moved out of FPP and into json files. They were still part of FPP releases (in /opt/fpp/capes/bbb ) but it made it a lot easier to update things as well as to add new boards. In 2019, when I designed my new boards, I decided to add an eeprom to the boards and have the pinouts JSON stored on the eeprom. Thus, in the future, FPP doesn't need to know ahead of time what the pinout is and such. While doing this, I also allowed storing other things on the eeprom (like default string configs, default settings, etc...). Anyway, that's pretty much what is on the eeprom image. Just makes it possible for FPP to know what the cape is and configure itself appropriately without needed a bunch of changes in FPP for each board.
Dan - Thank you very much!