Test setup:
Win10 I9, 32Gb, 5TB SSD
Robopro V4.6.6
TXT-Controller
Id TXT-2803
App. 4.6.6.0
Sys. 4.6.6.0
Bluetooth off
Wlan off
Connection PC-TXT via USB.
First error: The I2C 100Khz clock.
After a powerup and first use of the I2C device, the I2C CLK is always 100Khz. The setup setting 100Khz or 400Khz does not work and has no influence. As long as you keep using the I2C bus frequently, at least faster the I2C timeout, the clock will keep working at 100Khz. The error occurs in both on-line and off-line mode.
To be able to use I2C devices at 100 Khz, you need to start the program from a powerup of the TXT-Controller.
Second error timeout freezes I2C TXT.
This is an annoying error that has been reported several times but has never been solved. Fortunately we have to make a distinction between on-line and off-line mode. In the off-line mode we don't have this error, the TXT works perfectly here, however as soon as you use the on-line mode the problem can occur. The problems have to do with a kind of time-out that is 5 sec or more, If the I2C bus is unused for longer than the time-out time it will go wrong, You can only remove that error by restarting your program. Reading or writing on the I2C bus makes no difference. Also you can use multiple tasks within your program if the interval between using the I2C bus is less than that timeout.
Here is an example of a small program that will not work in on-line mode:

The reason is again the timeout. In the example the time-out time is waited for the I2C bus to be used for the first time. This is not possible until you set the timer below 4.99 sec. If you write a program that needs to work on-line and needs at least the I2C bus you have to use it within the time-out time. To get around this error you can make a small extra task in your program that uses the I2C bus within 4.99 sec.
If the I2C bus freezes it is just not used by the TXT. Both I2C lines are high and there is no clock and/or data.
For the FT support team I would recommend to check the Robopro software with the TXT, apparently somewhere that kind of time-out timer is started and without access to the I2C bus it goes into error. The error can only be removed by restarting your program and then using the I2C bus at least within the time-out time. If you wait too long it will go back into the error and get stuck on the I2C call.
Picture at power-up on-line mode:

Hd picture Flickr: https://www.flickr.com/photos/fotoopa_hs/49952712277
Picture next run on-line mode = 400 Khz:

Hd picture on Flickr: https://www.flickr.com/photos/fotoopa_hs/49951922718
Summarized:
The first program starts after a powerup your I2C bus will always run at 100 Khz and will continue to run at this speed until you either stop a program or make a time-out of the I2C bus. The next start of your program will always run at 400 Khz (actually 384KHz) and cannot be changed without power down.
Time-out problems of the I2C bus in off-line mode do not occur. Only in on-line mode you have to take into account the timeout of 5 sec if you also want to use your I2C bus.
Frans.