mirror of
				https://github.com/mfulz/qmk_firmware.git
				synced 2025-11-04 07:12:33 +01:00 
			
		
		
		
	Merge remote-tracking branch 'origin/master' into develop
This commit is contained in:
		
						commit
						d316331ab1
					
				
							
								
								
									
										19
									
								
								keyboards/xdboards/recon/config.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								keyboards/xdboards/recon/config.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					/* Copyright 2024 XD Boards <copyright@xdboards.xyz>
 | 
				
			||||||
 | 
					*
 | 
				
			||||||
 | 
					* 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 OLED_DISPLAY_128X64
 | 
				
			||||||
							
								
								
									
										201
									
								
								keyboards/xdboards/recon/keyboard.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										201
									
								
								keyboards/xdboards/recon/keyboard.json
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,201 @@
 | 
				
			|||||||
 | 
					{
 | 
				
			||||||
 | 
					    "manufacturer": "XD Boards",
 | 
				
			||||||
 | 
					    "keyboard_name": "xdboards/recon",
 | 
				
			||||||
 | 
					    "maintainer": "Xanimos",
 | 
				
			||||||
 | 
					    "development_board": "promicro",
 | 
				
			||||||
 | 
					    "diode_direction": "COL2ROW",
 | 
				
			||||||
 | 
					    "features": {
 | 
				
			||||||
 | 
					        "bootmagic": true,
 | 
				
			||||||
 | 
					        "extrakey": true,
 | 
				
			||||||
 | 
					        "nkro": true,
 | 
				
			||||||
 | 
					        "rgb_matrix": true,
 | 
				
			||||||
 | 
					        "oled": true
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "matrix_pins": {
 | 
				
			||||||
 | 
					        "cols": ["D4", "C6", "D7", "E6", "B4", "B5"],
 | 
				
			||||||
 | 
					        "rows": ["F4", "F5", "F6", "F7", "B1"]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "url": "https://xdboards.xyz",
 | 
				
			||||||
 | 
					    "tags": ["columnar", "split", "thumb cluster", "rgb", "encoder"],
 | 
				
			||||||
 | 
					    "usb": {
 | 
				
			||||||
 | 
					        "device_version": "1.0.0",
 | 
				
			||||||
 | 
					        "pid": "0x02F7",
 | 
				
			||||||
 | 
					        "vid": "0xFEED"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "encoder": {
 | 
				
			||||||
 | 
					        "rotary": [
 | 
				
			||||||
 | 
					            { "pin_a": "B6","pin_b": "B2" }
 | 
				
			||||||
 | 
					        ]
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "split": {
 | 
				
			||||||
 | 
					        "enabled": true,
 | 
				
			||||||
 | 
					        "serial": {
 | 
				
			||||||
 | 
					            "pin": "D3"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "handedness": {
 | 
				
			||||||
 | 
					            "pin": "D2"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "transport": {
 | 
				
			||||||
 | 
					            "sync": {
 | 
				
			||||||
 | 
					                "layer_state": true,
 | 
				
			||||||
 | 
					                "oled": true,
 | 
				
			||||||
 | 
					                "matrix_state": true,
 | 
				
			||||||
 | 
					                "modifiers": true
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "layouts": {
 | 
				
			||||||
 | 
					        "LAYOUT": {
 | 
				
			||||||
 | 
					            "layout": [
 | 
				
			||||||
 | 
					                {"label": "L01", "matrix": [0, 0], "x": 0, "y": 0.75},
 | 
				
			||||||
 | 
					                {"label": "L02", "matrix": [0, 1], "x": 1, "y": 0.75},
 | 
				
			||||||
 | 
					                {"label": "L03", "matrix": [0, 2], "x": 2, "y": 0.25},
 | 
				
			||||||
 | 
					                {"label": "L04", "matrix": [0, 3], "x": 3, "y": 0},
 | 
				
			||||||
 | 
					                {"label": "L05", "matrix": [0, 4], "x": 4, "y": 0.25},
 | 
				
			||||||
 | 
					                {"label": "L06", "matrix": [0, 5], "x": 5, "y": 0.5},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                {"label": "R06", "matrix": [5, 5], "x": 10.5, "y": 0.5},
 | 
				
			||||||
 | 
					                {"label": "R05", "matrix": [5, 4], "x": 11.5, "y": 0.25},
 | 
				
			||||||
 | 
					                {"label": "R04", "matrix": [5, 3], "x": 12.5, "y": 0},
 | 
				
			||||||
 | 
					                {"label": "R03", "matrix": [5, 2], "x": 13.5, "y": 0.25},
 | 
				
			||||||
 | 
					                {"label": "R02", "matrix": [5, 1], "x": 14.5, "y": 0.75},
 | 
				
			||||||
 | 
					                {"label": "R01", "matrix": [5, 0], "x": 15.5, "y": 0.75},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                {"label": "L07", "matrix": [1, 0], "x": 0, "y": 1.75},
 | 
				
			||||||
 | 
					                {"label": "L08", "matrix": [1, 1], "x": 1, "y": 1.75},
 | 
				
			||||||
 | 
					                {"label": "L09", "matrix": [1, 2], "x": 2, "y": 1.25},
 | 
				
			||||||
 | 
					                {"label": "L10", "matrix": [1, 3], "x": 3, "y": 1},
 | 
				
			||||||
 | 
					                {"label": "L11", "matrix": [1, 4], "x": 4, "y": 1.25},
 | 
				
			||||||
 | 
					                {"label": "L12", "matrix": [1, 5], "x": 5, "y": 1.5},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                {"label": "R12", "matrix": [6, 5], "x": 10.5, "y": 1.5},
 | 
				
			||||||
 | 
					                {"label": "R11", "matrix": [6, 4], "x": 11.5, "y": 1.25},
 | 
				
			||||||
 | 
					                {"label": "R10", "matrix": [6, 3], "x": 12.5, "y": 1},
 | 
				
			||||||
 | 
					                {"label": "R09", "matrix": [6, 2], "x": 13.5, "y": 1.25},
 | 
				
			||||||
 | 
					                {"label": "R08", "matrix": [6, 1], "x": 14.5, "y": 1.75},
 | 
				
			||||||
 | 
					                {"label": "R07", "matrix": [6, 0], "x": 15.5, "y": 1.75},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                {"label": "L13", "matrix": [2, 0], "x": 0, "y": 2.75},
 | 
				
			||||||
 | 
					                {"label": "L14", "matrix": [2, 1], "x": 1, "y": 2.75},
 | 
				
			||||||
 | 
					                {"label": "L15", "matrix": [2, 2], "x": 2, "y": 2.25},
 | 
				
			||||||
 | 
					                {"label": "L16", "matrix": [2, 3], "x": 3, "y": 2},
 | 
				
			||||||
 | 
					                {"label": "L17", "matrix": [2, 4], "x": 4, "y": 2.25},
 | 
				
			||||||
 | 
					                {"label": "L18", "matrix": [2, 5], "x": 5, "y": 2.5},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                {"label": "R18", "matrix": [7, 5], "x": 10.5, "y": 2.5},
 | 
				
			||||||
 | 
					                {"label": "R17", "matrix": [7, 4], "x": 11.5, "y": 2.25},
 | 
				
			||||||
 | 
					                {"label": "R16", "matrix": [7, 3], "x": 12.5, "y": 2},
 | 
				
			||||||
 | 
					                {"label": "R15", "matrix": [7, 2], "x": 13.5, "y": 2.25},
 | 
				
			||||||
 | 
					                {"label": "R14", "matrix": [7, 1], "x": 14.5, "y": 2.75},
 | 
				
			||||||
 | 
					                {"label": "R13", "matrix": [7, 0], "x": 15.5, "y": 2.75},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                {"label": "L27", "encoder": 0, "matrix": [3, 0], "x": 6, "y": 2.7},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                {"label": "R27", "encoder": 1, "matrix": [8, 0], "x": 9.5, "y": 2.7},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                {"label": "L19", "matrix": [3, 2], "x": 4.25, "y": 3.5},
 | 
				
			||||||
 | 
					                {"label": "L20", "matrix": [3, 3], "x": 5.25, "y": 3.75},
 | 
				
			||||||
 | 
					                {"label": "L21", "matrix": [3, 4], "x": 6.25, "y": 4},
 | 
				
			||||||
 | 
					                {"label": "L22", "matrix": [3, 5], "x": 7.25, "y": 4.25},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                {"label": "R22", "matrix": [8, 5], "x": 8, "y": 4.25},
 | 
				
			||||||
 | 
					                {"label": "R21", "matrix": [8, 4], "x": 9, "y": 4},
 | 
				
			||||||
 | 
					                {"label": "R20", "matrix": [8, 3], "x": 10, "y": 3.75},
 | 
				
			||||||
 | 
					                {"label": "R19", "matrix": [8, 2], "x": 11, "y": 3.5},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                {"label": "L23", "matrix": [4, 2], "x": 4.25, "y": 4.5},
 | 
				
			||||||
 | 
					                {"label": "L24", "matrix": [4, 3], "x": 5.25, "y": 4.75},
 | 
				
			||||||
 | 
					                {"label": "L25", "matrix": [4, 4], "x": 6.25, "y": 5},
 | 
				
			||||||
 | 
					                {"label": "L26", "matrix": [4, 5], "x": 7.25, "y": 5.25},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                {"label": "R26", "matrix": [9, 5], "x": 8, "y": 5.25},
 | 
				
			||||||
 | 
					                {"label": "R25", "matrix": [9, 4], "x": 9, "y": 5},
 | 
				
			||||||
 | 
					                {"label": "R24", "matrix": [9, 3], "x": 10, "y": 4.75},
 | 
				
			||||||
 | 
					                {"label": "R23", "matrix": [9, 2], "x": 11, "y": 4.5}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            ]
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "rgb_matrix": {
 | 
				
			||||||
 | 
					        "driver": "ws2812",
 | 
				
			||||||
 | 
					        "layout": [
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [0, 0], "x": 13, "y": 16},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [0, 1], "x": 21, "y": 16},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [0, 2], "x": 30, "y": 11},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [0, 3], "x": 38, "y": 6},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [0, 4], "x": 46, "y": 11},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [0, 5], "x": 55, "y": 12},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [1, 0], "x": 13, "y": 24},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [1, 1], "x": 21, "y": 24},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [1, 2], "x": 30, "y": 19},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [1, 3], "x": 38, "y": 14},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [1, 4], "x": 46, "y": 19},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [1, 5], "x": 55, "y": 20},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [2, 0], "x": 13, "y": 32},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [2, 1], "x": 21, "y": 32},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [2, 2], "x": 30, "y": 26},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [2, 3], "x": 38, "y": 22},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [2, 4], "x": 46, "y": 27},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [2, 5], "x": 55, "y": 28},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [3, 2], "x": 42, "y": 35},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [3, 3], "x": 54, "y": 37},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [3, 4], "x": 65, "y": 40},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [3, 5], "x": 76, "y": 45},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [4, 2], "x": 42, "y": 44},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [4, 3], "x": 52, "y": 45},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [4, 4], "x": 62, "y": 47},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [4, 5], "x": 71, "y": 52},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            {"flags": 2, "x": 68, "y": 36},
 | 
				
			||||||
 | 
					            {"flags": 2, "x": 57, "y": 8},
 | 
				
			||||||
 | 
					            {"flags": 2, "x": 31, "y": 6},
 | 
				
			||||||
 | 
					            {"flags": 2, "x": 14, "y": 12},
 | 
				
			||||||
 | 
					            {"flags": 2, "x": 28, "y": 37},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [5, 0], "x": 175, "y": 16},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [5, 1], "x": 166, "y": 16},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [5, 2], "x": 158, "y": 11},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [5, 3], "x": 149, "y": 6},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [5, 4], "x": 141, "y": 11},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [5, 5], "x": 133, "y": 12},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [6, 0], "x": 175, "y": 24},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [6, 1], "x": 166, "y": 24},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [6, 2], "x": 158, "y": 19},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [6, 3], "x": 149, "y": 14},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [6, 4], "x": 141, "y": 19},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [6, 5], "x": 133, "y": 20},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [7, 0], "x": 175, "y": 32},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [7, 1], "x": 166, "y": 32},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [7, 2], "x": 158, "y": 26},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [7, 3], "x": 149, "y": 22},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [7, 4], "x": 141, "y": 27},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [7, 5], "x": 133, "y": 28},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [8, 2], "x": 146, "y": 35},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [8, 3], "x": 134, "y": 37},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [8, 4], "x": 123, "y": 40},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [8, 5], "x": 113, "y": 45},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [9, 2], "x": 146, "y": 44},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [9, 3], "x": 136, "y": 45},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [9, 4], "x": 126, "y": 47},
 | 
				
			||||||
 | 
					            {"flags": 4, "matrix": [9, 5], "x": 117, "y": 52},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            {"flags": 2, "x": 121, "y": 36},
 | 
				
			||||||
 | 
					            {"flags": 2, "x": 130, "y": 8},
 | 
				
			||||||
 | 
					            {"flags": 2, "x": 156, "y": 6},
 | 
				
			||||||
 | 
					            {"flags": 2, "x": 172, "y": 12},
 | 
				
			||||||
 | 
					            {"flags": 2, "x": 158, "y": 37}
 | 
				
			||||||
 | 
					        ],
 | 
				
			||||||
 | 
					        "split_count": [31, 31],
 | 
				
			||||||
 | 
					        "animations": {
 | 
				
			||||||
 | 
					            "alphas_mods": true,
 | 
				
			||||||
 | 
					            "solid_reactive": true
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        "default": {
 | 
				
			||||||
 | 
					            "animation": "solid_reactive",
 | 
				
			||||||
 | 
					            "hue": 126
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										155
									
								
								keyboards/xdboards/recon/keymaps/default/keymap.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										155
									
								
								keyboards/xdboards/recon/keymaps/default/keymap.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,155 @@
 | 
				
			|||||||
 | 
					/* Copyright 2024 XD Boards <copyright@xdboards.xyz>
 | 
				
			||||||
 | 
					*
 | 
				
			||||||
 | 
					* 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/>.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include QMK_KEYBOARD_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum layers {
 | 
				
			||||||
 | 
					    _QWERTY,
 | 
				
			||||||
 | 
					    _SYMBOLS,
 | 
				
			||||||
 | 
					    _NUMBERS,
 | 
				
			||||||
 | 
					    _FUNCTION,
 | 
				
			||||||
 | 
					    _RGB
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// clang-format off
 | 
				
			||||||
 | 
					const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
				
			||||||
 | 
					    /*
 | 
				
			||||||
 | 
					    * ┌─────┬─────┬─────┬─────┬─────┬─────┐                                      ┌─────┬─────┬─────┬─────┬─────┬─────┐
 | 
				
			||||||
 | 
					    * │ ESC │  Q  │  W  │  E  │  R  │  T  │                                      │  Y  │  U  │  I  │  O  │  P  │ Bsp │
 | 
				
			||||||
 | 
					    * ├─────┼─────┼─────┼─────┼─────┼─────┤                                      ├─────┼─────┼─────┼─────┼─────┼─────┤
 | 
				
			||||||
 | 
					    * │ Tab │  A  │  S  │  D  │  F  │  G  │                                      │  H  │  J  │  K  │  L  │  ;  │ CTL │
 | 
				
			||||||
 | 
					    * ├─────┼─────┼─────┼─────┼─────┼─────┤                                      ├─────┼─────┼─────┼─────┼─────┼─────┤
 | 
				
			||||||
 | 
					    * │Shift│  Z  │  X  │  C  │  V  │  B  │                                      │  N  │  M  │  ,  │  .  │  /  │Shift│
 | 
				
			||||||
 | 
					    * └─────┴─────┴─────┴─────┴─────┴─────┘    ┌─────┐                 ┌─────┐   └─────┴─────┴─────┴─────┴─────┴─────┘
 | 
				
			||||||
 | 
					    *               ┌─────┐                    │Mute │                 │P Scr│                   ┌─────┐
 | 
				
			||||||
 | 
					    *               │ ALT ├─────┐              └─────┘                 └─────┘             ┌─────┤ Alt │
 | 
				
			||||||
 | 
					    *               ├─────┤  (  ├─────┐                                              ┌─────┤  )  ├─────┤
 | 
				
			||||||
 | 
					    *               │ GUI ├─────┤  {  ├─────┐                                  ┌─────┤  }  ├─────┤ App │
 | 
				
			||||||
 | 
					    *               └─────┤Space├─────┤  [  │                                  │  ]  ├─────┤ Ent ├─────┘
 | 
				
			||||||
 | 
					    *                     └─────┤ Fnc ├─────┤                                  ├─────┤ Sym ├─────┘
 | 
				
			||||||
 | 
					    *                           └─────┤Qwert│                                  │ Num ├─────┘
 | 
				
			||||||
 | 
					    *                                 └─────┘                                  └─────┘
 | 
				
			||||||
 | 
					    */
 | 
				
			||||||
 | 
					    [_QWERTY] = LAYOUT(
 | 
				
			||||||
 | 
					        KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,                               KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_BSPC,
 | 
				
			||||||
 | 
					        KC_TAB,  KC_A,    KC_S,    KC_D,    KC_F,    KC_G,                               KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_RCTL,
 | 
				
			||||||
 | 
					        KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,                               KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT,
 | 
				
			||||||
 | 
					                                                        KC_MUTE,                   KC_PSCR,
 | 
				
			||||||
 | 
					                          KC_LALT, KC_LPRN, KC_LCBR,  KC_LBRC,                        KC_RBRC,  KC_RCBR,  KC_RPRN,  KC_RALT,
 | 
				
			||||||
 | 
					                          KC_LGUI, KC_SPC,TO(_FUNCTION),TO(_QWERTY),                  TO(_NUMBERS),TO(_SYMBOLS),KC_ENT, KC_APP
 | 
				
			||||||
 | 
					    ),
 | 
				
			||||||
 | 
					    /*
 | 
				
			||||||
 | 
					     * ┌─────┬─────┬─────┬─────┬─────┬─────┐                                      ┌─────┬─────┬─────┬─────┬─────┬─────┐
 | 
				
			||||||
 | 
					     * │  `  │  !  │  @  │  #  │  $  │  %  │                                      │  +  │  "  │  '  │  |  │  \  │ Bsp │
 | 
				
			||||||
 | 
					     * ├─────┼─────┼─────┼─────┼─────┼─────┤                                      ├─────┼─────┼─────┼─────┼─────┼─────┤
 | 
				
			||||||
 | 
					     * │ Tab │  ^  │  &  │  *  │  (  │  )  │                                      │  =  │  <  │  >  │  :  │  ;  │ Ctl │
 | 
				
			||||||
 | 
					     * ├─────┼─────┼─────┼─────┼─────┼─────┤                                      ├─────┼─────┼─────┼─────┼─────┼─────┤
 | 
				
			||||||
 | 
					     * │Shift│  _  │  [  │  ]  │  {  │  }  │                                      │  -  │  ~  │  ,  │  .  │  ?  │Shift│
 | 
				
			||||||
 | 
					     * └─────┴─────┴─────┴─────┴─────┴─────┘    ┌─────┐                 ┌─────┐   └─────┴─────┴─────┴─────┴─────┴─────┘
 | 
				
			||||||
 | 
					     *               ┌─────┐                    │Mute │                 │P Scr│                   ┌─────┐
 | 
				
			||||||
 | 
					     *               │ ALT ├─────┐              └─────┘                 └─────┘             ┌─────┤ Alt │
 | 
				
			||||||
 | 
					     *               ├─────┤  (  ├─────┐                                              ┌─────┤  )  ├─────┤
 | 
				
			||||||
 | 
					     *               │ GUI ├─────┤  {  ├─────┐                                  ┌─────┤  }  ├─────┤ App │
 | 
				
			||||||
 | 
					     *               └─────┤Space├─────┤  [  │                                  │  ]  ├─────┤ Ent ├─────┘
 | 
				
			||||||
 | 
					     *                     └─────┤ Fnc ├─────┤                                  ├─────┤ Sym ├─────┘
 | 
				
			||||||
 | 
					     *                           └─────┤Qwert│                                  │ Num ├─────┘
 | 
				
			||||||
 | 
					     *                                 └─────┘                                  └─────┘
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    [_SYMBOLS] = LAYOUT(
 | 
				
			||||||
 | 
					       KC_GRAVE, KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC,                            KC_PLUS, KC_DQUO, KC_QUOTE,KC_PIPE, KC_BSLS, KC_BSPC,
 | 
				
			||||||
 | 
					       KC_TAB,   KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN,                            KC_EQUAL,KC_LT,   KC_GT,   KC_COLN, KC_SCLN, KC_RCTL,
 | 
				
			||||||
 | 
					       KC_LSFT,  KC_UNDS, KC_LBRC, KC_RBRC, KC_LCBR, KC_RCBR,                            KC_MINUS,KC_TILD, KC_COMM, KC_DOT,  KC_QUES, KC_NUM,
 | 
				
			||||||
 | 
					                                                       KC_MUTE,                   KC_PSCR,
 | 
				
			||||||
 | 
					                         KC_LALT, KC_LPRN, KC_LCBR, KC_LBRC,                          KC_RBRC,  KC_RCBR,  KC_RPRN,  KC_RALT,
 | 
				
			||||||
 | 
					                         KC_LGUI, KC_SPC,TO(_FUNCTION),TO(_QWERTY),                   TO(_NUMBERS),TO(_SYMBOLS),KC_ENT, KC_APP
 | 
				
			||||||
 | 
					    ),
 | 
				
			||||||
 | 
					    /*
 | 
				
			||||||
 | 
					     * ┌─────┬─────┬─────┬─────┬─────┬─────┐                                      ┌─────┬─────┬─────┬─────┬─────┬─────┐
 | 
				
			||||||
 | 
					     * │ Esc │  1  │  2  │  3  │  4  │  5  │                                      │  +  │  7  │  8  │  9  │  *  │ Bsp │
 | 
				
			||||||
 | 
					     * ├─────┼─────┼─────┼─────┼─────┼─────┤                                      ├─────┼─────┼─────┼─────┼─────┼─────┤
 | 
				
			||||||
 | 
					     * │ Ctl │  6  │  7  │  8  │  9  │  0  │                                      │  =  │  4  │  5  │  6  │  \  │  :  │
 | 
				
			||||||
 | 
					     * ├─────┼─────┼─────┼─────┼─────┼─────┤                                      ├─────┼─────┼─────┼─────┼─────┼─────┤
 | 
				
			||||||
 | 
					     * │Shift│     │     │     │     │     │                                      │  -  │  1  │  2  │  3  │  /  │Nm Lk│
 | 
				
			||||||
 | 
					     * └─────┴─────┴─────┴─────┴─────┴─────┘    ┌─────┐                 ┌─────┐   └─────┴─────┴─────┴─────┴─────┴─────┘
 | 
				
			||||||
 | 
					     *               ┌─────┐                    │Mute │                 │P Scr│                   ┌─────┐
 | 
				
			||||||
 | 
					     *               │ ALT ├─────┐              └─────┘                 └─────┘             ┌─────┤  0  │
 | 
				
			||||||
 | 
					     *               ├─────┤     ├─────┐                                              ┌─────┤  .  ├─────┤
 | 
				
			||||||
 | 
					     *               │ GUI ├─────┤     ├─────┐                                  ┌─────┤  ,  ├─────┤ App │
 | 
				
			||||||
 | 
					     *               └─────┤Space├─────┤     │                                  │     ├─────┤ Ent ├─────┘
 | 
				
			||||||
 | 
					     *                     └─────┤ Fnc ├─────┤                                  ├─────┤ Sym ├─────┘
 | 
				
			||||||
 | 
					     *                           └─────┤Qwert│                                  │ Num ├─────┘
 | 
				
			||||||
 | 
					     *                                 └─────┘                                  └─────┘
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    [_NUMBERS] = LAYOUT(
 | 
				
			||||||
 | 
					       KC_ESC,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,                               KC_PPLS,  KC_P7,   KC_P8,   KC_P9,   KC_PAST, KC_BSPC,
 | 
				
			||||||
 | 
					       KC_LCTL, KC_6,    KC_7,    KC_8,    KC_9,    KC_0,                               KC_PEQL,  KC_P4,   KC_P5,   KC_P6,   KC_BSLS, KC_COLN,
 | 
				
			||||||
 | 
					       KC_LSFT, KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,                              KC_PMNS,  KC_P1,   KC_P2,   KC_P3,   KC_PSLS, KC_NUM,
 | 
				
			||||||
 | 
					                                                       KC_MUTE,                   KC_PSCR,
 | 
				
			||||||
 | 
					                         KC_LALT, KC_NO,   KC_NO,   KC_NO,                           KC_NO,  KC_PCMM, KC_PDOT,  KC_P0,
 | 
				
			||||||
 | 
					                         KC_LGUI, KC_SPC,TO(_FUNCTION),TO(_QWERTY),                   TO(_NUMBERS),TO(_SYMBOLS),KC_ENT, KC_APP
 | 
				
			||||||
 | 
					    ),
 | 
				
			||||||
 | 
					    /*
 | 
				
			||||||
 | 
					     * ┌─────┬─────┬─────┬─────┬─────┬─────┐                                      ┌─────┬─────┬─────┬─────┬─────┬─────┐
 | 
				
			||||||
 | 
					     * │  F1 │  F2 │  F3 │  F4 │  F5 │  F6 │                                      │  F7 │  F8 │  F9 │ F10 │ F11 │ F12 │
 | 
				
			||||||
 | 
					     * ├─────┼─────┼─────┼─────┼─────┼─────┤                                      ├─────┼─────┼─────┼─────┼─────┼─────┤
 | 
				
			||||||
 | 
					     * │Caps │     │     │  ↑  │     │     │                                      │ Ins │ Home│Pg Up│Pause│     │     │
 | 
				
			||||||
 | 
					     * ├─────┼─────┼─────┼─────┼─────┼─────┤                                      ├─────┼─────┼─────┼─────┼─────┼─────┤
 | 
				
			||||||
 | 
					     * │Shift│     │  ←  │  ↓  │  →  │     │                                      │ Del │ End │Pg Dn│     │     │     │
 | 
				
			||||||
 | 
					     * └─────┴─────┴─────┴─────┴─────┴─────┘    ┌─────┐                 ┌─────┐   └─────┴─────┴─────┴─────┴─────┴─────┘
 | 
				
			||||||
 | 
					     *               ┌─────┐                    │Mute │                 │P Scr│                   ┌─────┐
 | 
				
			||||||
 | 
					     *               │ ALT ├─────┐              └─────┘                 └─────┘             ┌─────┤  0  │
 | 
				
			||||||
 | 
					     *               ├─────┤     ├─────┐                                              ┌─────┤  .  ├─────┤
 | 
				
			||||||
 | 
					     *               │ GUI ├─────┤     ├─────┐                                  ┌─────┤     ├─────┤ App │
 | 
				
			||||||
 | 
					     *               └─────┤Space├─────┤     │                                  │     ├─────┤ Ent ├─────┘
 | 
				
			||||||
 | 
					     *                     └─────┤ RGB ├─────┤                                  ├─────┤ Sym ├─────┘
 | 
				
			||||||
 | 
					     *                           └─────┤Qwert│                                  │ Num ├─────┘
 | 
				
			||||||
 | 
					     *                                 └─────┘                                  └─────┘
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    [_FUNCTION] = LAYOUT(
 | 
				
			||||||
 | 
					       KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,                              KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,
 | 
				
			||||||
 | 
					       KC_CAPS,   KC_NO,   KC_NO,   KC_UP,   KC_NO,   KC_NO,                              KC_INS,  KC_HOME, KC_PGUP, KC_PAUS, KC_NO,   KC_NO,
 | 
				
			||||||
 | 
					       KC_LSFT, KC_NO,   KC_LEFT, KC_DOWN, KC_RIGHT,KC_NO,                              KC_DEL,  KC_END,  KC_PGDN, KC_NO,   KC_NO,   KC_RSFT,
 | 
				
			||||||
 | 
					                                                       KC_MUTE,                   KC_PSCR,
 | 
				
			||||||
 | 
					                         KC_LALT, KC_NO,   KC_NO,   KC_NO,                           KC_NO,  KC_NO,  KC_DOT,  KC_0,
 | 
				
			||||||
 | 
					                         KC_LGUI, KC_SPC,MO(_RGB),TO(_QWERTY),                   TO(_NUMBERS),TO(_SYMBOLS),KC_ENT, KC_APP
 | 
				
			||||||
 | 
					    ),
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * ┌─────┬─────┬─────┬─────┬─────┬─────┐                                      ┌─────┬─────┬─────┬─────┬─────┬─────┐
 | 
				
			||||||
 | 
					 * │     │     │     │     │     │     │                                      │     │     │     │     │     │     │
 | 
				
			||||||
 | 
					 * ├─────┼─────┼─────┼─────┼─────┼─────┤                                      ├─────┼─────┼─────┼─────┼─────┼─────┤
 | 
				
			||||||
 | 
					 * │     │Mode↑│Hue ↑│Sat ↑│Val ↑│Spd ↑│                                      │     │     │     │     │     │     │
 | 
				
			||||||
 | 
					 * ├─────┼─────┼─────┼─────┼─────┼─────┤                                      ├─────┼─────┼─────┼─────┼─────┼─────┤
 | 
				
			||||||
 | 
					 * │OnOff│Mode↓│Hue ↓│Sat ↓│Val ↓│Spd ↓│                                      │     │     │     │     │     │     │
 | 
				
			||||||
 | 
					 * └─────┴─────┴─────┴─────┴─────┴─────┘    ┌─────┐                 ┌─────┐   └─────┴─────┴─────┴─────┴─────┴─────┘
 | 
				
			||||||
 | 
					 *               ┌─────┐                    │     │                 │     │                   ┌─────┐
 | 
				
			||||||
 | 
					 *               │     ├─────┐              └─────┘                 └─────┘             ┌─────┤     │
 | 
				
			||||||
 | 
					 *               ├─────┤     ├─────┐                                              ┌─────┤     ├─────┤
 | 
				
			||||||
 | 
					 *               │     ├─────┤     ├─────┐                                  ┌─────┤     ├─────┤     │
 | 
				
			||||||
 | 
					 *               └─────┤     ├─────┤     │                                  │     ├─────┤     ├─────┘
 | 
				
			||||||
 | 
					 *                     └─────┤     ├─────┤                                  ├─────┤     ├─────┘
 | 
				
			||||||
 | 
					 *                           └─────┤     │                                  │     ├─────┘
 | 
				
			||||||
 | 
					 *                                 └─────┘                                  └─────┘
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					    [_RGB] = LAYOUT(
 | 
				
			||||||
 | 
					       KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,                              KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,
 | 
				
			||||||
 | 
					       KC_NO,   RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI,                            KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,
 | 
				
			||||||
 | 
					       RGB_TOG, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD,                            KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,
 | 
				
			||||||
 | 
					                                                       KC_NO,                     KC_NO,
 | 
				
			||||||
 | 
					                         KC_NO  , KC_NO,   KC_NO,   KC_NO,                           KC_NO  , KC_NO,   KC_NO,   KC_NO,
 | 
				
			||||||
 | 
					                         KC_NO  , KC_NO,   KC_NO,   KC_NO,                           KC_NO  , KC_NO,   KC_NO,   KC_NO
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					// clang-format on
 | 
				
			||||||
							
								
								
									
										24
									
								
								keyboards/xdboards/recon/post_config.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								keyboards/xdboards/recon/post_config.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,24 @@
 | 
				
			|||||||
 | 
					/* Copyright 2024 XD Boards <copyright@xdboards.xyz>
 | 
				
			||||||
 | 
					*
 | 
				
			||||||
 | 
					* 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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef USE_SEA_PICRO_RGB_PIN
 | 
				
			||||||
 | 
					    // Dedicated 5V RGB signal pin on sea-picro
 | 
				
			||||||
 | 
					#   define WS2812_DI_PIN 25U
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#   define WS2812_DI_PIN B3
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										3
									
								
								keyboards/xdboards/recon/post_rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								keyboards/xdboards/recon/post_rules.mk
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,3 @@
 | 
				
			|||||||
 | 
					ifeq ($(strip $(USE_SEA_PICRO_RGB_PIN)), yes)
 | 
				
			||||||
 | 
						OPT_DEFS += -DUSE_SEA_PICRO_RGB_PIN
 | 
				
			||||||
 | 
					endif
 | 
				
			||||||
							
								
								
									
										57
									
								
								keyboards/xdboards/recon/readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								keyboards/xdboards/recon/readme.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,57 @@
 | 
				
			|||||||
 | 
					# xdboards/recon
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					A split low profile keyboard with hotswap sockets that is built around the Sea-Picro microcontroller for it's dedicated RGB pin.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* Keyboard Maintainer: [Daniel Weeks](https://github.com/Xanimos)
 | 
				
			||||||
 | 
					* Hardware Supported: Recon PCB, Sea-Picro, backwards compatibility with ProMicro pin layout.
 | 
				
			||||||
 | 
					* Hardware Availability: [xdboards.xyz shop](https://www.xdboards.xyz)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Make example for this keyboard (after setting up your build environment):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    make xdboards/recon:default
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) 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](https://docs.qmk.fm/#/newbs).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Bootloader
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Enter the bootloader in 2 ways:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* **Physical reset button**: Briefly press the button on the side of the PCB
 | 
				
			||||||
 | 
					* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
 | 
				
			||||||
 | 
					* **Boot Magic**: Hold down the boot magic key while plugging in the USB cable
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Setup for Sea-Picro microcontrollers
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					To take advantage of the dedicated 5v RGB pin on the sea-picro you must create your keymap
 | 
				
			||||||
 | 
					and then add a `rules.mk` file and copy and paste the following:
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					CONVERT_TO = rp2040_ce
 | 
				
			||||||
 | 
					USE_SEA_PICRO_RGB_PIN = yes
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If you do not want to use the dedicated 5v RGB header then follow the Setup for non Sea-Picro microcontrollers.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Setup for non Sea-Picro microcontrollers
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Solder the "Pro-Micro Compatibility" jumper on the bottom of both boards.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					In your keymap directory:
 | 
				
			||||||
 | 
					  - add/modify a `rules.mk` file
 | 
				
			||||||
 | 
					    - Remove or set `CONVERT_TO` to desired converter see [QMK Documentation](https://docs.qmk.fm/#/feature_converters)
 | 
				
			||||||
 | 
					    - Remove or set `USE_SEA_PICRO_RGB_PIN` to `no`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Setup for Underglow rgb only
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Solder the "Per-Key RGB Skip" jumper on the bottom of both boards. Do not install per key RGBs.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					In your keymap directory:
 | 
				
			||||||
 | 
					  - add/modify a `config.h` file and insert 
 | 
				
			||||||
 | 
					    ```
 | 
				
			||||||
 | 
					    #define RGB_MATRIX_SPLIT { 5, 5 }
 | 
				
			||||||
 | 
					    #define RGB_MATRIX_LED_COUNT 10
 | 
				
			||||||
 | 
					    ```
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
							
								
								
									
										118
									
								
								keyboards/xdboards/recon/recon.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										118
									
								
								keyboards/xdboards/recon/recon.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,118 @@
 | 
				
			|||||||
 | 
					/* Copyright 2024 XD Boards <copyright@xdboards.xyz>
 | 
				
			||||||
 | 
					*
 | 
				
			||||||
 | 
					* 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/>.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "quantum.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef OLED_ENABLE
 | 
				
			||||||
 | 
					oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
 | 
				
			||||||
 | 
					   return OLED_ROTATION_180;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool oled_task_kb(void) {
 | 
				
			||||||
 | 
					    if (!oled_task_user()) {
 | 
				
			||||||
 | 
					       return false;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    if (is_keyboard_master()) {
 | 
				
			||||||
 | 
					        // Host Keyboard Layer Status
 | 
				
			||||||
 | 
					        oled_write_P(PSTR("Layer: "), false);
 | 
				
			||||||
 | 
					        switch (get_highest_layer(layer_state | default_layer_state)) {
 | 
				
			||||||
 | 
					            case 0:
 | 
				
			||||||
 | 
					                oled_write_P(PSTR("QWERTY\n"), false);
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            case 1:
 | 
				
			||||||
 | 
					                oled_write_P(PSTR("Symbols\n"), false);
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            case 2:
 | 
				
			||||||
 | 
					                oled_write_P(PSTR("Numbers\n"), false);
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            case 3:
 | 
				
			||||||
 | 
					                oled_write_P(PSTR("Function\n"), false);
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            case 4:
 | 
				
			||||||
 | 
					                oled_write_P(PSTR("RGB\n"), false);
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
 | 
					            default:
 | 
				
			||||||
 | 
					                oled_write_P(PSTR("Undefined\n"), false);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        // Host Keyboard LED Status
 | 
				
			||||||
 | 
					        led_t led_usb_state = host_keyboard_led_state();
 | 
				
			||||||
 | 
					        oled_write_P(PSTR("CAPSLCK"), led_usb_state.caps_lock);
 | 
				
			||||||
 | 
					        oled_write_P(PSTR(" "), false);
 | 
				
			||||||
 | 
					        oled_write_P(PSTR("NUMLCK"), led_usb_state.num_lock);
 | 
				
			||||||
 | 
					        oled_write_P(PSTR(" "), false);
 | 
				
			||||||
 | 
					        oled_write_P(PSTR("SCRLCK"), led_usb_state.scroll_lock);
 | 
				
			||||||
 | 
					        oled_write_P(PSTR("\n"), false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        oled_write_P(PSTR("\n"), false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        static const char PROGMEM qmk_logo[] = {
 | 
				
			||||||
 | 
					            0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94,
 | 
				
			||||||
 | 
					            0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4,
 | 
				
			||||||
 | 
					            0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        oled_write_P(qmk_logo, false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        // clang-format off
 | 
				
			||||||
 | 
					        static const char PROGMEM recon_logo[] = {
 | 
				
			||||||
 | 
					            0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,254,254,254,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 | 
				
			||||||
 | 
					            0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,192,224,240,240,248,252,124,126, 62, 62, 31, 31, 31,  0,  0,  0,255,255,255,  0,  0, 31, 31, 31, 62, 62, 62,124,252,248,248,240,224,192,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 | 
				
			||||||
 | 
					            0,  0,  0,  0,  0,  0,  0,  0,128,224,248,252,255,127, 31, 15,  7,  3,  1,  0,  0,  0,  0,128,192,224,224,240,240,240,115,115,115,240,240,224,224,192,192,128,  0,  0,  0,  0,  1,  3,  7, 15, 63,255,254,252,240,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 | 
				
			||||||
 | 
					          192,192,192,192,192,192,192,204,207,207,207,207,193,192,192,192,192,  0,  0,224,248,254,255, 15,  7,  3,  1,  0,192,224,224,224,224,192,  0,  1,  1,  3,  7, 63,255,252,240,  0,  0,192,192,192,192,192,199,207,207,207,207,192,192,192,192,192,192,192,128,  0,254,254,254,254,254,  0,134,254,254,252,124, 48,  0,  0,254,254,254,254,254,252,134,230,222, 62,  0,224,248,252,252,254,  6,  2,  6, 14, 62,126,  0,224,248,252,254,254,  6,  6,254,254,252,248,240,  0,  6,238,254,126,254,254,252,240,224,134,254, 14,  6,  0,
 | 
				
			||||||
 | 
					            3,  3,  3,  3,  3,  3,  3, 51,243,243,243,243,131,  3,  3,  3,  3,  0,  0,  7, 31,127,255,240,224,192,128,  0,  1,  7,  7,  7,  7,  3,  0,128,128,192,224,252,255, 63, 15,  0,  0,  3,  3,  3,  3,  3,227,243,243,243,243,  3,  3,  3,  3,  3,  3,  3,  1, 64,127,127,127,127,127, 97,  3,127,127,127,126,120, 48,  0,127,127,127,127,127, 63, 97,103,119,124, 48, 15, 31, 63,127,127, 96, 64, 96, 96, 48, 24,  0, 15, 31, 63,127,127, 64, 64,127,127, 63, 63, 15,  0, 64,127,127, 96,  1,  7, 15, 63,127,127,127,  0,  0,  0,
 | 
				
			||||||
 | 
					            0,  0,  0,  0,  0,  0,  0,  0,  1,  7, 31, 63,255,254,248,240,224,192,128,  0,  0,  0,  0,  1,  3,  7,  7,  7, 15, 15,207,206,207, 15, 15,  7,  7,  3,  3,  1,  0,  0,  0,  0,128,192,224,248,252,255,127, 63, 15,  7,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 | 
				
			||||||
 | 
					            0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  3,  7, 15, 15, 31, 63, 62,126,124,124,248,248,248,  0,  0,  0,255,255,255,  0,  0,248,248,248,124,124,124, 62, 63, 31, 15, 15,  7,  3,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 | 
				
			||||||
 | 
					            0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,127,127,127,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					        // clang-format on
 | 
				
			||||||
 | 
					        oled_write_raw_P(recon_logo, sizeof(recon_logo));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return false;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef ENCODER_ENABLE
 | 
				
			||||||
 | 
					bool encoder_update_kb(uint8_t index, bool clockwise) {
 | 
				
			||||||
 | 
					    if (!encoder_update_user(index, clockwise)) {
 | 
				
			||||||
 | 
					       return false;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (index == 0) {
 | 
				
			||||||
 | 
					        // Volume control
 | 
				
			||||||
 | 
					        if (clockwise) {
 | 
				
			||||||
 | 
					            tap_code(KC_VOLU);
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            tap_code(KC_VOLD);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    } else if (index == 1) {
 | 
				
			||||||
 | 
					       // Page up/Page down
 | 
				
			||||||
 | 
					        if (clockwise) {
 | 
				
			||||||
 | 
					#ifdef MOUSEKEY_ENABLE
 | 
				
			||||||
 | 
					            tap_code(KC_WH_U);
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					            tap_code(KC_PGUP);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					#ifdef MOUSEKEY_ENABLE
 | 
				
			||||||
 | 
					            tap_code(KC_WH_D);
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					            tap_code(KC_PGDN);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return true;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user