Skip to content

Commit ef0f471

Browse files
authored
Adds configuration for the Flatbox Rev5 USB Passthrough (#1051)
This PR adds configuration for the Flatbox Rev5 USB Passthrough
1 parent 81f9656 commit ef0f471

5 files changed

Lines changed: 162 additions & 1 deletion

File tree

.github/workflows/cmake.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
runs-on: ubuntu-latest
2424
strategy:
2525
matrix:
26-
GP2040_BOARDCONFIG: [ARCController, Blank, Pico, PicoW, BentoBox, ergoSHIFTRev2, FightboardV3, FightboardV3Mirrored, FlatboxRev4, FlatboxRev5, FlatboxRev5RGB, FlatboxRev5Southpaw, Granola, KB2040, KeyboardConverter, Haute42COSMOX, Liatris, MavercadeRev1, MavercadeRev2, OpenCore0, OpenCore0WASD, PicoAnn, PicoFightingBoard, RanaTadpole, ReflexCtrlGenesis6, ReflexCtrlNES, ReflexCtrlSaturn, ReflexCtrlSNES, ReflexCtrlVB, ReflexEncodeV1.2, ReflexEncodeV2.0, RP2040AdvancedBreakoutBoard, RP2040AdvancedBreakoutBoardUSBPassthrough, RP2040MiniBreakoutBoard, SparkFunProMicro, WaveshareZero, Stress, SGFDevices, ZeroRhythm]
26+
GP2040_BOARDCONFIG: [ARCController, Blank, Pico, PicoW, BentoBox, ergoSHIFTRev2, FightboardV3, FightboardV3Mirrored, FlatboxRev4, FlatboxRev5, FlatboxRev5RGB, FlatboxRev5USBPassthrough, FlatboxRev5Southpaw, Granola, KB2040, KeyboardConverter, Haute42COSMOX, Liatris, MavercadeRev1, MavercadeRev2, OpenCore0, OpenCore0WASD, PicoAnn, PicoFightingBoard, RanaTadpole, ReflexCtrlGenesis6, ReflexCtrlNES, ReflexCtrlSaturn, ReflexCtrlSNES, ReflexCtrlVB, ReflexEncodeV1.2, ReflexEncodeV2.0, RP2040AdvancedBreakoutBoard, RP2040AdvancedBreakoutBoardUSBPassthrough, RP2040MiniBreakoutBoard, SparkFunProMicro, WaveshareZero, Stress, SGFDevices, ZeroRhythm]
2727

2828
steps:
2929
#Global Setup
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
/*
2+
* SPDX-License-Identifier: MIT
3+
* SPDX-FileCopyrightText: Copyright (c) 2024 OpenStickCommunity (gp2040-ce.info)
4+
*/
5+
6+
#ifndef FLATBOX_REV5_CONFIG_H_
7+
#define FLATBOX_REV5_CONFIG_H_
8+
9+
#include "enums.pb.h"
10+
#include "class/hid/hid.h"
11+
12+
#define BOARD_CONFIG_LABEL "Flatbox Rev. 5 USB Passthrough"
13+
14+
// Main pin mapping Configuration
15+
// Mapping between Flatbox Rev4 switch number (as silkscreened) and GPIO pin listed under "Flatbox Rev4 SW#"
16+
// // Flatbox Rev5 SW# | GP2040 | Xinput | Switch | PS3/4/5 | Dinput | Arcade |
17+
#define GPIO_PIN_10 GpioAction::BUTTON_PRESS_UP // UP | UP | UP | UP | UP | UP |
18+
#define GPIO_PIN_12 GpioAction::BUTTON_PRESS_DOWN // DOWN | DOWN | DOWN | DOWN | DOWN | DOWN |
19+
#define GPIO_PIN_11 GpioAction::BUTTON_PRESS_RIGHT // RIGHT | RIGHT | RIGHT | RIGHT | RIGHT | RIGHT |
20+
#define GPIO_PIN_13 GpioAction::BUTTON_PRESS_LEFT // LEFT | LEFT | LEFT | LEFT | LEFT | LEFT |
21+
#define GPIO_PIN_09 GpioAction::BUTTON_PRESS_B1 // B1 | A | B | Cross | 2 | K1 |
22+
#define GPIO_PIN_07 GpioAction::BUTTON_PRESS_B2 // B2 | B | A | Circle | 3 | K2 |
23+
#define GPIO_PIN_05 GpioAction::BUTTON_PRESS_R2 // R2 | RT | ZR | R2 | 8 | K3 |
24+
#define GPIO_PIN_03 GpioAction::BUTTON_PRESS_L2 // L2 | LT | ZL | L2 | 7 | K4 |
25+
#define GPIO_PIN_08 GpioAction::BUTTON_PRESS_B3 // B3 | X | Y | Square | 1 | P1 |
26+
#define GPIO_PIN_06 GpioAction::BUTTON_PRESS_B4 // B4 | Y | X | Triangle | 4 | P2 |
27+
#define GPIO_PIN_04 GpioAction::BUTTON_PRESS_R1 // R1 | RB | R | R1 | 6 | P3 |
28+
#define GPIO_PIN_02 GpioAction::BUTTON_PRESS_L1 // L1 | LB | L | L1 | 5 | P4 |
29+
#define GPIO_PIN_15 GpioAction::BUTTON_PRESS_S1 // S1 | Back | Minus | Select | 9 | Coin |
30+
#define GPIO_PIN_14 GpioAction::BUTTON_PRESS_S2 // S2 | Start | Plus | Start | 10 | Start |
31+
#define GPIO_PIN_28 GpioAction::BUTTON_PRESS_L3 // L3 | LS | LS | L3 | 11 | LS |
32+
#define GPIO_PIN_29 GpioAction::BUTTON_PRESS_R3 // R3 | RS | RS | R3 | 12 | RS |
33+
#define GPIO_PIN_26 GpioAction::BUTTON_PRESS_A1 // A1 | Guide | Home | PS | 13 | ~ |
34+
#define GPIO_PIN_27 GpioAction::BUTTON_PRESS_A2 // A2 | ~ | Capture | ~ | 14 | ~ |
35+
36+
// Setting GPIO pins to assigned by add-on
37+
//
38+
#define GPIO_PIN_00 GpioAction::ASSIGNED_TO_ADDON
39+
#define GPIO_PIN_01 GpioAction::ASSIGNED_TO_ADDON
40+
41+
// Keyboard Mapping Configuration
42+
// // GP2040 | Xinput | Switch | PS3/4/5 | Dinput | Arcade |
43+
#define KEY_DPAD_UP HID_KEY_ARROW_UP // UP | UP | UP | UP | UP | UP |
44+
#define KEY_DPAD_DOWN HID_KEY_ARROW_DOWN // DOWN | DOWN | DOWN | DOWN | DOWN | DOWN |
45+
#define KEY_DPAD_RIGHT HID_KEY_ARROW_RIGHT // RIGHT | RIGHT | RIGHT | RIGHT | RIGHT | RIGHT |
46+
#define KEY_DPAD_LEFT HID_KEY_ARROW_LEFT // LEFT | LEFT | LEFT | LEFT | LEFT | LEFT |
47+
#define KEY_BUTTON_B1 HID_KEY_SHIFT_LEFT // B1 | A | B | Cross | 2 | K1 |
48+
#define KEY_BUTTON_B2 HID_KEY_Z // B2 | B | A | Circle | 3 | K2 |
49+
#define KEY_BUTTON_R2 HID_KEY_X // R2 | RT | ZR | R2 | 8 | K3 |
50+
#define KEY_BUTTON_L2 HID_KEY_V // L2 | LT | ZL | L2 | 7 | K4 |
51+
#define KEY_BUTTON_B3 HID_KEY_CONTROL_LEFT // B3 | X | Y | Square | 1 | P1 |
52+
#define KEY_BUTTON_B4 HID_KEY_ALT_LEFT // B4 | Y | X | Triangle | 4 | P2 |
53+
#define KEY_BUTTON_R1 HID_KEY_SPACE // R1 | RB | R | R1 | 6 | P3 |
54+
#define KEY_BUTTON_L1 HID_KEY_C // L1 | LB | L | L1 | 5 | P4 |
55+
#define KEY_BUTTON_S1 HID_KEY_5 // S1 | Back | Minus | Select | 9 | Coin |
56+
#define KEY_BUTTON_S2 HID_KEY_1 // S2 | Start | Plus | Start | 10 | Start |
57+
#define KEY_BUTTON_L3 HID_KEY_EQUAL // L3 | LS | LS | L3 | 11 | LS |
58+
#define KEY_BUTTON_R3 HID_KEY_MINUS // R3 | RS | RS | R3 | 12 | RS |
59+
#define KEY_BUTTON_A1 HID_KEY_9 // A1 | Guide | Home | PS | 13 | ~ |
60+
#define KEY_BUTTON_A2 HID_KEY_F2 // A2 | ~ | Capture | ~ | 14 | ~ |
61+
#define KEY_BUTTON_FN -1 // Hotkey Function |
62+
63+
#define USB_PERIPHERAL_ENABLED 1
64+
#define USB_PERIPHERAL_PIN_DPLUS 0
65+
66+
#define DEFAULT_INPUT_MODE INPUT_MODE_PS5
67+
#define DEFAULT_INPUT_MODE_R1 INPUT_MODE_XBONE
68+
#define DEFAULT_INPUT_MODE_B4 INPUT_MODE_PS5
69+
#define DEFAULT_PS5AUTHENTICATION_TYPE INPUT_MODE_AUTH_TYPE_USB
70+
71+
#endif
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# GP2040 Configuration for Flatbox rev5 USB Passthrough
2+
3+
![Flatbox rev5 USB Passthrough](assets/Flatbox-rev5-USB-Passthrough.jpg)
4+
5+
Configuration for the [Flatbox rev5 USB Passthrough](https://github.com/jfedor2/flatbox/tree/master/hardware-rev5), a variant of the [Flatbox Rev 5](https://github.com/jfedor2/flatbox/tree/master/hardware-rev5) design by [jfedor2](https://github.com/jfedor2).
2.85 MB
Loading
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
/*
2+
* Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
3+
*
4+
* SPDX-License-Identifier: BSD-3-Clause
5+
*/
6+
7+
// -----------------------------------------------------
8+
// NOTE: THIS HEADER IS ALSO INCLUDED BY ASSEMBLER SO
9+
// SHOULD ONLY CONSIST OF PREPROCESSOR DIRECTIVES
10+
// -----------------------------------------------------
11+
12+
#ifndef _BOARDS_FLATBOXREV5USBPASSTHROUGH_H
13+
#define _BOARDS_FLATBOXREV5USBPASSTHROUGH_H
14+
15+
// For board detection
16+
#define FLATBOXREV5
17+
18+
// For crappy crystal
19+
#ifndef PICO_XOSC_STARTUP_DELAY_MULTIPLIER
20+
#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64
21+
#endif
22+
23+
// --- UART ---
24+
#ifndef PICO_DEFAULT_UART
25+
#define PICO_DEFAULT_UART 0
26+
#endif
27+
#ifndef PICO_DEFAULT_UART_TX_PIN
28+
#define PICO_DEFAULT_UART_TX_PIN 0
29+
#endif
30+
#ifndef PICO_DEFAULT_UART_RX_PIN
31+
#define PICO_DEFAULT_UART_RX_PIN 1
32+
#endif
33+
34+
// no onboard LED
35+
36+
// no PICO_DEFAULT_WS2812_PIN
37+
38+
// --- I2C ---
39+
#ifndef PICO_DEFAULT_I2C
40+
#define PICO_DEFAULT_I2C 0
41+
#endif
42+
#ifndef PICO_DEFAULT_I2C_SDA_PIN
43+
#define PICO_DEFAULT_I2C_SDA_PIN 4
44+
#endif
45+
#ifndef PICO_DEFAULT_I2C_SCL_PIN
46+
#define PICO_DEFAULT_I2C_SCL_PIN 5
47+
#endif
48+
49+
// --- SPI ---
50+
#ifndef PICO_DEFAULT_SPI
51+
#define PICO_DEFAULT_SPI 0
52+
#endif
53+
#ifndef PICO_DEFAULT_SPI_SCK_PIN
54+
#define PICO_DEFAULT_SPI_SCK_PIN 18
55+
#endif
56+
#ifndef PICO_DEFAULT_SPI_TX_PIN
57+
#define PICO_DEFAULT_SPI_TX_PIN 19
58+
#endif
59+
#ifndef PICO_DEFAULT_SPI_RX_PIN
60+
#define PICO_DEFAULT_SPI_RX_PIN 16
61+
#endif
62+
#ifndef PICO_DEFAULT_SPI_CSN_PIN
63+
#define PICO_DEFAULT_SPI_CSN_PIN 17
64+
#endif
65+
66+
// --- FLASH ---
67+
68+
#define PICO_BOOT_STAGE2_CHOOSE_W25Q080 1
69+
70+
#ifndef PICO_FLASH_SPI_CLKDIV
71+
#define PICO_FLASH_SPI_CLKDIV 2
72+
#endif
73+
74+
#ifndef PICO_FLASH_SIZE_BYTES
75+
#define PICO_FLASH_SIZE_BYTES (2 * 1024 * 1024)
76+
#endif
77+
78+
// Drive high to force power supply into PWM mode (lower ripple on 3V3 at light loads)
79+
#define PICO_SMPS_MODE_PIN 23
80+
81+
#ifndef PICO_RP2040_B0_SUPPORTED
82+
#define PICO_RP2040_B0_SUPPORTED 1
83+
#endif
84+
85+
#endif

0 commit comments

Comments
 (0)