Skip to the content
PCBKitNew board
2 layers90 × 80 mmTestingPCB, the printed circuit board in 3D

My Undergraduate Honors Thesis Code

Size
90 × 80 mm
Copper layers
2
Thickness
1.6 mm
Parts
19
Nets
69
Pads
151
Tracks, vias
191, 32
Pours
1
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
11 Sep 2024
Updated
27 Aug 2025

Overview

TestingPCB is an open-source printed circuit board by leslier7, from the leslier7/thesis repository on GitHub. It is a 2-layer board of 90 × 80 mm with 19 parts on 69 nets, routed with 191 tracks and 32 vias.

It is built around the SC0915, CP2102N-A02-GQFN20R and USBLC6-2P6, with the C1206C104K5RACTU, CL31B475KOHNNNE and CRCW12065K10FKEAC among its other parts. Its parts include 5 resistors, 4 capacitors, 3 ICs and 3 connectors.

Main components

11

README

README.md

A Comparison of the Arm and RISC-V Architectures on the RP2350 Microcontroller

Abstract

This thesis compares the M-33 implementation of the Arm ISA with the Hazard3 implementation of the RISC-V ISA on the RP2350 microcontroller chip. It details why this chip, containing two different cores, presents unique opportunities to learn about their implementation. The two implementations are compared. Custom benchmarks were developed, and existing benchmarks were ported to the Pico platform to collect performance, power consumption, and binary data about both core implementations. Our results show that, although ARM benefits from specialized hardware, both implementations perform similarly on real-world benchmarks, depending on the task. A copy of this thesis is available via the Lafayette College Digital Repository

This repository contains the source code for the thesis. It also contains Python scripts used for data collection, and the PCB design files for the testing board.

Instructions for Building Pico Benchmarks

Requirements

Building the Benchmarks

To build the benchmarks, you will need to set up the Pico SDK and the RISC-V toolchain. Then follow these steps:

  • Clone the repository: git clone https://github.com/leslier7/thesis.git
  • Navigate to the benchmark directory that you want to build, e.g., cd thesis/floatmark
  • Make a build directory and navigate into it: mkdir build-arm && cd build-arm or mkdir build-riscv && cd build-riscv
  • Run CMake to configure the build:
    • For Arm: cmake .. -DPICO_PLATFORM=rp2350 -DARCH=arm
    • For RISC-V: cmake .. -DPICO_PLATFORM=rp2350-riscv -DARCH=risc
  • Then build the benchmark with: make
  • Do this for each benchmark you want to build.

Running the Benchmarks

  • Upload the resulting .uf2 files to the Pico 2 board by dragging and dropping them onto the board when it is in bootloader mode (hold the BOOTSEL button while plugging in the MicroUSB cable).
  • The benchmark will automatically run when the board is powered on. It will output the results to the serial port, which can be read using a terminal program or the provided Python scripts.
    • The TestingPCB has a USB-C port for connecting a serial adapter to a computer

Instructions for Running the Scripts

Requirements

  • Python 3.x with the following packages:
    • numpy
    • serial
    • csv
  • A Nordic Semi Power Profiler II power measurement device (if measuring power consumption)

Running the UART Script

  • Connect the USB-C port on the testing board to your computer.
  • Run the script: python UartScript.py file_name.csv port_name
    • Replace file_name.csv with the desired output file name (it can be a path).
    • Replace port_name with the serial port name (e.g., /dev/ttyUSB0 on Linux).
  • Plug the Micro-USB cable into the Pico 2 board to power it on.
  • Unplug and replug the Micro-USB cable to reset the board 10 times to fully test each benchmark.
    • If using the PPK2 to measure the power consumption, toggle the power source in the software 10 times instead.

Collecting Power Measurements

  • Follow the instructions in Section 4.3.2.4 of the thesis to set up the PPK2 and collect power measurements.

Running the Power Measurement Script

  • Make sure that you have exported the data from the PPK2 software to a CSV file following the instructions in section 4.3.2.4 of the thesis.
  • Run the script: python ChargeScript.py folder_path
    • Replace folder_path with the top level folder containing the CSV files exported from the PPK2 software. It will process all CSV files in all subfolders and put the outputs of each folder in an Outputs folder.

Instructions for the PCB Design Files

The PCB design files are located in the TestingPCB directory. They were created using KiCad8. To view or modify them, you will need to install KiCad and open the .kicad_pro project file.

Parts

19
QtyValueFootprintReferences
4MountingHoleMountingHole:MountingHole_3.2mm_M3_ISO7380_Pad_TopBottomH1, H2, H3, H4
20.1uFCapacitor_SMD:C_1206_3216MetricC2, C4
24.7uFCapacitor_SMD:C_1206_3216MetricC1, C3
25.1kResistor_SMD:R_1206_3216MetricR1, R2
11kResistor_SMD:R_1206_3216MetricR5
122.1kResistor_SMD:R_1206_3216MetricR3
147.5kResistor_SMD:R_1206_3216MetricR4
1CP2102N-Axx-xQFN20Package_DFN_QFN:SiliconLabs_QFN-20-1EP_3x3mm_P0.5mm_EP1.8x1.8mmU4
1Conn_01x04Connector_Harwin:Harwin_M20-89004xx_1x04_P2.54mm_HorizontalJ1
1Conn_01x10Footprints:HARWIN_M20-8891045J4
1SC0915Footprints:picoU1
1USBLC6-2P6Package_TO_SOT_SMD:SOT-666U3
1USB_C_Receptacle_USB2.0_14PConnector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_HorizontalJ2

Questions

How big is the TestingPCB PCB?

It measures 90 × 80 mm and has 2 copper layers, 1.6 mm thick.

What parts does the TestingPCB use?

19 parts, built around the SC0915, CP2102N-A02-GQFN20R, USBLC6-2P6 and C1206C104K5RACTU. 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 TestingPCB KiCad files?

From the leslier7/thesis repository on GitHub, at the commit this page was made from: the board is TestingPCB/TestingPCB.kicad_pcb and its schematic TestingPCB/TestingPCB.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the TestingPCB design in my own project?

Its repository states no licence, so its author keeps all rights: ask leslier7 before reusing the design.

Similar boards

  • 4 layers150 × 120 mmEphys test board, the printed circuit board in 3D

    Ephys test board

    open-ephys/ephys-test-board

    General purpose, automated electrophysiology test board

    567 parts1
  • 2 layers70 × 50 mmWashrBoard, the printed circuit board in 3D

    WashrBoard

    Spaceona/WashrBoard

    38 parts1
  • 2 layers100 × 75 mmAirQualityPCB, the printed circuit board in 3D

    AirQualityPCB

    leslier7/AirQualityPCB

    MAE 5220 Air Quality Board

    57 parts
  • 4 layers70 × 109.2 mmManafish, the printed circuit board in 3D

    Manafish

    Tropaion/Manafish_Mainboard

    The Manafish Mainboard is the main electronics board of the Manafish ROV. It replaces the Raspberry Pi 3B, the USB-connected Raspberry Pi Pico and the wiring between them with one board:

    127 partsAGPL-3.0
  • 4 layers100 × 80 mmScopeboy, the printed circuit board in 3D

    Scopeboy

    leslier7/scopeboy

    Polished version of the ScopeBoy project started in ECE5730

    151 parts
  • 2 layers50 × 35 mmUSB C 5V Power Board, the printed circuit board in 3D

    USB C 5V Power Board

    syedalicodes/USB_C_5V_Power_Board

    A USB-C 5V power board with ESD protection, resettable fuse, reverse-polarity protection, and 3.3V regulation designed in KiCad 10.

    18 parts
  • 4 layers120 × 85 mmVirtual scoring box, the printed circuit board in 3D

    Virtual scoring box

    AndrewCraswell/agency

    Native KiCad engineering prototype, separate from the earlier ESP32/tscircuit board. Open usb-scoring-platform.kicadpro in KiCad 10; schematic and PCB are the editable source, with no generator required.

    146 partsMIT