A charlieplexing library

  1. Put all of those strings into flash memory!

  2. It seems like there's a lot of bloat. You pull in the floating point library and a ton of strings, which is unnecessary. Although I'm not sure if gcc is smart enough to ignore all of those if the user doesn't end up using the displayConnections function.

  3. You need to use memcpy for getting the pins array, because you don't know what the user will do with it after they've passed you the pointer.

  4. Add some documentation. You should at least say which methods are "you should use this" and which ones are "you probably won't need this" --- I'm guessing that write is the "main" method.

  5. write's value argument should have a default value, because it's pretty frequent that you just want it on full power.