DAC + I2C display: is it possible to add an I2C bus?

Hi,
First of all, I’ve looked for an answer on this board and googling around, with no luck.

I’ve installed and used for a while a R3 with volumio.
After this, I bought a DAC (a PiFi+), and it worked well.

After that, I wanted a display, and I used my P3 with an lcd I2C (with pydpiper) and then with a oled display (with mpd-oled) but without dac.
All worked well.

Now I’d like to mount both DAC and display (and then a rotary, buttons etc).
Of course it’s not possible atm 'cause I have only one bus, used my the DAC.

I found how to add an I2C bus, but it seems to not work with volumio:
adding something like
dtoverlay=i2c-gpio,bus=4,i2c_gpio_delay_us=1,i2c_gpio_sda=5,i2c_gpio_scl=6
causes no boot.

So I’m afraid that it’s not possible with volumio to add a new bus overlay.
Is that true?

The alternatives are to buy another display with SPI connections, I’m quite sure that it will work, but I’ll use too many GPIO (where I can plug rotary and buttons if I have no free gpio? :D)

I’m not asking for a magic wand ( :smiley: ), but just if anyone can kindly suggest some link to guides or at least tell me if is it possible to add an I2C bus on volumio (if not, I’ll go for SPI), just to avoid looking for something that not exists :smiley:

( I read dozens of threads on this boards, but nothing that solved my issue)

Thank you :slight_smile:

Volumio Information

Volumio Version: 2.873
Hardware: rasp P3 v2
DAC: PiFi DAC+

Hi Galileo,

You don’t have to add another I2C bus for that. (Don’t know if possible at all).
i2c is a bus - therefore you are able to add more then 1 slave device - these are addressed by different “i2c addresses”.

For example the cheap OLED displays from China i use have address 3C.

Best Regards
Josef

Thank you for help :slight_smile:
We have one SDA and one SCL pin, so it’s possible to plug just one device.
I don’t want to use multiplexers, and as I have to plug a DAC, i don’t want to use displays on the same bus (to avoid issues)

I just don’t understand why a not-hard command as a bus overlay setup causes a boot freeze with volumio.

I tried to set it in config.txt and in userconfig, with no luck.
maybe a SPI display is the way (and I have 10, useless now, I2C oled displays ahah so lucky!)

UPDATE:

I read some discussion about how is wrong to use the same bus for both DAC and other purposes.
Well, I tryied and… it works.
It’s playing and I can’t hear any problem.

O_O

So, for who’s trying to do the same:

  • just connect your DAC to Rasp with cables (not as an hat). You have to find your DAC specifications and find which pins it use
  • connect SDA and SCL to a breadboard and connect SDA/SCL of both DAC and display in parallel
  • I used MPD-OLED project for a 128x64 oled display
1 Like

I2C is a master-slave configuration, where one master can work with multiple slaves (if they have a different address)

1 Like