# I2C bus to head failure

**URL:** https://community.openglow.org/t/i2c-bus-to-head-failure/684
**Category:** Technical
**Created:** [March 3, 2020, 6:43pm UTC](https://community.openglow.org/t/i2c-bus-to-head-failure/684 "2020-03-03T18:43:09Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![mbenson](https://community.openglow.org/letter_avatar_proxy/v4/letter/m/c4cdca/32.png) [@mbenson](https://community.openglow.org/u/mbenson)
#### Post date: [March 3, 2020, 6:43pm UTC](https://community.openglow.org/t/i2c-bus-to-head-failure/684/1 "2020-03-03T18:43:09Z")

</div>

I think either my head needs to be replaced or the ribbon to the head needs to be replaced, but I could use a second opinion. The following is a snippet of my logs at the moment my Glowforge stopped working correctly:

```
2019-12-29_21:36:11.10790 296916 ERROR: i2c_transfer: ioctl failed (110: Connection timed out, src/i2c.cpp:26)
2019-12-29_21:36:11.61793 297426 ERROR: i2c_transfer: ioctl failed (110: Connection timed out, src/i2c.cpp:26)
2019-12-29_21:36:11.63119 297431 ERROR: head_accel_axes: Reading of flags failed with error: 01 (src/accelerometer_axes.tpp:159)
2019-12-29_21:36:12.12789 297936 ERROR: i2c_transfer: ioctl failed (110: Connection timed out, src/i2c.cpp:26)
2019-12-29_21:36:12.63790 298446 ERROR: i2c_transfer: ioctl failed (110: Connection timed out, src/i2c.cpp:26)
2019-12-29_21:36:12.65112 298451 ERROR: board_accel_axes: Reading of flags failed with error: 01 (src/accelerometer_axes.tpp:159)
2019-12-29_21:36:13.14789 298956 ERROR: i2c_transfer: ioctl failed (110: Connection timed out, src/i2c.cpp:26)
2019-12-29_21:36:13.65789 299466 ERROR: i2c_transfer: ioctl failed (110: Connection timed out, src/i2c.cpp:26)
2019-12-29_21:36:14.16789 299976 ERROR: i2c_transfer: ioctl failed (110: Connection timed out, src/i2c.cpp:26)
2019-12-29_21:36:14.17994 299981 ERROR: Head I2C communication alert (src/hw_task_messages.cpp:279)
2019-12-29_21:36:14.17997 299981 INFO: hw: error flag set: fault:head_accel_i2c_alert:set (28)

```

I’m not seeing any errors from the lid, so I think the accessory board itself is ok. I have an electronics lab. Can somebody recommend test points?

---

<div class="post-metadata">

### Author: ![ScottW514](https://community.openglow.org/user_avatar/community.openglow.org/scottw514/32/5_2.png) [@ScottW514](https://community.openglow.org/u/ScottW514)
#### Post date: [March 4, 2020, 12:59pm UTC](https://community.openglow.org/t/i2c-bus-to-head-failure/684/2 "2020-03-04T12:59:02Z")

</div>

I’m compiling my notes into something useful. I’ll have details for you later today.

Edit: It’s later today… Still compiling… 🙂

---

<div class="post-metadata">

### Author: ![ScottW514](https://community.openglow.org/user_avatar/community.openglow.org/scottw514/32/5_2.png) [@ScottW514](https://community.openglow.org/u/ScottW514)
#### Post date: [March 5, 2020, 2:50pm UTC](https://community.openglow.org/t/i2c-bus-to-head-failure/684/3 "2020-03-05T14:50:19Z")

</div>

I posted some details on the I2C bus that should get you started.

> [@Glowforge I2C Overview](https://community.openglow.org/t/glowforge-i2c-overview/689):
>
> There are three I2C buses on the Glowforge. Only two of these are in use. If you have [console access](https://community.openglow.org/t/serial-port-the-easy-way/668) to your unit, you can see what is attached to them: root@gf-abc-123:/# i2cdetect -y 0 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 1e -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- 36 -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- …

One thing that I find interesting is that the log you posted shows a failure for ALL the devices on the bus. If there was a connection problem, say to the head or the interconnect only, you should still see successful communications with the control PCB’s accelerometer.

That would lead me to think there is something loading down the clock or data lines somewhere.

You can quickly divide and conquer by disconnecting the head and see if communications come back for the remaining devices on that bus. If not, try again after disconnecting the interconnect board (the plug in the upper right corner of the photo in the article linked to above). This will help narrow down which board has the bus problem.
