{"id":14532366,"url":"https://github.com/loopj/periphlex","last_synced_at":"2026-03-10T01:32:21.787Z","repository":{"id":223928352,"uuid":"761923453","full_name":"loopj/periphlex","owner":"loopj","description":"Flex PCB breakout for Bluetooth, USB, GameCube controller ports on trimmed Wii motherboards","archived":false,"fork":false,"pushed_at":"2024-03-02T22:05:46.000Z","size":15418,"stargazers_count":7,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-06T17:28:56.729Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/loopj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-02-22T18:35:35.000Z","updated_at":"2024-07-02T13:21:04.000Z","dependencies_parsed_at":"2024-03-02T23:22:36.099Z","dependency_job_id":"89b47a35-3b9a-4aff-8d12-2340045c1ec3","html_url":"https://github.com/loopj/periphlex","commit_stats":null,"previous_names":["loopj/periphlex"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/loopj/periphlex","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loopj%2Fperiphlex","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loopj%2Fperiphlex/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loopj%2Fperiphlex/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loopj%2Fperiphlex/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/loopj","download_url":"https://codeload.github.com/loopj/periphlex/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/loopj%2Fperiphlex/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30320889,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T20:05:46.299Z","status":"ssl_error","status_checked_at":"2026-03-09T19:57:04.425Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-09-05T00:05:57.233Z","updated_at":"2026-03-10T01:32:21.770Z","avatar_url":"https://github.com/loopj.png","language":null,"funding_links":[],"categories":["Nintendo"],"sub_categories":["Wii"],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/logo-black.svg#gh-light-mode-only\" /\u003e\n  \u003cimg src=\"images/logo-white.svg#gh-dark-mode-only\" /\u003e\n\u003c/p\u003e\n\n\u003ch4 align=\"center\"\u003eFlex PCB breakout for Bluetooth, USB, GameCube controller ports on trimmed Wii motherboards\u003c/h4\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"images/periphlex-render.png\" /\u003e\n\u003c/p\u003e\n\n## Why?\n\nBuilding a [Wii portable](https://bitbuilt.net/forums/index.php?forums/wii.123/) requires trimming a Wii motherboard and relocating key peripherals such as USB, Bluetooth, and GameCube controllers. This design breaks out these peripherals from the front of the board to a low-profile FFC connector, allowing for more modular builds.\n\nThe board is designed to be semi-permanently installed by soldering to exposed traces for the USB and Bluetooth data lines, and to the vias for the GameCube ports.\n\n## Features\n\n- Solders directly to the top of a Wii motherboard\n- 14-pin FFC low profile connector fits cleanly underneath heatsinks/plates\n- Fits within the footprint of all but the most aggressive Wii trims\n- Breaks out frequently used peripheral lines\n  - Bluetooth data\n  - USB data\n  - GameCube controller data (x4)\n  - Reset GPIO (via magnet wire)\n  - Soft shutdown GPIOs\n\n## BOM / Ordering\n\n- Grab the Gerber files for the [latest release](https://github.com/loopj/periphlex/releases/latest)\n- Order a 2-layer, 0.5oz copper flex PCB from JLCPCB, PCBWay, Gold Phoenix, or similar\n- Purchase a Molex 503480-1400 connector ([DigiKey](https://www.digikey.com/en/products/detail/molex/5034801400/2356626), [Mouser](https://www.mouser.com/ProductDetail/Molex/503480-1400?qs=bodV9ulq6GwpLFIuW65CfA%3D%3D))\n- Purchase a 14 pin, 0.5mm pitch FFC cable of desired length\n\n## Installation\n\n- Solder the FFC connector to the flex PCB\n- Line up the 4 GameCube vias in the middle of the PCB with the GameCube vias on the front of the Wii motherboard, and tape into place\n- Mark the position of the holes for Bluetooth and USB using a fine sharpie through to the Wii motherboard\n- Remove the flex and inspect the marks, they should be over the traces\n- Carefully expose the traces for Bluetooth and USB at the marked locations\n  - Use a fine craft knife or dental pick to scratch the solder mask off the correct trace\n  - Be careful to not expose the neighboring trace\n  - Clean the exposed traces\n- Line up the PCB with the GameCube vias again and tape into place\n- Solder the following vias on the flex to the motherboard\n    - The four GameCube vias\n    - The Bluetooth and USB vias (to the exposed traces)\n    - The `POWER` GPIO via (*P*)\n    - The GND via at the top right of the \"X\" of the logo\n    - The GND via to the right of the connector\n- Solder a magnet wire from the \"R\" pad to the Reset via on the opposite side of the board\n- Solder a magnet wire from the \"S\" pad to the `SHUTDOWN` GPIO via on the opposite side of the board\n- Test for continuity, and secure in place with CA glue or kapton tape\n\n## Installation tips\n\n- Remove any excess soldermask from the vias on the motherboard you'll be soldering to\n- Pre-tin the vias first\n- I like to tin the bottom of the corresponding vias on the flex\n- Use lots of flux\n\n## FFC Pinout\n\n| 1    | 2    | 3   | 4   | 5   | 6   | 7   | 8   | 9            | 10           | 11  | 12    | 13    | 14           |\n|------|------|-----|-----|-----|-----|-----|-----|--------------|--------------|-----|-------|-------|--------------|\n| USB- | USB+ | GND | GC4 | GC3 | GC2 | GC1 | GND | BT- (Data 2) | BT+ (Data 1) | GND | S Pad | R Pad | `POWER` GPIO |\n\nPin 1 is the right-most pin on the FFC, indicated with a dot.\n\nDon't forget that these pin numbers will likely be reversed on the opposite end of your FFC cable, depending on the connector/cable you use.\n\n## Future enhancements\n\n- Could potentially also break out the USB1 data lines in future\n\n## License\n\nPermissively released under the Solderpad Hardware License v2.1\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Floopj%2Fperiphlex","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Floopj%2Fperiphlex","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Floopj%2Fperiphlex/lists"}