Replies: 10 comments 5 replies
-
Notes on creating a carrier board A few files needed: CM5 IO board KiCad Files: Optionally, ShawnHymel's CM5 carrier template https://github.com/ShawnHymel/rpi-cm4-carrier-template Sheet contains multiple sub-sheets. To add components, find them on the supplier website, download the component footprint etc. Move folder to libraries folder in current project. In KiCad: manage symbol libraries. Project specific, add existing, select folder. Add to sheet, update property values as these are what the BOM references: 'Cut tape works well for single items.' Considerations: Design rules can be updated in KiCad to match manufacturer. USB Data also needs calculated clearance and track width. To create differential impedance. (See octavosystems note https://octavosystems.com/app_notes/osd335x-design-tutorial/osd335x-lesson-2-minimal-linux-boot/osd335x-lesson-2-usb-circuitry/) CM5 connector is a 'Hirose' connector. Add Footprint, Fiducial, 1mm. Opposite corners. Help pick & place machine align the board. |
Beta Was this translation helpful? Give feedback.
-
I have made some concessions for v1 of this board as I don't want to over-complicate the design for the first version. I'm removing the USB-C and USB-A ports, (as well as the other ports I won't be using). I may add them later. This will mean that the board will not be able to flash a CM5 directly. I have added the INMP441 directly to the board with the appropriate capacitors and resistors, detailed in the datasheet: https://invensense.tdk.com/wp-content/uploads/2015/02/INMP441.pdf. Specifically, a 100K pulldown resistor on the SD pin and a 0.1uF capacitor between VIN and GND. The MAX98357A is more complicated, fortunately Adafruit's circuit is available under this license which means I'm able to copy their schematic: However, because I have no faith in my PCB design skills I have also added a solder jumper that must be bridged to enable this module. This means that I can disable it and use one of the adafruit modules via the I2S breakout pins if there are issues with this version of the board. The current version looks like this: |
Beta Was this translation helpful? Give feedback.
-
I'm reasonably happy with the board layout and the DRC is passing (except for a few issues I've flagged as warnings as they are problems with the stock footprints that shouldn't impact the production, and I can adjust if they do). The layout looks like this: Next step is to route the tracks, so I need to calculate the thickness of the 5v bus to the hirose connectors so that it can handle the current, then complete the rest. It's currently set as a 4 layer board, and I think I'll need them all. I plan to include two GND zones on either face layer as that seems to be best practice. |
Beta Was this translation helpful? Give feedback.
-
I have merged the source from Once I have the new PCB assembled I'll work on fully testing everything in develop, so it made sense to have the source in one branch. |
Beta Was this translation helpful? Give feedback.
-
Board has been printed and assembled, and actually works (at least the initial boot). I will continue testing. I have attached the final design: |
Beta Was this translation helpful? Give feedback.
-
The microphone and amps are both working well. The camera isn't recognised but I suspect that is configuration as I didn't test that on the IO board either. |
Beta Was this translation helpful? Give feedback.
-
The pre-assembled connectors arrived and I'm pleased to say that the I2C, GPIO and SPI interfaces are all working as expected. The camera does not (no cameras found), but I expect that is a configuration issue as I didn't really change anything there from the IO board that this PCB was based on. Overall, I'm fairly pleased with the board. If I can get the camera(s) working I will be able to begin building the head. Current draw hovers just below 1A @ 5V, even with the screen, ear servo, and motion sensor connected and the code running. If the code isn't running it sits at around 0.5A @ 5V. So there are clearly some efficiency improvements I can make to the software that will extend the battery life. |
Beta Was this translation helpful? Give feedback.
-
The MIPI CSI/DSI (camera / display) port 0 works with the Raspberry PI AI Camera. I haven't tested port 1 yet, as I need to bridge the two solder connectors, but I don't have plans to use that in this version so I'll test it at a later date. Besides that, everything is tested and working perfectly! |
Beta Was this translation helpful? Give feedback.
-
Creating a feature branch for the changes relating to cody testing and integration. Includes the new 'eye' code using the TFT display. |
Beta Was this translation helpful? Give feedback.
-
Just to follow on from the updates above: The carrier board is a difficult thing to recreate. The components are small and most require surface mounting with solder paste, a microscope (ideally) for placement, and a reflow oven or heat pad. So, for that reason I'm interested in understanding how much interest there is in making the board accessible, and in what way. Please react to this comment with the appropriate symbol to take part in the survey:
Some more context on the components used in this build for the head here (Everything under 'Raspberry Pi 5 Carrier Board' in that list would come pre-installed in option 1). |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Carrier board pin mapping
The below tables detail the pins in use for the various protocols. I am not including pins for voltage or ground as this should be managed separately. See below for considerations here.
I2C
I2S
UART
SPI
Neopixel SPI
Other Consideration
Headers are expected to be 1.27mm pitch for signal (half the size of the most common headers) and MORE THAN 2.54mm pitch for power (as this is only rated at 3A), in order to handle 8A current.
Similarly, PCB trace width must be appropriate on the 5V and GND lines: https://www.pcbway.com/pcb_prototype/trace-width-calculator.html
Modules require 5V and 3V power, and those installed directly on the board (I2S devices) will need power supplied via the board.
Ideally, any 5V power should be fed directly from the power management board to the components. This keeps the board form factor small and allows the power on the board to be dedicated to the CM5.
Beta Was this translation helpful? Give feedback.
All reactions