Note: This fix is NOT due to a fault of the Petit Studio Raspberry Pi Camera extension kit, it’s due to the use of cheap HDMI leads.
I brought some Petit Studio Raspberry Pi HDMI camera extenders from Tindie. These boards passively convert the 15 pin ribbon cable into a convenient HDMI connector so the cable can be extended using HDMI cables. It doesn’t convert the signal to HDMI, it simply uses the HDMI cable as an extension. Sidenote: The $5 shipping only took 4 days to get to New Zealand from Japan!
I brought some cheap 3m HDMI cables from a supplier on TradeMe and thought I was all set.
It turns out not all HDMI cables are made the same. The cables I brought work perfectly between a PC and monitor, but not at all on the Tindie camera extender.
A quick Duck Duck Go (That’s so much harder to use as a verb than Google) and I found a fix – There are meant to be shields for each data pair but in cheaper cables these are not connected. It’s an easy fix, just use the metal shield of the HDMI plug as ground…..
I completed the fix and then tested again. Still nothing …
/opt/vc/bin/raspistill -v -w 1920 -h 1080 -o image.jpg mmal: mmal_vc_component_enable: failed to enable component: ENOSPC mmal: camera component couldn't be enabled mmal: main: Failed to create camera component mmal: Failed to run camera app. Please check for firmware updates
It turns out the metal connector shells are not even connected to each other!
I removed the Raspberry Pi and Camera and grabbed my multimeter. At this point I now have the Tindie converters connected to ribbon cables and an HDMI lead in between – this is important as continuity testing involves a small voltage which could damage the camera or Pi.
It was at this point I realised that pins 1,4,7,10 and 14 – All 15 pins are required For those of you that keep a copy of the Raspberry Pi CSI pinout handy (don’t we all?), you would see that Pin 14 is the I2C serial data pin while pins 1,4,7 & 10 are ground ……. all of them! I had no ground or I2C data connection!
The four ground connections are all connected on the board, so in reality I only need to get two connections through to the other end – My cheap HDMI cable did connect the four spare (a,b,c & d) pins so I decided I would use ‘a’ to run the I2C serial data and ‘d’ as my ground connection.
Here’s a photo of my fix.
The wire I used was the legs from some old 1/4 watt resistors. You really need a soldering iron with a fine tip and some flux – I use a felt tipped flux pen which works very well.
Soldering up the ground connection is easy, the I2C serial data is very fiddly to solder to the fine pitch connector.
The best way I found to solder the I2C serial data line is to solder to the ‘d’ pad first and then carefully bend the piece of wire so it sits on top of the pad on the PCB for pin 14. If you try to solder directly to the pin 14 pad, you will likely create a solder bridge and then need desoldering braid/wick to fix it up and try again.
Carefully bend the wire back up, flux the pad on the pcb, flux the end of the wire, tin the tin the end of the wire with a very little amount of solder and bend the wire back into position. At this point, do not add solder, just touch the soldering iron to the wire about 5mm back from the pad to heat up the wire – If there’s enough flux, the solder should pull itself into position.
Failing this, try a different HDMI lead