Analog driver (cape-bone-iio) doesn't come up with 3904 transistors hooked to GPIOs on P8 header

I am working on a custom cape that uses the P8 header. It is using pins 1,2,7-19,26-38. Pins 3-6, 20-25 and 39-46 are unused (not physically connected to anything.

Each of the used pins on this header are connected by a 1k resistor to the base of a 3904 transistor. the collector is connected through a 1k resistor to an external +5V power supply. and the emitter is grounded to the beagleboard ground (P8 pins 1 and 2.) The collector is also connected by way of a ribbon cable to a relay board. The GPIOs have been tested and everything functions as expected, all the way out through the relays.

when all 24 of these pins are connected, the Analog driver fails to start.

The process for starting the analog driver is: (run as root)

echo cape-bone-iio > /sys/devices/bone_capemgr.9/slots

Both the HDMI and the SD slot are disabled by way of /boot/uboot/uEnv.txt

I am running ubuntu 13.04 “raring”, with kernel version 3.8.13-bone21.

The relevant parts of /var/log/syslog are below.

Jul 23 23:03:21 HVAC kernel: [ 53.446536] bone-capemgr bone_capemgr.9: slot #7: ‘Override Board Name,00A0,Override Manuf,cape-bone-iio’
Jul 23 23:03:21 HVAC kernel: [ 53.446812] bone-capemgr bone_capemgr.9: slot #7: Requesting part number/version based 'cape-bone-iio-00A0.dtbo
Jul 23 23:03:21 HVAC kernel: [ 53.446868] bone-capemgr bone_capemgr.9: slot #7: Requesting firmware ‘cape-bone-iio-00A0.dtbo’ for board-name ‘Override Board Name’, version ‘00A0’
Jul 23 23:03:21 HVAC kernel: [ 53.446941] bone-capemgr bone_capemgr.9: slot #7: dtbo ‘cape-bone-iio-00A0.dtbo’ loaded; converting to live tree
Jul 23 23:03:21 HVAC kernel: [ 53.447336] bone-capemgr bone_capemgr.9: slot #7: #1 overlays
Jul 23 23:03:21 HVAC kernel: [ 53.458675] ti_tscadc 44e0d000.tscadc: clock input less than min clock requirement
Jul 23 23:03:21 HVAC kernel: [ 53.484858] ti_tscadc: probe of 44e0d000.tscadc failed with error -22
Jul 23 23:03:21 HVAC kernel: [ 53.491631] bone-capemgr bone_capemgr.9: slot #7: Applied #1 overlays.
Jul 23 23:03:21 HVAC kernel: [ 53.549779] bone-iio-helper helper.11: Could not get AIN0 analog input

I only get the error when the two boards are connected. When they are not connected, the analog system works exactly by the spec.

When the two boards are connected, the GPIOs function as expected with no other problems.

The other thing I have noticed is that when the two boards are connected, the heartbeat on the BBB User LED runs fast. I have another identical
BBB next to it, and the difference between the heartbeats is noticeable when the BBB and the cape are connected. I would guess maybe a 50% difference in speed, but it is not consistent. Sometimes it seems to run at the same speed as the standalone BBB, sometimes it is much faster.

It looks like something I am doing is screwing up a system clock somehow.

Does anyone know of anything that might be tripping me up?

It is possible that the transistors are acting as pull-downs on some boot pins (1K through the base resistor). You could try floating the ground on your boards until after power up. A better idea would be to use a buffer with hi-Z inputs and an OE control.