You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
qmk-fw/keyboards/handwired
Pierre Chevalier a8c230743a
Write firmware for the Ferris keyboard (#9634)
* Write firmware for the Ferris keyboard

Took inspiration from the gergoplex and the ergodox_ez firmware for the
split matrix with io_expander on the right hand.
Cleaned up a lot of bit fiddling on the mcu side by taking inspiration
from the `split_custom` in quantum.
Still bit fiddling on the mcp side as it is particularly natural to do
so with the abstractions provided by the i2c protocol. Would be good to
clean that up and abstract away the wiring from the generic i2c code in
a similar fashion as quantum and the mcp side behave.

One improvement over the ergodox_ez and the gergoplex firmwares is that
the wiring is straight forward as opposed to swapping rows and columns
in two different places that end up cancelling out for some reason.

At this stage, I have flashed this firmware to a board and have verified
that all keys are behaving as intended by shorting pins.
I still have to solder in some switches and test that everything works
correctly at normal typing speeds, but I don't expect any major issues
given I'm building up on previous effort, including the debouncing code
from the ergodox_ez.

* Remove rotation from info.json and label the keys as per default keymap

* Comply with minor review feedback points

* Use CUSTOM_MATRIX=lite to remove boilerplate

* Update keyboards/handwired/ferris/info.json

Didn't play nicely in the configurator

Co-authored-by: Ryan <fauxpark@gmail.com>

* Remove MIDI_ENABLE from rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Remove FAUXCLICKY_ENABLE from rules.mk

Co-authored-by: Ryan <fauxpark@gmail.com>

* Prefer wait_ms over _delay_ms

Co-authored-by: Ryan <fauxpark@gmail.com>

* Remove unused include

Co-authored-by: Ryan <fauxpark@gmail.com>

* Remove unused include

Co-authored-by: Ryan <fauxpark@gmail.com>

* Remove unused include

Co-authored-by: Ryan <fauxpark@gmail.com>

* Remove unused includeh

Co-authored-by: Ryan <fauxpark@gmail.com>

* Use dprint over print and remove include for print.h

* Remove all unused includes

* Remove unused code

* Cleanups thanks to code review

* Move more personal settings from the ferris config to the default keymap config

These setting happen to be unused in the default keymap at the moment,
as it has only one layer with no homerow modifiers and no mouse key; but
I would like to keep it there for two reasons:
* It can serve as an example to people creating their own keymap
* I plan to design a more usable default keymap that uses these features
  once this PR which adds the Ferris keyboard is merged.

* Consolidate mcp logic inside matrix.c

Co-authored-by: Ryan <fauxpark@gmail.com>
5 years ago
..
2x5keypad [Keyboard] Update default keymaps to use `layer_state_t` (#7444) 6 years ago
6macro Cleanup rules.mk for 16U2 and 32U2 keyboards (#6768) 6 years ago
42 Remove all references to "CUSTOM_MATRIX" as a diode direction (#7937) 5 years ago
108key_trackpoint Cleanup rules.mk for USB64 and USB128 keyboards (#6769) 6 years ago
412_64 Cleanup rules.mk for 32U4 keyboards, H (#7030) 6 years ago
aek64 BACKLIGHT_ON_STATE config.h fixes (#8862) 5 years ago
aplx2 [Keyboard] Aplx2 osu! keyboard (#8847) 5 years ago
aranck [Keyboard] Aranck handwired keyboard to support community MIT layouts, also minor optimisations done (#7737) 6 years ago
arrow_pad Cleanup rules.mk for 32U4 keyboards, H (#7030) 6 years ago
atreus50 Create ajp10304 userspace and ortho_4x12 layout. (#9304) 5 years ago
bdn9_ble BACKLIGHT_ON_STATE config.h fixes (#8862) 5 years ago
bluepill Set MCU for some F103 boards (#8459) 5 years ago
boss566y/redragon_vara [Keyboard] Added Handwired Redragon Keyboard (#9590) 5 years ago
brain Klackygears add user and handwired brain (#9154) 5 years ago
cans12er [Keyboard] Added Cans12er keyboard (#7455) 6 years ago
chiron Miscellaneous rules.mk cleanups (#7212) 6 years ago
ck4x4 Enable memcore to fix malloc/rand crashes (#8695) 5 years ago
cmd60 Cleanup rules.mk for 32U4 keyboards, H (#7030) 6 years ago
co60 2020 February 29 Breaking Changes Update (#8064) 5 years ago
colorlice [Keyboard] Adjust ColorLice to work with QMK configurator (#7572) 6 years ago
d48 [Keyboard] Added D48 keyboard (#8548) 5 years ago
dactyl Cleanup rules.mk for 32U4 keyboards, H (#7030) 6 years ago
dactyl_left Clean up some remaining rules.mk bootloader stuff (#8165) 5 years ago
dactyl_manuform Add naked60 layout, clean up my userspace files and rules.mk. (#8848) 5 years ago
dactyl_promicro Enforce definition of `DIODE_DIRECTION` for non-custom matrix boards (#7915) 5 years ago
daishi Convert two handwired default keymaps to Dynamic Macro feature (#8166) 5 years ago
datahand Cleanup rules.mk for USB64 and USB128 keyboards (#6769) 6 years ago
ddg_56 [Keyboard] Add DGG-56 Handwired (#8740) 5 years ago
downbubble Cleanup rules.mk for USB64 and USB128 keyboards (#6769) 6 years ago
eagleii [Keyboard] Addition Eagle II keyboard (#7927) 5 years ago
fc200rt_qmk Remove no-longer-necessary LTO checks from keyboards' config.h files (#8773) 5 years ago
ferris Write firmware for the Ferris keyboard (#9634) 5 years ago
fivethirteen Cleanup rules.mk for 32U4 keyboards, H (#7030) 6 years ago
floorboard Remove no-longer-necessary LTO checks from keyboards' config.h files (#8773) 5 years ago
frenchdev Cleanup rules.mk for 32U4 keyboards, H (#7030) 6 years ago
fruity60 Fix capitalisation of "GitHub" (#9184) 5 years ago
gamenum Cleanup rules.mk for 32U4 keyboards, H (#7030) 6 years ago
hacked_motospeed Enforce definition of `DIODE_DIRECTION` for non-custom matrix boards (#7915) 5 years ago
heisenberg Heisenberg handwired keyboard added (#7643) 6 years ago
hexon38 [Keyboard] Remove `PREVENT_STUCK_MODIFIERS` from config.h files (#7592) 6 years ago
hnah40 Remove `DEBUG_LEVEL` from V-USB rules.mk (#9117) 5 years ago
hnah40rgb [Keyboard] add new keyboard hnah40rgb (#7083) 6 years ago
hnah108 Cleanup rules.mk for 32U4 keyboards, H (#7030) 6 years ago
ibm122m Cleanup rules.mk for USB64 and USB128 keyboards (#6769) 6 years ago
jn68m Cleanup rules.mk for 32U4 keyboards, H (#7030) 6 years ago
jopr Cleanup rules.mk for 32U4 keyboards, H (#7030) 6 years ago
jot50 [Keyboard] Update default keymaps to use `layer_state_t` (#7444) 6 years ago
jotanck Jotanck (#9531) 5 years ago
jotpad16 [Keyboard] jotpad16 status leds (#8643) 5 years ago
jtallbean Remove no-longer-necessary LTO checks from keyboards' config.h files (#8773) 5 years ago
juliet [Keyboard] add Juliet (#9240) 5 years ago
k8split [Keyboard] handwired/k8split (#9133) 5 years ago
k_numpad17 Add more missing info.json layouts (#9595) 5 years ago
kbod Cleanup rules.mk for 32U4 keyboards, H (#7030) 6 years ago
lovelive9 Add more missing info.json layouts (#9595) 5 years ago
maartenwut Cleanup rules.mk for 32U4 keyboards, H (#7030) 6 years ago
magicforce61 Change ?= to = in keyboard rules.mk (#9390) 5 years ago
magicforce68 Cleanup rules.mk for 32U4 keyboards, H (#7030) 6 years ago
mechboards_micropad Fix capitalisation of "GitHub" (#9184) 5 years ago
minorca Clean up some remaining rules.mk bootloader stuff (#8165) 5 years ago
ms_sculpt_mobile 2020 May 30 Breaking Changes Update (#9215) 5 years ago
myskeeb Fix 'does not have a readme.md' warnings (#9294) 5 years ago
nicekey Enforce definition of `DIODE_DIRECTION` for non-custom matrix boards (#7915) 5 years ago
not_so_minidox Change ?= to = in keyboard rules.mk (#9390) 5 years ago
novem Fix handwired/novem Configurator config (#9291) 5 years ago
numbrero Cleanup rules.mk for 32U4 keyboards, H (#7030) 6 years ago
numpad20 Cleanup rules.mk for 32U4 keyboards, H (#7030) 6 years ago
obuwunkunubi/spaget [Keyboard] obuwunkunubi/spaget handwired (#8738) 5 years ago
onekey Change ?= to = in keyboard rules.mk (#9390) 5 years ago
ortho5x13 Cleanup rules.mk for 32U4 keyboards, H (#7030) 6 years ago
owlet60 Clean up includes for glcdfont headers (#7745) 5 years ago
p65rgb [Keyboard] Add p65rgb PCB (#7753) 6 years ago
p1800fl [Keyboard] Fix Configurator layout data for handwired/1800fl (#9393) 5 years ago
pilcrow Cleanup rules.mk for 32U4 keyboards, H (#7030) 6 years ago
postageboard Postage Board MCU (#7424) 6 years ago
prime_exl Fix incorrect key sizes in Configurator (#9073) 5 years ago
prime_exl_plus [Keyboard] Add Prime_EXL Plus to handwired (#8238) 5 years ago
prkl30 [Keymap] Add Erkhal keymap to PRKL30 (#8355) 5 years ago
promethium Fix a couple of USB VIDs for the API (#7848) 6 years ago
pteron [Keyboard] Remove `PREVENT_STUCK_MODIFIERS` from config.h files (#7592) 6 years ago
qc60 Remove keymap_config extern from default keymaps (#7399) 6 years ago
reddot Cleanup rules.mk for 32U4 keyboards, H (#7030) 6 years ago
retro_refit Cleanup rules.mk for 32U4 keyboards, H (#7030) 6 years ago
rs60 Cleanup rules.mk for 32U4 keyboards, H (#7030) 6 years ago
sick68 fix sick68 space key handwiring location (#8962) 5 years ago
slash Miscellaneous stuff: remove clang-complete and autocomplete.sh, fix some rules.mk comments (#8784) 5 years ago
space_oddity Convert two handwired default keymaps to Dynamic Macro feature (#8166) 5 years ago
splittest Move splittest I2C (#8346) 5 years ago
steamvan 2020 February 29 Breaking Changes Update (#8064) 5 years ago
sticc14 [Keyboard] Complete info.json for Sticc14 handwired (#7208) 6 years ago
swiftrax/cowfish [keyboard] added swiftrax/cowfish (#9621) 5 years ago
symmetry60 [Keyboard] Add new keyboard Symmetry60 (#7327) 6 years ago
tennie Remove all references to "CUSTOM_MATRIX" as a diode direction (#7937) 5 years ago
terminus_mini Remove keymap_config extern from default keymaps (#7399) 6 years ago
trackpoint Cleanup rules.mk for 32U4 keyboards, H (#7030) 6 years ago
tradestation Cleanup rules.mk for 32U4 keyboards, H (#7030) 6 years ago
traveller Cleanup rules.mk for 32U4 keyboards, H (#7030) 6 years ago
tritium_numpad Cleanup rules.mk for 32U4 keyboards, H (#7030) 6 years ago
twadlee/tp69 [Keyboard] handwired/twadlee/tp69 (#9013) 5 years ago
unk [Keyboard] Add UNK keyboard. (#9571) 5 years ago
videowriter Remove no-longer-necessary LTO checks from keyboards' config.h files (#8773) 5 years ago
woodpad Change ?= to = in keyboard rules.mk (#9390) 5 years ago
wulkan Enforce definition of `DIODE_DIRECTION` for non-custom matrix boards (#7915) 5 years ago
xealous [Keyboard] Update default keymaps to use `layer_state_t` (#7444) 6 years ago
xealousbrown Update to xealousbrown. (#8215) 5 years ago