Skip to the content
4 layers100 × 100 mmPico Dev iCE, the printed circuit board in 3D

This is a direct down conversion (DDC) HF transceiver & VNA using the Raspberry Pi Pico and the iCE40UP5K.

Size
100 × 100 mm
Copper layers
4
Thickness
1.6 mm
Parts
294
Nets
249
Pads
1,193
Tracks, vias
2,425, 334
Pours
4
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
15 Jul 2026
Updated
6 Nov 2026

Overview

Pico Dev iCE is an open-source printed circuit board by frohro, from the frohro/pico-dev-ice repository on GitHub. It is a 4-layer board of 100 × 100 mm with 294 parts on 249 nets, routed with 2,425 tracks and 334 vias.

It is built around the ICE40UP5K-SG48I, TPH2501-TR and CJC4334H, with the MS9280, MS9708 and PAM8908JER among its other parts. Its parts include 106 capacitors, 88 resistors, 24 ICs, 10 connectors and 9 transistors. It belongs with the radio and wireless boards and the RP2040 and FPGA and CPLD boards of this library.

Main components

12

README

README.md

The Pico Dev-iCE 📡

DSP Educational Vehicle & iCE40 Mixed-Signal Laboratory

📌 Overview

The Pico Dev-iCE is a low-cost, high-performance "Lab-in-a-Box." It combines the high-speed programmable logic of a Lattice iCE40UP5K FPGA with the flexible C/MicroPython ecosystem of a Raspberry Pi Pico (YD-RP2040 with 16MB Flash).

Designed specifically as an educational platform, it abandons "black box" RF chips in favor of discrete, observable analog blocks. Students can physically probe the RF signal path, design their own LC filters on pluggable sandboxes, and write Verilog to perform Direct Digital Conversion (DDC), digital decimation, and hardware I2S audio routing.

Here is a video of the SDR receiving on 20 meters..

🚀 Key Capabilities

  • HF Software Defined Radio (RX/TX): Full-duplex DDC/DUC transceiver covering 0 - 15.36 MHz (1st Nyquist) with Super-Nyquist capabilities up to 30+ MHz.
  • Vector Network Analyzer (VNA): Built-in Return Loss Bridge (RLB) for S11 (reflection) antenna tuning, and Port-to-Port S21 (transmission) filter characterization.
  • Arbitrary Waveform Generator (AWG): Dedicated DC-coupled and AC-coupled SMA outputs for 30 MSPS generic signal generation.
  • Real-Time Spectrum Analyzer: Visualize the entire 15 MHz HF spectrum simultaneously via FPGA-accelerated FFTs.
  • Standalone Operation: Onboard Audio DAC/Headphone amp and rotary encoder support allows the board to operate as a standalone radio without a PC.

🧠 Hardware Architecture

Processing Core

  • Microcontroller: YD-RP2040 / Pico 2 socket. Handles AGC math, user interface, USB communications, and slow-state hardware toggles. The massive internal Flash (up to 16MB) stores the FPGA bitstream and programs the FPGA directly on every boot, eliminating the need for an external FPGA flash chip.
  • FPGA: Lattice iCE40UP5K (SG48). Handles high-speed 30.72 MHz DSP, NCO generation, CIC decimation/interpolation, and I2S master clocking.
  • Control Bus: The Pico uses its high-speed SPI0 bus to dual-role: it blasts the bitstream into the FPGA's internal CRAM on boot, and then seamlessly transitions to sending runtime DSP commands to the user's Verilog over the exact same 4 wires.

Clocking & DSP Math

  • Master Clock: A clean 30.720 MHz CMOS oscillator drives the FPGA.
  • The Magic of 30.72 MHz: The FPGA decimates the 30.72 MSPS ADC data by exactly $R=640$ to yield a mathematically perfect 48.000 kHz baseband I/Q audio stream over I2S to the Pico.
  • Process Gain: The 640x decimation provides ~ 28 dB of digital processing gain, turning the raw 8-bit ADC into a highly sensitive 12.6-bit effective receiver!

The Receive (RX) Path

  • Topology: SMA ➔ Ethernet Isolation/CMC ➔ Band Sandbox ➔ T/R Switch ➔ LNA 1 ➔ PGA (5/10dB) ➔ LNA 2 ➔ ADC.
  • Amplifiers: Uses discrete high-speed op-amps wired as AC-coupled inverting amplifiers.
  • Programmable Gain: A Digital Step Attenuator (DSA) built from CMOS switches and precision T-networks, providing 0 to 55 dB of gain control in 5 dB steps. LNA 1 and LNA 2 are both bypassable to prevent clipping on massive signals.
  • ADC (MS9280): 8-bit, 32 MSPS. Driven by an RF balun into True Differential Mode with a 4.5V analog supply, yielding a massive 4.0V peak-to-peak input span for maximum dynamic range.

The Transmit (TX) Path

  • Topology: DAC ➔ Passive I-V ➔ Ethernet Transformer ➔ TX Switch ➔ Recon Sandbox ➔ TX Op-Amp (+12dB) ➔ T/R Switch ➔ SMA.
  • DAC (MS9708): 8-bit, 32 MSPS Current-Steering DAC.
  • Passive 50Ω resistors and an Ethernet transformer gracefully map the DAC's strict output compliance limits into a clean 1.0V p-p RF signal, which is then amplified to drive a 50-ohm antenna.

Power Domains (Strict Isolation)

To achieve commercial-grade noise floors, the noisy Switch-Mode Power Supply (SMPS) of standard Picos is bypassed/isolated.

  • +4.5V AVDD: Clean LDO powering the RF op-amps, analog switches, and ADC/DAC analog cores.
  • +3.3V Digital: LDO powering the FPGA I/O, Pico, and IC logic.
  • +3.3V Clean: Ferrite bead + LC filtered rail strictly for the 30.72 MHz oscillator to eliminate phase-noise/jitter.

🎛️ Port & Jumper Reference

Coaxial Connectors

  1. SDR_ANT(BNC): Main Transceiver Port (Transformer isolated, AC-Coupled).
  2. SII (SMA): Device Under Test port for S11/VSWR Antenna measurements. Connects to the internal Return Loss Bridge.
  3. AWG_OUT (BNC): Direct DC-coupled output (0V to +4V) from the DAC. Perfect for baseband signal generation.
  4. S21 (SMA): AC-coupled output for S21 Filter sweeps and RF signal generation. Protects the op-amp from DC-shorted filters.

Filter Sandboxes (Plug-and-Play)

The board features IN-GND-GND-OUT 0.1" sockets for inserting custom filter daughterboards.

  • Band Sandbox: Shared by both RX and TX (pre-T/R switch). Students calculate and test bandpass filters here.
  • TX Pre-Sandbox: Placed before the TX amplifier. Used for mild Nyquist reconstruction filters or super-Nyquist image-selection filters.

🛠️ Software & HDL Notes

  • Level Shifters (Logic Inversion): The 4.5V analog switches are controlled by 3.3V GPIOs via 2N7002 N-Channel MOSFETs. Note: This results in a logic inversion. Writing 0 to the pin in MicroPython = Switch HIGH (Max Gain / Default Path). Writing 1 = Switch LOW (Attenuated / VNA / TX Path).
  • FPGA Boot & SPI0 Bus:
    • The external FPGA Flash chip was removed to simplify the architecture. The Pico boots the FPGA directly by blasting the bitstream into CRAM using its Hardware SPI0 block.
    • Because the Pico drives the bus, the net names match the Pico's hardware roles: SPI0_TX (MOSI) is data entering the FPGA, and SPI0_RX (MISO) is data leaving the FPGA.
    • Runtime: Once booted, the Pico reuses the exact same SPI0 bus and ICE_SSN Chip Select pin to send DSP commands to the user's Verilog.
  • ADC OTR: The MS9280 "Out of Range" (Clipping) pin pulses for only 32ns. The FPGA catches this, stretches the pulse, and triggers a hardware interrupt on the Pico to engage the AGC.

The ten-week, verification-first HDL course sequence is documented in DDC_SDR_Lab_Plan.md.


📍 Hardware Pinout Reference

1. Microcontroller (Raspberry Pi Pico) Pinout

This map defines the interface for the software team handling AGC, VNA sweeps, user interface, and I2S audio routing.

Pico GPIONet NameFunctionDirectionNotes
GPIO 0FPGA_INTFPGA Hardware InterruptInputCatches stretched ADC Out-Of-Range (OTR) pulses
GPIO 1PMOD_3PMOD / GPIO JumpI/OConnected via series resistor R32 to PMOD_3
GPIO 2SDAI2C DataIn/OutI2C bus for the OLED Display
GPIO 3SCLI2C ClockOutputI2C bus for the OLED Display
GPIO 4SPI0_RXSPI0 MISOInputData entering Pico from FPGA (via series resistor R33)
GPIO 5ICE_SSNSPI0 CSn (FPGA CS)OutputHardware SPI0 Chip Select (Boot & Runtime)
GPIO 6SPI0_CLKSPI0 SCKOutputSPI Clock for Boot and Runtime (via series resistor R34)
GPIO 7SPI0_TXSPI0 MOSIOutputData leaving Pico to FPGA (via series resistor R35)
GPIO 8PGA05 dB AttenuatorOutputLogic 1 = Attenuator Active (LOW at switch)
GPIO 9PGA110 dB AttenuatorOutputLogic 1 = Attenuator Active (LOW at switch)
GPIO 10PGA2LNA 2 BypassOutputLogic 1 = LNA Bypassed (LOW at switch)
GPIO 11PGA3LNA 1 BypassOutputLogic 1 = LNA Bypassed (LOW at switch)
GPIO 12BAND_SWBand Filter SandboxOutputToggles sandbox selection switch
GPIO 13TX_DATAI2S TX DataOutputFull-Duplex Baseband Audio TO the FPGA
GPIO 14RX_DATAI2S RX DataInputFull-Duplex Baseband Audio FROM the FPGA
GPIO 15BCKI2S Bit ClockInputClocks generated by FPGA (I2S Master)
GPIO 16WSI2S Word Select (L/R)InputClocks generated by FPGA (I2S Master)
GPIO 17AF_DAC_DATAAudio DAC DataOutputI2S out to standalone headphone amp
GPIO 18AF_DAC_MCLKAudio DAC MasterOutputI2S out to standalone headphone amp
GPIO 19AF_DAC_SCLKAudio DAC ClockOutputI2S out to standalone headphone amp
GPIO 20AF_DAC_LRCKAudio DAC L/ROutputI2S out to standalone headphone amp
GPIO 21ICE_DONEFPGA Boot StatusInputGoes HIGH when FPGA is running and lights White LED
GPIO 22~ICE_RSTFPGA ResetOutputPull LOW to hold FPGA in reset
GPIO 26REFFront-End RF MuxOutput0 = SDR RF Antenna RX, 1 = VNA Input
GPIO 27(Optional)PMOD / GPIO JumpI/OJumper JP3 maps to PMOD_2
GPIO 28~T/RTransmit/Receive SwOutput1 = RX Mode (Antenna -> LNA), 0 = TX Mode

2. FPGA (Lattice iCE40UP5K-SG48) Pinout

This map defines the interface for the digital design team writing Verilog and the .pcf constraints file.

Pin #Lattice NameNet NameFunction / Connection
37IOT_45a_G1CLK30.72 MHz Master Clock IN (From Oscillator)
23IOT_37aADC_CLKADC Clock OUT (To MS9280 via 22Ω resistor)
6IOB_13bDAC_CLKDAC Clock OUT (To MS9708)
25IOT_36bD0ADC Data Bit 0 (LSB)
26IOT_39aD1ADC Data Bit 1
27IOT_38bD2ADC Data Bit 2
28IOT_41aD3ADC Data Bit 3
31IOT_42bD4ADC Data Bit 4
32IOT_43aD5ADC Data Bit 5
34IOT_44bD6ADC Data Bit 6
35IOT_46b_G0D7ADC Data Bit 7 (MSB)
36IOT_48bOTRADC Out of Range (Clipping Flag)
4IOB_8aDB0DAC Data Bit 0 (LSB)
3IOB_9bDB1DAC Data Bit 1
2IOB_6aDB2DAC Data Bit 2
48IOB_4aDB3DAC Data Bit 3
47IOB_2aDB4DAC Data Bit 4
46IOB_0aDB5DAC Data Bit 5
45IOB_5bDB6DAC Data Bit 6
44IOB_3b_G6DB7DAC Data Bit 7 (MSB)
14IOB_32a_SPI_SOSPI0_RXSPI MISO (Data to Pico during runtime)
17IOB_33b_SPI_SISPI0_TXSPI MOSI (Data from Pico during runtime)
15IOB_34a_SPI_SCKSPI0_CLKSPI Clock IN (From Pico GPIO 6)
16IOB_35b_SPI_SSICE_SSNSPI Chip Select IN (From Pico GPIO 5)
12IOB_22aBCKI2S Bit Clock OUT (To Pico GPIO 15)
9IOB_16aWSI2S Word Select OUT (To Pico GPIO 16)
11IOB_20aRX_DATAI2S Data OUT (SDR audio to Pico GPIO 14)
10IOB_18aTX_DATAI2S Data IN (Transmit audio from Pico GPIO 13)
13IOB_24aFPGA_INTHardware Interrupt OUT (To Pico GPIO 0)
38IOT_50bANG_0Rotary Encoder / Tuning Knob A
42IOT_51aANG_1Rotary Encoder / Tuning Knob B
43IOT_49aANG_2Rotary Encoder / Tuning Knob Switch
21IOB_23bPMOD_0PMOD Header Pin 1
19IOB_29bPMOD_1PMOD Header Pin 2
18IOB_31bPMOD_2PMOD Header Pin 3
20IOB_25b_G3PMOD_3PMOD Header Pin 4
39RGB0REDOpen-Drain LED Driver (Active-Low: 0=ON, pulses on ADC OTR clipping)
40RGB1YELLOWOpen-Drain LED Driver (Active-Low: 0=ON, pulses on SPI tuning activity)
41RGB2GREENOpen-Drain LED Driver (Active-Low: 0=ON, steady ON when un-reset)
7CDONEICE_DONEHardware Boot / Status Out
8~CRESET~ICE_RSTHardware Boot / Reset In

Pico SDK Bring-Up

The SDK port is under Software/pico-ice-sdk. It uses the checked-in Pico SDK (currently 2.2.0). The general SDK examples use the TinyUSB revision bundled by that SDK. The DDC firmware below uses a newer TinyUSB checkout because it needs the UAC1 descriptor definitions that are not present in the bundled revision.

The smallest board-specific firmware example programs the FPGA's volatile CRAM directly from the RP2040:

sh
cmake -S Software/pico-ice-sdk/examples/rp2_dev_ice_blinky \
    -B Software/pico-ice-sdk/examples/rp2_dev_ice_blinky/build \
    -DPICO_BOARD=pico_dev_ice -DPICO_NO_PICOTOOL=1
cmake --build Software/pico-ice-sdk/examples/rp2_dev_ice_blinky/build

The generated UF2 is RP2040 firmware that contains the FPGA bitstream. The Dev-iCE has no external FPGA configuration flash, so the board port excludes the external-flash and TinyUF2 FPGA-storage paths. SPI0 GPIO 6 is the CRAM transfer clock and GPIO 7 carries configuration data; normal FPGA operation uses the separate external 30.720 MHz oscillator, not a Pico-generated clock on GPIO 27.

DDC SDR Firmware

The first Dev-iCE SDR application is in Software/ddc_sdr_firmware. It replaces the earlier Si5351a, Tayloe detector, and PCM1808 path with FPGA-generated DDC I/Q data received as PCM1808-compatible I2S. The Pico firmware:

  • programs the FPGA's volatile CRAM over SPI0;
  • reuses SPI0 for runtime frequency and sample-rate commands;
  • captures FPGA I2S with DMA; and
  • exposes stereo 24-bit UAC1 audio at 48 kHz and 96 kHz, CDC control, and a DFU interface.

The DDC application requires a TinyUSB checkout with both src/tusb.h and hw/bsp/rp2040. A current checkout at $HOME/tinyusb is detected automatically, or it can be selected explicitly:

sh
cmake -S Software/ddc_sdr_firmware -B Software/ddc_sdr_firmware/build \
        -DPICO_TINYUSB_PATH="$HOME/tinyusb" \
        -DPICO_BOARD=pico_dev_ice \
        -DPICO_NO_PICOTOOL=1
cmake --build Software/ddc_sdr_firmware/build -j2

The Pico firmware keeps FPGA deployment easy to choose: FPGA_BOOT_MODE=DFU waits for a development bitstream from dfu-util, while FPGA_BOOT_MODE=STORED loads an image embedded in the Pico firmware at boot. Two stored transceiver profiles can be included with FPGA_RX_BITSTREAM_BIN and FPGA_TX_BITSTREAM_BIN, with FPGA_DEFAULT_IMAGE selecting the boot profile and FPGA,LOAD,RX or FPGA,LOAD,TX selecting one between sessions. The full commands and build examples are in Software/ddc_sdr_firmware/README.md.

These profile loads are not a VNA sweep mechanism. A VNA needs a single coherent FPGA design containing the stimulus, reference, receive, and measurement paths for the complete sweep. Select a persistent VNA-capable image before a measurement, or implement those paths in one integrated image; do not reconfigure between sweep points.

For development, compile an FPGA bitstream with Yosys, nextpnr-ice40, and icepack, then load it without reflashing the Pico:

sh
python3 Software/ddc_sdr_firmware/tools/dfu_fpga.py /path/to/ddc_sdr.bin

Stop the SDR++ or Quisk audio stream before starting DFU. The helper prepares the shared SPI0 bus, sends the packed bitstream through dfu-util, and lets the Pico restore the runtime FPGA state afterward. Do not reset the Pico after a DFU-only update: FPGA CRAM is volatile and a reset clears the loaded design.

For the complete pinout, SPI protocol, CDC commands, build options, and DFU sequence, see Software/ddc_sdr_firmware/README.md.

Parts

294
QtyValueFootprintReferences
64100nFPCM_JLCPCB:C_0402C1, C10, C11, C13, C14, C15, C17, C18, C19, C100, C101, C102, C103, C104, C105, C106 +48
2610kΩPCM_JLCPCB:R_0402R3, R17, R18, R21, R22, R23, R24, R28, R31, R36, R37, R55, R56, R57, R58, R59 +10
14100kΩPCM_JLCPCB:R_0402R1, R2, R19, R20, R61, R65, R68, R71, R75, R79, R82, R83, R85, R86
1374LVC1G3157GWPCM_JLCPCB:SOT-363_SC-70-6U1, U6, U12, U14, U15, U16, U17, U18, U19, U21, U22, U23, U24
1010uFPCM_JLCPCB:C_0805C16, C38, C39, C40, C41, C42, C48, C49, C55, C60
1049.9ΩPCM_JLCPCB:R_0402R4, R5, R6, R7, R9, R13, R15, R60, R63, R78
9100uFPCM_JLCPCB:C_CASE-B-3528-21(mm)C28, C29, C50, C51, C52, C53, C54, C58, C59
82N7002PCM_JLCPCB:Q_SOT-23Q1, Q2, Q4, Q5, Q6, Q7, Q8, Q9
7~PCM_JLCPCB:FB_0805FB1, FB2, FB3, FB4, FB5, FB6, FB7
64.7uFPCM_JLCPCB:C_0402C33, C37, C70, C71, C74, C77
51ΩPCM_JLCPCB:R_0603R39, R44, R45, R46, R47
522ΩPCM_JLCPCB:R_0402R29, R32, R33, R34, R35
42.2nFPCM_JLCPCB:C_0805C61, C62, C63, C64
4330ΩPCM_JLCPCB:R_0402R25, R26, R27, R30
4FilterConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJe3, Je4, Je5, Je6
4GNDRP2040_minimal:TestPoint_THTPad_D2.5mm_Drill1.2mmTP12, TP13, TP17, TP18
4H1102NLTTransformer_SMD:Transformer_Ethernet_Wuerth_749013011ATR1, TR2, TR3, TR4
4TPH2501-TRPackage_TO_SOT_SMD:SOT-23-5U2, U3, U13, U20
30.1uCapacitor_SMD:C_0805_2012MetricC43, C44, C45
3100ΩPCM_JLCPCB:R_0805R10, R11, R12
31uFPCM_JLCPCB:C_0603C12, C65, C68
3SS14PCM_JLCPCB:D_SMAD5, D6, D7
210nFPCM_JLCPCB:C_0402C79, C80
210ΩPCM_JLCPCB:R_0402R66, R69
22.2uFPCM_JLCPCB:C_0805C66, C67
222ΩPCM_JLCPCB:R_0603R72, R76
233ΩPCM_JLCPCB:R_0805R48, R73
24.7pFPCM_JLCPCB:C_0603C46, C47
2510ΩPCM_JLCPCB:R_0402R62, R80
2560ΩPCM_JLCPCB:R_0603R49, R50
2SGM2205-ADJXTDB8G/TRPackage_DFN_QFN:DFN-8-1EP_3x3mm_P0.65mm_EP1.55x2.4mme1, e2
1+0.3VJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP5
1+3V3Jumper:SolderJumper-2_P1.3mm_Bridged2Bar_RoundedPad1.0x1.5mmJP8
1+5RP2040_minimal:TestPoint_THTPad_D2.5mm_Drill1.2mmTP4
1100Resistor_SMD:R_0402_1005MetricR54
1100kΩPCM_JLCPCB:R_0805R38
110ΩPCM_JLCPCB:R_0603R53
112kΩPCM_JLCPCB:R_0805R40
11N4148WT-7Diode_SMD:D_SOD-523D8
11V2RP2040_minimal:TestPoint_THTPad_D2.5mm_Drill1.2mmTP9
12.2ΩPCM_JLCPCB:R_0603R74
127kΩPCM_JLCPCB:R_0805R41
12kΩPCM_JLCPCB:R_0402R16
13.3V_ARP2040_minimal:TestPoint_THTPad_D2.5mm_Drill1.2mmTP6
13.5mm_JackIntro_to_CAD:Jack_3.5mm_CUI_SJ-3523-SMT_HorizontalJ9
1300ΩPCM_JLCPCB:R_0805R14
133kΩPCM_JLCPCB:R_0805R42
14.7uFPCM_JLCPCB:C_1206C107
147kΩPCM_JLCPCB:R_0805R43
182ΩPCM_JLCPCB:R_0603R67
1A+RP2040_minimal:TestPoint_THTPad_D2.5mm_Drill1.2mmTP15
1AO3401APCM_JLCPCB:Q_SOT-23Q3
1AWG_OUTIntro_to_CAD:Conn_Coaxial_FrohneJ5
1CJC4334HPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU9
1Conn_01x02Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalJ7
1Conn_01x20_SocketConnector_PinSocket_2.54mm:PinSocket_1x20_P2.54mm_VerticalJ11
1Conn_01x20_SocketIntro_to_CAD:PinSocket_1x20_P2.54mm_Vertical-pins21-40J12
1DAC_LRP2040_minimal:TestPoint_THTPad_D2.5mm_Drill1.2mmTP7
1DAC_RRP2040_minimal:TestPoint_THTPad_D2.5mm_Drill1.2mmTP8
1GreenPCM_JLCPCB:D_0805D3
1Groundloop_InsuranceJumper:SolderJumper-2_P1.3mm_Bridged_RoundedPad1.0x1.5mme4
1ICE40UP5K-SG48ITRPackage_DFN_QFN:QFN-48-1EP_7x7mm_P0.5mm_EP5.6x5.6mmU7
1Jumper_2_OpenJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP2
1L78M05ABDT-TRPCM_JLCPCB:TO-252-2_L6.5-W6.1-P4.58-LS10.0-TLU8
1MS9280Package_SO:SSOP-28_5.3x10.2mm_P0.65mmU4
1MS9708Package_SO:TSSOP-28-1EP_4.4x9.7mm_P0.65mm_EP3.4x9.7mm_Mask3.1x4.05mm_ThermalViasU5
1NCP115AMX120TCGRP2040_minimal:OnSemi_XDFN4-1EP_1.0x1.0mm_EP0.52x0.52mmU11
1O+RP2040_minimal:TestPoint_THTPad_D2.5mm_Drill1.2mmTP14
1OLEDConnector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJ8
1PAM8908Package_DFN_QFN:QFN-16-1EP_3x3mm_P0.5mm_EP1.7x1.7mmU10
1PMODConnector_PinSocket_2.54mm:PinSocket_1x06_P2.54mm_VerticalJ6
1PMOD_2Jumper:SolderJumper-2_P1.3mm_Bridged2Bar_RoundedPad1.0x1.5mmJP3
1Prototyping AreaRP2040_minimal:Prototype_arrayH1
1RaspberryPi_or_Pico_W_2_or_2W_or_YD-RP2040Module:RaspberryPi_Pico_Common_THTA1
1RedPCM_JLCPCB:D_0805D1
1RotaryEncoder_Switch_MPRotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mmSW1
1S11Connector_Coaxial:SMA_Samtec_SMA-J-P-H-ST-EM1_EdgeMountJ2
1S21Connector_Coaxial:SMA_Samtec_SMA-J-P-H-ST-EM1_EdgeMountJ4
1SDR ANTIntro_to_CAD:Conn_Coaxial_FrohneJ10
1SG-8018CE 30.720000MHz TJHPAOscillator:Oscillator_SMD_Abracon_ASE-4Pin_3.2x2.5mmX1

The 280 most common of 294 parts.

More from frohro/pico-dev-ice

1
  • 2 layers33 × 33 mmFilter Board, the printed circuit board in 3D

    Filter Board

    frohro/pico-dev-ice

    This is a direct down conversion (DDC) HF transceiver & VNA using the Raspberry Pi Pico and the iCE40UP5K.

    20 parts3

Similar boards

  • 4 layers22.9 × 61 mmPico ice, the printed circuit board in 3D

    Pico ice

    tinyvision-ai-inc/pico-ice

    Raspberry Pi PICO board + Lattice iCE40 FPGA's

    109 parts203MIT
  • 4 layers27.9 × 63.5 mmPico2-ice, the printed circuit board in 3D

    Pico2-ice

    tinyvision-ai-inc/pico2-ice

    Doc | Hardware | SDK | Schematic | Assembly | Discord

    124 parts60MIT
  • 4 layers28 × 100.5 mmEspuino pcbs, the printed circuit board in 3D

    Espuino pcbs

    orakeldel/espuino-pcbs

    PCBS for espuino

    150 parts
  • 4 layers200 × 100 mmIntegrated, the printed circuit board in 3D

    Integrated

    westonb/biwheel-coil

    A portable (bike mounted) QCW Tesla Coil.

    268 parts3
  • 2 layers180.5 × 52.3 mmPclptcnc, the printed circuit board in 3D

    Pclptcnc

    awpe/lpt_breakout_board

    IEEE1284 breakout board

    249 parts2
  • 4 layers154 × 154 mmDC Controller STM32, the printed circuit board in 3D

    DC Controller STM32

    andymartell/Prius-STM32-DC-Motor-Contoller

    STM32 based DC Motor Controller using Prius Gen 3 hardware

    293 parts

Questions

How big is the Pico Dev iCE PCB?

It measures 100 × 100 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Pico Dev iCE use?

294 parts, built around the ICE40UP5K-SG48I, TPH2501-TR, CJC4334H and MS9280. 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 Pico Dev iCE KiCad files?

From the frohro/pico-dev-ice repository on GitHub, at the commit this page was made from: the board is Hardware/Pico-Dev-iCE.kicad_pcb and its schematic Hardware/AF_DAC.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Pico Dev iCE design in my own project?

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