-
Put all of those strings into flash memory!
-
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.
-
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.
-
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.
-
write's value argument should have a default value, because it's pretty frequent that you just want it on full power.