i2c communication with either the duet3, or (hopefully)...

  • ...on the toolboard IO? Is there a way to use the io connector on either of these boards for communication with a device via I2c? I am beta testing a piezo controller for a z-probe, and it is set up to use I2c for programming functions and settings.

  • Maybe the 6HC if you add some pull ups to IO2 but you'd probably have to wait for dc42 to fill in the blanks.


  • I saw that - I wasn't sure if that meant physical changes to the board. I'm hoping not.

  • If its just the pull ups, you can probably add some in parallell, but I suspect the 10k series resistance will either need to be replaced or severely limit the speed at which you can run i2c.

    Thats all doable, but the text didn't instill much confidence in firmware support being present.

  • My fallback will be wiring back to the Pi4 that pairs with the duet3, but for elegance, I'm hoping I won't have to. Going to the toolboard would be the most ideal.

  • Would be nice to see i2c on the toolboad, when conditional g-code at some point will be able to react to bytes read from i2c things will get real interesting real fast i reckon.

    Only available pins for i2c are the unused PA16/17 in addition to PA12/12 used for IO_0_OUT and OUT_1_TACH0 the others are in (partial) use for other things.

    So if you need both IO_0 and OUT_1 then the (current) toolboard is not looking promising, and would need to be subject to same modification as the main board (a fine tip should get you access to solder some leads to the unused port, plenty of clearance next to the chip)

  • Currently I'm using IO1 for the optical endstop. While I wait for the new piezo controller board, I'm using IO0 with a BLTouch, but it was intended to replaced with the piezo controller. I'm working with Pyr0ball (the developer) on how to get i2c working to change settings on the controller, and also output the z-probe signal on the same connector, instead of needing two (one for i2c communication, and another for actual z-probe communication with the duet3).

  • hi there! I can provide technical details on the sensor if required.

    After speaking with @Nuramori about it, he'll need 2 pins for I2C (SDA/SCL) and one for the z-probe output itself.

    He and I discussed the possibility of reassigning one of the I2C pins as the probe output upon interrupt function, but that'll be pretty tricky to implement without code-firmware changes on the tool-head board

  • I'd wait for input from dc42 before making changes as I don't think i2c on the toolboard is likely to be usefull wihtout adding a new header to the unused pins PA16/17. The other i2c bus available is split across two different headers rendering the board less usefull for a hotend imo. There is also the open question of i2c support for Duet3 at all at this time.

  • Just putting this here for when things move along. We've finished building the I2C integration, and I've posted an initial integration page: https://docs.pyroballpcbs.com/tutorials/config/pyr0piezo-i2c/pyr0piezo-i2c/

    There's a UART/I2C bridge sketch available on the github: https://github.com/pyr0ball/pyr0piezo/tree/master/firmware/AVR-Source/Pyr0_Piezo_i2c_Bridge

  • maybe a little late, but this might be of interest https://forum.duet3d.com/topic/16448/can-fd-generic-io/9?_=1592331777097

Log in to reply