CJay
I would happily send you a couple of PCBs and the assembly layout, but the problem is those missing traces on the TPD chip.
I'll have to send off for more PCBs soon, with those fixes done.
I finally hooked up the Logic Analyser to the cam / ESP32, and can see now that the ESP32 Arduino library does still in fact have a buffer limit of 32 bytes (not including the address byte). sigh
I was reading up on that issue last night, but I couldn't really tell on the Rigol o'scope, since it's capture buffer is too small.
Not sure how to solve this yet, unless I can find an option in the Arduino source to increase the buffer size.
The problem is, I can't just split the packet then do another Wire.beginTransmission, because that will send the I2C address again, and screw up the data.
Really annoying that this limit of 32 bytes isn't made very obvious on the Arduino site.
I think it applies to many of the AVR chips, too.
It also makes sense now why the cam just keeps returning a packet with the RETRY bit set, because it never sees the last 12 bytes of the packet, nor the checksum.
When it reaches the 32nd byte, the Arduino library is doing another I2C START, so the Logic Analyser interprets that as an address write.
It's also getting a NACK back, because no device exists at address 0x00, but the Arduino library doesn't give an error for this either, since it has overrun 32-byte buffer.
Anyway, at least I can properly debug things now.
I'm using the Sigrok LWLA1034, which I paid around £55 for on AliExpress about four years ago.
I don't think they sell them any more, which is a huge shame, as it's a great LA for the money.
https://sigrok.org/wiki/Sysclk_LWLA1034I'll try to send off for a few more PCBs soon, as I don't fancy soldering those strands of wire again, especially since I already have the nice stencil made.
Only other thing is to fix the pinout of the voltage regs, and add a few more vias around the ground tabs.
The regs are only getting warm-ish, so there's no problem with the dissipation, luckily.