To configure the driver module, each controller output you use needs a setup command. The setup command allows you to set what power level should be used for each phase, how many phases are used and how long each phase goes for.
When a start command is received, the module will run through the phases as configured, and if there are no endless phases specified, will finish at 0% power level. The output will always idle at 0%. When a stop command is received, the driver will return to an idle state and set the output to 0% power.
The I2C address of the board is 0x10 + the value of the configuration wheel. So the addresses can be set to 0x10 up 0x1F. In the seven bit world of I2C addresses, some microcontrollers specify it as 0x10 (Arduino) and some specify it as if the R/W bit were attached as bit 0 – meaning they specify the address as 0x20. (here is an example for motor, solenoid, driver module https://www.icrfq.com/part/2757905-80049602.html )
The setup command works as follows:
Byte Example value Meaning
0 0x01 Setup command
1 0x03 Controller (0x01 – 0x04)
2 0x02 Number of phases (0x01 – 0x03)
3 0x03 Phase 1 level (MSB)
4 0xFF Phase 1 level (LSB)
5 0x00 Phase 2 level (MSB)
6 0x66 Phase 2 level (LSB)
7 0x00 Phase 3 level (MSB)
8 0x00 Phase 3 level (LSB)
9 0x00 Phase 1 length in ms (MSB)
10 0x32 Phase 1 length in ms (LSB)
11 0xFF Phase 2 length in ms (MSB)
12 0xFF Phase 2 length in ms (LSB)
13 0x00 Phase 3 length in ms (MSB)
14 0x00 Phase 3 length in ms (LSB)
Phase levels are specified 0x0000 (0% power) to 0x03FF (100% power).
Phase lengths are specified in milliseconds (1s = 1000ms). 0xFFFF has a special meaning in that the phase will run forever. Each controller output must be configured before use. Once configured, the start can be issued to fire the output.
If I miss something please feel free to add it here. Thanks.