Pico to Rio I2C Bridge PCB

I’ve been out of the FRC game for a minute but something I’ve noticed is that there’s been an uptick in teams using Picos and Teensys in order to interface with i2c sensors on their robot thanks to the Rio i2c bug that causes freezing. In particular I took a look at @Thad_House’s implementation of i2c over UART using a Pi Pico. To help make teams wire their robots a little more cleanly I designed a PCB that lets teams plug and play their i2c Sensors without having to manage or solder janky pinheaders.

It features both 2.54mm pin headers and JST PH footprints if you don’t want to use an adapter cable, as well as some zip tie holes to strain relief your sensor cables.

The pin out is identical to what’s listed on the Github repo so teams already familiar with this software should be able to plug n play without issue. The only major difference is that this board adds i2c pullup resistors and powers the sensors from the 3v pin on the MXP rather than the Pico’s 3v source itself.

The bom can be found here.
(note that this sheet doesn’t contain the JST connectors because they seem to have been sunsetted, until I can find a reliable source for the JST recepticle, I recommend using the 2.54mm pitch pins with a cable like this one)

The Gerber files, if you’d like to make one yourself, can be found here.

If there’s any interest, I’d also love to assemble a few of these myself to sell to teams at a reasonable cost.

If there’s any input on this board please feel free to rip it a new one, it’s a live project still and I’m happy to learn from it.

18 Likes

It’s green? Ugh /s

1 Like

If you’ve got the dosh I think PCBWay can make em hot pink!

3 Likes

https://www.urbandictionary.com/define.php?term=dosh

7 Likes

I learned I was an adult when I finally had to bookmark urban dictionary on my school computer :joy:

But this looks like a great tool to add to the arsenal thank you!

3 Likes

I have a similar idea that I’m working on! Your board looks good, keep up the good work!

2 Likes

This combined with an I2C to USB firmware upgrade for the pico sounds like a product coming together.

3 Likes

With @rah1236’s permission, I created a V2 of the Pico to RIO I2C Bridge PCB.

Differences between V1 and V2:

  • Replaced the SMDs with THTs components so teams don’t need to worry about small pieces and allows easier soldering with THTs
  • Made the DuPont headers at a right angle to minimize the usage of the vertical space
  • Both the Dupont and JST connector face the side
  • FIXED: The JST connector on the V1 had the SDA and SCL channels in the wrong pins, V2 has fixed that. This allows you to use a regular 4-pin JST PH cable from the color sensor to the board. NOTE: When plugging the JST connector into the board, the connector must be upside down then how you plug into the color sensor.

Similarities:

  • I2C Pullup Resistors
  • Sensors are powered from the MXP instead of the Pico.

An important thing I need to mention, this will not work with @Thad_House’s original code as the pins are different, but don’t worry, I have provided an updated c++ file and .uf2 file for the Raspberry Pi Pico. Unfortunately, I have not been able to test it since I do not have a Pico and I don’t have a soldering station to be able to make a sample board as I wanted to.

The BOM can be found here.
NOTE: Unfortunately, the JST connector that I wanted to use is currently unavailable, that is the reason why I do not have a price on the BOM. If you are able to find a compatible/similar connector, feel free to use it and let me know so I may update the BOM.

If you’d like to make one yourself, the Gerber files can be found here.

If you want to look at the schematics and the PCB file, they can be found here. You will have to use KiCad as that is the software I used to make this.

And just like what Raheel said

The same goes for me! Also, let me know if you and/or your team use the board! It would be awesome to hear that! I am actively willing to learn and grow my skills!
Thank you!

11 Likes

https://www.arrow.com/en/products/s4b-ph-k-s-lf-sn/jst-manufacturing

(~$0.16, but you have to buy 25x)

2 Likes

I’ll buy it for a dollar + shipping :joy:

2 Likes

I would like to find something where you just need to buy 2 min. Also, that is $3.87 for 25

On the SMT board, that looks like the same JST 4 pin connector that is used on the REV I2C sensors. I’ve used LCSC C265332 for that recently, though it looks like that is low in stock (sigh 2022). The white version (no -K) looks to have some stock: S4B-PH-SM4-TB(LF)(SN).

It would be really neat if this board could fit right on top of the Rio like the NavX so that it would not have to be mounted separately.
Just kidding this is plugging into the MXP port. That is awesome. Updating to say that it would be really neat if this could be used at the same time as the NavX on the MXP port.

1 Like

I did think about adding a passthrough for the NavX but I wondered if the bandwidth would be affected and I didn’t know if I had space for the traces so that is why I never added it. I can experiment and see if I can physically add it and send all 34 traces to the male connector to put a NavX on top. If I am able to do it, call it V2.5.

3 Likes

You might be able to find a connector with long pins that would let you stack these with the board you have. These are generically known as stacking connectors.

I did try to look for something like that but the problem I wanted to avoid is, I wanted the MXP connector it self, with the box around the pins and that little slide-in locking. I never was able to find that but the question always come, how would you solder that

https://www.samtec.com/products/tst-117-03-f-d

You solder it on the reverse side – it’s a through-hole part. It just has leads that are long enough to reach and plug into the roboRIO’s MXP port. You want to look at "TST-117-0<#>-F-D, where <#> is either 1, 2, or 3. See below for the lead length you are specifying when you select <#>.

image

Note: You will most likely need to do a search for this part number and order from a distributor.

2 Likes

If you did that, I don’t think you’d be able to use the NavX’s PWM pins, since this would be an unapproved active MXP device.

1 Like

oh… I literally just finished V2.5 as I see this. I didn’t know there were a approved devices list for the MXP

1 Like

See R713.

You could still use it, it just limits what you can do with it.

To be honest, I don’t how often teams use the onboard NavX pins, I thought majority of teams use the NavX just for its software features, so, I should be fine