diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml
index a5452548cc..6722d31c22 100644
--- a/.github/workflows/linux.yml
+++ b/.github/workflows/linux.yml
@@ -176,7 +176,7 @@ jobs:
- name: Examples AVR Series
if: always()
run: |
- (cd examples && ../tools/scripts/examples_compile.py avr arduino_uno arduino_nano)
+ (cd examples && ../tools/scripts/examples_compile.py avr arduino_uno arduino_nano srxe)
- name: Compile AVR Unittests AT90CAN
if: always()
run: |
diff --git a/README.md b/README.md
index 4d7b50d39b..93364df869 100644
--- a/README.md
+++ b/README.md
@@ -525,6 +525,7 @@ We have out-of-box support for many development boards including documentation.
STM32-F4VE |
STM32F030-DEMO |
+Smart Response XE |
diff --git a/examples/srxe/blink/main.cpp b/examples/srxe/blink/main.cpp
new file mode 100644
index 0000000000..f9c7723690
--- /dev/null
+++ b/examples/srxe/blink/main.cpp
@@ -0,0 +1,24 @@
+/*
+ * Copyright (c) 2021, Tomasz Wasilczyk
+ *
+ * This file is part of the modm project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+// ----------------------------------------------------------------------------
+
+#include
+
+int
+main()
+{
+ Board::initialize();
+
+ while (true)
+ {
+ Board::LedDebug::toggle();
+ modm::delay(1s);
+ }
+}
diff --git a/examples/srxe/blink/project.xml b/examples/srxe/blink/project.xml
new file mode 100644
index 0000000000..5b21e4583c
--- /dev/null
+++ b/examples/srxe/blink/project.xml
@@ -0,0 +1,9 @@
+
+ modm:srxe
+
+
+
+
+ modm:build:scons
+
+
diff --git a/src/modm/board/srxe/board.hpp b/src/modm/board/srxe/board.hpp
new file mode 100644
index 0000000000..aabd12dac7
--- /dev/null
+++ b/src/modm/board/srxe/board.hpp
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2021, Tomasz Wasilczyk
+ *
+ * This file is part of the modm project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+// ----------------------------------------------------------------------------
+
+#pragma once
+
+#include
+
+using namespace modm::platform;
+
+/// @ingroup modm_board_srxe
+namespace Board {
+
+using namespace modm::literals;
+
+using SystemClock = modm::platform::SystemClock;
+
+using LedDebug = GpioB0;
+using Leds = SoftwareGpioPort;
+
+namespace Display {
+
+using DC = GpioD6;
+using CS = GpioE7;
+using RST = GpioG2;
+
+} // namespace Display
+
+inline void
+initialize() {
+ SystemClock::enable();
+
+ LedDebug::setOutput();
+
+ enableInterrupts();
+}
+
+} // namespace Board
diff --git a/src/modm/board/srxe/board.xml b/src/modm/board/srxe/board.xml
new file mode 100644
index 0000000000..1cf458ea1f
--- /dev/null
+++ b/src/modm/board/srxe/board.xml
@@ -0,0 +1,15 @@
+
+
+
+ ../../../../repo.lb
+
+
+
+
+
+
+
+
+ modm:board:srxe
+
+
diff --git a/src/modm/board/srxe/module.lb b/src/modm/board/srxe/module.lb
new file mode 100644
index 0000000000..7519d18efd
--- /dev/null
+++ b/src/modm/board/srxe/module.lb
@@ -0,0 +1,51 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+#
+# Copyright (c) 2021, Tomasz Wasilczyk
+#
+# This file is part of the modm project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+# -----------------------------------------------------------------------------
+
+def init(module):
+ module.name = ":board:srxe"
+ module.description = """
+# Smart Response XE
+
+Smart Response XE is an obsolete classroom clicker, sold for as little as 5 USD on well known online auction site.
+It's a compelling platform that's fully reverse engineered and ready to hack out of box, featuring:
+ - ATmega128RFA1 MCU
+ - 384x160 LCD display
+ - QWERTY keyboard
+ - External 1M SPI flash
+ - Exposed ISP and JTAG headers
+ - ZigBee transciever w/ antennas
+ - Powered by 4 AAA batteries
+ - Optional (unpopulated):
+ - RS232
+ - Debug LED
+ - Buzzer
+ - Accelerometer
+"""
+
+def prepare(module, options):
+ if not options[":target"].partname.startswith("atmega128rfa1"):
+ return False
+
+ module.depends(
+ ":architecture:clock",
+ ":architecture:interrupt",
+ ":debug",
+ ":platform:clock",
+ ":platform:core",
+ ":platform:gpio",
+ ":platform:uart:0")
+ return True
+
+def build(env):
+ env.outbasepath = "modm/src/modm/board"
+ env.copy('.')
+ env.collect(":build:default.avrdude.programmer", "usbasp");
diff --git a/tools/scripts/synchronize_docs.py b/tools/scripts/synchronize_docs.py
index 23db3c7ff2..ca92ae0bca 100755
--- a/tools/scripts/synchronize_docs.py
+++ b/tools/scripts/synchronize_docs.py
@@ -52,6 +52,7 @@ def name(raw_name):
.replace("ARDUINO-UNO", "Arduino UNO")\
.replace("ARDUINO-NANO", "Arduino NANO")\
.replace("RASPBERRYPI", "Raspberry Pi")\
+ .replace("SRXE", "Smart Response XE")\
.replace("GENERIC", "Generic")\
.replace("LINUX", "Linux")\
.replace("WINDOWS", "Windows")\