SwitchDoc Labs Makes the Cover of Raspberry Pi Geek Magazine

SwitchDoc Labs Article on Manufacturing Makes the Cover of Raspberry Pi Geek Magazinerpg_11_shop_image_us_1

SwitchDoc Labs article on designing and manufacturing the I2C 4 Channel Mux Breakout Board has made the cover of Raspberry Pi Geek Magazine.

Screen Shot 2015-05-15 at 9.12.20 AMThis featured article covers the product design, PCB design and manufacturing in China of a new product (the I2C 4 Channel Mux Board) for SwitchDoc Labs.

What is the I2C 4 Channel Mux Board?

At SwitchDoc Labs, we love data. And we love I2C devices. We like to gather the data using lots of I2C devices on our computers and projects. Project Curacao has a total of 12, WeatherPi has 11 devices and SunRover will have over 20 and will require one I2C bus just for controlling the motors. We are always running into conflicts with addressing on the I2C device. Since there are no standards, sometimes multiple devices will have the same address, such as 0x70 and you are just out of luck in running both of them on the same I2C bus without a lot of jimmy rigging.

4 Channel I2C Mux Breakout Board
4 Channel I2C Mux Breakout Board

The TCA9545A Breakout Board is a quad bidirectional translating switch controlled via the I2C bus. The SCL/SDA controlling fans out to four downstream channels. Any individual channel or combination of channels can be selected via I2C. Four interrupt inputs (INT3–INT0), one for each of the downstream pairs, are provided. One interrupt (INT) output acts as an AND of the four interrupt inputs.  When you receive an interrupt, you read the interrupt register on the device to find

I2C Mux Breakout Board in WeatherPi
I2C Mux Breakout Board in WeatherPi

out what channel interrupted you.

Software

SwitchDoc Labs developed this pure Python TCA9545A I2CMux Raspberry Pi library and the Arduino Library and have posted them on the SwitchDoc Labs Respository on github.com

The Raspberry Pi Pure Python software is here:  https://github.com/switchdoclabs/SDL_Pi_TCA9545

The Arduino Software is here:  https://github.com/switchdoclabs/SDL_Arduino_TCA9545A

Using the Arduino libraries and the test software show the following result.  The test setup is to connect an additional I2C device to Bus 0 – in this case a SwitchDoc Labs INA3221 Breakout Board at address 0x40 on Bus0.

-----------------------------
------------------------------
SDA_Arduino_TCA9545_Test
Reading all four I2C Buses
------------------------------
------------------------------

------------------------------
------------------------------
Bus 0 Control Register:1
Scanning...
I2C device found at address 0x40  !
I2C device found at address 0x73  !
done

------------------------------
Bus 1 Control Register:2
Scanning...
I2C device found at address 0x73  !
done

------------------------------
Bus 2 Control Register:4
Scanning...
I2C device found at address 0x73  !
done

------------------------------
Bus 3 Control Register:8
Scanning...
I2C device found at address 0x73  !
done

 

Repeat the above test connecting the I2C Device to Bus1, Bus2 and Bus3

The I2C device (the INA3221 in this case) will move from bus to bus.