Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add m2 keyboard. #19853

Open
wants to merge 95 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
55c34ae
Add m2 keyboard
jonylee1986 Feb 15, 2023
78d694e
Update keyboards/hfdkb/m2/config.h
jonylee1986 Feb 17, 2023
c93c02b
Update keyboards/hfdkb/m2/keymaps/default/keymap.c
jonylee1986 Feb 17, 2023
bd8f0bb
Update keyboards/hfdkb/m2/keymaps/via/keymap.c
jonylee1986 Feb 17, 2023
3c9a643
Revised the code according to the suggestions,added readme.md and add…
jonylee1986 Feb 17, 2023
88a2af2
add Hardware Availability in readme.md
jonylee1986 Feb 18, 2023
0bdc407
RGB_MATRIX_*_STEP --->RGBLIGHT_*_STEP
jonylee1986 Feb 18, 2023
5cc519d
Recall changes
jonylee1986 Feb 18, 2023
2201d10
override the behavior of the keycodes to control RGB
jonylee1986 Feb 21, 2023
839b640
Folder path modified,removed 'hfdkb/';Two customized keys have been d…
jonylee1986 Mar 6, 2023
c659405
Update keyboards/monsgeek/m2/keymaps/default/keymap.c
jonylee1986 Mar 8, 2023
ab4726c
Update keyboards/monsgeek/m2/config.h
jonylee1986 Mar 8, 2023
639f8bf
Update keyboards/monsgeek/m2/config.h
jonylee1986 Mar 8, 2023
237117d
Update keyboards/monsgeek/m2/m2.c
jonylee1986 Mar 8, 2023
b61cbfa
Update keyboards/monsgeek/m2/keymaps/via/keymap.c
jonylee1986 Mar 8, 2023
856e3e3
Move the relevant settings to info.json, and use '_____,' for the sam…
jonylee1986 Mar 8, 2023
49d9d6a
Update info.json
jonylee1986 Mar 8, 2023
5a5af53
Update config.h
jonylee1986 Mar 8, 2023
30dba7c
Update config.h
jonylee1986 Mar 8, 2023
124031a
update m2.c,Make 'RGB_ HUI 'key seven-gear cycle
jonylee1986 Mar 8, 2023
3683304
Update keymap.c
jonylee1986 Mar 9, 2023
648bab7
Update keymap.c
jonylee1986 Mar 9, 2023
7e0f932
Update info.json
jonylee1986 Mar 11, 2023
73e0236
Delete m2.h
jonylee1986 Mar 11, 2023
c3c35ca
Update m2.c
jonylee1986 Mar 11, 2023
6bb9426
Update info.json
jonylee1986 Apr 3, 2023
7ee5771
Update keyboards/monsgeek/m2/keymaps/via/rules.mk
jonylee1986 Apr 7, 2023
e6cb15f
add USB_SUSPEND_WAKEUP_DELAY
jonylee1986 Apr 22, 2023
708e142
Move some settings from rules.mk to info.json
jonylee1986 Apr 24, 2023
de58387
updata config.h and delete rgb_matrix_kb.inc
jonylee1986 Apr 25, 2023
48664eb
add DISABLE_M2_KEYCODES
jonylee1986 Apr 25, 2023
4a87c85
Move code to info.json,and removed redundant features
jonylee1986 May 24, 2023
bc8d6f6
Update keyboards/monsgeek/m2/readme.md
itarze May 24, 2023
0fb6d2a
Update info.json
jonylee1986 Jun 1, 2023
ed31803
Update readme.md
jonylee1986 Jun 9, 2023
a2c9013
Update keyboards/monsgeek/m2/config.h
jonylee1986 Aug 18, 2023
cdf9651
Update keyboards/monsgeek/m2/info.json
jonylee1986 Aug 18, 2023
1e622ed
Update keyboards/monsgeek/m2/rules.mk
jonylee1986 Aug 18, 2023
fc256a3
Update info.json
jonylee1986 Aug 18, 2023
016017f
Update config.h
jonylee1986 Aug 18, 2023
7df8eed
Update keyboards/monsgeek/m2/readme.md
jonylee1986 Aug 18, 2023
ab2628f
Update keyboards/monsgeek/m2/readme.md
jonylee1986 Aug 18, 2023
260e342
Update keyboards/monsgeek/m2/info.json
jonylee1986 Aug 18, 2023
5876fb5
Update keyboards/monsgeek/m2/info.json
jonylee1986 Aug 30, 2023
653d620
Update m2.c
jonylee1986 Aug 30, 2023
8cfe0de
Update keyboards/monsgeek/m2/m2.c
jonylee1986 Sep 18, 2023
f42f6ed
Update keyboards/monsgeek/m2/info.json
jonylee1986 Sep 18, 2023
f8b698f
Update keyboards/monsgeek/m2/info.json
jonylee1986 Sep 18, 2023
32f8318
Update keymap.c
jonylee1986 Sep 27, 2023
61a6d2c
Update keymap.c
jonylee1986 Sep 27, 2023
750d800
Update keyboards/monsgeek/m2/info.json
jonylee1986 Oct 12, 2023
914477e
Update keyboards/monsgeek/m2/readme.md
jonylee1986 Oct 12, 2023
e7b7769
Update keyboards/monsgeek/m2/readme.md
jonylee1986 Oct 18, 2023
112eba4
Update keyboards/monsgeek/m2/info.json
jonylee1986 Dec 6, 2023
19aed9e
Update keyboards/monsgeek/m2/config.h
jonylee1986 Dec 6, 2023
a4a319c
Update keyboards/monsgeek/m2/m2.c
jonylee1986 Dec 6, 2023
e31c35c
Update info.json
jonylee1986 Dec 6, 2023
7d40b1e
Update keymap.c
jonylee1986 Dec 20, 2023
c8501fc
Update keymap.c
jonylee1986 Dec 20, 2023
208df61
Update info.json
jonylee1986 Dec 21, 2023
2b2f16f
Update m2.c
jonylee1986 Dec 21, 2023
40357a0
Update keymap.c
jonylee1986 Dec 21, 2023
1432d53
Update keymap.c
jonylee1986 Dec 21, 2023
770c722
Merge branch 'qmk:master' into hfdkb_m2
jonylee1986 Jan 17, 2024
9c9f96b
Merge branch 'qmk:master' into hfdkb_m2
jonylee1986 Feb 22, 2024
f4ae67e
Merge branch 'master' into hfdkb_m2
jonylee1986 Mar 19, 2024
7399518
Update config.h
jonylee1986 Mar 20, 2024
0ec8759
Update keyboards/monsgeek/m2/config.h
jonylee1986 Mar 23, 2024
5d7f50a
Update keyboards/monsgeek/m2/info.json
jonylee1986 Mar 23, 2024
772335c
Merge branch 'master' into hfdkb_m2
jonylee1986 Mar 23, 2024
56eabf6
Update readme.md
jonylee1986 Mar 23, 2024
2ac2a9b
Update keyboards/monsgeek/m2/keymaps/default/keymap.c
jonylee1986 May 15, 2024
c789f41
Update keyboards/monsgeek/m2/keymaps/via/keymap.c
jonylee1986 May 15, 2024
5ee0949
Update keyboards/monsgeek/m2/config.h
jonylee1986 May 15, 2024
6db953c
Update keyboards/monsgeek/m2/config.h
jonylee1986 May 15, 2024
4d98fcb
Update keyboards/monsgeek/m2/info.json
jonylee1986 May 15, 2024
b85d1ff
Update m2.c
jonylee1986 May 15, 2024
8dc7c21
Update m2.c
jonylee1986 May 15, 2024
6b146a6
Rename info.json to keyboard.json
jonylee1986 Jun 5, 2024
fb8699f
Delete keyboards/monsgeek/m2/rules.mk
jonylee1986 Jun 5, 2024
e156043
Update keyboard.json
jonylee1986 Jun 5, 2024
f0e6c7c
Update keyboards/monsgeek/m2/config.h
jonylee1986 Jun 12, 2024
107aa60
Update config.h
jonylee1986 Jun 26, 2024
f9b6fed
delete via keymap
jonylee1986 Sep 14, 2024
84981f0
Merge branch 'qmk:master' into hfdkb_m2
jonylee1986 Sep 14, 2024
27dc897
Update keymap.c
jonylee1986 Sep 14, 2024
6cc0005
Update readme.md
jonylee1986 Sep 14, 2024
c9d67cb
Update keyboards/monsgeek/m2/m2.c
jonylee1986 Oct 22, 2024
b99eed7
Update keyboards/monsgeek/m2/m2.c
jonylee1986 Oct 22, 2024
0982de4
Update keyboards/monsgeek/m2/m2.c
jonylee1986 Oct 22, 2024
63bab54
Update keyboards/monsgeek/m2/config.h
jonylee1986 Oct 26, 2024
f03ec60
Merge branch 'qmk:master' into hfdkb_m2
jonylee1986 Oct 26, 2024
d7df5e4
Update config.h
jonylee1986 Oct 26, 2024
8432145
Update keyboard.json
jonylee1986 Nov 12, 2024
67526c0
Update keyboard.json
jonylee1986 Nov 12, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
134 changes: 134 additions & 0 deletions keyboards/hfdkb/m2/config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
/* Copyright (C) 2022 jonylee@hfd
*
* 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/>.
*/

#pragma once

#include "config_common.h"

/* Use 5 dynamic keymap layers */
#define DYNAMIC_KEYMAP_LAYER_COUNT 6

#define RGB_TRIGGER_ON_KEYDOWN
/* Force NKRO on boot up regardless of the setting saved in the EEPROM (uncomment to enable it) */
#define FORCE_NKRO

/* key matrix size */
#define MATRIX_ROWS 6
#define MATRIX_COLS 21

/* key matrix pins */
#define MATRIX_ROW_PINS {B15, C6, C7, C8, C9, A8}
#define MATRIX_COL_PINS { C1, C2, C3, A0, A1, A2, A3, A4, A5, A6, A7, C4, C5, B0, B1, B2,B10,B11,B12,B13,B14}

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION ROW2COL

/* encoder resolution */
#define ENCODER_RESOLUTION 2
#define TAP_CODE_DELAY 20

/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE

/* SPI Config for spi flash*/
#define SPI_DRIVER SPIDQ
#define SPI_SCK_PIN B3
#define SPI_MOSI_PIN B5
#define SPI_MISO_PIN B4
#define SPI_MOSI_PAL_MODE 5

#define EXTERNAL_FLASH_SPI_SLAVE_SELECT_PIN C12
#define WEAR_LEVELING_BACKING_SIZE (8 * 1024)

/* I2C Config for LED Driver */
#define DRIVER_COUNT 2
#define DRIVER_ADDR_1 0b1110100
#define DRIVER_ADDR_2 0b1110111
#define I2C1_SDA_PIN B7
#define I2C1_SCL_PIN B6
#define I2C1_SCL_PAL_MODE 4
#define I2C1_OPMODE OPMODE_I2C
#define I2C1_CLOCK_SPEED 400000 /* 400000 */

#define DRIVER_1_LED_TOTAL 60
#define DRIVER_2_LED_TOTAL 38
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)

#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
#define RGB_MATRIX_CENTER {112,32}
jonylee1986 marked this conversation as resolved.
Show resolved Hide resolved

#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
#define RGB_MATRIX_KEYPRESSES
#define RGB_MATRIX_KEYRELEASES

// RGB Matrix Animation modes. Explicitly enabled
// For full list of effects, see:
// https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
// #define ENABLE_RGB_MATRIX_ALPHAS_MODS
// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
#define ENABLE_RGB_MATRIX_SOLID_COLOR // Static single hue, no speed support
#define ENABLE_RGB_MATRIX_BREATHING
// #define ENABLE_RGB_MATRIX_BAND_SAT
// #define ENABLE_RGB_MATRIX_BAND_VAL
// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
#define ENABLE_RGB_MATRIX_CYCLE_ALL
#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
#define ENABLE_RGB_MATRIX_DUAL_BEACON
#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
#define ENABLE_RGB_MATRIX_RAINDROPS
// #define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
// #define ENABLE_RGB_MATRIX_HUE_BREATHING
// #define ENABLE_RGB_MATRIX_HUE_PENDULUM
// #define ENABLE_RGB_MATRIX_HUE_WAVE
// #define ENABLE_RGB_MATRIX_PIXEL_RAIN
// #define ENABLE_RGB_MATRIX_PIXEL_FLOW
// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
//#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
//#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
//#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
//#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
//#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
//#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
//#define ENABLE_RGB_MATRIX_SPLASH
#define ENABLE_RGB_MATRIX_MULTISPLASH
//#define ENABLE_RGB_MATRIX_SOLID_SPLASH
//#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH

#define RGB_MATRIX_HUE_STEP 62
#define RGB_MATRIX_SAT_STEP 62
#define RGB_MATRIX_VAL_STEP 50
#define RGB_MATRIX_SPD_STEP 62
jonylee1986 marked this conversation as resolved.
Show resolved Hide resolved
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200 /* The maximum brightness level */

23 changes: 23 additions & 0 deletions keyboards/hfdkb/m2/halconf.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
/* Copyright (C) 2022 jonylee@hfd
*
* 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/>.
*/
#pragma once

#define HAL_USE_I2C TRUE
#define HAL_USE_SPI TRUE
#define SPI_USE_WAIT TRUE
#define SPI_SELECT_MODE SPI_SELECT_MODE_PAD

#include_next <halconf.h>
122 changes: 122 additions & 0 deletions keyboards/hfdkb/m2/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
{
"keyboard_name": "MonsGeek Keyboard",
"manufacturer": "www.hfd.cn",
"maintainer": "hfd",
"usb": {
"vid": "0xFFFE",
"pid": "0x0008",
"device_version": "1.1.0"
},
"processor": "WB32FQ95",
"bootloader": "wb32-dfu",
"layouts": {
"LAYOUT": {
"layout": [
{ "label": "Esc", "x": 0, "y": 0 },
{ "label": "F1", "x": 2, "y": 0 },
{ "label": "F2", "x": 3, "y": 0 },
{ "label": "F3", "x": 4, "y": 0 },
{ "label": "F4", "x": 5, "y": 0 },
{ "label": "F5", "x": 6.5, "y": 0 },
{ "label": "F6", "x": 7.5, "y": 0 },
{ "label": "F7", "x": 8.5, "y": 0 },
{ "label": "F8", "x": 9.5, "y": 0 },
{ "label": "F9", "x": 11, "y": 0 },
{ "label": "F10", "x": 12, "y": 0 },
{ "label": "F11", "x": 13, "y": 0 },
{ "label": "F12", "x": 14, "y": 0 },
{ "label": "Delete", "x": 15, "y": 0 },
{ "label": "PrtSc", "x": 16, "y": 0 },
{ "label": "Home", "x": 17, "y": 0 },
{ "label": "Pgup", "x": 18, "y": 0 },
{ "label": "Pgdn", "x": 19, "y": 0 },

{ "label": "~", "x": 0, "y": 1.25 },
{ "label": "!", "x": 1, "y": 1.25 },
{ "label": "@", "x": 2, "y": 1.25 },
{ "label": "#", "x": 3, "y": 1.25 },
{ "label": "$", "x": 4, "y": 1.25 },
{ "label": "%", "x": 5, "y": 1.25 },
{ "label": "^", "x": 6, "y": 1.25 },
{ "label": "&", "x": 7, "y": 1.25 },
{ "label": "*", "x": 8, "y": 1.25 },
{ "label": "(", "x": 9, "y": 1.25 },
{ "label": ")", "x": 10, "y": 1.25 },
{ "label": "_", "x": 11, "y": 1.25 },
{ "label": "+", "x": 12, "y": 1.25 },
{ "label": "Bksp", "x": 14, "y": 1.25 },
{ "label": "Numlock", "x": 16, "y": 1.25 },
{ "label": "/", "x": 17, "y": 1.25 },
{ "label": "*", "x": 18, "y": 1.25 },
{ "label": "-", "x": 19, "y": 1.25 },

{ "label": "Tab", "x": 0, "y": 2.25, "w": 1.5 },
{ "label": "Q", "x": 1.5, "y": 2.25 },
{ "label": "W", "x": 2.5, "y": 2.25 },
{ "label": "E", "x": 3.5, "y": 2.25 },
{ "label": "R", "x": 4.5, "y": 2.25 },
{ "label": "T", "x": 5.5, "y": 2.25 },
{ "label": "Y", "x": 6.5, "y": 2.25 },
{ "label": "U", "x": 7.5, "y": 2.25 },
{ "label": "I", "x": 8.5, "y": 2.25 },
{ "label": "O", "x": 9.5, "y": 2.25 },
{ "label": "P", "x": 10.5, "y": 2.25 },
{ "label": "{", "x": 11.5, "y": 2.25 },
{ "label": "}", "x": 12.5, "y": 2.25 },
{ "label": "|", "x": 13.5, "y": 2.25, "w": 1.5 },
{ "label": "7", "x": 16, "y": 2.25 },
{ "label": "8", "x": 17, "y": 2.25 },
{ "label": "9", "x": 18, "y": 2.25, "w": 1.5 },
{ "label": "+", "x": 19, "y": 2.25 },

{ "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 },
{ "label": "A", "x": 1.75, "y": 3.25 },
{ "label": "S", "x": 2.75, "y": 3.25 },
{ "label": "D", "x": 3.75, "y": 3.25 },
{ "label": "F", "x": 4.75, "y": 3.25 },
{ "label": "G", "x": 5.75, "y": 3.25 },
{ "label": "H", "x": 6.75, "y": 3.25 },
{ "label": "J", "x": 7.75, "y": 3.25 },
{ "label": "K", "x": 8.75, "y": 3.25 },
{ "label": "L", "x": 9.75, "y": 3.25 },
{ "label": ":", "x": 10.75, "y": 3.25 },
{ "label": "'", "x": 11.75, "y": 3.25 },
{ "label": "Enter", "x": 12.75, "y": 3.25 },
{ "label": "4", "x": 17, "y": 3.25, "w": 1.25 },
{ "label": "5", "x": 18, "y": 3.25 },
{ "label": "6", "x": 19, "y": 3.25 },

{ "label": "Shift", "x": 0, "y": 4.25, "w": 1.25 },
{ "label": "Z", "x": 2.25, "y": 4.25 },
{ "label": "X", "x": 3.25, "y": 4.25 },
{ "label": "C", "x": 4.25, "y": 4.25 },
{ "label": "V", "x": 5.25, "y": 4.25 },
{ "label": "B", "x": 6.25, "y": 4.25 },
{ "label": "N", "x": 7.25, "y": 4.25 },
{ "label": "M", "x": 8.25, "y": 4.25 },
{ "label": "<", "x": 9.25, "y": 4.25 },
{ "label": ">", "x": 10.25, "y": 4.25 },
{ "label": "?", "x": 11.25, "y": 4.25 },
{ "label": "Shift", "x": 12.25, "y": 4.25, "w": 1.75 },
{ "label": "Up", "x": 15, "y": 4.25 },
{ "label": "1", "x": 16, "y": 4.25 },
{ "label": "2", "x": 17, "y": 4.25 },
{ "label": "3", "x": 18, "y": 4.25 },
{ "label": "4", "x": 19, "y": 4.25 },

{ "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25 },
{ "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25 },
{ "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25 },
{ "label": "Space", "x": 3.75, "y": 5.25, "w": 6.25 },
{ "label": "Alt", "x": 10, "y": 5.25, "w": 1.25 },
{ "label": "Fn", "x": 12.5, "y": 5.25, "w": 1.25 },
{ "label": "Left", "x": 13.75, "y": 5.25, "w": 1.25 },

{ "label": "Down", "x": 15, "y": 5.25 },
{ "label": "Right", "x": 16, "y": 5.25 },
{ "label": "0", "x": 17, "y": 5.25 },
{ "label": ".", "x": 18, "y": 5.25 }
]
}
}
}
Loading