qmk_firmware/keyboards
..
1upkeyboards
4x4 Keymap: Wanleg updates (#3794) 2018-08-30 09:34:14 -07:00
5x5 Keymap: Wanleg updates (#3794) 2018-08-30 09:34:14 -07:00
6ball Refactor update for 6ball (#3017) 2018-05-22 12:12:50 -07:00
9key Refactor and Configurator updates for 9key (#3024) 2018-05-22 15:58:56 -07:00
acr60 Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
al1 Keyboard: AL1 Configurator fix: misplaced arrow keys (#3716) 2018-08-22 08:59:00 -07:00
alf
alpha Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
alps64 Refactor for Alps64 (#3029) 2018-05-24 15:26:38 -07:00
alu84 Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
amj40 turn on permissive hold for my keymap (#3295) 2018-07-03 16:18:01 -07:00
amj60 Keyboard: AMJ60 LAYOUT_iso matrix fix (#3705) 2018-08-21 08:41:40 -07:00
amj96 Keyboard: AMJ96 Refactor and Configurator update (#3707) 2018-08-22 08:58:12 -07:00
amjpad Keyboard: Configurator render fix for AMJPad (#3706) 2018-08-21 08:42:18 -07:00
at101_blackheart Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
atom47 Fix Atom47 configurator layout (#3018) 2018-05-22 07:03:10 -07:00
atomic QMK Configurator updates: Atom47, Atomic and Atreus (#2883) 2018-05-03 07:56:12 -07:00
atreus Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
atreus62 Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
bantam44 Refactor and Configurator updates for Bantam44 (#3071) 2018-05-29 01:13:53 -07:00
bface Keymap: Added personal keymap for bface (#3719) 2018-08-21 19:07:18 -07:00
bfake Update ps2avrgb readme (#3599) 2018-08-09 17:45:43 -07:00
bfo9000 Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
bigseries Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
bigswitch Keymap: Big switch config (#3904) 2018-09-17 13:41:59 -07:00
blockey Keyboard: Blockey refactor (#3722) 2018-08-22 09:00:40 -07:00
bmini Update ps2avrgb readme (#3599) 2018-08-09 17:45:43 -07:00
canoe Update ps2avrgb readme (#3599) 2018-08-09 17:45:43 -07:00
catch22 Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
chibios_test Add some generic/sparse readmes to get rid of errors (#3048) 2018-05-25 08:39:39 -07:00
chimera_ergo Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
chimera_ls Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
chimera_ortho Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
chocopad
christmas_tree
ckeys Keyboard: Ckeys refactor (#3681) 2018-08-17 16:12:22 -07:00
clueboard
cod67 COD67 "Support" (#3332) 2018-07-07 11:47:24 -07:00
comet46 Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
contra Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
converter
cospad Keyboard: Added gamepad layout to cospad (#3714) 2018-08-25 10:35:24 -07:00
crawlpad Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
crkbd Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
cu24 Support upcoming caps_unlocked boards in QMK Configurator (#2738) 2018-04-12 13:03:50 -04:00
cu75 CU75: Refactor and Configurator updates (#3123) 2018-06-04 12:15:14 -07:00
daisy [WIP] [Help Needed] Daisy 40%: Refactor and Configurator update (#3124) 2018-06-04 14:50:30 -07:00
dc01
deltasplit75 Fix Mbsurfer deltasplit75 keymap (#3262) 2018-06-29 08:22:23 -07:00
dichotemy Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
dilly Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
diverge3 Diverge3: Readme Clean-up, Refactor and Configurator support (#3135) 2018-06-06 09:51:24 -07:00
divergetm2 Keyboard: Add support for Diverge TM2 (#3829) 2018-09-03 16:35:27 -07:00
dk60 DK60: Refactor, Configurator and Readme updates (#3142) 2018-06-07 08:23:50 -07:00
do60
duck
dz60 Keymap: dz60/macos_arrow: fix rev3 broken media layer (#3928) 2018-09-17 15:10:00 -07:00
e6v2
eco
ergo42 Keymap: add yshrsmz keymaps (#3770) 2018-09-01 09:38:29 -07:00
ergodash Keyboard: add ergodash mini keyboard (#3901) 2018-09-15 10:57:46 -07:00
ergodone Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
ergodox_ez Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
ergodox_infinity Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
ergoinu Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
ergotravel Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
facew add linebreaks to "Keyboard Maintainer:..." blocks where missing (#3763) 2018-08-26 11:59:52 -07:00
fc660c Keymap: Updated my FC660C config (#3870) 2018-09-09 19:43:45 -07:00
fc980c Added FC980C Config (#2850) 2018-04-30 07:46:23 -07:00
felix Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
fleuron Keyboard: Adds Fleuron v1.0 keyboard (#3571) 2018-08-07 17:47:49 -07:00
fortitude60 Fortitude60: Refactor and Configurator support (#3161) 2018-06-10 07:13:01 -07:00
four_banger Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
fourier Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
fractal Keyboard: Fix pin numbers for Fractal keyboard (#3743) 2018-09-17 15:18:19 -07:00
frosty_flake Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
gh60 Keymap: Create ISO HHKB keymapping for GH60 (#3832) 2018-09-04 08:52:52 -07:00
gh80_3000 Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
gherkin Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
gonnerd Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
gskt00 Keyboard: Added support for GSKT-00 (#3911) 2018-09-17 16:00:40 -07:00
h87a
hadron Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
handwired Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
helix Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
hhkb Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
hid_liber Keyboard: Add support for bpiphany's HID Liberation Device (#3470) 2018-07-30 23:37:34 -07:00
hs60 Addition of hard brigtness limit for RGB_Matrix (#3299) 2018-07-03 12:52:04 -04:00
infinity60 Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
iris Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
jc65
jd40 add linebreaks to "Keyboard Maintainer:..." blocks where missing (#3763) 2018-08-26 11:59:52 -07:00
jd45 add linebreaks to "Keyboard Maintainer:..." blocks where missing (#3763) 2018-08-26 11:59:52 -07:00
jj40 Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
jj50 ps2avrgb: fix incorrect avr ports specified (for numlock and capslock LEDs) (#3453) 2018-07-23 12:11:56 -07:00
jm60 Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
k_type
katana60 Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
kbd6x
kbd8x Fixed kbd8x compile issues (#3409) 2018-07-15 11:21:26 -07:00
kbd66 KBD66 info.json update (#3175) 2018-06-13 17:08:10 -07:00
kbd75 Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
kc60 Fix to KC60 LAYOUT_60_ansi matrix (#3026) 2018-05-22 20:14:50 -07:00
kc60se Keyboard: Configurator fix: KC60SE info.json, LAYOUT matrix (#3463) 2018-07-22 06:58:32 -07:00
kinesis Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
kira75 Kira 75 QMK Support (#3003) 2018-05-20 10:25:34 -07:00
kitten_paw Kitten Paw refactor and Configurator update (#3248) 2018-06-28 12:40:40 -07:00
kmac QMK Configurator Support for KMAC (#2852) 2018-04-30 08:22:35 -07:00
kmini Kmini refactor and Configurator support (#3388) 2018-07-12 16:30:53 -07:00
knops
kona_classic Keyboard: Fix character encoding for kona_classic's info.json (#3473) 2018-07-23 12:02:45 -07:00
laplace Laplace Refactor (#3252) 2018-06-28 06:56:14 -07:00
launchpad Launchpad (#2767) 2018-04-20 08:51:34 -07:00
lets_split Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
lets_split_eh
levinson Keymap: Update personal keymap (#3855) 2018-09-05 16:39:00 -07:00
lfkeyboards Keyboard: Corrected LFK65_HS LAYOUT_all matrix (#3703) 2018-08-21 08:40:25 -07:00
lily58 Keyboard: Add Lily58 Keyboard (#3893) 2018-09-15 10:14:39 -07:00
m10a Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
massdrop
maxipad QMK Configurator support for Maxipad keypad (#3307) 2018-07-04 18:04:22 -07:00
mechmini Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
meira Keyboard: add Telophase board (and Graham's keymaps) (#3244) 2018-08-19 13:29:11 -07:00
melody96 Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
meme rename layouts based on memey monikers courtesy of Krelbit...lulz (#3218) 2018-06-21 23:33:34 -07:00
mf68 65% and 68 key community layouts (#3872) 2018-09-09 19:45:59 -07:00
mf68_ble 65% and 68 key community layouts (#3872) 2018-09-09 19:45:59 -07:00
minidox Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
mint60 Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
mitosis Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
miuni32 Miuni32 refactor and Configurator support (#3273) 2018-07-01 11:02:26 -07:00
model01 Keyboard: add Keyboardio Model 01 (#3900) 2018-09-17 15:49:20 -07:00
mt40 MT40 refactor and Configurator support (#3377) 2018-07-12 10:28:23 -07:00
mxss MxSS Configurator bugfix: removed an extra key that didn't belong (#3362) 2018-07-09 18:07:20 -07:00
nano Nano refactor and Configurator update (#3275) 2018-07-01 11:05:10 -07:00
niu_mini Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
novelpad Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
noxary
nyquist Keymap: add yshrsmz keymaps (#3770) 2018-09-01 09:38:29 -07:00
ok60 Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
omnikey_blackheart Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
org60 Configurator fix for Org60 (#3231) 2018-06-25 17:09:06 -07:00
orthodox Yet another update to drashna keymaps and userspace (#3787) 2018-08-29 13:42:15 -04:00
paladin64 Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
pearl Keyboard: Pearl keyboard LAYOUT_spacebar had an undefined constant K34 (#3633) 2018-08-12 09:33:04 -07:00
pegasushoof Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
phantom add linebreaks to "Keyboard Maintainer:..." blocks where missing (#3763) 2018-08-26 11:59:52 -07:00
planck Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
playkbtw
preonic Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
prime_r Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
ps2avrGB [WIP] Added support for the b.face keyboard (#2493) 2018-08-19 19:32:35 -07:00
quefrency Keyboard: Add support for Quefrency 65% right half (#3865) 2018-09-06 12:49:13 -07:00
qwertyydox Keyboard: Add QWERTYYdox keyboard (#3636) 2018-08-19 13:23:13 -07:00
rama Zeal60/Zeal65/M60-A implementation (#3879) 2018-09-13 14:37:13 -04:00
redox Keymap: Redox: add a new Colemak keymap, macOS oriented. (#3861) 2018-09-10 07:39:05 -07:00
rorschach Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
s60_x Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
s65_plus Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
s65_x Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
satan Keymap: Adjusted keymaps for standardisation (#3874) 2018-09-09 19:47:14 -07:00
scrabblepad add linebreaks to "Keyboard Maintainer:..." blocks where missing (#3763) 2018-08-26 11:59:52 -07:00
singa add linebreaks to "Keyboard Maintainer:..." blocks where missing (#3763) 2018-08-26 11:59:52 -07:00
sixkeyboard SixKeyBoard refactor (#3193) 2018-06-16 08:02:11 -07:00
sixshooter Keyboard: Six Shooter Keyboard (#3598) 2018-08-11 13:23:11 -07:00
speedo Speedo refactor and Configurator support (#3309) 2018-07-04 18:06:04 -07:00
staryu ps2avrgb: fix incorrect avr ports specified (for numlock and capslock LEDs) (#3453) 2018-07-23 12:11:56 -07:00
subatomic remove all makefiles from keyboard directories 2017-09-27 08:21:09 -10:00
sx60 Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
tada68 Keyboard: Add ISO-NOR keymap for TADA68 (#3944) 2018-09-19 11:42:58 -07:00
tanuki Tanuki Configurator support (#3310) 2018-07-04 18:06:32 -07:00
telophase Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
tetris Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
the_ruler add linebreaks to "Keyboard Maintainer:..." blocks where missing (#3763) 2018-08-26 11:59:52 -07:00
thevankeyboards Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
tiger_lily Tiger Lily Controller refactor and Configurator support (#3313) 2018-07-04 21:44:02 -07:00
tkc1800 Keymap: Fix Dvorak mapping for left/right brace (#3889) 2018-09-13 09:16:39 -07:00
tokyo60 Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
tomato
tragicforce68 Keyboard: Add Tragicforce 68 (#3807) 2018-08-31 11:13:55 -07:00
uk78 Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
unloved_bastard
ut47
v60_type_r
vision_division add linebreaks to "Keyboard Maintainer:..." blocks where missing (#3763) 2018-08-26 11:59:52 -07:00
vitamins_included Keyboard: Document the correct path to the let's split EEPROM files. (#3539) 2018-08-02 13:52:24 -07:00
viterbi Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
wavelet Keyboard: add Wavelet (#3739) 2018-08-25 08:46:42 -07:00
whitefox Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
xd60 Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
xd75
xmmx Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
ymd75 ps2avrgb: fix incorrect avr ports specified (for numlock and capslock LEDs) (#3453) 2018-07-23 12:11:56 -07:00
ymd96 Keyboard: Add YMD96 instructions for Linux + Backlight Fixes (#3908) 2018-09-17 13:55:49 -07:00
ymdk_np21 ps2avrgb: fix incorrect avr ports specified (for numlock and capslock LEDs) (#3453) 2018-07-23 12:11:56 -07:00
z150_blackheart Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
zeal60
zeal65
zen Keymap: Update 333fred's keymap for Zen (#3690) 2018-08-20 09:45:15 -07:00
zlant Make `PREVENT_STUCK_MODIFIERS` the default (#3107) 2018-09-17 13:48:02 -04:00
readme.md

readme.md

Included Keyboards

QMK runs on a diverse range of keyboards. Some of these keyboards are officially supported and see constant community contributions, while others are part of the repository for historical reasons.

Official QMK Keyboards

These keyboards are manufactured by the maintainers of QMK.

Ortholinear Keyboards - Jack Humbert

What makes OLKB keyboards shine is a combo of lean aesthetics, compact size, and killer tactile feel. These are available through olkb.com as well as through Massdrop from time to time, as easy to assemble kits.

  • Planck — A 40% DIY powerhouse of customizability and modification capability. It's a lean, mean, typing machine.
  • Preonic — Like the Planck, but bigger. 50%.
  • Atomic — Imagine the size of the Planck. Now imagine the size of the Preonic. Now imagine bigger. That is the Atomic. A 60% keyboard.

ErgoDox EZ - Erez Zukerman

Made in Taiwan using advanced robotic manufacturing, the ErgoDox EZ is a fully-assembled, premium ergonomic keyboard. Its split design allows you to place both halves shoulder width, and its custom-made wrist rests and tilt/tent kit make for incredibly comfortable typing. Available on ergodox-ez.com.

  • ErgoDox EZ — Our one and only product. Yes, it's that awesome. Comes with either printed or blank keycaps, and 7 different keyswitch types.

Clueboard - Zach White

Designed and built in Felton, CA, Clueboards keyboard emphasize quality and locally sourced components, available on clueboard.co

  • Clueboard — The 66% custom keyboard.
  • Cluecard — A small board to help you hack on QMK.
  • Cluepad — A mechanical numpad with QMK superpowers.

Community-supported QMK Keyboards

These keyboards are part of the QMK repository, but their manufacturers are not official maintainers of the repository.

  • 9key — A 9-key minipad sold by Bishop Keyboards.
  • Alps64 — A 60% keyboard for Alps keyswitches.
  • AMJ60 — DIY/Assembled compact 60% keyboard.
  • Arrow Pad — A custom creation by IBNobody.
  • Atreus — Made by Technomancy.
  • Bantam44 — It is a 44-key 40% staggered keyboard.
  • Ergodox Infinity - Ergonomic Split Keyboard by Input Club.
  • GH60 — A 60% Geekhack community-driven project.
  • GON NerD — Korean custom 60% PCB
  • Happy Hacking Keyboard — The Happy Hacking keyboard can be hacked with a custom controller to run QMK.
  • Infinity 60% - — Compact community keyboard by Input Club.
  • JD45 — Another Geekhack community project, designed by jdcarpe.
  • JJ40 — ps2avrGB based ortholinear sold by KPrepublic
  • KBD75 — A 75% keyboard made by made by KBDFans.
  • KC60 — A programmable Chinese-made keyboard, lost in the mists of time.
  • Kinesis Advantage — Contoured ergonomic keyboard by Kinesis Computer Ergonomics.
  • KMAC — Korean custom keyboard.
  • The Kitten Paw — A replacement controller (2016 revision) for the Filco Majestouch by Bathroom Epiphanies.
  • Lets Split - Split ortholinear 40% keyboard.
  • Phantom — A tenkeyless kit by Teel, also from Geekhack.
  • Retro Refit — Another creation by IBNobody.
  • S60-x — DIY compact keyboard designed by VinnyCordeiro for Sentraq.
  • Satan — A GH60 variant.
  • SixKeyBoard — A 6-key keyboard made by TechKeys.
  • TheVan 44 — A 44-key staggered keybard by Evangs.
  • WhiteFox — A 65% keyboard designed as a partnership by matt3o, Massdrop and Input Club
  • Vision Division — Full Size / Split Linear Keyboard by IBNobody.
  • XD75 — 15x5 ortholinear keyboard by XIUDI.
  • YMDK NP21 — ps2avrGB based number pad (numpad) sold by YMDK on Aliexpress.