Skip to the content
4 layers61.4 × 54 mmWifi floppy, the printed circuit board in 3D

Web-based Amiga ADF library that mounts disks to a Gotek over WiFi

Size
61.4 × 54 mm
Copper layers
4
Thickness
1.6 mm
Parts
84
Nets
110
Pads
404
Tracks, vias
1,064, 188
Pours
5
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
23 Aug 2026
Updated
5 Nov 2026

Overview

Wifi floppy is an open-source printed circuit board by stefanskotte, from the stefanskotte/webadf repository on GitHub, published under the MIT licence. It is a 4-layer board of 61.4 × 54 mm with 84 parts on 110 nets, routed with 1,064 tracks and 188 vias.

It is built around the RP2350B, 74LVC541AD and W25Q128JVSIQ, with the BSS138, MLZ2012M3R3HT000 and PMEG40T30ERX among its other parts. Its parts include 27 resistors, 24 capacitors, 8 transistors, 6 connectors and 5 ICs. It belongs with the radio and wireless boards and the RP2350 boards of this library.

Main components

7

README

wifi-floppy/hardware/rev-c/README.md

Rev C: on-board RP2350, schematic and routed board

Rev B with the PIM726 module replaced by its parts on our PCB: RP2350B, 16 MB flash, 16 MB PSRAM, RM2 radio, crystal, core regulator, USB-C, BOOTSEL, SWD. Every GPIO stays where the PIM726 has it, so the firmware's pin map and the pico-sdk board definition are unchanged. Same outline as rev B. Rev B's files are untouched.

The schematic and the routed board agree, and nothing else about the board differs from using a PIM726 on rev B. It is still not a board to order: see "Owed before a fab order".

Result (2026-11-05)

CheckResult
Layers4: signals on F.Cu and B.Cu, GND on In1, +3.3 V on In2
KiCad DRC, with schematic parity0 unconnected, 0 errors, 0 parity differences. 24 silkscreen warnings, 21 of them M1's outline over its own pads
ERC0 errors, 0 warnings
verify_sch.pyall 75 multi-pin nets match, whatever they are called
verify_pins.py rev-c.kicad_pcb209 of 209 against the RP2350 datasheet, firmware board.c, the pico-sdk header, the RM2 datasheet, and rev B's connected pads
pnpm hw:verify rev-cpasses: ERC, DRC, firmware pins, J1 lines, 1k pull-ups
Gerbersanalysed with kicad-happy. Not yet through JLC's own check
Tracks0.15 mm, necked as low as 0.09 mm at the QFN, vias 0.45/0.2 mm, spacing 0.127 mm: within JLC's published 4-layer limits, not confirmed by JLC

Parts

From Pimoroni's Pico Plus 2 W schematic unless noted.

RefPartNote
U1RP2350B, QFN-80
U3W25Q128JVSIQ, SOIC-8 208 milPimoroni's schematic names W25Q128JVPIQ: same family and capacity, check the package suffix when buying
U4IS66WVS16M8FBLL-104NLI, SOIC-8 150 mil16 MB, not Pimoroni's 8 MB. APS6404L-3SQR is pin-compatible and fits the same pads
M1Raspberry Pi RM2Own antenna. Hand-made footprint from RM2 datasheet figure 6
U5NCP1117ST33T3G, SOT-223Not Pimoroni's AP7366 (the 2026-10-20 rev C note's part, easier to solder and cool)
L1MLZ2012M3R3HT000Pimoroni's, not the Abracon part in Raspberry Pi's design

Left out as nothing here uses them: the VSYS sense divider and its MOSFET, the 1k links from GP26-28 to GP40-42, the user switch, the Qw/ST connector (its GP4/GP5 are MTR and DIR here; operator confirmed 2026-11-05), the 40-pin header.

The reset button is out (operator, 2026-11-05: BOOTSEL is needed, PIM726's RESET is not). Test pad TP1 on RUN replaces it; RUN keeps its internal pull-up (RP2350 pin table), as on Pimoroni's sheet.

Scope (operator, 2026-11-05): everything stays as it is with a PIM726. So the J5 DRIVE passthrough, Amiga RESET line and keyed I2C connectors from the earlier rev C plan are not on this board. Firmware does not use what is left out: GP26-28, GP43 and GP45 appear in comments only.

Schematic

rev-c.kicad_sch is rev B's sheet with the module out. mcu.kicad_sch (RP2350B, supplies, crystal, RM2) and support.kicad_sch (USB-C, 3.3 V, flash, PSRAM, BOOTSEL, debug) hold the module's parts, after Pimoroni's sheets. rev-c-schematic.pdf is the print. All new symbols are in rev-c-lib.kicad_sym; apart from RM2 (drawn from RM2 table 2) and the PSRAM (KiCad's APS6404L with ISSI's value) they are KiCad's own.

The sheets are the source: edit them in KiCad. build_board.py reads their netlist for names, values, footprints and links, which is why parity is clean. Swapping MTR and DIR, or removing a PWR_FLAG and a no-connect, in a copy made verify_sch.py fail, as it should.

Differences from Pimoroni: NCP1117 with 10 uF either side (AP7366, 2.2 uF; the 2026-10-20 note's part), 16 MB PSRAM, 10 uF added at RM2's VDDBAT, BOOTSEL as 1k and switch without their diode and user-switch network. Pull-ups (flash CS 3k3, PSRAM CS 100k) and series resistors (27.4 ohm) are Pimoroni's.

RM2 antenna

The module sits in the bottom right corner with its antenna on the board edge. Of Raspberry Pi's 35.5 x 18.5 mm keep-out, only 26 x 5 mm is on the board; the rest is air. It is a rule area on all layers, about where rev B's was. In a case, what is beyond the edge also counts.

16 MB PSRAM: what is and is not known

From the ISSI datasheet and hardware_psram/psram.c: same pinout and commands as the APS6404 (35h, EBh with 6 wait cycles, 38h), 2.7-3.6 V, 1024-byte pages. The pico-sdk's size detection names ISSI's 16 MiB ID, and it breaks bursts at 1024 bytes, so a burst cannot cross the part's two stacked dies (its datasheet forbids that). None of it has run on hardware. Firmware needs PICO_PSRAM_SIZE_BYTES and SLOT_COUNT raised to use more than 8 MB.

Owed before a fab order

  1. A person reading the schematic. Nobody has yet.
  2. The core regulator and crystal by hand. Raspberry Pi say a regulator layout other than theirs is at your own risk. Here L1 and the capacitors are placed close but autorouted. Copy their layout.
  3. A person reading the autorouted copper: QSPI lengths, the USB pair (12 Mbit/s, so no impedance control needed, but keep it short), the floppy lines. It has too many vias.
  4. Footprints against samples: RM2, USB-C, buttons.
  5. Board-edge clearances: SW1 moved in 0.3 mm, now about 0.55 mm. M1 at the edge is intended.
  6. Sourcing: not checked. The JLC search was down; JLCONE not used.
  7. Heat: 5 V to 3.3 V at Wi-Fi peaks is about 0.7 W in U5. Measure it.

Rebuild

In order, with KiCad's Python and Freerouting 2.5.0: variants.sh runs build_board.py (places), stitch.py (joins power pins to the planes), Freerouting on the outer layers, and route.py (adds the planes and pours), into v1/. Then by hand: clean.py v1/rev-c.kicad_pcb v1/drc1.json removes the router's stray vias and widens any neck below 0.09 mm, finish.py adds fiducials and sets the silkscreen, verify_pins.py checks. The fiducials landed at free spots, not in the corners: place them properly in KiCad. Part references on the new parts are hidden until someone places them.

package.sh builds rev-c-kicad-project.zip: the project with wifi-floppy-lib copied in and the library tables pointed at the copies, so it opens anywhere with KiCad 10. Rebuild it after any change.

Parts

84
QtyValueFootprintReferences
12100nFCapacitor_SMD:C_0402_1005MetricC10, C11, C12, C13, C14, C15, C16, C17, C18, C19, C20, C27
101kwifi-floppy-lib:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR1, R2, R3, R4, R5, R6, R7, R8, R9, R11
8BSS138wifi-floppy-lib:SOT-23Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8
510uFCapacitor_SMD:C_0603_1608MetricC21, C23, C29, C30, C31
310kResistor_SMD:R_0402_1005MetricR31, R33, R34
32.2uFCapacitor_SMD:C_0603_1608MetricC22, C24, C28
327.4Resistor_SMD:R_0402_1005MetricR20, R25, R26
3Fiducial_1mm_Mask2mmFiducial_1mm_Mask2mmFID1, FID2, FID3
210pFCapacitor_SMD:C_0402_1005MetricC25, C26
21kResistor_SMD:R_0402_1005MetricR22, R29
2470Resistor_SMD:R_0402_1005MetricR30, R32
25k1Resistor_SMD:R_0402_1005MetricR27, R28
2Conn_01x04wifi-floppy-lib:PinHeader_1x04_P2.54mm_VerticalJ3, J4
1100kResistor_SMD:R_0402_1005MetricR24
1100nFwifi-floppy-lib:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC1
110kwifi-floppy-lib:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR10
110uFwifi-floppy-lib:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC3
112MHzCrystal:Crystal_SMD_3225-4Pin_3.2x2.5mmY1
122wifi-floppy-lib:R_1206_3216Metric_Pad1.30x1.75mm_HandSolderR12
1220Resistor_SMD:R_0402_1005MetricR21
13k3Resistor_SMD:R_0402_1005MetricR23
174LVC541Awifi-floppy-lib:SOIC-20W_7.5x15.4mm_P1.27mmU2
1BLM18EG471SN1DInductor_SMD:L_0603_1608MetricL2
1BOOTSELButton_Switch_SMD:SW_Push_1P1T_XKB_TS-1187ASW1
1Buzzerwifi-floppy-lib:Buzzer_TDK_PS1240P02BT_D12.2mm_H6.5mmBZ1
1Conn_01x04wifi-floppy-lib:PinHeader_1x04_P2.54mm_HorizontalJ2
1Conn_02x17_Odd_Evenwifi-floppy-lib:IDC-Header_2x17_P2.54mm_VerticalJ1
1IS66WVS16M8FBLL-104NLIPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU4
1LEDwifi-floppy-lib:LED_1206_3216Metric_Pad1.42x1.75mm_HandSolderD2
1MLZ2012M3R3HT000Inductor_SMD:L_0805_2012MetricL1
1NCP1117ST33T3GPackage_TO_SOT_SMD:SOT-223-3_TabPin2U5
1PMEG40T30ERDiode_SMD:D_SOD-123FD3
1RM2rev-c-lib:Raspberry_Pi_RM2M1
1RP2350BPackage_DFN_QFN:QFN-80-1EP_10x10mm_P0.4mm_EP3.4x3.4mm_ThermalViasU1
1RUNTestPoint:TestPoint_Pad_D1.0mmTP1
1SS14wifi-floppy-lib:D_SMA_HandsolderingD1
1SWDConnector_JST:JST_SH_BM03B-SRSS-TB_1x03-1MP_P1.00mm_VerticalJ7
1USB-CConnector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12J6
1W25Q128JVSIQPackage_SO:SOIC-8_5.3x5.3mm_P1.27mmU3
1greenLED_SMD:LED_0603_1608MetricD4

More from stefanskotte/webadf

1
  • 2 layers61.4 × 54 mmWifi floppy, the printed circuit board in 3D

    Wifi floppy

    stefanskotte/webadf

    Web-based Amiga ADF library that mounts disks to a Gotek over WiFi

    31 parts3MIT

Similar boards

  • 4 layers132.8 × 75.8 mmAudioPicoBare, the printed circuit board in 3D

    AudioPicoBare

    elrir01/AudioPico

    This board receive audio from a BT source like a phone and outputs via a DAC the audio. It's an old project of mine but I've decided to publish it just now, so the full description is not ready and will be updated in…

    84 partsGPL-3.0
  • 4 layers79.5 × 64.5 mmRP2350 Duel, the printed circuit board in 3D

    RP2350 Duel

    OpenStickCommunity/Hardware

    A collection of hardware designs by members of the OpenStickCommunity

    45 parts338
  • 4 layers93.5 × 81 mmUM Controller, the printed circuit board in 3D

    UM Controller

    Aptustech/Micromanipulator_uM_NG

    Next generation Micromanipulator controller

    173 parts2
  • 4 layers103.9 × 73.3 mmSimpleFOCNano Panel, the printed circuit board in 3D

    SimpleFOCNano Panel

    runger1101001/SimpleFOCNano

    A small BLDC driver shield in Arduino Nano form-factor.

    510 parts1
  • 2 layers112.9 × 63.7 mmMbElectricalSystem, the printed circuit board in 3D

    MbElectricalSystem

    catinella/mbElectricalSystem

    Generic Motorbike Electrical System

    125 parts
  • 4 layers120 × 107 mmSL23-modem tester, the printed circuit board in 3D

    SL23-modem tester

    JitterCompany/debug-tools

    Collection of useful utility PCBs for development purposes

    229 partsMIT
  • 2 layers51.8 × 36.8 mmThermometer hw2, the printed circuit board in 3D

    Thermometer hw2

    sullin/thermometer-hw

    IoT thermometer HW

    27 parts1GPL-3.0
  • 2 layers304.8 × 95.3 mmSM65, the printed circuit board in 3D

    SM65

    Charading/SM65

    SM65

    290 parts

Questions

How big is the Wifi floppy PCB?

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

What parts does the Wifi floppy use?

84 parts, built around the RP2350B, 74LVC541AD, W25Q128JVSIQ and BSS138. 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 Wifi floppy KiCad files?

From the stefanskotte/webadf repository on GitHub, at the commit this page was made from: the board is wifi-floppy/hardware/rev-c/rev-c.kicad_pcb and its schematic wifi-floppy/hardware/rev-c/mcu.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Wifi floppy 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).