summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--docs/_summary.md2
-rw-r--r--docs/isp_flashing_guide.md106
-rw-r--r--docs/memory_write_error,_use_debug_for_more_info.md2
-rw-r--r--keyboards/ergodox/keymaps/familiar/Makefile1
-rw-r--r--keyboards/ergodox/keymaps/familiar/README.md20
-rw-r--r--keyboards/ergodox/keymaps/familiar/keymap.c124
-rw-r--r--keyboards/ergodox/readme.md2
-rw-r--r--keyboards/handwired/frenchdev/Makefile3
-rw-r--r--keyboards/handwired/frenchdev/config.h85
-rw-r--r--keyboards/handwired/frenchdev/frenchdev.c87
-rw-r--r--keyboards/handwired/frenchdev/frenchdev.h115
-rw-r--r--keyboards/handwired/frenchdev/i2cmaster.h178
-rw-r--r--keyboards/handwired/frenchdev/keymaps/default/keymap.c409
-rw-r--r--keyboards/handwired/frenchdev/keymaps/default/readme.md13
-rw-r--r--keyboards/handwired/frenchdev/matrix.c396
-rw-r--r--keyboards/handwired/frenchdev/readme.md102
-rw-r--r--keyboards/handwired/frenchdev/rules.mk92
-rw-r--r--keyboards/handwired/frenchdev/twimaster.c208
-rw-r--r--keyboards/lets_split/rev1/config.h3
-rw-r--r--keyboards/lets_split/rev2/config.h5
-rw-r--r--quantum/quantum.c142
-rw-r--r--quantum/template/rules.mk2
-rw-r--r--util/bootloader_at90usb128x_1_0_1.hex282
-rw-r--r--util/bootloader_atmega16u4_1_0_1.hex258
-rwxr-xr-xutil/bootloader_atmega32u4_1_0_0.hex (renamed from util/bootloader.hex)0
25 files changed, 2542 insertions, 95 deletions
diff --git a/docs/_summary.md b/docs/_summary.md
index 23128cafe4..8e0a6f51ca 100644
--- a/docs/_summary.md
+++ b/docs/_summary.md
@@ -3,6 +3,7 @@
* [Introduction](home.md)
* [QMK Overview](qmk_overview.md)
* [Build Environment Setup](build_environment_setup.md)
+* [Make instructions](make_instructions.md)
### Making a keymap
* [Keymap overview](keymap.md)
@@ -23,6 +24,7 @@
* [Porting your keyboard to QMK](porting_your_keyboard_to_qmk.md)
* [Modding your keyboard](modding_your_keyboard.md)
* [Adding features to QMK](adding_features_to_qmk.md)
+* [ISP flashing guide](isp_flashing_guide.md)
### Other topics
* [General FAQ](faq.md)
diff --git a/docs/isp_flashing_guide.md b/docs/isp_flashing_guide.md
new file mode 100644
index 0000000000..0819f27480
--- /dev/null
+++ b/docs/isp_flashing_guide.md
@@ -0,0 +1,106 @@
+# ISP Flashing Guide
+
+If you're having trouble flashing/erasing your board, and running into cryptic error messages like any of the following:
+
+ libusb: warning [darwin_transfer_status] transfer error: timed out
+ dfu.c:844: -ETIMEDOUT: Transfer timed out, NAK 0xffffffc4 (-60)
+ atmel.c:1627: atmel_flash: flash data dfu_download failed.
+ atmel.c:1629: Expected message length of 1072, got -60.
+ atmel.c:1434: Error flashing the block: err -2.
+ ERROR
+ Memory write error, use debug for more info.
+ commands.c:360: Error writing memory data. (err -4)
+
+ dfu.c:844: -EPIPE: a) Babble detect or b) Endpoint stalled 0xffffffe0 (-32)
+ Device is write protected.
+ dfu.c:252: dfu_clear_status( 0x7fff4fc2ea80 )
+ atmel.c:1434: Error flashing the block: err -2.
+ ERROR
+ Memory write error, use debug for more info.
+ commands.c:360: Error writing memory data. (err -4)
+
+You're likely going to need to ISP flash your board/device to get it working again. Luckily, this process is pretty straight-forward, provided you have any extra programmable keyboard, Arduino, or Teensy 2.0/Teensy 2.0++. There are also dedicated ISP flashers available for this, but most cost >$15, and it's assumed that if you are googling this error, this is the first you've heard about ISP flashing, and don't have one readily available (whereas you might have some other AVR board). __We'll be using a Teensy 2.0 with Windows 10 in this guide__ - if you are comfortable doing this on another system, please consider editing this guide and contributing those instructions!
+
+## Software needed
+
+* [The Arduino IDE](https://www.arduino.cc/en/Main/Software)
+* [Teensyduino](https://www.pjrc.com/teensy/td_download.html) (if you're using a Teensy)
+* [WinAVR](http://www.ladyada.net/learn/avr/setup-win.html) (Windows)
+
+## Wiring
+
+This is pretty straight-forward - we'll be connecting like-things to like-things in the following manner:
+
+ Flasher B0 <-> Keyboard RESET
+ Flasher B1 <-> Keyboard B1 (SCLK)
+ Flasher B2 <-> Keyboard B2 (MOSI)
+ Flasher B3 <-> Keyboard B3 (MISO)
+ Flasher VCC <-> Keyboard VCC
+ Flasher GND <-> Keyboard GND
+
+## The ISP firmware
+
+Make sure your keyboard is unplugged from any device, and plug in your Teensy.
+
+1. Run Arduino after you have everything installed
+2. Select `Tools > Board * > Teensy 2.0`
+3. Click `File > Examples > 11.ArduinoISP > ArduinoISP`
+
+Then scroll down until you see something that looks like this block of code:
+
+ // Configure which pins to use:
+
+ // The standard pin configuration.
+ #ifndef ARDUINO_HOODLOADER2
+
+ #define RESET 0 // Use 0 (B0) instead of 10
+ #define LED_HB 11 // Use 11 (LED on the Teensy 2.0)
+ #define LED_ERR 8 // This won't be used unless you have an LED hooked-up to 8 (D3)
+ #define LED_PMODE 7 // This won't be used unless you have an LED hooked-up to 7 (D2)
+
+And make the changes in the last four lines. If you're using something besides the Teenys 2.0, you'll want to choose something else that makes sense for `LED_HB`. We define `RESET` as `0`/`B0` because that's what's close - if you want to use another pin for some reason, [you can use the pinouts to choose something else](https://www.pjrc.com/teensy/pinout.html).
+
+Once you've made your changes, you can click the Upload button (right arrow), which will open up the Teensy flasher app - you'll need to press the reset button on the Teensy the first time, but after that, it's automatic (you shouldn't be flashing this more than once, though). Once flashed, the orange LED on the Teensy will flash on and off, indicating it's ready for some action.
+
+## The .hex file
+
+Before flashing your firmware, you're going to need to and do a little preparation. We'll be appending [this bootloader (also a .hex file)](https://github.com/qmk/qmk_firmware/blob/master/util/bootloader_atmega32u4_1_0_0.hex) to the end of our firmware by opening the original .hex file in a text editor, and removing the last line, which should be `:00000001FF` (this is an EOF message). After that's been removed, copy the entire bootloader's contents and paste it at the end of the original file, and save it.
+
+It's possible to use other bootloaders here in the same way, but __you need a bootloader__, otherwise you'll have to ISP to write new firmware to your keyboard.
+
+## Flashing your firmware
+
+Make sure your keyboard is unplugged from any device, and plug in your Teensy.
+
+Open `cmd` and navigate to your where your modified .hex file is. We'll pretend this file is called `main.hex`, and that your Teensy 2.0 is on the `COM3` port - if you're unsure, you can open your Device Manager, and look for `Ports > USB Serial Device`. Use that COM port here. You can confirm it's the right port with:
+
+ avrdude -c avrisp -P COM3 -p atmega32u4
+
+and you should get something like the following output:
+
+ avrdude: AVR device initialized and ready to accept instructions
+
+ Reading | ################################################## | 100% 0.02s
+
+ avrdude: Device signature = 0x1e9587
+
+ avrdude: safemode: Fuses OK
+
+ avrdude done. Thank you.
+
+Since our keyboard uses an `atmega32u4` (common), that is the chip we'll specify. This is the full command:
+
+ avrdude -c avrisp -P COM3 -p atmega32u4 -U flash:w:main.hex:i
+
+You should see a couple of progress bars, then you should see:
+
+ avrdude: verifying ...
+ avrdude: 32768 bytes of flash verified
+
+ avrdude: safemode: Fuses OK
+
+ avrdude done. Thank you.
+
+Which means everything should be ok! Your board may restart automatically, otherwise, unplug your Teensy and plug in your keyboard - you can leave your Teensy wired to your keyboard while testing things, but it's recommended that you desolder it/remove the wiring once you're sure everything works.
+
+If you have any questions/problems, feel free to [open an issue](https://github.com/qmk/qmk_firmware/issues/new)!
diff --git a/docs/memory_write_error,_use_debug_for_more_info.md b/docs/memory_write_error,_use_debug_for_more_info.md
index adef2601f0..154f3620b9 100644
--- a/docs/memory_write_error,_use_debug_for_more_info.md
+++ b/docs/memory_write_error,_use_debug_for_more_info.md
@@ -7,7 +7,7 @@ In rare circumstances, your keyboard/device can become unwritable, and `dfu-prog
[ X ERROR
Memory write error, use debug for more info.
-Currently the only way to solve this is to [reprogram the chip via ISP](https://www.reddit.com/r/olkb/comments/4rjzen/flashing_error_on_mac_os_x/d52rj8o/). This requires another device to be hooked up to a couple of exposed pins on the PCB. There is a guide on how to do this [here](https://learn.sparkfun.com/tutorials/installing-an-arduino-bootloader), and [this is where things are on the Planck PCB](http://imgur.com/lvbxbHt).
+Currently the only way to solve this is to [reprogram the chip via ISP](https://www.reddit.com/r/olkb/comments/4rjzen/flashing_error_on_mac_os_x/d52rj8o/). This requires another device to be hooked up to a couple of exposed pins on the PCB. __[We now have a guide on ISP flashing](isp_flashing_guide.md)__ and [this is where things are on the Planck PCB](http://imgur.com/lvbxbHt).
An example command to flash the board once things are hooked up is:
diff --git a/keyboards/ergodox/keymaps/familiar/Makefile b/keyboards/ergodox/keymaps/familiar/Makefile
new file mode 100644
index 0000000000..31e0fcf293
--- /dev/null
+++ b/keyboards/ergodox/keymaps/familiar/Makefile
@@ -0,0 +1 @@
+TAP_DANCE_ENABLE=yes
diff --git a/keyboards/ergodox/keymaps/familiar/README.md b/keyboards/ergodox/keymaps/familiar/README.md
index 7252f571a4..536179337f 100644
--- a/keyboards/ergodox/keymaps/familiar/README.md
+++ b/keyboards/ergodox/keymaps/familiar/README.md
@@ -1,5 +1,5 @@
# ErgoDox Familiar Layout
-Familiar layout for those who regularly switch back and forth from ErgoDox to regular QWERTY.
+Familiar layout for those who regularly switch back and forth from ErgoDox to "normal" QWERTY.
[![License: GPL v3](https://img.shields.io/badge/License-GPL%20v3-blue.svg)](../../../../license_GPLv3.md../../../../license_GPLv3.md) [![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg)](https://github.com/RichardLitt/standard-readme)
@@ -23,12 +23,12 @@ Key features of the familiar layout:
1. QWERTY default layout.
1. International symbols layer, mapped in the US-International layout default positions, through [UCIS](https://github.com/qmk/qmk_firmware/wiki/Unicode-and-additional-language-support#ucis_enable).
1. Numpad layer on right hand.
-1. Thumb cluster holds spacebar, ALT, and access to secondary layers.
+1. Thumb cluster holds spacebar and access to secondary layers.
1. Function-layer arrow keys in both the first-person-shooter (actually ESDF instead of WASD) and vim (HJKL) locations.
## Install
-If you are on Windows or Mac, choose the proper line in [`keymap.c`](keymap.c) for [unicode/international character support](https://github.com/qmk/qmk_firmware/wiki/Unicode-and-additional-language-support#ucis_enable) (starts at line 235).
+If you are on Windows or Mac, choose the proper line in [`keymap.c`](keymap.c) for [unicode/international character support](https://github.com/qmk/qmk_firmware/wiki/Unicode-and-additional-language-support#ucis_enable) (starts at line 253).
```c
void matrix_init_user(void) {
set_unicode_input_mode(UC_LNX); // Linux
@@ -45,13 +45,13 @@ $ make ergodox-ez-familiar-teensy
## Usage
-[![Familiar Layout](https://i.imgur.com/jflmkBb.png)](http://www.keyboard-layout-editor.com/#/gists/13508a9f99cff381d58b7be6f7dcc644)
+[![Familiar Layout](http://i.imgur.com/6nLN9UT.png)](https://gist.github.com/nstickney/13508a9f99cff381d58b7be6f7dcc644)
### Layers
1. Base Layer: QWERTY, with arrow keys at bottom right.
-1. UCIS Layer: US-International symbols layer, plus —. Accessed by toggling the `INTL` layer using the UCIS key (bottom of left thumb cluster).
-1. UCIS-Shifted Layer: Making shift work for UCIS characters. An ugly workaround. Any ideas? Accessed through holding shift while the UCIS layer is active (toggles the `INSF` layer).
-1. Numpad Layer: Right hand number pad. Accessed by toggling the `NUMP` layer using the NPAD key (bottom of right thumb cluster).
+1. UCIS Layer: US-International symbols layer, plus —. Accessed by toggling the `SYMB` layer using the UCIS key (bottom of left thumb cluster).
+1. UCIS-Shifted Layer: Making shift work for UCIS characters. An ugly workaround. Any ideas? Accessed by holding shift while the `SYMB` layer is active (toggles the `CSYM` layer).
+1. Numpad Layer: Right hand number pad. Accessed by toggling the `NUMP` layer using the NUMP key (bottom of right thumb cluster).
1. Function Layer: F1-F12, arrows on ESDF and HJKL, media player controls. Accessed by holding either FN key (center key of each thumb cluster), which toggles the `ARRW` layer. I know, I need to work on my naming conventions.
## Contribute
@@ -61,9 +61,9 @@ $ make ergodox-ez-familiar-teensy
I'm terrible at this; I have no background in human-computer interaction, kinesiology, or keyboard-ology. Please send comments/issues/pull requests/angry tweets/etc. If you think there is a better way to take advantage of the ErgoDox/QMK comination without straying far from 84/101-key QWERTY, I want to know it.
### Issues
-1. The top two keys of the right thumb cluster are currently unused. I wanted them for screen brightness, but I haven't found a solution I like.
-1. The `'`, `"`, `[`, and `]` keys are terrible to access; I want to put them somewhere else but I haven't figured out where.
-1. The `INSF` layer is an ugly workaround. I should write a function for doing different things in the `INTL` layer depending on whether SHIFT is being held. Or something. Ideas?
+1. The `CSYM` layer is an ugly workaround. I should write a function for doing different things in the `SYMB` layer depending on whether SHIFT is being held. Or something. Ideas?
+1. Right now, the thumb cluster function keys double as slash and whack... this really isnt a great solution.
+1. `MENU` and `LEAD` are useless, at the moment.
## License
QMK is licensed ([mostly](https://github.com/qmk/qmk_firmware/issues/1038)) under the [GPLv2](blob/master/license_GPLv2.md). Accordingly, to whatever extent applicable, this keymap is licensed under the [GPLv3](../../../../license_GPLv3.md).
diff --git a/keyboards/ergodox/keymaps/familiar/keymap.c b/keyboards/ergodox/keymaps/familiar/keymap.c
index c5f94afda8..c0334615b2 100644
--- a/keyboards/ergodox/keymaps/familiar/keymap.c
+++ b/keyboards/ergodox/keymaps/familiar/keymap.c
@@ -5,8 +5,8 @@
// Layers
#define BASE 0 // default layer
-#define INTL 1 // international symbols
-#define INSF 2 // international symbols shifted
+#define SYMB 1 // international symbols
+#define CSYM 2 // international symbols shifted
#define NUMP 3 // numpad
#define ARRW 4 // function, media, arrow keys
@@ -14,63 +14,81 @@
#define _______ KC_TRNS
#define XXXXXXX KC_NO
+// Tap Dancing
+void dance_lock (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 1) { // Press once for NUMLOCK
+ register_code (KC_NLCK);
+ unregister_code (KC_NLCK);
+ } else if (state->count == 2) { // Press twice for CAPSLOCK
+ register_code (KC_CAPS);
+ unregister_code (KC_CAPS);
+ } else if (state->count == 3) { //Press thrice for SCROLLLOCK
+ register_code (KC_SLCK);
+ unregister_code (KC_SLCK);
+ }
+}
+enum {LOCKS = 0};
+qk_tap_dance_action_t tap_dance_actions[] = {
+ [LOCKS] = ACTION_TAP_DANCE_FN(dance_lock)
+};
+
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// If it accepts an argument (i.e, is a function), it doesn't need KC_.
// Otherwise, it needs KC_*
/* layer 0 : default
*
* ,--------------------------------------------------. ,--------------------------------------------------.
- * | ESC | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | - | = | BCKSPC |
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | - | = | BCKSPC |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | TAB | Q | W | E | R | T | HOME | | PGUP | Y | U | I | O | P | DELETE |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | ` | A | S | D | F | G |------| |------| H | J | K | L | ; | ENTER |
+ * | ' | A | S | D | F | G |------| |------| H | J | K | L | ; | ENTER |
* |--------+------+------+------+------+------| END | | PGDN |------+------+------+------+------+--------|
* | (/LSFT | Z | X | C | V | B | | | | N | M | , | . | UP | )/RSFT |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | LCTRL | LGUI | MENU | ' | " | | [ | ] | LEFT | DOWN | RIGHT |
+ * | LCTRL | LGUI | MENU | LEAD | LALT | |[/RALT|]/RCTL| LEFT | DOWN | RIGHT |
* `------------------------------------' `------------------------------------'
* ,-------------. ,-------------.
- * | VOL- | VOL+ | | | |
+ * |PRTSCR| ESC | | VOL- | VOL+ |
* ,------|------|------| |------+------+------.
- * | SPC/ |SLASH/| MUTE | |NUMLCK|WHACK/| SPC/ |
- * | ALT | MO(1)|------| |------|MO(1) | ALT |
- * | | | LAY3 | | LAY2 | | |
+ * | |SLASH/| LOCKS| | MUTE |WHACK/| |
+ * | SPC | MO(4)|------| |------|MO(4) | SPC |
+ * | | | TO(1)| |TO(3) | | |
* `--------------------' `--------------------'
*/
[BASE] = KEYMAP(
// left hand
- KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_HOME,
- KC_GRV, KC_A, KC_S, KC_D, KC_F, KC_G,
+ KC_QUOT, KC_A, KC_S, KC_D, KC_F, KC_G,
KC_LSPO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END,
- KC_LCTL, KC_LGUI, KC_MENU, KC_QUOT, S(KC_QUOT),
- KC_VOLD, KC_VOLU,
- KC_MUTE,
- ALT_T(KC_SPC), LT(ARRW,KC_SLSH), TG(INTL),
+ KC_LCTL, KC_LGUI, KC_MENU, KC_LEAD, KC_LALT,
+ KC_PSCR, KC_ESC,
+ TD(LOCKS),
+ KC_SPC, LT(ARRW, KC_SLSH), TG(SYMB),
// right hand
KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
KC_PGUP, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENTER,
KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSPC,
- KC_LBRC, KC_RBRC, KC_LEFT, KC_DOWN, KC_RGHT,
- _______, _______,
- KC_NLCK,
- TG(NUMP), LT(ARRW,KC_BSLS), ALT_T(KC_SPC)
+ MT(MOD_RALT, KC_LBRC), MT(MOD_RCTL, KC_RBRC), KC_LEFT, KC_DOWN, KC_RGHT,
+ KC_VOLD, KC_VOLU,
+ KC_MUTE,
+ TG(NUMP), LT(ARRW, KC_BSLS), KC_SPC
),
/* layer 1: International symbols, etc
*
* ,--------------------------------------------------. ,--------------------------------------------------.
- * | ´ | ¡ | ² | ³ | ¤ | € | ¼ | | ½ | ¾ | ‘ | ’ | ¥ | × | |
+ * | | ¡ | ² | ³ | ¤ | € | ¼ | | ½ | ¾ | ‘ | ’ | ¥ | × | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | ä | å | é | ® | þ | | | | ü | ú | í | ó | ö | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | á | ß | ð | | |------| |------| | | | ø | ¶ | |
+ * | ´ | á | ß | ð | | |------| |------| | | | ø | ¶ | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * |MO(INSF)| æ | | © | | | | | | ñ | µ | ç | | |MO(INSF)|
+ * |MO(CSYM)| æ | ¿ | © | ¬ | | | | | ñ | µ | ç | | |MO(CSYM)|
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | ¬ | ¿ | | « | » | | | |
+ * | | | | | | | « | » | | | |
* `------------------------------------' `------------------------------------'
* ,-------------. ,-------------.
* | | | | | |
@@ -80,13 +98,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | |
* `--------------------' `--------------------'
*/
-[INTL] = KEYMAP(
+[SYMB] = KEYMAP(
// left hand
- UC(0x00B4), UC(0x00A1), UC(0x00B2), UC(0x00B3), UC(0x00A4), UC(0x20AC), UC(0x00BC),
+ _______, UC(0x00A1), UC(0x00B2), UC(0x00B3), UC(0x00A4), UC(0x20AC), UC(0x00BC),
_______, UC(0x00E4), UC(0x00E5), UC(0x00E9), UC(0x00AE), UC(0x00FE), _______,
- _______, UC(0x00E1), UC(0x00DF), UC(0x00F0), _______, _______,
- MO(INSF), UC(0x00E6), _______, UC(0x00A9), _______, _______, _______,
- _______, _______, _______, UC(0x00AC), UC(0x00BF),
+ UC(0x00B4), UC(0x00E1), UC(0x00DF), UC(0x00F0), _______, _______,
+ MO(CSYM), UC(0x00E6), UC(0x00BF), _______, UC(0x00AC), UC(0x00A9), _______,
+ _______, _______, _______, _______, _______,
_______, _______,
_______,
_______, _______, _______,
@@ -94,7 +112,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
UC(0x00BD), UC(0x00BE), UC(0x2018), UC(0x2019), UC(0x00A5), UC(0x00D7), _______,
_______, UC(0x00FC), UC(0x00FA), UC(0x00ED), UC(0x00F3), UC(0x00F6), _______,
_______, _______, _______, UC(0x00F8), UC(0x00B6), _______,
- _______, UC(0x00F1), UC(0x00B5), UC(0x00E7), _______, _______, MO(INSF),
+ _______, UC(0x00F1), UC(0x00B5), UC(0x00E7), _______, _______, MO(CSYM),
UC(0x00AB), UC(0x00BB), _______, _______, _______,
_______, _______,
_______,
@@ -106,15 +124,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* which don't produce an "upper case" or "shifted" international symobol.
*
* ,--------------------------------------------------. ,--------------------------------------------------.
- * | ¨ | ¹ | | | £ | | | | | | | | — | ÷ | |
+ * | | ¹ | | | £ | | | | | | | | — | ÷ | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | Ä | Å | É | | Þ | | | | Ü | Ú | Í | Ó | Ö | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | Á | § | Ð | | |------| |------| | | | Ø | ° | |
+ * | ¨ | Á | § | Ð | | |------| |------| | | | Ø | ° | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * | | Æ | | ¢ | | | | | | Ñ | | Ç | | | |
+ * | | Æ | | ¢ | ¦ | | | | | Ñ | | Ç | | | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | ¦ | | | | | | | |
+ * | | | | | | | “ | ” | | | |
* `------------------------------------' `------------------------------------'
* ,-------------. ,-------------.
* | | | | | |
@@ -124,13 +142,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | |
* `--------------------' `--------------------'
*/
-[INSF] = KEYMAP(
+[CSYM] = KEYMAP(
// left hand
- UC(0x00A8), UC(0x00B9), _______, _______, UC(0x00A3), _______, _______,
- _______, UC(0x00C4), UC(0x00C5), UC(0x00C9), _______, UC(0x00DE), _______,
- _______, UC(0x00C1), UC(0x00A7), UC(0x00D0), S(KC_F), S(KC_G),
- _______, UC(0x00C6), S(KC_X), UC(0x00A2), S(KC_V), S(KC_B), _______,
- _______, _______, _______, UC(0x00A6), _______,
+ _______, UC(0x00B9), _______, _______, UC(0x00A3), _______, _______,
+ _______, UC(0x00C4), UC(0x00C5), UC(0x00C9), S(KC_R), UC(0x00DE), _______,
+ UC(0x00A8), UC(0x00C1), UC(0x00A7), UC(0x00D0), S(KC_F), S(KC_G),
+ _______, UC(0x00C6), UC(0x00A6), UC(0x00A2), S(KC_V), S(KC_B), _______,
+ _______, _______, _______, _______, _______,
_______, _______,
_______,
_______, _______, _______,
@@ -139,7 +157,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, UC(0x00DC), UC(0x00DA), UC(0x00CD), UC(0x00D3), UC(0x00D6), _______,
S(KC_H), S(KC_J), S(KC_K), UC(0x00D8), UC(0x00B0), _______,
_______, UC(0x00D1), _______, UC(0x00C7), S(KC_DOT), _______, _______,
- _______, _______, _______, _______, _______,
+ UC(0x201C), UC(0x201D), _______, _______, _______,
_______, _______,
_______,
_______, _______, _______
@@ -156,7 +174,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | | | | | | | | | | | 1 | 2 | 3 | = | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
- * | | | | | | | 0 | . | , | ENTER| |
+ * | | | | | | |0/RALT|./RCTL| , | ENTER| |
* `------------------------------------' `------------------------------------'
* ,-------------. ,-------------.
* | | | | | |
@@ -181,7 +199,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, _______,
_______, KC_KP_4, KC_KP_5, KC_KP_6, KC_PPLS, _______,
_______, _______, KC_KP_1, KC_KP_2, KC_KP_3, KC_PEQL, _______,
- KC_KP_0, KC_KP_DOT, KC_PCMM, KC_PENT, _______,
+ MT(MOD_RALT, KC_KP_0), MT(MOD_RCTL, KC_KP_DOT),KC_PCMM, KC_PENT, _______,
_______, _______,
_______,
_______, _______, _______
@@ -191,20 +209,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* This layer is at the top so that the functions still work no matter what layers are active.
*
* ,--------------------------------------------------. ,--------------------------------------------------.
- * | ESCAPE | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | SYSREQ |
+ * | ESCAPE | F1 | F2 | F3 | F4 | F5 | F6 | | F7 | F8 | F9 | F10 | F11 | F12 | |
* |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
* | | | | UP | | | | | | | | | | | INSERT |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
- * |CAPSLOCK| | LEFT | DOWN |RIGHT | |------| |------| LEFT | DOWN | UP | RIGHT| | |
+ * | | | LEFT | DOWN |RIGHT | |------| |------| LEFT | DOWN | UP | RIGHT| | |
* |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
* | |M_PREV|M_STOP|M_PLPS|M_NEXT| | | | | | | | | PGUP | |
* `--------+------+------+------+------+-------------' `-------------+------+------+------+------+--------'
* | | | | | | | | | HOME | PGDN | END |
* `------------------------------------' `------------------------------------'
* ,-------------. ,-------------.
- * | | PAUSE| | | |
+ * | SYSRQ| PAUSE| | | |
* ,------|------|------| |------+------+------.
- * | | | | |SCRLK | | |
+ * | | | | | | | |
* | | |------| |------| | |
* | | | | | | | |
* `--------------------' `--------------------'
@@ -213,20 +231,20 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// left hand
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
_______, _______, _______, KC_UP, _______, _______, _______,
- KC_CAPS, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______,
- _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______,
+ _______, KC_MPRV, KC_MSTP, KC_MPLY, KC_MNXT, _______, _______,
_______, _______, _______, _______, _______,
- _______, KC_PAUSE,
+ KC_SYSREQ, KC_PAUSE,
_______,
_______, _______, _______,
// right hand
- KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_SYSREQ,
+ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
_______, _______, _______, _______, _______, _______, KC_INS,
KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
_______, _______, _______, _______, _______, KC_PGUP, _______,
_______, _______, KC_HOME, KC_PGDN, KC_END,
_______, _______,
- KC_SLCK,
+ _______,
_______, _______, _______
),
};
@@ -249,8 +267,8 @@ void matrix_scan_user(void) {
ergodox_right_led_2_off();
ergodox_right_led_3_off();
switch (layer) {
- case INTL:
- case INSF:
+ case SYMB:
+ case CSYM:
ergodox_right_led_1_on();
break;
case NUMP:
diff --git a/keyboards/ergodox/readme.md b/keyboards/ergodox/readme.md
index 618422055f..7327087ffe 100644
--- a/keyboards/ergodox/readme.md
+++ b/keyboards/ergodox/readme.md
@@ -94,7 +94,7 @@ To flash with ´teensy-loader-cli´:
- Build the firmware with `make keymapname`, for example `make default`
- - Run ´<path/to/>teensy_loader_cli --mcu=atmega32u4 -w ergodox_ez_<keymap>.hex´
+ - Run ´<path/to/>teensy_loader_cli -mmcu=atmega32u4 -w ergodox_ez_<keymap>.hex´
- Press the Reset button by inserting a paperclip gently into the reset hole
in the top right corder.
diff --git a/keyboards/handwired/frenchdev/Makefile b/keyboards/handwired/frenchdev/Makefile
new file mode 100644
index 0000000000..57b2ef62e5
--- /dev/null
+++ b/keyboards/handwired/frenchdev/Makefile
@@ -0,0 +1,3 @@
+ifndef MAKEFILE_INCLUDED
+ include ../../Makefile
+endif
diff --git a/keyboards/handwired/frenchdev/config.h b/keyboards/handwired/frenchdev/config.h
new file mode 100644
index 0000000000..dd386402c8
--- /dev/null
+++ b/keyboards/handwired/frenchdev/config.h
@@ -0,0 +1,85 @@
+/*
+Copyright 201 Nicolas Poirey <nicolas.poirey@gmail.com>
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#ifndef FRENCHDEV_V1_CONFIG_H
+#define FRENCHDEV_V1_CONFIG_H
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0xFEED
+#define