Code Monkey home page Code Monkey logo

rpi-cm4-custom-board's Introduction

Based on my previous projects I needed a customized RPI4 carrier board with 2 cameras input. The initial idea was taken from this project: https://www.tindie.com/products/dronecz/minimal-carrier-board-for-compute-module-4/.

I made several changes such as 4-layer PCB, added second camera lanes, differential routing for both cameras and HDMI, added temperature sensor, and added I2C and UART connectors.

I have added also two jumpers that allow disabling wireless and Bluetooth. I have tested nearly every connection. SD card connector does not work if you are using RPI4CM with emmc, otherwise, it should(not the fault of this design but the RPI design decision that I was not aware of while making this board)

In general, I am quite happy with the setup. JLCPCB manufactured and assembled most of the parts. However, one board did not have Hirose connectors soldered properly, I have received a coupon. I have not touched the spacing for Hirose connectors, but I found it may be slightly off. It is hard to connect RPI for the first time. But I don't want to modify it as it has been working for several weeks.

USB connector can be used to connect external devices. To flash a CM the dedicated jumper(OTG) needs to be connected . It is just USB2.0 and it is not delivering any power. I have tested powered USB hub/docking station and it is working fine. In this way even Ethernet connection can be used (again being limited to USB2.0)

I also created 3D-printed housing. It is my first 3d design of this type/scale, but it works. It does not have cutouts for HDMI and USB2.0 as I dont need them.

In order to use both cameras, config.txt file has to include both overlays as defined below, for my two cameras:

dtparam=i2c_arm=on

dtoverlay=imx708,cam0

dtoverlay=imx477,cam1

The majority of the connectors were assembled by JLCPCB(without I2C and camera connectors - not available at that time), I have included the production directory where all the details are attached. The positions of parts are not 100% aligned, so make sure if you are asking JLCPCB to assemble parts to align them correctly. It is very important to order the correct camera connector: https://www.digikey.at/en/products/detail/amphenol-cs-fci/SFW15R-1STAE1LF/4270877

I made several design decisions that suited my needs, such as different GPIO header connector, and 4-pin Groove connectors for UART and I2C, so they might not be suitable for your needs.

One important detail, I am powering this board with the Raspberry Pi power supply. Other power supplies with USB C connector might not work as RPI requires quite some power and I would need to implement USB PD.

Update: I needed power(5V) for an external USB device. I knew that I could connect a powered USB docking station(hub), however, that requires yet another power supply. As I just needed to power the USB microphone, that was an overkill. I looked at my diagram and I noticed that I can take 5V from GPIO and connect one of the pins at the OTG jumper(as shown below). An important detail is that the track is not designed to carry a lot of current, so be reasonable.

Screenshot 2024-01-21 at 12 54 01

License: Please feel free to use the design. Released under the following license: https://ohwr.org/cern_ohl_p_v2.txt

rpi-cm4-custom-board's People

Contributors

robertlukan avatar

Stargazers

Cybernetic Engineering avatar Brandon Ashworth avatar  avatar Jessie avatar  avatar  avatar Miroslav Zuzelka avatar

Watchers

 avatar Miroslav Zuzelka avatar

rpi-cm4-custom-board's Issues

Plan to support 22-pin CSI connector?

Hello :-) Thank you for this fantastic project!
Have you considered supporting a 22-pin connector with an additional 2 data lines?
If it is possible to add a 22-pin connector with the implementation of the extra 2 data lines (same pinout as Raspberry Pi Compute Module 4 IO Board), it would enable the use of a 4-lane MIPI-CSI for higher bandwidth.
(In fact, I am currently working on getting Sony IMX183 to work with the cm4. Once completed, I will share the project.)

Version with Qwiic?

I'd be interested in a version of this board that included a Qwiic connector next to the Grove. Would you be interested in editing your project to add this?

Of course I can fork and try to add it myself, but it may be possible to keep the versions together?

Do you have any plans to sell the boards on Tindie or whatever?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.