I have 4 of the 4 digit 7-Segment displays on an Arduino and was having trouble with the Adafruit I2c library frequently hanging inside begin(). I noticed in the HT16K33 datasheet that you should allow at least 1MS after enabling the clock so I added 2 delays in begin... problem solved! My begin now looks like this:
void Adafruit_LEDBackpack::begin(uint8_t _addr = 0x70) {
i2c_addr = _addr;
Wire.begin();
Wire.beginTransmission(i2c_addr);
Wire.write(0x21); // turn on oscillator
Wire.endTransmission();
delay(5); // <- My addition
blinkRate(HT16K33_BLINK_OFF);
delay(5); // <-- My addition
setBrightness(15); // max brightness
}
Reset is now 100% reliable. Best of luck. Jay.

