diff --git a/arch/esp32/esp32c3.ini b/arch/esp32/esp32c3.ini
index 130664f72..cca95f48a 100644
--- a/arch/esp32/esp32c3.ini
+++ b/arch/esp32/esp32c3.ini
@@ -1,6 +1,6 @@
[esp32c3_base]
extends = arduino_base
-platform = platformio/espressif32@^6.0.0
+platform = platformio/espressif32@^6.1.0
build_src_filter =
${arduino_base.build_src_filter} - - - -
upload_speed = 961200
diff --git a/variants/ai-c3/platformio.ini b/variants/ai-c3/platformio.ini
new file mode 100644
index 000000000..76ecd9f0f
--- /dev/null
+++ b/variants/ai-c3/platformio.ini
@@ -0,0 +1,8 @@
+[env:ai-c3]
+extends = esp32c3_base
+board = esp32-c3-devkitm-1
+board_level = extra
+build_flags =
+ ${esp32_base.build_flags}
+ -D PRIVATE_HW
+ -I variants/ai-c3
diff --git a/variants/ai-c3/variant.h b/variants/ai-c3/variant.h
new file mode 100644
index 000000000..05f0abb51
--- /dev/null
+++ b/variants/ai-c3/variant.h
@@ -0,0 +1,26 @@
+// #define BUTTON_NEED_PULLUP // if set we need to turn on the internal CPU pullup during sleep
+
+#define I2C_SDA 8
+#define I2C_SCL 9
+
+#define BUTTON_PIN 0
+
+#define USE_RF95
+#undef RF95_SCK
+#define RF95_SCK 4
+#undef RF95_MISO
+#define RF95_MISO 5
+#undef RF95_MOSI
+#define RF95_MOSI 6
+#undef RF95_NSS
+#define RF95_NSS 7
+
+#define LORA_DIO0 10 // a No connect on the SX1262 module
+#define LORA_DIO1 3 // a No connect on the SX1262 module
+#define LORA_RESET 2
+
+#undef GPS_RX_PIN
+#undef GPS_TX_PIN
+
+#define HAS_SCREEN 0
+#define HAS_GPS 0