Skip to content

Get 32 outputs from ESP8266 boards using shift registers and I2S

License

Notifications You must be signed in to change notification settings

Crypter/CryptoIO

Repository files navigation

CryptoIO

Get 32 outputs from ESP8266 boards using shift registers and I2S

What this library can do:

  • digitalWrite
  • analogWrite (aka. PWM)
  • DSWrite (Delta-Sigma PWM)
  • servoWrite (servo control signal)
  • LEDWrite (Delta-Sigma PWM, exponentialy scalled for realistic LED light output - 127 really looks like half the light of 255)

...and all of that on DMA using timed interrupts for better precision. This means the CPU is mostly free for other uses.

You have sinceTimer and resetTimer functions inbuild for easier timing manipulation.

Soon I'll add wiring diagram, this should suffice for now:

  • GPIO2 (NodeMCU pin D4) [i2s output ws] <=> latch (74HC595 pin 12)
  • GPIO15 (NodeMCU pin D8) [i2s output clock] <=> serial clock in (74HC595 pin 11)
  • GPIO3 (NodeMCU pin RX) [i2s output data] <=> serial data in (74HC595 pin 14)

This library still needs a lot of improvements and optimisations, the current version was good enough for the internet. If you find a bug please report it, or even better - contribute a fix!

Idea taken from Cnlohr's LED driver and Lhartmann's RepRap driver.

About

Get 32 outputs from ESP8266 boards using shift registers and I2S

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages