-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathBoardConfig.h
More file actions
188 lines (176 loc) · 13.5 KB
/
BoardConfig.h
File metadata and controls
188 lines (176 loc) · 13.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
/*
* SPDX-License-Identifier: MIT
* SPDX-FileCopyrightText: Copyright (c) 2024 Thoxy (thoxy.xyz)
*/
#ifndef PICO_BOARD_CONFIG_H_
#define PICO_BOARD_CONFIG_H_
#include "enums.pb.h"
#define BOARD_CONFIG_LABEL "FightingBox V1"
// clang-format off
// Main pin mapping Configuration
// // GP2040 | Xinput | Switch | PS3/4/5 | Dinput | Arcade |
#define GPIO_PIN_01 GpioAction::BUTTON_PRESS_UP // UP | UP | UP | UP | UP | UP |
#define GPIO_PIN_02 GpioAction::BUTTON_PRESS_DOWN // DOWN | DOWN | DOWN | DOWN | DOWN | DOWN |
#define GPIO_PIN_03 GpioAction::BUTTON_PRESS_RIGHT // RIGHT | RIGHT | RIGHT | RIGHT | RIGHT | RIGHT |
#define GPIO_PIN_00 GpioAction::BUTTON_PRESS_LEFT // LEFT | LEFT | LEFT | LEFT | LEFT | LEFT |
#define GPIO_PIN_11 GpioAction::BUTTON_PRESS_B1 // B1 | A | B | Cross | 2 | K1 |
#define GPIO_PIN_12 GpioAction::BUTTON_PRESS_B2 // B2 | B | A | Circle | 3 | K2 |
#define GPIO_PIN_13 GpioAction::BUTTON_PRESS_R2 // R2 | RT | ZR | R2 | 8 | K3 |
#define GPIO_PIN_14 GpioAction::BUTTON_PRESS_L2 // L2 | LT | ZL | L2 | 7 | K4 |
#define GPIO_PIN_07 GpioAction::BUTTON_PRESS_B3 // B3 | X | Y | Square | 1 | P1 |
#define GPIO_PIN_08 GpioAction::BUTTON_PRESS_B4 // B4 | Y | X | Triangle | 4 | P2 |
#define GPIO_PIN_09 GpioAction::BUTTON_PRESS_R1 // R1 | RB | R | R1 | 6 | P3 |
#define GPIO_PIN_10 GpioAction::BUTTON_PRESS_L1 // L1 | LB | L | L1 | 5 | P4 |
#define GPIO_PIN_05 GpioAction::BUTTON_PRESS_S1 // S1 | Back | Minus | Select | 9 | Coin |
#define GPIO_PIN_06 GpioAction::BUTTON_PRESS_S2 // S2 | Start | Plus | Start | 10 | Start |
#define GPIO_PIN_21 GpioAction::BUTTON_PRESS_L3 // L3 | LS | LS | L3 | 11 | LS |
#define GPIO_PIN_22 GpioAction::BUTTON_PRESS_R3 // R3 | RS | RS | R3 | 12 | RS |
#define GPIO_PIN_04 GpioAction::BUTTON_PRESS_A1 // A1 | Guide | Home | PS | 13 | ~ |
#define GPIO_PIN_28 GpioAction::BUTTON_PRESS_A2 // A2 | ~ | Capture | ~ | 14 | ~ |
#define PIN_BUTTON_FN -1 // Hotkey Function
// Keyboard Mapping Configuration
// // GP2040 | Xinput | Switch | PS3/4/5 | Dinput | Arcade |
#define KEY_DPAD_UP HID_KEY_ARROW_UP // UP | UP | UP | UP | UP | UP |
#define KEY_DPAD_DOWN HID_KEY_ARROW_DOWN // DOWN | DOWN | DOWN | DOWN | DOWN | DOWN |
#define KEY_DPAD_RIGHT HID_KEY_ARROW_RIGHT // RIGHT | RIGHT | RIGHT | RIGHT | RIGHT | RIGHT |
#define KEY_DPAD_LEFT HID_KEY_ARROW_LEFT // LEFT | LEFT | LEFT | LEFT | LEFT | LEFT |
#define KEY_BUTTON_B1 HID_KEY_SHIFT_LEFT // B1 | A | B | Cross | 2 | K1 |
#define KEY_BUTTON_B2 HID_KEY_Z // B2 | B | A | Circle | 3 | K2 |
#define KEY_BUTTON_R2 HID_KEY_X // R2 | RT | ZR | R2 | 8 | K3 |
#define KEY_BUTTON_L2 HID_KEY_V // L2 | LT | ZL | L2 | 7 | K4 |
#define KEY_BUTTON_B3 HID_KEY_CONTROL_LEFT // B3 | X | Y | Square | 1 | P1 |
#define KEY_BUTTON_B4 HID_KEY_ALT_LEFT // B4 | Y | X | Triangle | 4 | P2 |
#define KEY_BUTTON_R1 HID_KEY_SPACE // R1 | RB | R | R1 | 6 | P3 |
#define KEY_BUTTON_L1 HID_KEY_C // L1 | LB | L | L1 | 5 | P4 |
#define KEY_BUTTON_S1 HID_KEY_5 // S1 | Back | Minus | Select | 9 | Coin |
#define KEY_BUTTON_S2 HID_KEY_1 // S2 | Start | Plus | Start | 10 | Start |
#define KEY_BUTTON_L3 HID_KEY_EQUAL // L3 | LS | LS | L3 | 11 | LS |
#define KEY_BUTTON_R3 HID_KEY_MINUS // R3 | RS | RS | R3 | 12 | RS |
#define KEY_BUTTON_A1 HID_KEY_9 // A1 | Guide | Home | PS | 13 | ~ |
#define KEY_BUTTON_A2 HID_KEY_F2 // A2 | ~ | Capture | ~ | 14 | ~ |
#define KEY_BUTTON_FN -1 // Hotkey Function
// clang-format on
#define HAS_I2C_DISPLAY 1
#define I2C1_ENABLED 1
#define I2C1_PIN_SDA 26
#define I2C1_PIN_SCL 27
#define DISPLAY_I2C_BLOCK i2c1
#define I2C_SPEED 400000
#define BUTTON_LAYOUT BUTTON_LAYOUT_BOARD_DEFINED_A
#define BUTTON_LAYOUT_RIGHT BUTTON_LAYOUT_BOARD_DEFINED_B
#define SPLASH_MODE SPLASH_MODE_STATIC
#define SPLASH_DURATION 2500
#define DEFAULT_BOARD_LAYOUT_A \
{ \
{GP_ELEMENT_PIN_BUTTON, {6, 14, 3, 3, 1, 1, 28, GP_SHAPE_ELLIPSE}}, \
{GP_ELEMENT_PIN_BUTTON, {13, 14, 3, 3, 1, 1, 4, GP_SHAPE_ELLIPSE}}, \
{GP_ELEMENT_PIN_BUTTON, {22, 14, 3, 3, 1, 1, 5, GP_SHAPE_ELLIPSE}}, \
{GP_ELEMENT_PIN_BUTTON, {29, 14, 3, 3, 1, 1, 6, GP_SHAPE_ELLIPSE}}, \
{GP_ELEMENT_PIN_BUTTON, {38, 14, 3, 3, 1, 1, 21, GP_SHAPE_ELLIPSE}}, \
{GP_ELEMENT_PIN_BUTTON, {46, 14, 3, 3, 1, 1, 22, GP_SHAPE_ELLIPSE}}, \
{GP_ELEMENT_PIN_BUTTON, {19, 34, 8, 23, 1, 1, 0, GP_SHAPE_SQUARE, 16}}, \
{GP_ELEMENT_PIN_BUTTON, {32, 35, 21, 24, 1, 1, 2, GP_SHAPE_SQUARE, 16}}, \
{GP_ELEMENT_PIN_BUTTON, {46, 41, 35, 30, 1, 1, 3, GP_SHAPE_SQUARE, 16}}, \
{GP_ELEMENT_PIN_BUTTON, {46, 59, 65, 50, 1, 1, 1, GP_SHAPE_SQUARE}}, \
}
#define DEFAULT_BOARD_LAYOUT_B \
{ \
{GP_ELEMENT_PIN_BUTTON, {63, 32, 74, 21, 1, 1, 7, GP_SHAPE_SQUARE}}, \
{GP_ELEMENT_PIN_BUTTON, {76, 25, 88, 14, 1, 1, 8, GP_SHAPE_SQUARE}}, \
{GP_ELEMENT_PIN_BUTTON, {90, 25, 102, 14, 1, 1, 9, GP_SHAPE_SQUARE}}, \
{GP_ELEMENT_PIN_BUTTON, {104, 33, 116, 21, 1, 1, 10, GP_SHAPE_SQUARE}}, \
{GP_ELEMENT_PIN_BUTTON, {63, 45, 74, 34, 1, 1, 11, GP_SHAPE_SQUARE}}, \
{GP_ELEMENT_PIN_BUTTON, {76, 39, 88, 27, 1, 1, 12, GP_SHAPE_SQUARE}}, \
{GP_ELEMENT_PIN_BUTTON, {90, 39, 102, 27, 1, 1, 13, GP_SHAPE_SQUARE}}, \
{GP_ELEMENT_PIN_BUTTON, {104, 47, 116, 35, 1, 1, 14, GP_SHAPE_SQUARE}}, \
}
// For details on this, see:
// https://gp2040-ce.info/#/development?id=i2c-display-splash
#define DEFAULT_SPLASH \
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, \
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, \
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x80, \
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
0x00, 0x01, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, \
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0x1E, \
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
0x00, 0x07, 0xFE, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFC, 0x3F, 0xC0, 0x00, 0x00, 0x00, \
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x7F, \
0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
0x00, 0x00, 0x18, 0x7F, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
0x00, 0x00, 0x00, 0x00, 0x00, 0x3C, 0x00, 0xFF, 0xC0, 0x00, 0x00, 0x00, \
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x00, 0xFF, \
0x87, 0x00, 0x00, 0x01, 0x80, 0x01, 0xC0, 0x00, 0x18, 0x00, 0x00, 0x00, \
0x00, 0x7F, 0xC0, 0x7F, 0x87, 0x80, 0x03, 0xF9, 0xC0, 0x01, 0xC0, 0x00, \
0x38, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xF0, 0x1F, 0x0F, 0xE0, 0x03, 0xF9, \
0xC0, 0x01, 0xC0, 0x0C, 0x38, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFC, 0x06, \
0x1F, 0xE0, 0x03, 0xF8, 0x00, 0x01, 0xC0, 0x1C, 0x00, 0x00, 0x00, 0x00, \
0x01, 0xFF, 0xFF, 0x00, 0x1F, 0xE0, 0x03, 0x81, 0xC7, 0xF9, 0xFE, 0x3F, \
0x39, 0xFE, 0x0F, 0x60, 0x03, 0xFF, 0xFF, 0xC0, 0x3F, 0xE0, 0x03, 0x81, \
0xCF, 0xF9, 0xFF, 0x3F, 0xB9, 0xFF, 0x1F, 0xE0, 0x03, 0xFF, 0xFF, 0xF0, \
0x7F, 0xC3, 0x83, 0xF9, 0xCF, 0x79, 0xE7, 0x1C, 0x39, 0xE7, 0x3C, 0xE0, \
0x07, 0xFF, 0xFF, 0xF0, 0x7F, 0xC7, 0xE3, 0xF9, 0xCE, 0x39, 0xC7, 0x1C, \
0x39, 0xE7, 0xB8, 0xE0, 0x0F, 0xFF, 0xFF, 0xF0, 0xFF, 0x87, 0xF3, 0xF9, \
0xCE, 0x39, 0xC7, 0x1C, 0x39, 0xC7, 0xB8, 0x60, 0x0F, 0xFF, 0xFF, 0xE1, \
0xFF, 0x0F, 0xF3, 0x81, 0xCE, 0x39, 0xC7, 0x1C, 0x39, 0xC7, 0xB8, 0x60, \
0x1F, 0xFF, 0xFF, 0xE1, 0xFF, 0x1F, 0xF3, 0x81, 0xCE, 0x39, 0xC7, 0x1C, \
0x39, 0xC7, 0xBC, 0xE0, 0x3F, 0xFF, 0xFF, 0x83, 0xFE, 0x1F, 0xF3, 0x81, \
0xCF, 0xF9, 0xC7, 0x1F, 0x39, 0xC7, 0x9F, 0xE0, 0x3F, 0xF0, 0x00, 0x01, \
0xFC, 0x3F, 0xE3, 0x81, 0xC7, 0xF9, 0xC7, 0x1F, 0xB9, 0xC7, 0x9F, 0xE0, \
0x3F, 0xF0, 0x00, 0x00, 0xFC, 0x7F, 0xC3, 0x01, 0xC3, 0xB9, 0xC7, 0x0F, \
0x38, 0xC3, 0x0F, 0xE0, 0x3F, 0xFC, 0x00, 0x00, 0x38, 0x7F, 0xC0, 0x00, \
0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x1F, 0xFF, 0xFC, 0x38, \
0x00, 0xFF, 0x80, 0x00, 0x0E, 0x78, 0x00, 0x00, 0x00, 0x00, 0x1D, 0xE0, \
0x0F, 0xFF, 0xFE, 0x3E, 0x00, 0xFF, 0x00, 0x00, 0x0F, 0xF0, 0x00, 0x00, \
0x00, 0x00, 0x1F, 0xC0, 0x07, 0xFF, 0xFE, 0x1F, 0x80, 0x7F, 0x00, 0x00, \
0x07, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x80, 0x07, 0xFF, 0xFF, 0x1F, \
0xF0, 0x1E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
0x03, 0xFF, 0xFF, 0x0F, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0x8F, 0xFF, 0x00, 0x00, 0x00, \
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x87, \
0xFF, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
0x00, 0xFF, 0xFF, 0xC7, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, \
0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xC3, 0xFF, 0xFF, 0x80, 0x00, \
0x00, 0x0F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0xFF, 0xE3, \
0xFF, 0xFF, 0x80, 0x00, 0x00, 0x0F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, \
0x00, 0x1F, 0xFF, 0xE1, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x0E, 0x78, 0x00, \
0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0xFF, 0xF1, 0xFF, 0xFF, 0x80, 0x00, \
0x00, 0x0E, 0x38, 0x7E, 0x71, 0xC0, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xF0, \
0xFF, 0xFF, 0x80, 0x00, 0x00, 0x0E, 0x38, 0xFF, 0x3B, 0xC0, 0x00, 0x00, \
0x00, 0x07, 0xFF, 0xF8, 0xFF, 0xFF, 0x80, 0x00, 0x00, 0x0F, 0xF1, 0xE7, \
0x3F, 0x80, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xF8, 0x7F, 0xFF, 0x80, 0x00, \
0x00, 0x0F, 0xF9, 0xC7, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFC, \
0x7F, 0xFF, 0x00, 0x00, 0x00, 0x0E, 0x39, 0xC7, 0x0F, 0x00, 0x00, 0x00, \
0x00, 0x01, 0xFF, 0xFC, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x0E, 0x3D, 0xC7, \
0x1F, 0x00, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00, \
0x00, 0x0E, 0x3D, 0xC7, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, \
0xFF, 0xFC, 0x00, 0x00, 0x00, 0x0F, 0xF9, 0xFF, 0x3B, 0xC0, 0x00, 0x00, \
0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xF8, 0x00, 0x00, 0x00, 0x0F, 0xF0, 0xFE, \
0x79, 0xC0, 0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x00, \
0x00, 0x0F, 0xC0, 0x3C, 0x70, 0xC0, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, \
0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x00, \
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, \
0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x00, \
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xFF, 0xFF, \
0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x00, \
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, \
0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xE0, 0x00, 0x00, \
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xFF, 0xFF, \
0xFF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
0x00, 0x00, 0x00, 0x00
#endif