A few months ago I prototyped a PCB for housing a Compute Module 3 for a customer project. It was a pretty simple two-layer board which uses the official Raspberry Pi Foundation touchscreen as a display. After a successful pilot with the end customer we contracted a firm to produce a more professional four-layer board for large scale production.
Unfortunately, with the first few samples of the new board none work with the touchscreen. We've verified that the trace routing is the same and that the touchscreen driver board is receiving power. The design firm have verified that there is an initial burst of activity on the I2C bus but don't know what they should be expecting to see so don't know if the driver board is responding correctly (or at all?).
On the CM3 side the rpi_ft5406 driver is never loaded and if I modprobe it manually the driver loads but the touchscreen remains inert. There are no references to "ft" in dmesg. The dt-blob.bin is use is the "Display Only" variant taken from: https://www.raspberrypi.org/documentati ... display.md OS image is Raspbian Stretch Lite.
The PCB doesn't include any pullup resistors as the CMIO instructions don't include any. I couldn't find any in the CM3 schematics, are there a a pair somewhere in the touchscreen driver board? Should we have added some?
The only connection in between the CM3 and the touchscreen is the bundled flex connector and about 4cm of PCB trace. Should we have resistors in serial?
Are there other electrical considerations we should be thinking about? Is there documentation somewhere which describes what the initial negotiation with the touchscreen should look like? Any comments would be greatly appreciated.
Thanks very much,
P.S., I've swapped out multiple touchscreens, connectors and CM3s. Each configuration works fine with the prototype board, but not the new one. I've also run continuity checks from the FPC connector at the touchscreen end to the relevant pins on the CM3's SO-DIMM connector to rule out things like flaky cabling or soldering. I've also tried with several of the new PCBs so can probably rule out a faulty individual.