qmk_firmware/keyboards
Daniel Burkholder af5f59636e Keyboard: Dactyl - Only initialize relevant variables (#3771)
This small change prevents an unused variable from being initialized, throwing a warning during compilation, thus ending fatally.

[07:47:10] [Daniels-MacBook-Pro-3] [dburkhol] [ /Users/dburkhol/git/qmk_firmware ] [develop ]
: make handwired/dactyl:default
QMK Firmware 0.6.97
Making handwired/dactyl with keymap default

avr-gcc (GCC) 7.3.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Size before:
   text    data     bss     dec     hex filename
      0   19972       0   19972    4e04 .build/handwired_dactyl_default.hex

Compiling: keyboards/handwired/dactyl/twimaster.c                                                   [OK]
Compiling: keyboards/handwired/dactyl/matrix.c                                                     keyboards/handwired/dactyl/matrix.c:52:22: error: 'expander_col_pins' defined but not used [-Werror=unused-const-variable=]
 static const uint8_t expander_col_pins[MATRIX_COLS] = MATRIX_EXPANDER_COL_PINS;
                      ^~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
 [ERRORS]
 |
 |
 |
make[1]: *** [.build/obj_handwired_dactyl_default/matrix.o] Error 1
make: *** [handwired/dactyl:default] Error 1
Make finished with errors
2018-08-28 17:06:51 -07:00
..
1upkeyboards Keyboard: Make a 1upkeyboards directory for visibility (#3759) 2018-08-26 09:30:12 -07:00
4x4 Keyboard: 4x4 modular keyboard (#3531) 2018-08-02 13:48:39 -07:00
5x5 Keyboard: add 5x5 board support (#3694) 2018-08-19 13:18:19 -07:00
6ball
9key
acr60
al1 Keyboard: AL1 Configurator fix: misplaced arrow keys (#3716) 2018-08-22 08:59:00 -07:00
alf_x2 Keyboard: Alf X2 matrix fix (#3704) 2018-08-21 08:41:12 -07:00
alpha Keymap: PyroL Let's Split keymap + Alpha keymap modifications (#3753) 2018-08-25 17:11:53 -07:00
alps64
alu84
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
atom47
atomic
atreus Keyboard: Support PCBDOWN variants for Atreus keyboard (#3735) 2018-08-24 08:53:03 -07:00
atreus62
bananasplit
bantam44
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 Updated keymap 'Andylikescandy' bfo9000 (#3413) 2018-07-15 21:16:53 -07:00
bigseries Keyboard: Fix Configurator rendering for Big Series 2-, 3-, and 4-key boards (#3698) 2018-08-19 19:33:49 -07:00
bigswitch Add URL of PCB files to README.md (#3182) 2018-06-14 19:30:11 -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 Keymap: Update cache22 default keymap (#3597) 2018-08-09 17:50:09 -07:00
chibios_test
chimera_ergo Refactor, Configurator update, and Readme cleanup for Chimera Ergo (#3083) 2018-07-11 08:29:13 -07:00
chimera_ls
chimera_ortho DCompact Update 1 (#3202) 2018-06-19 13:01:48 -07:00
chocopad keymap: Update khord let's split keymap and add chocopad keymap (#3482) 2018-07-25 08:30:17 -07:00
christmas_tree Configurator fix for Christmas Tree (#3338) 2018-07-07 18:35:31 -07:00
ckeys Keyboard: Ckeys refactor (#3681) 2018-08-17 16:12:22 -07:00
clueboard Add configurator support for 66_ansi layout for rev1, 2 and 3 2018-08-15 13:53:28 -07:00
cod67 COD67 "Support" (#3332) 2018-07-07 11:47:24 -07:00
comet46 Add Comet46 keyboard (#3342) 2018-07-09 07:46:09 -07:00
contra Keymap: Added deastiny layout for contra [based on dvorak type II] (#3673) 2018-08-19 12:30:28 -07:00
converter add linebreaks to "Keyboard Maintainer:..." blocks where missing (#3763) 2018-08-26 11:59:52 -07:00
cospad Keyboard: Added gamepad layout to cospad (#3714) 2018-08-25 10:35:24 -07:00
crawlpad
crkbd Keyboard: Partial refactor of the crkbd code (#3600) 2018-08-22 09:51:37 -07:00
cu24
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 Keyboard: Fix UTF-8 encoding for DC01 Numpad info.json (#3462) 2018-07-21 15:35:57 -07:00
dc60 Keyboard: DC60 Support (#3667) 2018-08-16 09:06:19 -07:00
deltasplit75 Fix Mbsurfer deltasplit75 keymap (#3262) 2018-06-29 08:22:23 -07:00
dichotemy Dichotemy: Refactor and Configurator update (#3133) 2018-06-06 09:47:56 -07:00
dilly Dilly: Refactor and Configurator support (#3134) 2018-06-06 11:12:42 -07:00
diverge3 Diverge3: Readme Clean-up, Refactor and Configurator support (#3135) 2018-06-06 09:51:24 -07:00
dk60 DK60: Refactor, Configurator and Readme updates (#3142) 2018-06-07 08:23:50 -07:00
do60 add support for the 60_ansi_split_bs_rshift community layout (#3227) 2018-06-25 07:56:48 -07:00
duck Putting my ducks in a row: Eagle/Viper V2 into Duck directory (#3766) 2018-08-28 16:52:30 -07:00
dz60 Keymap: xtonhasvim updates (#3768) 2018-08-28 16:54:17 -07:00
e6v2 Keyboard: E6V2 Layout Fix (#3490) 2018-07-25 20:12:15 -07:00
eco Eco: Refactor, Configurator support and Readme changes (#3143) 2018-06-07 08:26:46 -07:00
ergo42 Keyboard: Update Ergo42 default keymap (#3686) 2018-08-19 12:53:41 -07:00
ergodash Ergodash refactor and Configurator update (#3378) 2018-07-12 10:31:05 -07:00
ergodone Keymap: Custom L0 layout for ergodone (#3591) 2018-08-09 18:09:43 -07:00
ergodox_ez Keymap: Bocaj - Create Userspace and Ergodox Layout (#3750) 2018-08-28 16:48:41 -07:00
ergodox_infinity Configurator layout repair for Ergodone, Ergodox Infinity and ErgoTravel (#3173) 2018-06-13 07:58:23 -07:00
ergoinu Keyboard: add ergoinu keyboard (#3655) 2018-08-16 08:36:35 -07:00
ergotravel Configurator layout repair for Ergodone, Ergodox Infinity and ErgoTravel (#3173) 2018-06-13 07:58:23 -07:00
facew add linebreaks to "Keyboard Maintainer:..." blocks where missing (#3763) 2018-08-26 11:59:52 -07:00
fc660c
fc980c
felix felix info.json fix (#3195) 2018-06-16 07:56:09 -07: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
fourier Keymap: jennetters fourier split 40% keymap (#3487) 2018-07-26 14:30:01 -07:00
fractal Keyboard: Added support for the Fractal keyboard (#3457) 2018-07-21 12:14:32 -07:00
frosty_flake
gh60 GH60: readme cleanup, Refactor, and Configurator update (#3164) 2018-06-12 14:44:24 -07:00
gh80_3000 GH80-3000: Refactor and Configurator support (#3166) 2018-06-12 14:47:50 -07:00
gherkin Keymap: Wanleg userspace (#3670) 2018-08-17 16:11:21 -07:00
gonnerd GON NerD: Refactor, Configurator support and Readme cleanup (#3167) 2018-06-12 14:49:41 -07:00
h87a Keyboard: make sure LAYOUT macro names match in info.json and h87a.h (#3550) 2018-08-02 14:41:20 -07:00
hadron Hadron: Readme, Refactor, and Configurator support (#3170) 2018-06-12 17:34:04 -07:00
handwired Keyboard: Dactyl - Only initialize relevant variables (#3771) 2018-08-28 17:06:51 -07:00
helix Keymap: Helix : Update froggy keymap (#3652) 2018-08-15 09:30:34 -07:00
hhkb Added E6v2 keymap & some minor changes (#3392) 2018-07-13 08:03:57 -07: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 add linebreaks to "Keyboard Maintainer:..." blocks where missing (#3763) 2018-08-26 11:59:52 -07:00
iris fix line endings 2018-08-16 08:38:42 -07:00
jc65 Keyboard: Hide JC65 directory in QMK Configurator (#3491) 2018-07-26 14:32:02 -07:00
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 ps2avrgb: fix incorrect avr ports specified (for numlock and capslock LEDs) (#3453) 2018-07-23 12:11:56 -07:00
jj50 ps2avrgb: fix incorrect avr ports specified (for numlock and capslock LEDs) (#3453) 2018-07-23 12:11:56 -07:00
jm60 add linebreaks to "Keyboard Maintainer:..." blocks where missing (#3763) 2018-08-26 11:59:52 -07:00
k_type
katana60 Katana60 refactor and Configurator update (#3242) 2018-06-27 07:52:00 -07:00
kbd6x Keyboard: Disable mouse keys for kbd6x (#3603) 2018-08-09 18:03:34 -07:00
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 Keymap: Spaceman Spiff layout for KBD75 (#3595) 2018-08-09 17:53:13 -07:00
kc60
kc60se Keyboard: Configurator fix: KC60SE info.json, LAYOUT matrix (#3463) 2018-07-22 06:58:32 -07:00
kinesis Keymap: Added my keymap for Rorschach keyboard; minor updates to my Kinesis files. (#3734) 2018-08-25 09:29:43 -07:00
kira75
kitten_paw Kitten Paw refactor and Configurator update (#3248) 2018-06-28 12:40:40 -07:00
kmac
kmini Kmini refactor and Configurator support (#3388) 2018-07-12 16:30:53 -07:00
knops Knops Configurator update (#3249) 2018-06-28 06:53:23 -07:00
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
lets_split Keymap: PyroL Let's Split keymap + Alpha keymap modifications (#3753) 2018-08-25 17:11:53 -07:00
lets_split_eh Userspace update for user bbaserdem (#3443) 2018-07-18 20:17:55 -07:00
levinson Keyboard: Refactor Levinson to use split common code (#3639) 2018-08-13 12:05:58 -07:00
lfkeyboards Keyboard: Corrected LFK65_HS LAYOUT_all matrix (#3703) 2018-08-21 08:40:25 -07:00
m10a
maxipad QMK Configurator support for Maxipad keypad (#3307) 2018-07-04 18:04:22 -07:00
mechmini
meira Keyboard: add Telophase board (and Graham's keymaps) (#3244) 2018-08-19 13:29:11 -07:00
melody96 Configurator does not work with melody96 leds (#3396) 2018-07-14 13:26:10 -07:00
meme rename layouts based on memey monikers courtesy of Krelbit...lulz (#3218) 2018-06-21 23:33:34 -07:00
mf68
mf68_ble
minidox add linebreaks to "Keyboard Maintainer:..." blocks where missing (#3763) 2018-08-26 11:59:52 -07:00
mint60 add linebreaks to "Keyboard Maintainer:..." blocks where missing (#3763) 2018-08-26 11:59:52 -07:00
mitosis mitosis: minor readme improvements (#3762) 2018-08-26 12:00:22 -07:00
miuni32 Miuni32 refactor and Configurator support (#3273) 2018-07-01 11:02:26 -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 Keymap: xtonhasvim updates (#3768) 2018-08-28 16:54:17 -07:00
novelpad Novelpad refactor and Configurator support (#3276) 2018-07-01 11:06:00 -07:00
noxary Keyboard: Noxary 268 refactor and Configurator update (#3426) 2018-07-17 08:19:40 -07:00
nyquist Keymap: Adds zen layout for 333fred (#3563) 2018-08-05 08:42:16 -07:00
ok60 Keyboard: Added layout LAYOUT_60_ansi_split_bksp_rshift to ok60 (#3644) 2018-08-15 09:28:47 -07:00
omnikey_blackheart Omnikey Blackheart refactor (#3280) 2018-07-01 11:08:29 -07:00
org60 Configurator fix for Org60 (#3231) 2018-06-25 17:09:06 -07:00
orthodox Update to drashna userspace and keymaps (#3172) 2018-07-16 21:04:32 -04:00
paladin64
pearl Keyboard: Pearl keyboard LAYOUT_spacebar had an undefined constant K34 (#3633) 2018-08-12 09:33:04 -07:00
pegasushoof add linebreaks to "Keyboard Maintainer:..." blocks where missing (#3763) 2018-08-26 11:59:52 -07:00
phantom add linebreaks to "Keyboard Maintainer:..." blocks where missing (#3763) 2018-08-26 11:59:52 -07:00
planck Fixes STM32F303XC timer issue for Planck Rev 6 (#3777) 2018-08-27 17:10:22 -04:00
playkbtw Keyboard: readme.md update (#3581) 2018-08-25 09:26:24 -07:00
preonic rename MIT to 1x2uC for preonic 2018-07-20 23:09:25 -04:00
prime_r Prime_R refactor and Configurator support (#3289) 2018-07-03 16:15:23 -07:00
ps2avrGB [WIP] Added support for the b.face keyboard (#2493) 2018-08-19 19:32:35 -07:00
quefrency Keyboard: Migrate Quefrency to use split common files (#3642) 2018-08-15 09:27:34 -07:00
qwertyydox Keyboard: Add QWERTYYdox keyboard (#3636) 2018-08-19 13:23:13 -07:00
rama Added M10-B implementation 2018-07-15 12:50:36 -04:00
redox add linebreaks to "Keyboard Maintainer:..." blocks where missing (#3763) 2018-08-26 11:59:52 -07:00
roadkit add linebreaks to "Keyboard Maintainer:..." blocks where missing (#3763) 2018-08-26 11:59:52 -07:00
rorschach Keymap: Added my keymap for Rorschach keyboard; minor updates to my Kinesis files. (#3734) 2018-08-25 09:29:43 -07:00
s60_x add linebreaks to "Keyboard Maintainer:..." blocks where missing (#3763) 2018-08-26 11:59:52 -07:00
s65_plus Keyboard: adding Sentraq S65-Plus (#3406) 2018-07-20 09:01:35 -07:00
s65_x convert to unix line-endings [skip ci] 2018-07-11 15:24:41 +00:00
satan Keymap: Spaceman Spiff layout for the GH60 Satan (#3596) 2018-08-09 17:52:35 -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
sx60 add linebreaks to "Keyboard Maintainer:..." blocks where missing (#3763) 2018-08-26 11:59:52 -07:00
tada68 Keyboard: Fix tada68 Linux readme (#3717) 2018-08-21 19:08:17 -07:00
tanuki Tanuki Configurator support (#3310) 2018-07-04 18:06:32 -07:00
telophase Keyboard: add Telophase board (and Graham's keymaps) (#3244) 2018-08-19 13:29:11 -07:00
tetris Tetris Configurator support and Rules update (#3317) 2018-07-07 11:42:59 -07:00
the_ruler add linebreaks to "Keyboard Maintainer:..." blocks where missing (#3763) 2018-08-26 11:59:52 -07:00
tiger_lily Tiger Lily Controller refactor and Configurator support (#3313) 2018-07-04 21:44:02 -07:00
tkc1800 Keymap: Add smt keymap for TKC1800 (#3481) 2018-07-25 08:28:06 -07:00
tokyo60 Keyboard: Change the default LAYOUT to LAYOUT_60_hhkb for tokyo60 (#3751) 2018-08-25 13:20:18 -07:00
tomato Tomato refactor and Configurator support (#3314) 2018-07-04 21:44:50 -07:00
tv44 add linebreaks to "Keyboard Maintainer:..." blocks where missing (#3763) 2018-08-26 11:59:52 -07:00
uk78 UK78 Refactor: rename LAYOUT to LAYOUT_all (#3405) 2018-07-14 15:18:54 -07:00
unloved_bastard Unloved Bastard refactor and Configurator support (#3318) 2018-07-05 08:22:39 -07:00
ut47 Keyboard: UT47 Configurator support and readme cleanup (#3708) 2018-08-21 08:45:42 -07:00
v60_type_r add linebreaks to "Keyboard Maintainer:..." blocks where missing (#3763) 2018-08-26 11:59:52 -07:00
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 Keyboard: add generic ortho 5x14 layout support to Viterbi (#3658) 2018-08-15 15:34:25 -07:00
wavelet Keyboard: add Wavelet (#3739) 2018-08-25 08:46:42 -07:00
whitefox Keymaps: Add whitefox constexpr keymap (#3541) 2018-08-01 20:04:20 -07:00
xd60 Keymap: Adding keymap to the XD60 (#3767) 2018-08-28 16:53:10 -07:00
xd75 Keymap: XD75 keymap (#3553) 2018-08-05 08:55:17 -07:00
xmmx
ymd75 ps2avrgb: fix incorrect avr ports specified (for numlock and capslock LEDs) (#3453) 2018-07-23 12:11:56 -07:00
ymd96 ps2avrgb: fix incorrect avr ports specified (for numlock and capslock LEDs) (#3453) 2018-07-23 12:11:56 -07:00
ymdk_np21 ps2avrgb: fix incorrect avr ports specified (for numlock and capslock LEDs) (#3453) 2018-07-23 12:11:56 -07:00
zen Keymap: Update 333fred's keymap for Zen (#3690) 2018-08-20 09:45:15 -07:00
zlant
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.