Freeplay CM4
#41
Yeah, that's the one I have (https://wiki.geekworm.com/CM4_to_CM3_Adapter)

Would I need to add pull up resistors to pins 3 and 5 on the freeplay board?
Reply
#42
No. They would already be on 44,45
So when you connect them they will already have it.
Card Fighters' Clash 2 English Translation ( http://cfc2english.blogspot.com/ )
Neo Geo Pocket Flash Cart and Linker Project ( http://www.flashmasta.com/ )
Avatar art thanks to Trev-Mun ( http://trevmun.deviantart.com/ )
Reply
#43
Oh I see, so keep the add on board soldered to the 44 and 45 of the Freeplay board.

I was initially thinking of desoldering it from the Freeplay board but yeah they wouldn't be connected to anything either way but to the pull up resistors.

I'll try that!
Reply
#44
So, I haven't been able to make it work.

Note: For the sake of simplicity, I'm going to call cm3_pin# and cm4_pin# to refer to what cm4 pin is connected to what pin in my adapter board.

From what I can see, cm3_pin3 is connected to cm4_GPIO0 (cm4_pin36)  and cm3_pin5 is connected to cm4_GPIO1 (cm4_pin35).

According to the CM4 documentation, I2C devices can be connected to cm4_GPIO0 for data and cm4_GPIO1 for clock.

I started by tinning cm3_pin3 and cm3_pin5 and soldering magnet wires to them (see attached photos). I soldered the other ends to the Freeplay board's pins 44 and 45 respectively (these pins already have the addon board connected to them). Verified there was a solid connection and that there weren't shorts between them.

On the software side, I changed the i2c overlay in the config.txt to:
Code:
dtoverlay=i2c1,pins_36_35=1,combine=off

Turned on the device and saw the following in dmesg:
Code:
pi@retropie:~ $ dmesg | grep i2c
[    3.665462] i2c /dev entries driver
[    5.051972] bcm2708_i2c fe804000.i2c: BSC1 Controller at 0xfe804000 (irq 37) (baudrate 400000)

When running `raspi-gpio get`, I still don't see GPIO0 and GPIO1 set to receive I2C:
Code:
pi@retropie:~ $ raspi-gpio get
BANK0 (GPIO 0 to 27):
GPIO 0: level=1 fsel=0 func=INPUT pull=UP
GPIO 1: level=1 fsel=0 func=INPUT pull=UP
GPIO 2: level=1 fsel=4 alt=0 func=SDA1 pull=UP
GPIO 3: level=1 fsel=4 alt=0 func=SCL1 pull=UP
GPIO 4: level=1 fsel=0 func=INPUT pull=UP
GPIO 5: level=1 fsel=0 func=INPUT pull=UP
GPIO 6: level=1 fsel=0 func=INPUT pull=UP
GPIO 7: level=1 fsel=0 func=INPUT pull=UP
GPIO 8: level=0 fsel=1 func=OUTPUT pull=UP
GPIO 9: level=0 fsel=4 alt=0 func=SPI0_MISO pull=DOWN
GPIO 10: level=0 fsel=4 alt=0 func=SPI0_MOSI pull=DOWN
GPIO 11: level=0 fsel=4 alt=0 func=SPI0_SCLK pull=DOWN
GPIO 12: level=0 fsel=4 alt=0 func=PWM0_0 pull=DOWN
GPIO 13: level=0 fsel=4 alt=0 func=PWM0_1 pull=DOWN
GPIO 14: level=1 fsel=0 func=INPUT pull=UP
GPIO 15: level=1 fsel=0 func=INPUT pull=UP
GPIO 16: level=1 fsel=0 func=INPUT pull=UP
GPIO 17: level=1 fsel=0 func=INPUT pull=UP
GPIO 18: level=1 fsel=0 func=INPUT pull=UP
GPIO 19: level=1 fsel=0 func=INPUT pull=UP
GPIO 20: level=0 fsel=0 func=INPUT pull=DOWN
GPIO 21: level=1 fsel=1 func=OUTPUT pull=DOWN
GPIO 22: level=1 fsel=1 func=OUTPUT pull=DOWN
GPIO 23: level=1 fsel=0 func=INPUT pull=UP
GPIO 24: level=1 fsel=0 func=INPUT pull=UP
GPIO 25: level=0 fsel=0 func=INPUT pull=DOWN
GPIO 26: level=1 fsel=0 func=INPUT pull=UP
GPIO 27: level=1 fsel=1 func=OUTPUT pull=DOWN
BANK1 (GPIO 28 to 45):
GPIO 28: level=1 fsel=2 alt=5 func=RGMII_MDIO pull=UP
GPIO 29: level=0 fsel=2 alt=5 func=RGMII_MDC pull=DOWN
GPIO 30: level=1 fsel=7 alt=3 func=CTS0 pull=UP
GPIO 31: level=1 fsel=7 alt=3 func=RTS0 pull=NONE
GPIO 32: level=1 fsel=7 alt=3 func=TXD0 pull=NONE
GPIO 33: level=1 fsel=7 alt=3 func=RXD0 pull=UP
GPIO 34: level=0 fsel=7 alt=3 func=SD1_CLK pull=NONE
GPIO 35: level=1 fsel=7 alt=3 func=SD1_CMD pull=UP
GPIO 36: level=1 fsel=7 alt=3 func=SD1_DAT0 pull=UP
GPIO 37: level=1 fsel=7 alt=3 func=SD1_DAT1 pull=UP
GPIO 38: level=1 fsel=7 alt=3 func=SD1_DAT2 pull=UP
GPIO 39: level=1 fsel=7 alt=3 func=SD1_DAT3 pull=UP
GPIO 40: level=1 fsel=0 func=INPUT pull=NONE
GPIO 41: level=1 fsel=0 func=INPUT pull=NONE
GPIO 42: level=1 fsel=1 func=OUTPUT pull=NONE
GPIO 43: level=1 fsel=0 func=INPUT pull=NONE
GPIO 44: level=1 fsel=0 func=INPUT pull=NONE
GPIO 45: level=1 fsel=0 func=INPUT pull=NONE
BANK2 (GPIO 46 to 53):
GPIO 46: level=0 fsel=0 func=INPUT pull=UP
GPIO 47: level=0 fsel=0 func=INPUT pull=UP
GPIO 48: level=0 fsel=4 alt=0 func=SD0_CLK pull=DOWN
GPIO 49: level=0 fsel=4 alt=0 func=SD0_CMD pull=DOWN
GPIO 50: level=0 fsel=4 alt=0 func=SD0_DAT0 pull=DOWN
GPIO 51: level=0 fsel=4 alt=0 func=SD0_DAT1 pull=DOWN
GPIO 52: level=0 fsel=4 alt=0 func=SD0_DAT2 pull=DOWN
GPIO 53: level=0 fsel=4 alt=0 func=SD0_DAT3 pull=DOWN

This means that I don't get any device detected by I2C:
Code:
pi@retropie:~ $ sudo i2cdetect 1
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1.
I will probe address range 0x03-0x77.
Continue? [Y/n] Y
    0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

Any ideas are more than welcome!

Thanks!!


Attached Files Thumbnail(s)
                   
Reply
#45
dtoverlay=i2c1,pins_36_35=1,combine=off
Is surely wrong. I’ll try to look up what it should be when I get a chance. Otherwise maybe Google for the proper line to get it to use GPIO 0 and 1.

You can see in your raspi-GPIO output that it’s using GPIO 2&3
Card Fighters' Clash 2 English Translation ( http://cfc2english.blogspot.com/ )
Neo Geo Pocket Flash Cart and Linker Project ( http://www.flashmasta.com/ )
Avatar art thanks to Trev-Mun ( http://trevmun.deviantart.com/ )
Reply
#46
https://github.com/raspberrypi/firmware/...ays/README

Also try using
raspi-gpio set
to change parameters and pin settings without having to reboot.

I can try to look up some more information about the parameters and everything I think you should use tomorrow, but I’m just on my phone at the moment and it’s really hard to look all the stuff up.
Card Fighters' Clash 2 English Translation ( http://cfc2english.blogspot.com/ )
Neo Geo Pocket Flash Cart and Linker Project ( http://www.flashmasta.com/ )
Avatar art thanks to Trev-Mun ( http://trevmun.deviantart.com/ )
Reply
#47
Thanks, Flavor!

I skimmed through that documentation and saw I could enable i2c_vc through a dt-param. After adding that I could see GPIO0 and GPIO1 set to data and clock when using raspi-GPIO get. But still no devices were shown.

One interesting thing is that `sudo i2cdetect 0` was really slow when trying to probe for devices. But it still didn't find anything.

Perhaps this is where I need to add force_eeprom_read=0 and disable_poe_fan=1 to use GPIO0&1?
Reply
#48
Can you post the output of your
raspi-gpio get

and
cat /etc/modules

(make sure /etc/modules included i2c-dev)

ALSO, another thing to try, on the CM4 is i2c6.

[attachment=1338]

Notice that GPIO 0/1 can be SDA0/SCL0 or SDA6/SCL6.  To try that, remove all the other i2c stuff in config.txt and use something like (untested)

dtoverlay=i2c6,pins_0_1
(and then 'i2cdetect -y 6' to test)

Instead of changing the config.txt file and rebooting, you can change the pin functions using 'raspi-gpio set'

raspi-gpio set 0-1 ip pn   #this will configure GPIO0 and GPIO1 as inputs with no pullup/down  (sort of set them to nothing, really)

raspi-gpio set 0-1 a5   #on your CM4, this SHOULD (I can't test) set GPIO0 and GPIO1 to i2c6

You would want to make sure that nothing else is doing i2c stuff, so maybe do
raspi-gpio set 44-45 ip pn
raspi-gpio set 2-3 ip pn

and then try these 4 commands
raspi-gpio set 0-1 a0
i2cdetect -y 0
raspi-gpio set 0-1 a5
i2cdetect -y 6



MORE info about i2c6 pasted from https://github.com/raspberrypi/linux/tre...s/overlays

Code:
Name:  i2c6
Info:  Enable the i2c6 bus. BCM2711 only.
Load:  dtoverlay=i2c6,<param>
Params: pins_0_1                Use GPIOs 0 and 1
        pins_22_23              Use GPIOs 22 and 23 (default)
        baudrate                Set the baudrate for the interface (default "100000")




ALSO, I actually think you should have used GPIO2 and GPIO3 to solder to, because the CM4 uses SDA1 and SCL1 (i2c1) on those pins.  It would therefore be more similar to how the normal Freeplay CM3 does things.  Having said that, I think GPIO0 and GPIO1 should work as i2c0 or i2c6 based on everything else I've seen.

When i2cdetect is really slow (like you mentioned), that's typically been some sort of hardware problem in my experience.  I looked at your photos, and it looks like you have SDA soldered to SDA and SCL->SCL.  It's a little hard to follow the wires, though.  Make sure that:

FPCM3 addon GPIO44:       Connects to GPIO0 = pin3 (or GPIO2 = pin9)
FPCM3 addon GPIO45:       Connects to GPIO1 = pin5 (or GPIO3 = pin11)
Card Fighters' Clash 2 English Translation ( http://cfc2english.blogspot.com/ )
Neo Geo Pocket Flash Cart and Linker Project ( http://www.flashmasta.com/ )
Avatar art thanks to Trev-Mun ( http://trevmun.deviantart.com/ )
Reply
#49
Unfortunately, I don't think my board's manufacturer soldered anything but GPIO0 and GPIO1 from the CM4 to the adapter board. So it would have to be GPIO0 and GPIO1 Sad

I verified that /etc/modules does include `i2c-dev`.

I tried adding `dtoverlay=i2c6,pins_0_1` to the config file. Now I see GPIO0 and GPIO1 correctly set as data and clock when running `raspi-gpio get`:
Code:
pi@retropie:~ $ raspi-gpio get
BANK0 (GPIO 0 to 27):
GPIO 0: level=1 fsel=2 alt=5 func=SDA6 pull=UP
GPIO 1: level=1 fsel=2 alt=5 func=SCL6 pull=UP
GPIO 2: level=1 fsel=0 func=INPUT pull=UP
GPIO 3: level=1 fsel=0 func=INPUT pull=UP
GPIO 4: level=1 fsel=0 func=INPUT pull=UP
GPIO 5: level=1 fsel=0 func=INPUT pull=UP
GPIO 6: level=1 fsel=0 func=INPUT pull=UP
GPIO 7: level=1 fsel=0 func=INPUT pull=UP
GPIO 8: level=0 fsel=1 func=OUTPUT pull=UP
GPIO 9: level=0 fsel=4 alt=0 func=SPI0_MISO pull=DOWN
GPIO 10: level=0 fsel=4 alt=0 func=SPI0_MOSI pull=DOWN
GPIO 11: level=0 fsel=4 alt=0 func=SPI0_SCLK pull=DOWN
GPIO 12: level=0 fsel=4 alt=0 func=PWM0_0 pull=DOWN
GPIO 13: level=0 fsel=4 alt=0 func=PWM0_1 pull=DOWN
GPIO 14: level=1 fsel=0 func=INPUT pull=UP
GPIO 15: level=1 fsel=0 func=INPUT pull=UP
GPIO 16: level=1 fsel=0 func=INPUT pull=UP
GPIO 17: level=1 fsel=0 func=INPUT pull=UP
GPIO 18: level=1 fsel=0 func=INPUT pull=UP
GPIO 19: level=1 fsel=0 func=INPUT pull=UP
GPIO 20: level=0 fsel=0 func=INPUT pull=DOWN
GPIO 21: level=1 fsel=1 func=OUTPUT pull=DOWN
GPIO 22: level=1 fsel=1 func=OUTPUT pull=DOWN
GPIO 23: level=1 fsel=0 func=INPUT pull=UP
GPIO 24: level=1 fsel=0 func=INPUT pull=UP
GPIO 25: level=0 fsel=0 func=INPUT pull=DOWN
GPIO 26: level=1 fsel=0 func=INPUT pull=UP
GPIO 27: level=1 fsel=1 func=OUTPUT pull=DOWN
BANK1 (GPIO 28 to 45):
GPIO 28: level=1 fsel=2 alt=5 func=RGMII_MDIO pull=UP
GPIO 29: level=0 fsel=2 alt=5 func=RGMII_MDC pull=DOWN
GPIO 30: level=1 fsel=7 alt=3 func=CTS0 pull=UP
GPIO 31: level=1 fsel=7 alt=3 func=RTS0 pull=NONE
GPIO 32: level=0 fsel=7 alt=3 func=TXD0 pull=NONE
GPIO 33: level=1 fsel=7 alt=3 func=RXD0 pull=UP
GPIO 34: level=0 fsel=7 alt=3 func=SD1_CLK pull=NONE
GPIO 35: level=1 fsel=7 alt=3 func=SD1_CMD pull=UP
GPIO 36: level=1 fsel=7 alt=3 func=SD1_DAT0 pull=UP
GPIO 37: level=1 fsel=7 alt=3 func=SD1_DAT1 pull=UP
GPIO 38: level=1 fsel=7 alt=3 func=SD1_DAT2 pull=UP
GPIO 39: level=1 fsel=7 alt=3 func=SD1_DAT3 pull=UP
GPIO 40: level=1 fsel=0 func=INPUT pull=NONE
GPIO 41: level=1 fsel=0 func=INPUT pull=NONE
GPIO 42: level=1 fsel=1 func=OUTPUT pull=NONE
GPIO 43: level=1 fsel=0 func=INPUT pull=NONE
GPIO 44: level=1 fsel=0 func=INPUT pull=NONE
GPIO 45: level=1 fsel=0 func=INPUT pull=NONE
BANK2 (GPIO 46 to 53):
GPIO 46: level=0 fsel=0 func=INPUT pull=UP
GPIO 47: level=0 fsel=0 func=INPUT pull=UP
GPIO 48: level=0 fsel=4 alt=0 func=SD0_CLK pull=DOWN
GPIO 49: level=0 fsel=4 alt=0 func=SD0_CMD pull=DOWN
GPIO 50: level=0 fsel=4 alt=0 func=SD0_DAT0 pull=DOWN
GPIO 51: level=0 fsel=4 alt=0 func=SD0_DAT1 pull=DOWN
GPIO 52: level=0 fsel=4 alt=0 func=SD0_DAT2 pull=DOWN
GPIO 53: level=0 fsel=4 alt=0 func=SD0_DAT3 pull=DOWN

But I still don't see anything when probing i2c6 (It was really slow when returning each address space)
Code:
pi@retropie:~ $ sudo i2cdetect 6
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-6.
I will probe address range 0x03-0x77.
Continue? [Y/n] Y
    0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- -- 

Running `raspi-gpio set 0-1 ip pn` removes GPIO0 and GPIO1 from being receiving I2C data:
Code:
pi@retropie:~ $ raspi-gpio get
BANK0 (GPIO 0 to 27):
GPIO 0: level=1 fsel=0 func=INPUT pull=NONE
GPIO 1: level=1 fsel=0 func=INPUT pull=NONE
GPIO 2: level=1 fsel=0 func=INPUT pull=UP
GPIO 3: level=1 fsel=0 func=INPUT pull=UP
GPIO 4: level=1 fsel=0 func=INPUT pull=UP
GPIO 5: level=1 fsel=0 func=INPUT pull=UP
GPIO 6: level=1 fsel=0 func=INPUT pull=UP
GPIO 7: level=1 fsel=0 func=INPUT pull=UP
GPIO 8: level=0 fsel=1 func=OUTPUT pull=UP
GPIO 9: level=0 fsel=4 alt=0 func=SPI0_MISO pull=DOWN
GPIO 10: level=0 fsel=4 alt=0 func=SPI0_MOSI pull=DOWN
GPIO 11: level=0 fsel=4 alt=0 func=SPI0_SCLK pull=DOWN
GPIO 12: level=0 fsel=4 alt=0 func=PWM0_0 pull=DOWN
GPIO 13: level=0 fsel=4 alt=0 func=PWM0_1 pull=DOWN
GPIO 14: level=1 fsel=0 func=INPUT pull=UP
GPIO 15: level=1 fsel=0 func=INPUT pull=UP
GPIO 16: level=1 fsel=0 func=INPUT pull=UP
GPIO 17: level=1 fsel=0 func=INPUT pull=UP
GPIO 18: level=1 fsel=0 func=INPUT pull=UP
GPIO 19: level=1 fsel=0 func=INPUT pull=UP
GPIO 20: level=0 fsel=0 func=INPUT pull=DOWN
GPIO 21: level=1 fsel=1 func=OUTPUT pull=DOWN
GPIO 22: level=1 fsel=1 func=OUTPUT pull=DOWN
GPIO 23: level=1 fsel=0 func=INPUT pull=UP
GPIO 24: level=1 fsel=0 func=INPUT pull=UP
GPIO 25: level=0 fsel=0 func=INPUT pull=DOWN
GPIO 26: level=1 fsel=0 func=INPUT pull=UP
GPIO 27: level=1 fsel=1 func=OUTPUT pull=DOWN
BANK1 (GPIO 28 to 45):
GPIO 28: level=1 fsel=2 alt=5 func=RGMII_MDIO pull=UP
GPIO 29: level=0 fsel=2 alt=5 func=RGMII_MDC pull=DOWN
GPIO 30: level=1 fsel=7 alt=3 func=CTS0 pull=UP
GPIO 31: level=1 fsel=7 alt=3 func=RTS0 pull=NONE
GPIO 32: level=0 fsel=7 alt=3 func=TXD0 pull=NONE
GPIO 33: level=1 fsel=7 alt=3 func=RXD0 pull=UP
GPIO 34: level=0 fsel=7 alt=3 func=SD1_CLK pull=NONE
GPIO 35: level=1 fsel=7 alt=3 func=SD1_CMD pull=UP
GPIO 36: level=1 fsel=7 alt=3 func=SD1_DAT0 pull=UP
GPIO 37: level=1 fsel=7 alt=3 func=SD1_DAT1 pull=UP
GPIO 38: level=1 fsel=7 alt=3 func=SD1_DAT2 pull=UP
GPIO 39: level=1 fsel=7 alt=3 func=SD1_DAT3 pull=UP
GPIO 40: level=1 fsel=0 func=INPUT pull=NONE
GPIO 41: level=1 fsel=0 func=INPUT pull=NONE
GPIO 42: level=1 fsel=1 func=OUTPUT pull=NONE
GPIO 43: level=1 fsel=0 func=INPUT pull=NONE
GPIO 44: level=1 fsel=0 func=INPUT pull=NONE
GPIO 45: level=1 fsel=0 func=INPUT pull=NONE
BANK2 (GPIO 46 to 53):
GPIO 46: level=0 fsel=0 func=INPUT pull=UP
GPIO 47: level=0 fsel=0 func=INPUT pull=UP
GPIO 48: level=0 fsel=4 alt=0 func=SD0_CLK pull=DOWN
GPIO 49: level=0 fsel=4 alt=0 func=SD0_CMD pull=DOWN
GPIO 50: level=0 fsel=4 alt=0 func=SD0_DAT0 pull=DOWN
GPIO 51: level=0 fsel=4 alt=0 func=SD0_DAT1 pull=DOWN
GPIO 52: level=0 fsel=4 alt=0 func=SD0_DAT2 pull=DOWN
GPIO 53: level=0 fsel=4 alt=0 func=SD0_DAT3 pull=DOWN

And `raspi-gpio set 0-1 a5` brings them back to the previous state:
Code:
pi@retropie:~ $ raspi-gpio set 0-1 a5
pi@retropie:~ $ raspi-gpio get
BANK0 (GPIO 0 to 27):
GPIO 0: level=0 fsel=2 alt=5 func=SDA6 pull=NONE
GPIO 1: level=0 fsel=2 alt=5 func=SCL6 pull=NONE
GPIO 2: level=1 fsel=0 func=INPUT pull=UP
GPIO 3: level=1 fsel=0 func=INPUT pull=UP
GPIO 4: level=1 fsel=0 func=INPUT pull=UP
GPIO 5: level=1 fsel=0 func=INPUT pull=UP
GPIO 6: level=1 fsel=0 func=INPUT pull=UP
GPIO 7: level=1 fsel=0 func=INPUT pull=UP
GPIO 8: level=0 fsel=1 func=OUTPUT pull=UP
GPIO 9: level=0 fsel=4 alt=0 func=SPI0_MISO pull=DOWN
GPIO 10: level=0 fsel=4 alt=0 func=SPI0_MOSI pull=DOWN
GPIO 11: level=0 fsel=4 alt=0 func=SPI0_SCLK pull=DOWN
GPIO 12: level=0 fsel=4 alt=0 func=PWM0_0 pull=DOWN
GPIO 13: level=0 fsel=4 alt=0 func=PWM0_1 pull=DOWN
GPIO 14: level=1 fsel=0 func=INPUT pull=UP
GPIO 15: level=1 fsel=0 func=INPUT pull=UP
GPIO 16: level=1 fsel=0 func=INPUT pull=UP
GPIO 17: level=1 fsel=0 func=INPUT pull=UP
GPIO 18: level=1 fsel=0 func=INPUT pull=UP
GPIO 19: level=1 fsel=0 func=INPUT pull=UP
GPIO 20: level=0 fsel=0 func=INPUT pull=DOWN
GPIO 21: level=1 fsel=1 func=OUTPUT pull=DOWN
GPIO 22: level=1 fsel=1 func=OUTPUT pull=DOWN
GPIO 23: level=1 fsel=0 func=INPUT pull=UP
GPIO 24: level=1 fsel=0 func=INPUT pull=UP
GPIO 25: level=0 fsel=0 func=INPUT pull=DOWN
GPIO 26: level=1 fsel=0 func=INPUT pull=UP
GPIO 27: level=1 fsel=1 func=OUTPUT pull=DOWN
BANK1 (GPIO 28 to 45):
GPIO 28: level=1 fsel=2 alt=5 func=RGMII_MDIO pull=UP
GPIO 29: level=0 fsel=2 alt=5 func=RGMII_MDC pull=DOWN
GPIO 30: level=1 fsel=7 alt=3 func=CTS0 pull=UP
GPIO 31: level=1 fsel=7 alt=3 func=RTS0 pull=NONE
GPIO 32: level=0 fsel=7 alt=3 func=TXD0 pull=NONE
GPIO 33: level=1 fsel=7 alt=3 func=RXD0 pull=UP
GPIO 34: level=0 fsel=7 alt=3 func=SD1_CLK pull=NONE
GPIO 35: level=1 fsel=7 alt=3 func=SD1_CMD pull=UP
GPIO 36: level=1 fsel=7 alt=3 func=SD1_DAT0 pull=UP
GPIO 37: level=1 fsel=7 alt=3 func=SD1_DAT1 pull=UP
GPIO 38: level=1 fsel=7 alt=3 func=SD1_DAT2 pull=UP
GPIO 39: level=1 fsel=7 alt=3 func=SD1_DAT3 pull=UP
GPIO 40: level=1 fsel=0 func=INPUT pull=NONE
GPIO 41: level=1 fsel=0 func=INPUT pull=NONE
GPIO 42: level=1 fsel=1 func=OUTPUT pull=NONE
GPIO 43: level=1 fsel=0 func=INPUT pull=NONE
GPIO 44: level=1 fsel=0 func=INPUT pull=NONE
GPIO 45: level=1 fsel=0 func=INPUT pull=NONE
BANK2 (GPIO 46 to 53):
GPIO 46: level=0 fsel=0 func=INPUT pull=UP
GPIO 47: level=0 fsel=0 func=INPUT pull=UP
GPIO 48: level=0 fsel=4 alt=0 func=SD0_CLK pull=DOWN
GPIO 49: level=0 fsel=4 alt=0 func=SD0_CMD pull=DOWN
GPIO 50: level=0 fsel=4 alt=0 func=SD0_DAT0 pull=DOWN
GPIO 51: level=0 fsel=4 alt=0 func=SD0_DAT1 pull=DOWN
GPIO 52: level=0 fsel=4 alt=0 func=SD0_DAT2 pull=DOWN
GPIO 53: level=0 fsel=4 alt=0 func=SD0_DAT3 pull=DOWN

But still no devices registered in i2c6.

Nothing else is showing sda and scl with `raspi-gpio get` but still ran the suggested commands to make sure without much luck:
Code:
pi@retropie:~ $ raspi-gpio set 44-45 ip pn
pi@retropie:~ $ raspi-gpio set 2-3 ip pn
pi@retropie:~ $ raspi-gpio set 0-1 a0
pi@retropie:~ $ i2cdetect -y 0
Error: Could not open file `/dev/i2c-0' or `/dev/i2c/0': No such file or directory
pi@retropie:~ $ i2cdetect -y 6
    0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --                       
pi@retropie:~ $ raspi-gpio set 0-1 a5
pi@retropie:~ $ i2cdetect -y 6
    0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --     

I did solder GPIO44 to pin3 and GPIO45 to pin 5 but everything seem to point at something being wrong in my wiring, right?
Reply
#50
The geekworm Wiki page seems to indicate that GPIO 2&3 are connected. It could be worth a try if you can’t get 0&1 working.

I’m not quite sure what else to try now. Maybe I can hook up a CM4 on an io board. I don’t know if I can do that tomorrow. Maybe.
Card Fighters' Clash 2 English Translation ( http://cfc2english.blogspot.com/ )
Neo Geo Pocket Flash Cart and Linker Project ( http://www.flashmasta.com/ )
Avatar art thanks to Trev-Mun ( http://trevmun.deviantart.com/ )
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)