qmk_firmware/keyboards/ortho5by12
James Young 4b453dca92
Remove MIDI Configuration boilerplate (#11151)
* remove keyboard-level instances of `MIDI_ENABLE = no`

Command:

```
find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e  '/^[ #]*MIDI_ENABLE[ \t]*=[ \t]*no/d' {} +
```

Co-Authored-By: Nick Brassel <nick@tzarc.org>

* fix case-sensitivity issues on MIDI_ENABLE

Change instances of `MIDI_ENABLE = YES` to `MIDI_ENABLE = yes`.

Command:

```
find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;MIDI_ENABLE[ \t]*=[ \t]*[Yy][Ee][Ss];MIDI_ENABLE = yes;g' {} +
```

* replace `# MIDI controls` with `# MIDI support`

Replace `# MIDI controls` with `# MIDI support` in keyboard-level `rules.mk` files.

Command:

```
find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;#[ \t]*MIDI[ \t]*\(controls\|support\).*;# MIDI support;g' {} +
```

* align inline comments

Aligns the inline comments to the length used by the QMK AVR rules.mk template.

Command:

```
find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;MIDI_ENABLE *= *yes.*;MIDI_ENABLE = yes           # MIDI support;g'  {} +
```

* remove commented instances of `MIDI_ENABLE` from keyboard `rules.mk` files

Commands:

```
find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;#\([ \t]*MIDI_ENABLE\) = yes; \1 = no ;' {} +
find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e 's;^\([ \t]*\)\(MIDI_ENABLE = no\);\2\1;' {} +
find keyboards/ -type f -name 'rules.mk' -and -not -path '*/keymaps/*' -exec sed -i -e '/^[ #]\+MIDI_ENABLE *= *no/d' {} +
```

* remove MIDI configuration boilerplate from keyboard config.h files

Co-authored-by: Nick Brassel <nick@tzarc.org>
2021-08-16 06:51:13 +10:00
..
keymaps/default
config.h
info.json
ortho5by12.c
ortho5by12.h
readme.md [Keyboard] Add ortho5by12 keyboard (#9141) 2020-06-04 23:55:39 -07:00
rules.mk Remove MIDI Configuration boilerplate (#11151) 2021-08-16 06:51:13 +10:00

ortho5by12 // Through Hole

A Plaid-style 5x12 design with two indicator LEDs.

Uses a Schottky 1N4729A/3.6V diode. This is left out of the Plaid BOM which is identical, except for number of 1N4148 diodes (60+attrition). I recommend using 10k resistors for the LEDs instead of the Plaid's 1.5k to make them less glaring. I reckon hsgw was just trying to shave down the parts cost by re-using the 1.5kohm.

I use a spare PCB as the backplate since it has the same dimensions.

This was developed on Linux Mint so you'll have to adapt the commands yourself if you run anything else.

pic here: https://www.reddit.com/r/MechanicalKeyboards/comments/g0ukw4/ortho5by12_through_hole/

  • Keyboard Maintainer: gipetto
  • Hardware Supported: ATmega328P with V-USB
  • Hardware Availability: PCB

Make example for this keyboard (after setting up your build environment):

make ortho5by12:default

Flash firmware:

make ortho5by12:default:flash

Bootloader doesn't seem to work for the time being. I deleted the last line in ortho5by12.hex and copied the USBasp bootloader onto the end in a text editor, then flashed over AVRISP using a Teensy 2.0 (following the QMK ISP Flashing Guide). I used a cut up MCU socket soldered to stripboard to make an ISP programming socket. Remember to make fuse in the USBasp directory on a new MCU.

ISP pinout:

        R4

Reset  SCK    MISO

GND    MOSI   VCC

                     C5

A few build notes:

I haven't found it easy to get into bootloader mode every time. sometimes there's no alternative but to use the ISP header, or pull the IC.

Put the switch diodes in with the banded end down towards the switches. This gives the fastest scan rate. If you don't and go by the silkscreen then you can swap COL2ROW/ROW2COL from whatever it currently is. The speed penalty is negligible anyway. The silkscreen is probably wrong, so do the component placement from KiCad nightly; it caught me out. If you attempt to map the duplex matrix you will hate me so don't bother. I should have used one LED pin as an extra matrix pin, but in my naivete I thought it was used for a bootloader function. The duplexing is compensated for in a header file so you can use a standard Preonic keymap with any extra unavailable pins commented out. On the upside there's some funky twin LED code out there for Plaids which should be compatible.

Boot and Reset switches have swapped position to my other PCB to ease routing - Boot is on the right.

Bootloader

Use USBaspLoader from hsgw's repository.

https://github.com/hsgw/USBaspLoader/tree/plaid

See the build environment setup and the [make instructions] (https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our Complete Newbs Guide.