From 3b95f97a19847786550c7813d6a6a5731d525620 Mon Sep 17 00:00:00 2001
From: Pascal J <3cwrucjat@relay.firefox.com>
Date: Fri, 30 Sep 2022 22:08:10 +0200
Subject: [PATCH] [Keyboard] handwired/tractyl_manuform: Arduino Micro (#17199)

Co-authored-by: Drashna Jaelre <drashna@live.com>
---
 .../tractyl_manuform/5x6_right/5x6_right.h    |  2 +
 .../5x6_right/arduinomicro/arduinomicro.h     | 19 ++++++++
 .../5x6_right/arduinomicro/config.h           | 44 +++++++++++++++++++
 .../5x6_right/arduinomicro/rules.mk           |  5 +++
 4 files changed, 70 insertions(+)
 create mode 100644 keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/arduinomicro.h
 create mode 100644 keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/config.h
 create mode 100644 keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/rules.mk

diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/5x6_right.h b/keyboards/handwired/tractyl_manuform/5x6_right/5x6_right.h
index f171d41181..10b8767056 100644
--- a/keyboards/handwired/tractyl_manuform/5x6_right/5x6_right.h
+++ b/keyboards/handwired/tractyl_manuform/5x6_right/5x6_right.h
@@ -26,6 +26,8 @@
 #    include "teensy2pp.h"
 #elif defined(KEYBOARD_handwired_tractyl_manuform_5x6_right_elite_c)
 #    include "elite_c.h"
+#elif defined(KEYBOARD_handwired_tractyl_manuform_5x6_right_arduinomicro)
+#    include "arduinomicro.h"
 #endif
 
 #include "quantum.h"
diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/arduinomicro.h b/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/arduinomicro.h
new file mode 100644
index 0000000000..525b0378b4
--- /dev/null
+++ b/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/arduinomicro.h
@@ -0,0 +1,19 @@
+/* Copyright 2020 Christopher Courtney, aka Drashna Jael're  (@drashna) <drashna@live.com>
+ *
+ * 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 "5x6_right.h"
diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/config.h b/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/config.h
new file mode 100644
index 0000000000..e43361cf64
--- /dev/null
+++ b/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/config.h
@@ -0,0 +1,44 @@
+/*
+Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2015 Jack Humbert
+
+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 PRODUCT "Tractyl Manuform(5x6) Aruino Micro (r)/ Pro Micro (l)"
+
+/* key matrix size */
+// Rows are doubled-up
+#define MATRIX_ROWS 12
+#define MATRIX_COLS 6
+
+// wiring of each half
+// left
+#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5 }
+#define MATRIX_ROW_PINS { F6, F7, B1, B3, B2, B6 }
+// right
+#define MATRIX_COL_PINS_RIGHT { D6, D7, B4, D3, C6, C7 }
+#define MATRIX_ROW_PINS_RIGHT { D4, B7, F7, B6, B5, F6 }
+
+#define DIODE_DIRECTION COL2ROW
+
+/* serial.c configuration for split keyboard */
+//#undef USE_I2C
+#define SOFT_SERIAL_PIN D0
+#define MASTER_RIGHT
+
+/* PMW3360 Settings */
+#define POINTING_DEVICE_CS_PIN B0
diff --git a/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/rules.mk b/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/rules.mk
new file mode 100644
index 0000000000..cf663a7ed6
--- /dev/null
+++ b/keyboards/handwired/tractyl_manuform/5x6_right/arduinomicro/rules.mk
@@ -0,0 +1,5 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = caterina