diff --git a/epicardium/main.c b/epicardium/main.c
index 4547d544858afb43e9abcc0c5d26c845a65b3b03..ab3811c05c96b661d0837a8bc2a86d750d2cbc36 100644
--- a/epicardium/main.c
+++ b/epicardium/main.c
@@ -9,7 +9,7 @@
 #include "pmic.h"
 #include "leds.h"
 #include "api/dispatcher.h"
-#include "serial.h"
+#include "modules/serial.h"
 
 #include "FreeRTOS.h"
 #include "task.h"
diff --git a/epicardium/meson.build b/epicardium/meson.build
index 0f1cfddb7633a32f6e04e82e4c27d79a3d3c2155..ea43d08b31f400e4b1eb77ea3306efc736ea0cf6 100644
--- a/epicardium/meson.build
+++ b/epicardium/meson.build
@@ -67,7 +67,6 @@ elf = executable(
   name + '.elf',
   'cdcacm.c',
   'main.c',
-  'serial.c',
   'support.c',
   module_sources,
   dependencies: [libcard10, max32665_startup_core0, maxusb],
diff --git a/epicardium/modules/meson.build b/epicardium/modules/meson.build
index 8a8e39ba70ff203e751777471334165e57b5ed1a..d198fc5ed012fe3acdc597157ae93ba5cc56d36e 100644
--- a/epicardium/modules/meson.build
+++ b/epicardium/modules/meson.build
@@ -1,3 +1,4 @@
 module_sources = files(
   'leds.c',
+  'serial.c',
 )
diff --git a/epicardium/serial.c b/epicardium/modules/serial.c
similarity index 100%
rename from epicardium/serial.c
rename to epicardium/modules/serial.c
diff --git a/epicardium/serial.h b/epicardium/modules/serial.h
similarity index 100%
rename from epicardium/serial.h
rename to epicardium/modules/serial.h