qmk-firmware/keyboards/handwired/retro_refit
2019-01-11 18:32:43 -08:00
..
keymaps/default Remove empty fn_actions[] 2019-01-11 18:32:43 -08:00
config.h Changed Docs, Moved RetroRefit to Handwired 2016-09-13 22:05:10 -05:00
readme.md Changed Docs, Moved RetroRefit to Handwired 2016-09-13 22:05:10 -05:00
retro_refit.c Changed Docs, Moved RetroRefit to Handwired 2016-09-13 22:05:10 -05:00
retro_refit.h Changed Docs, Moved RetroRefit to Handwired 2016-09-13 22:05:10 -05:00
rules.mk Update keyboards' rules.mk/Makefiles (#1442) 2017-06-30 16:09:52 -04:00

retro_refit keyboard firmware

Keyboard Info

The retro refit keyboard used a Teensy to replace the original controller on a 386 "laptop".

http://imgur.com/a/08Fyj

This keyboard uses a KEYMAP macro that is a great example of using a non-standard row-column matrix. The keyboard in question had 11 rows and 8 columns, but the rows were not all horizontal, and the columns were not all vertical. For example, row 2 contained "Print Screen", "N", "M", ",", ".", "/", "Right Shift", and"Left Alt". Column 0 contained "F6", "7", "O", "'", "Q", "D", "B", "Left Alt", "Up Arrow", and "Down Arrow".

The macro makes programming the keys easier and in a more straight-forward manner because it realigns the keys into a 6x15 sensible keyboard layout instead of the obtuse 11x8 matrix. Each Kxy corrisponds to a key in row x column y.

#define KEYMAP( \
	K77, K05, K04, K03, K02, K01, K00, KA7, KA6, KA5, KA4, KA3, KA2, K11, K94, \
	K27, K76, K75, K74, K73, K72, K71, K70, K67, K66, K65, K64, K63, K62, KA1, \
	K61, K60, K57, K56, K55, K54, K53, K52, K51, K50, K47, K46, K45,      K97, \
	K43, K42, K41, K40, K37, K36, K35, K34, K33, K32, K31, K30,      K44, K87, \
	K26,      K24, K23, K22, K21, K20, K17, K16, K15, K14, K13, K12, KA0, K91, \
	K10, K06, K25,                K07,                K86, K85, K95, K90, K93  \
) { \
{	KC_##K00,	KC_##K01,	KC_##K02,	KC_##K03,	KC_##K04,	KC_##K05,	KC_##K06,	KC_##K07,	}, \
{	KC_##K10,	KC_##K11,	KC_##K12,	KC_##K13,	KC_##K14,	KC_##K15,	KC_##K16,	KC_##K17,	}, \
{	KC_##K20,	KC_##K21,	KC_##K22,	KC_##K23,	KC_##K24,	KC_##K25,	KC_##K26,	KC_##K27,	}, \
{	KC_##K30,	KC_##K31,	KC_##K32,	KC_##K33,	KC_##K34,	KC_##K35,	KC_##K36,	KC_##K37,	}, \
{	KC_##K40,	KC_##K41,	KC_##K42,	KC_##K43,	KC_##K44,	KC_##K45,	KC_##K46,	KC_##K47,	}, \
{	KC_##K50,	KC_##K51,	KC_##K52,	KC_##K53,	KC_##K54,	KC_##K55,	KC_##K56,	KC_##K57,	}, \
{	KC_##K60,	KC_##K61,	KC_##K62,	KC_##K63,	KC_##K64,	KC_##K65,	KC_##K66,	KC_##K67,	}, \
{	KC_##K70,	KC_##K71,	KC_##K72,	KC_##K73,	KC_##K74,	KC_##K75,	KC_##K76,	KC_##K77,	}, \
{	KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_NO,		KC_##K85,	KC_##K86,	KC_##K87,	}, \
{	KC_##K90,	KC_##K91,	KC_NO,		KC_##K93,	KC_##K94,	KC_##K95,	KC_NO,		KC_##K97,	}, \
{	KC_##KA0,	KC_##KA1,	KC_##KA2,	KC_##KA3,	KC_##KA4,	KC_##KA5,	KC_##KA6,	KC_##KA7,	}  \
}

Quantum MK Firmware

For the full Quantum feature list, see the parent readme.md.

Building

Download or clone the whole firmware and navigate to the keyboards/retro_refit folder. Once your dev env is setup, you'll be able to type make to generate your .hex - you can then use the Teensy Loader to program your .hex file.

Depending on which keymap you would like to use, you will have to compile slightly differently.

Default

To build with the default keymap, simply run make default.

Other Keymaps

Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named <name>.c and see keymap document (you can find in top readme.md) and existent keymap files.

To build the firmware binary hex file with a keymap just do make with a keymap like this:

$ make [default|jack|<name>]

Keymaps follow the format <name>.c and are stored in the keymaps folder.