
GB LINK v1.4
Chisfamily/GB-Link-USB-Hardware
An open-source USB adapter for the Game Boy Link Cable.

Tiny USB4 (40 Gb/s) NVMe 2230 drive board (22 x 34 mm) for CARTOUCHE, a local AI you carry in your pocket. KiCad 9, Gerbers, BOM, STEP.
Cartouche usb4 is an open-source printed circuit board by opencorp2030-ctrl, from the opencorp2030-ctrl/cartouche-usb4 repository on GitHub. It is a 4-layer board of 22 × 33.7 mm with 134 parts on 101 nets, routed with 1,228 tracks and 430 vias.
It is built around the TPS82130SILR, LTC3315AEV#TRPBF and ZD25WQ16CEIGR, with the ASM2464PD, SIP32408DNP-T1-GE4 and 19-217/R6C-AL1M2VY/3T among its other parts. Its parts include 86 capacitors, 32 resistors, 5 ICs, 3 connectors and 2 inductors.

CARTOUCHE is a way to store heavy AI models and run them easily and fast, while keeping your data from going to third-party servers.
Website: cartouche.candygate.eu
| Board | 22.0 × 33.7 mm, 4 layers, 1.6 mm |
| USB4 controller | ASMedia ASM2464PD, 40 Gb/s, PCIe 4.0 x4 |
| Storage | M.2 2230 NVMe SSD, 256 GB – 2 TB |
| Case | aluminium, 25 × 65.7 × 15.6 mm with the cooling fins, laser-engraved, 3 colours |
| Expected speed | ≈ 3.5 GB/s on USB4 / Thunderbolt, ≈ 1 GB/s on USB 3.2 (not measured yet) |
| In the box | USB-C 40 Gb/s cable + USB-A cable |
| Full model | Inside (case transparent) |
|---|---|
![]() | ![]() |
| Exploded view | Board + SSD |
![]() | ![]() |
| Cut through the middle | Underside, M3 screws |
![]() | ![]() |

| PCB, top | PCB, bottom |
|---|---|
![]() | ![]() |
I got the idea because I have a lot of other projects with AI, and this was a real problem. I like solving the problems I have.
Why my own drive (Éclair) and not just USB keys: because I want it to be useful for devs and to be a good deal. That's actually why I set up the developer program.

Full schematic: pcb/cartouche-usb4.kicad_sch ·
PDF

| Folder | Content |
|---|---|
BOM.csv | every part, with manufacturer part numbers and supplier links that work from France |
pcb/ | KiCad 9 project (.kicad_pro, .kicad_sch, .kicad_pcb, symbol library), Gerbers + drills (fab/cartouche-usb4-gerbers.zip), pick-and-place, board STEP, import scripts |
cad/ | case source (eclair_v1.py, CadQuery), and in cad/out/: case base and lid, SSD 2230 and USB-C plug (STEP + STL), the board as a printable mock-up (STL), and eclair_v1_assembly.step, the full assembly with the electronics |
firmware/ | how the drive enumerates (NVMe over USB4, UAS over USB 3), flashing the ASMedia firmware, eclair_check.py (link and speed check) |
docs/ | costs per unit, images |
The case will be made of good-quality aluminium, both to protect against shocks and to get rid of the heat. It will be engraved so the info doesn't wear off over time. Arranging everything as well as possible is pretty complicated. I'm really happy with it, especially the purple colour of the case, which you can pick as an option on the website.
| Part | Detail |
|---|---|
| Halves | base + lid, split under the board |
| Board + closing | 2 × M3 × 12 countersunk screws, from below, through the board's Ø3.2 holes into the lid |
| SSD | in the M.2 connector (LOTES APCI0113-P001A, 4.75 mm, since v1.3: the ARGOSY NASM0-S6701-TPH4 is out of stock): card 3.15 mm under the board, edge seated 1.75 mm past the connector posts (LOTES drawing AP-APCI0113, to confirm on the real part); M2 screw on a standoff of the base |
| Assembly order | plug the SSD into the board outside the case, press it flat, lay board + SSD into the base, M2 screw, then the lid |
| Rear | 1 × M2 × 10 screw |
| USB-C | receptacle flush with the front; plug model included, mated and checked |
| Cooling (passive, no fan) | lid boss + 1 mm thermal pad on the ASM2464PD; base boss + 1 mm thermal pad (20 × 22 mm) under the SSD; 5 fins under the base (1 mm). Leaves232 warns the ASM2464PD overheats and disconnects without cooling (he used a laptop fan): to be checked with a 15 min transfer on the aluminium prototype |
| Interference check | no overlap between board, SSD, plug, base and lid |
| Fit test | print case_base.stl, case_lid.stl, ssd_2230.stl, board_mockup.stl (the mock-up has a 1.0 mm card slot cut in the connector); values to confirm are marked CHECK in eclair_v1.py |
| Fit check (CadQuery) | 0 mm³ overlap between SSD, board, case base, lid and USB-C plug |


The chart is an estimate from a simple thermal-resistance model (assumptions under the chart), not a measurement.
| Top: Éclair slides in | Desk side: rails, screw bosses, air slots |
|---|---|
![]() | ![]() |
| Part | Detail |
|---|---|
| Size | 29.9 × 73.8 × 27.2 mm, CNC aluminium, polished |
| Mounting | 2 countersunk wood screws Ø4 under the desk (reachable with Éclair out) |
| Holding Éclair | Éclair hangs upside down on two lips (engraved lid facing the room), 0.25 mm clearance, 14 mm sticks out to grip it |
| Cable | USB4 40 Gb/s 0.8 m cable, its plug clamped in the rear block (plate + 4 × M2 countersunk): sliding Éclair in plugs it, pulling it out unplugs it |
| Airflow | 2 rails + 2 bosses keep the plate 5 mm off the desk; slots above the fins let warm air out along that gap (see diagram) |
| Fit check (CadQuery) | 0 mm³ overlap between dock, clamp, case and plug |
| Files | cad/out/dock_body.step/.stl, dock_clamp.step/.stl, eclair_dock_assembly.step (with the electronics) |

Installing it: a 1:1 drilling template is in docs/dock-drilling-template.pdf (print at 100 %, check the 50 mm bar; generated from the CAD numbers by cad/make_dock_template.py). Pilot holes Ø2.5 × 14 mm, desk top 18 mm thick minimum.
Print test: print cad/out/dock_body.stl (rails flat on the bed), dock_clamp.stl, case_base.stl and case_lid.stl in PLA/PETG, 0.2 mm layers. The 0.25 mm clearance is meant for machined aluminium; on an FDM print, sand the lips lightly if Éclair rubs.
3D films of the dock (object, installation, everyday use, cooling): https://cartouche.candygate.eu/support.html
For this prototype, I'd rather start from something that works, even if I have to adjust it, than start again from zero (no need to reinvent the wheel). All the ideas, the tests and the code are my work ;)
From Leaves232/2230-USB4-SSD-Enclosure-Design (MIT, see LICENSE-upstream-MIT) | Mine |
|---|---|
| schematic, component placement, USB4/PCIe routing (not modified) | KiCad 9 conversion and fab package, smallest outline, case CAD, SSD and cable fit, BOM with suppliers and costs, flashing procedure and check tool, the CARTOUCHE software |
Schematic imported from the original Altium project into KiCad 9
(pcb/cartouche-usb4.kicad_sch, symbols in pcb/ASM2464PD-altium-import.kicad_sym).
| Board parameter | Value |
|---|---|
| Layers / material | 4 layers, FR-4 TG150, 1.6 mm |
| Finish / copper | ENIG, 1 oz outer / 0.5 oz inner |
| Impedance | 85 Ω differential pairs on the outer layers |
| Track / space, vias | 3.5 / 3.5 mil, 0.2 mm tented vias |
| Assembly | by the fab (ASM2464PD = 0.46 mm pitch BGA) |
| Copper zones | do not refill in KiCad (from the tested original) |
firmware/).We're working on testing our own Éclair boards, and then, why not, making a sort of mini computer you plug into your PC that runs the model on its own RAM and its own storage.
MIT, like the original design. See LICENSE and
LICENSE-upstream-MIT.
Same content as BOM.csv.
| # | Qty | Value | Package | Manufacturer | Part number | Unit price | Link |
|---|---|---|---|---|---|---|---|
| 1 | 3 | 22uF | C0402 | Samsung | GRM155R60J226ME11D | CNY 0.22275 | link |
| 2 | 15 | 10uF | C0402 | Samsung | CL05A106MQ5NUNC | CNY 0.02281 | link |
| 3 | 26 | 2.2uf | C0402 | Samsung | CL05A225KP5NSNC | CNY 0.01346 | link |
| 4 | 16 | 100nF | C0402 | FH | 0402F104M500NT | CNY 0.00481 | link |
| 5 | 1 | 1uF | C0402 | FH | 0402X105K6R3NT | CNY 0.00766 | link |
| 6 | 12 | 220nF | C0201 | Murata | GRM033R60J224ME15D | CNY 0.00917 | link |
| 7 | 1 | 20pF | C0402 | Yageo | CC0402JRNPO9BN200 | CNY 0.00456 | link |
| 8 | 4 | 330nF | C0201 | Murata | GRM033R60J334ME90D | CNY 0.05114 | link |
| 9 | 2 | 220pF | C0402 | FH | 0402B221K500NT | CNY 0.00433 | link |
| 10 | 2 | 30pF | C0402 | FH | 0402CG300J500NT | CNY 0.00454 | link |
| 11 | 1 | 4.7pf | C0402 | FH | 0402CG4R7B500NT | CNY 0.00744 | link |
| 12 | 1 | 6.8pf | C0402 | FH | 0402CG6R8C500NT | CNY 0.00420 | link |
| 13 | 1 | 33u | C0402 | Murata | GRM155R60J226ME11D | CNY 0.67700 | link |
| 14 | 1 | 3.3nf | C0402 | FH | 0402B332K500NT | CNY 0.00382 | link |
| 15 | 1 | 330uF | CAP-SMD_L7.3-W4.3-R-RD | Panasonic | 6TPE330MAP | CNY 2.37008 | link |
| 16 | 1 | M.2-MKEY CONNECTOR | CONN-SMD_APCI0113-P001A | LOTES | APCI0113-P001A (H4.8) | USD 0.74 | link |
| 17 | 2 | 1uh | IND-SMD_L2.0-W1.6-B | cjiang | FTC201610S1R0MBCA | CNY 0.19611 | link |
| 18 | 1 | Red LED 0402 | LED0402-RD | Everlight | 16-213SDRC/S530-A3/TR8 | see link | link |
| 19 | 5 | 4.7K 1% | R0402 | Uniohm | 0402WGF4701TCE | CNY 0.00219 | link |
| 20 | 1 | 12.1K 1% | R0402 | Uniohm | 0402WGF1212TCE | CNY 0.00212 | link |
| 21 | 3 | 100K 1% | R0402 | Uniohm | 0402WGF1003TCE | CNY 0.00200 | link |
| 22 | 2 | 0 | R0402 | Uniohm | 0402WGF0000TCE | CNY 0.00198 | link |
| 23 | 1 | 1K 1% | R0402 | Uniohm | 0402WGF1001TCE | CNY 0.00222 | link |
| 24 | 5 | 10K 1% | R0402 | Uniohm | 0402WGF1002TCE | CNY 0.00216 | link |
| 25 | 8 | 220K 1% | R0201 | Uniohm | 0201WMF2203TEE | CNY 0.00446 | link |
| 26 | 1 | 140K 1% | R0402 | Yageo | RC0402FR-07140KL | CNY 0.00279 | link |
| 27 | 1 | 261K 1% | R0402 | UniOhm | 0402WGF2613TCE | CNY 0.00216 | link |
| 28 | 1 | 475K 1% | R0402 | Yageo | RC0402FR-07475KL | CNY 0.00446 | link |
| 29 | 1 | 150K 1% | R0402 | Uniohm | 0402WGF1503TCE | CNY 0.00213 | link |
| 30 | 1 | LTC3315AEV#TRPBF | LQFN-12_L2.0-W2.0-P0.50-TL-EP0.7 | ADI | LTC3315AEV#TRPBF | CNY 16.64280 | link |
| 31 | 1 | ASM2464PD | BGA-273 0.46 mm | ASMedia | ASM2464PD | USD 26.60 (Alibaba, 1-99 pcs) | link |
| 32 | 1 | TPS82130SILR | USIP-8_L3.0-W2.8-P0.65-TL-EP | TI | TPS82130SILR | CNY 22.94600 | link |
| 33 | 1 | SIP32408DNP-T1-GE4 | SIP32408DNP-T1-GE4 | Vishay | SIP32408DNP-T1-GE4 | CNY 4.50360 | link |
| 34 | 1 | ZD25WQ16CEIGR | USON-8_L3.0-W2.0-P0.50-BL-EP | Zetta(澜智) | ZD25WQ16CEIGR | CNY 1.02600 | link |
| 35 | 1 | 105450-0101 | USB-C-SMD_TYPE-C-USB-18 | Molex | 105450-0101 | CNY 6.32500 | link |
| 36 | 1 | 25MHz | CRYSTAL-SMD_4P-L1.6-W1.2-BL | YXC | X322525MSB4SI | CNY 0.29520 | link |
| 37 | 1 | M.2 2230 NVMe SSD, PCIe 4.0, 256 GB – 2 TB | M.2 2230 M-key | Western Digital / Kioxia / Corsair | SN740 / BG6 / MP600 Mini | EUR 30–130 | link |
| 38 | 2 | M3 x 12 countersunk (ISO 10642) | ≈ EUR 0.10 | link | |||
| 39 | 1 | M2 x 10 countersunk | ≈ EUR 0.10 | link | |||
| 40 | 1 | M2 x 3 (M.2 SSD screw) | ≈ EUR 0.10 | link | |||
| 41 | 1 | 1 mm, ≥ 12 W/mK, cut 10 x 10 mm (chip) + 20 x 22 mm (SSD) | ≈ EUR 0.40 | link | |||
| 42 | 1 | case_base + case_lid (cad/out) | aluminium CNC anodised, or 3D print for tests | ≈ EUR 15–35 | link | ||
| 43 | 1 | USB-C to USB-C, USB4 40 Gb/s, 0.5 m | UGREEN or equivalent | ≈ EUR 15 | link | ||
| 44 | 1 | USB-A to USB-C, 10 Gb/s, 0.5 m | ≈ EUR 10 | link | |||
| 45 | 1 | Éclair Dock, CNC aluminium, polished (cad/out/dock_body.step) | ≈ EUR 35 | link | |||
| 46 | 1 | cable clamp plate (cad/out/dock_clamp.step) | ≈ EUR 5 | link | |||
| 47 | 1 | USB-C to USB-C, USB4 40 Gb/s, 0.8 m | ≈ EUR 15 | link | |||
| 48 | 2 | countersunk Ø4 × 16 | ≈ EUR 0.20 | link | |||
| 49 | 4 | M2 × 5 countersunk | ≈ EUR 0.20 | link | |||
| TOTAL | One CARTOUCHE Éclair V1 256 GB, all parts + case + cables + box (batch of 10) | ≈ EUR 149.00 | docs/COSTS.md | ||||
| TOTAL | Éclair V1 256 GB + Éclair Dock | ≈ EUR 206.50 | docs/COSTS.md |
| Qty | Value | Footprint | References |
|---|---|---|---|
| 26 | 2.2u | JMS583:C0402 | C1, C3, C10, C12, C15, C17, C19, C22, C24, C26, C28, C29, C30, C32, C33, C35 +10 |
| 12 | 220n | ASM2464PD:C0201 | C48, C49, C50, C52, C53, C54, C55, C56, C64, C65, C74, C75 |
| 10 | 100n | JMS583:C0402 | C2, C5, C9, C11, C14, C18, C21, C25, C27, C31 |
| 9 | 10u | JMS583:C0402 | C4, C8, C13, C16, C20, C23, C40, C43, C46 |
| 8 | 220K 1% | ASM2464PD:R0201 | R24, R25, R26, R27, R28, R29, R30, R31 |
| 6 | 100n | ASM2464PD:C0402 | C61, C66, C67, C70, C71, C76 |
| 5 | 10K 1% | ASM2464PD:R0402 | R21, R22, R23, R103, R110 |
| 5 | 10u | ASM2464PD:C0402 | C51, C57, C103, C104, C109 |
| 4 | 330n | ASM2464PD:C0201 | C62, C63, C72, C73 |
| 3 | 4.7K 1% | ASM2464PD:R0402 | R2, R33, R34 |
| 2 | 100K 1% | ASM2464PD:R0402 | R104, R106 |
| 2 | 1uh | ASM2464PD:IND-SMD_L2.0-W1.6-B | L5, L6 |
| 2 | 220p | ASM2464PD:C0402 | C68, C69 |
| 2 | 2M /NC | ASM2464PD:R0402 | R14, R16 |
| 2 | 30p | ASM2464PD:C0402 | C77, C78 |
| 2 | 4.7K 1% | JMS583:R0402 | R1, R3 |
| 2 | ?HDR1x1 | MXM Project:Header | J17, J18 |
| 2 | tpc60t_68 | ASM2464PD:tpc60t_68 | TP1, TP2 |
| 1 | 0 | JMS583:R0402 | R12 |
| 1 | 0 | ASM2464PD:R0402 | R13 |
| 1 | 100K /NC | ASM2464PD:R0402 | R19 |
| 1 | 100K 1% | JMS583:R0402 | R6 |
| 1 | 105450-0101 | ASM2464PD:USB-C-SMD_TYPE-C-USB-18 | USBC1 |
| 1 | 10uF | ASM2464PD:C0402 | C100 |
| 1 | 12.1K 1% | JMS583:R0402 | R4 |
| 1 | 140K 1% | ASM2464PD:R0402 | R105 |
| 1 | 150K 1% | ASM2464PD:R0402 | R109 |
| 1 | 19-217/R6C-AL1M2VY/3T | ASM2464PD:LED0402-RD | LED1 |
| 1 | 1K 1% | ASM2464PD:R0402 | R20 |
| 1 | 1u | JMS583:C0402 | C34 |
| 1 | 20p | ASM2464PD:C0402 | C59 |
| 1 | 22u | ASM2464PD:C0402 | C102 |
| 1 | 22u | JMS583:C0402 | C7 |
| 1 | 22uf | ASM2464PD:C0402 | C108 |
| 1 | 25MHz | ASM2464PD:CRYSTAL-SMD_4P-L1.6-W1.2-BL | X1 |
| 1 | 261K 1% | ASM2464PD:R0402 | R107 |
| 1 | 3.3nf | ASM2464PD:C0402 | C107 |
| 1 | 330uF | ASM2464PD:CAP-SMD_L7.3-W4.3-R-RD | CE1 |
| 1 | 33u | ASM2464PD:C0402 | C106 |
| 1 | 4.7pf | ASM2464PD:C0402 | C101 |
| 1 | 475K 1% | ASM2464PD:R0402 | R108 |
| 1 | 6.8pf | ASM2464PD:C0402 | C105 |
| 1 | ASM2464PD | ASM2464PD:BGA273C46P21X21_1000X1000X98 | U2 |
| 1 | LTC3315AEV#TRPBF | ASM2464PD:LQFN-12_L2.0-W2.0-P0.50-TL-EP0.7 | U01 |
| 1 | M.2-MKEY CONNECTOR | JMS583:CONN-SMD_APCI0113-P001A | CN1 |
| 1 | SIP32408DNP-T1-GE4 | ASM2464PD:SIP32408DNP-T1-GE4 | U4 |
| 1 | TPS82130SILR | ASM2464PD:USIP-8_L3.0-W2.8-P0.65-TL-EP | U02 |
| 1 | ZD25WQ16CEIGR | ASM2464PD:USON-8_L3.0-W2.0-P0.50-BL-EP | U31 |
It measures 22 × 33.7 mm and has 4 copper layers, 1.6 mm thick.
134 parts, built around the TPS82130SILR, LTC3315AEV#TRPBF, ZD25WQ16CEIGR and ASM2464PD. 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.
From the opencorp2030-ctrl/cartouche-usb4 repository on GitHub, at the commit this page was made from: the board is pcb/cartouche-usb4.kicad_pcb and its schematic pcb/cartouche-usb4.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask opencorp2030-ctrl before reusing the design.

Chisfamily/GB-Link-USB-Hardware
An open-source USB adapter for the Game Boy Link Cable.

Auroxin/picoloader-hw
Open-hardware PicoLoader for the Nintendo GameCube: a solderless RP2040 modchip. KiCad 10 sources for the v1.1A (2 MB) and v1.2A (16 MB) boards, the 30-pin flex PCB and the 3D-printed mounting parts. GPL-2.0.

Haxous742/KiCAD-CY8CPROTO-063-BLE_PSoC_6
A KiCad project that has the schematic and PCB design for the CY8CPROTO-063-BLE-PSoC-6-BLE-Prototyping-Kit

zsj-28/PSoC6_UDB_I2C_Master
implement a PSoC6 UDB I2C master and let it communicate with a Arduino as slave


weiiwang01/picard
PiCard is a miniaturized Raspberry Pi Compute Module carrier board optimized for Linux server use cases.

