Some testing was performed to demonstrate that either the documentation for d_bit_out is inaccurate or there is information missing to configure the port for digital output.
"For devices with both types of digital ports, set PortType to either DigitalPortType.FIRSTPORTA or DigitalPortType.AUXPORT, depending on which digital inputs you wish to read."
DigitalPortType.FIRSTPORTA was set to configure the port according to the above statement.
ul.d_config_port(self.board_num, self.port.type, DigitalIODirection.OUT)
and Bits 0 to 7 were successfully operated by:
ul.d_bit_out(self.board_num, self.port.type, bit_num, bit_value)
to change the state of the bit.
Going beyond bit 7 to bit 8 generates an error. ->The port type was still configured to FIRSTPORTA which should allow bits 0 to 95 to be operated by ul.d_bit_out().
The next step was to attempt to control bit 8 with the port configured for FIRSTPORTB and bit_num was set to 0 and run a second time set to 8.
This also generates errors.
Each bit was tested individually and the port information was also verified by: print(self.port.type.name)
The available ports were also scanned. There is no AUXPORT to validate the DigitalPortType.AUXPORT portion of the statement.
0 FIRSTPORTA
1 FIRSTPORTB
2 FIRSTPORTC
3 FIRSTPORTCH
4 SECONDPORTA
5 SECONDPORTB
6 SECONDPORTCL
7 SECONDPORTCH
8 THIRDPORTA
9 THIRDPORTB
10 THIRDPORTCL
11 THIRDPORTCH
12 FOURTHPORTA
13 FOURTHPORTB
14 FOURTHPORTCL
15 FOURTHPORTCH
Below is the UL Help page:
So without knowing additional information the 96 channel data logger is reduced to 8 channels of output instead of the advertised 96 channels of DIO.
tKinter was not mentioned. This inquiry is in scope.
One additional note: If you refer to the list of ports above FIRSTPORTC should be FIRSTPORTCL.