Home FightBoard v1
Post
Cancel

FightBoard v1

鈱笍 FightBoard v1 馃幃

GitHub Project Logs

AUG 2022 - SEPT 2022

Overview

The FightBoard is a completely custom mechanical keyboard running QMK firmware, built mainly for use with Fightcade, an arcade game matchmaking tool. Fightboard features 12 hot-swappable Kailh sockets (4 for "WASD" movement, 8 for regular buttons) and 4 pushbuttons for common functions (inputting coins, start, etc). While it is built for use with Fightcade in mind, the FightBoard is a keyboard that can be used with any PC game, or as just a regular keyboard if you only need 12 letters. It runs QMK firmware written in C, on a XIAO Seeeduino RP2040, using a MCP23018 I/O expander and a custom PCB. v1 was originally finished in September, and a final v2 will include addressable RGB LEDs, and an LCD screen, which will hopefully be done within the next few weeks.

Project Purpose

So, I got a little bit distracted near the end of the summer after hitting a slight roadblock with RoboDachi, so I decided to shift my attention to something I had been interested in for a long time. In fact, I took two of my biggest interests, and smashed them together, those being mechanical keyboards, and fighting games. I designed the FightBoard in order to help familiarize myself with QMK before building a larger scale project. The next version of the FightBoard will hopefully be the final version, and will be include work on a case and metal plate.

Pictures of the Project

PCB in KiCAD

File Overview

matrix.c

This is the file that handles the I/O expander and the custom matrix. On startup, "matrix_init_custom()" runs and sets up the I/O expander. Afterwards, "matrix_scan_custom()" runs in an infinite loop, and returns True whenever the matrix is different from the last time the function was run.

keymap.c

This file handles the conversion from 16-bit binary matrix to a usable keymap. The folder can be copied and renamed to create more flashable keymaps that can be used for the same keyboard.

Completed Objectives

Currently, the main function of the FightBoard is reading from an I/O expander in order to get around matrices and diodes. A lot of effort was also placed in the PCB design and routing.

Objectives Left Undone

For v1, the only work remaining is designing a case in SolidWorks and 3D printed, but this effort will be saved for work on v2, which will include RGB LEDs and an LCD screen, and hopefully a slightly smaller PCB footprint.

Continuing or Running the Project

After installing and setting up QMK using "qmk setup -b develop", setup the circuit following the KiCAD schematic, and flash the default keymap onto the RP2040. Most future changes will happen either to "matrix.c" or either "keymap.c"
This post is licensed under CC BY 4.0 by the author.