Skip to the content
2 layers30 × 48 mmCarrier, the printed circuit board in 3D

Open source hardware down to the chip level!

Size
30 × 48 mm
Copper layers
2
Thickness
1.6 mm
Parts
40
Nets
67
Pads
168
Tracks, vias
433, 49
Pours
1
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
6 Jul 2021
Updated
24 Sep 2021

Overview

Carrier is an open-source printed circuit board by mattvenn, from the mattvenn/vga_clock_pcb repository on GitHub, published under the MIT licence. It is a 2-layer board of 30 × 48 mm with 40 parts on 67 nets, routed with 433 tracks and 49 vias.

It is built around the MIC5504-3.3YM5-TR and ECS-5032MV-100-BN-TR. Its parts include 8 capacitors, 7 resistors, 3 ICs, 3 connectors and 3 switches.

Main components

2

README

README.md

Matt Venn's ASIC VGA Clock

PCB

boards

This PCB provides all the necessary components to make a functional clock:

  • Pads for mounting the ASIC
  • Decoupling
  • Voltage regulators for core (1.8) and IO (3.3)
  • Crystal oscillator
  • SOIC-8 footprint for dual SPI flash for the configuration firmware
  • 2x6 1.27mm header with housekeeping SPI, UART and 5V - the minimum connection needed for power and debug
  • PDF Schematic

Setup

Firmware

Needs to active project 2. See https://github.com/mattvenn/caravel-mph/blob/release/verilog/dv/caravel/user_proj_example/vga-clock/vga_clock.c for the simulation test. Will need PLL setup to work on the ASIC.

Flashing

For flashing, see https://github.com/efabless/ravenna/blob/master/firmware/blink/Makefile as a starting point. ravenna_hkspi.py may need some tweaks to work with Caravel.

The SPI interface can be used to put the ASIC into 'passthrough' mode. Then the FLASH can be programmed through this same SPI interface.

See the schematic for the pinout of the SPI interface on the board.

PLL config

Needs 31.5MHz for VGA signal. As precise as possible for good timekeeping. Input oscillator is 9MHz.

Using https://github.com/kbeckmann/caravel-pll-calculator

text
matt-desktop:2003 [main]: ./caravel_pll.py generate --clkout 31.5 --clkin 9
PLL Parameters:

clkin:    9.00 MHz
clkout:   31.50 MHz
clkout90: 31.50 MHz

PLL Feedback Divider: 14
PLL Output Divider 1: 4
PLL Output Divider 2: 4

Register 0x11: 0x24
Register 0x12: 0x0e

Pinning

See the instantiation into the user project area here: https://github.com/mattvenn/multi-project-harness/blob/separate-macro/user_project_wrapper.v#L190 See the design repository here: https://github.com/mattvenn/vga-clock/tree/db029c38607c8d27f54b48bd8fd423cae3c4ed3d

text
vga_clock proj_2 (
    .clk(proj2_clk),
    .reset_n(proj2_reset),
    .adj_hrs(proj2_io_in[8]),
    .adj_min(proj2_io_in[9]),
    .adj_sec(proj2_io_in[10]),
    .hsync(proj2_io_out[11]),
    .vsync(proj2_io_out[12]),
    .rrggbb(proj2_io_out[18:13])
    );
  • rrggbb is mapped to R1, R2, G1, G2, B1, B2
  • 500R used for R1, G1, B1
  • 1k used for R2, G2, B2

Power

User project

  • Power is provided to the clock design only by VCCD1 and VSSD1.
  • Tim Edwards suggests:
    • keeping VCCD2 and VCCD1, VSSD2 and VSSD1 tied together just to make sure there are no floating power supplies.
    • connect VDDA1 and VDDA2 to VDDIO, and VSSA1 and VSSA2 to VSSIO to make sure they're not floating.
      For reference, the power ring around the user project area has 4 buses. From outside to inside: VSSA2, VDDA2, VSSA1, VDDA1, VSSD2, VCCD2, VSSD1, VCCD1.
    • VSSA2 user area 2 ground
    • VDDA2 3.3V user area 2 psu
    • VSSA1 user area 1 ground
    • VDDA1 3.3V user area 1 psu
    • VSSD2 user area 2 digital ground
    • VCCD2 1.8V user area 2 digital psu
    • VSSD1 user area 1 digital ground
    • VCCD1 1.8V user area 1 digital psu

Management

  • VDDIO/VSSIO power and ground for IO (up to 5v). I'm connecting to 3.3v
  • VDDA/VSSA 3.3v PSU for management area
  • VCCD/VSSD 1.8v PSU for management area

BOM

All available from digikey as of 13/7/21

  • regulators
    • 1.8v MCP1824T-1802E/OT
    • 3.3v MIC5504-3.3YM5-TR
  • flash: W25Q32JVSSIQ-TR
  • oscillator: SIT8008AI-23-33S-9.000000
  • VGA connector: L77HDE15SD1CH4F
  • USB connector: 1050170001
  • buttons: PTS636 SM25J SMTR LFS

Errata

v0.1

  • Initial footprint for ASIC was flipped.
  • All other components were tested and worked as expected.

v0.2

  • TBD

Resources

License

Open Source Hardware

This board is an OSHWA approved design: ES000023

Parts

40
QtyValueFootprintReferences
12TestPointTestPoint:TestPoint_Pad_D1.0mmTP1, TP2, TP3, TP4, TP5, TP6, TP7, TP8, TP9, TP10, TP11, TP12
422nCapacitor_SMD:C_0603_1608MetricC9, C10, C11, C16
31kResistor_SMD:R_0603_1608MetricR2, R4, R6
3500RResistor_SMD:R_0603_1608MetricR1, R3, R5
21u 16vCapacitor_SMD:C_0603_1608MetricC1, C5
24u7 16vCapacitor_SMD:C_0603_1608MetricC3, C7
1100RResistor_SMD:R_0603_1608MetricR7
1CARAVELcarrier:WLCSP-60_P0.5mmASIC1
1Conn_02x03_Counter_ClockwiseConnector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_VerticalJ1
1DB15_Female_HighDensitycarrier:db15J2
1ECS-5032MV-100-BN-TROscillator:Oscillator_SMD_SeikoEpson_SG8002CE-4Pin_3.2x2.5mmX1
1LEDLED_SMD:LED_0603_1608MetricD1
1LOGOcarrier:oshw-logo-smallG***
1MCP1824T-1802E/OTPackage_TO_SOT_SMD:SOT-23-5U5
1MIC5504-3.3YM5-TRPackage_TO_SOT_SMD:SOT-23-5U6
1SW_Push_hrscarrier:pts636SW1
1SW_Push_mincarrier:pts636SW2
1SW_Push_seccarrier:pts636SW3
1USB_B_MicroConnector_USB:USB_Micro-B_Molex-105017-0001J3
1W25Q32JVSSIQ-TRPackage_SO:SOIC-8_5.23x5.23mm_P1.27mmU2

Similar boards

  • 4 layers62.1 × 83.8 mmSs main board, the printed circuit board in 3D

    Ss main board

    loopj/short-stack

    World's Smallest Nintendo Wii, using a trimmed motherboard and custom stacked PCBs

    69 parts804
  • 4 layers56.1 × 57.1 mmMCL86jr, the printed circuit board in 3D

    MCL86jr

    MicroCoreLabs/Projects

    Ted Fried's MicroCore Labs Projects - FPGA CPU cores and emulators for the 8088, 8086, 8051, 6502, 68000, Z80, Risc-V, and also Typewriter and EPROM Emulator projects.

    66 parts534
  • 2 layers17.8 × 35.6 mmTinyFPGA B, the printed circuit board in 3D

    TinyFPGA B

    tinyfpga/TinyFPGA-B-Series

    Open source design files for the TinyFPGA B-Series boards.

    36 parts202GPL-3.0
  • 4 layers54 × 50.1 mmNigun, the printed circuit board in 3D

    Nigun

    raziele/Nigun

    1.5-3GHz RF down-converter for RTL-SDR

    259 parts40
  • 4 layers108 × 50 mmFED3, the printed circuit board in 3D

    FED3

    KravitzLabDevices/FED3

    Feeding Experimentation Device version 3

    114 parts36GPL-3.0
  • 4 layers51.8 × 20 mmSample target, the printed circuit board in 3D

    Sample target

    alvarop/swd2usbc

    Have you ever wanted to debug your device over USB-C? Sometimes there's not enough room for a JTAG/SWD connector, or even Tag-Connect pads!

    57 parts29CC0-1.0
  • 2 layers61 × 22 mmEsp walkie talkie hw, the printed circuit board in 3D

    Esp walkie talkie hw

    PetteriAimonen/esp-walkie-talkie-hw

    Hardware for ESP8266 based walkie talkie (doesn't work particularly well)

    46 parts10
  • 2 layers130.8 × 83.8 mmUMDv2, the printed circuit board in 3D

    UMDv2

    db-electronics/UMDv2-kicad

    Universal Mega Dumper v2 PCB

    112 parts7

Questions

How big is the Carrier PCB?

It measures 30 × 48 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Carrier use?

40 parts, built around the MIC5504-3.3YM5-TR and ECS-5032MV-100-BN-TR. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Carrier KiCad files?

From the mattvenn/vga_clock_pcb repository on GitHub, at the commit this page was made from: the board is carrier.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Carrier design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).