Skip to content

Commit

Permalink
Initial implementation of SRXE board and blinky example
Browse files Browse the repository at this point in the history
  • Loading branch information
twasilczyk committed Aug 23, 2021
1 parent 4d64b6c commit a173bde
Show file tree
Hide file tree
Showing 8 changed files with 147 additions and 1 deletion.
2 changes: 1 addition & 1 deletion .github/workflows/linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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: |
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -525,6 +525,7 @@ We have out-of-box support for many development boards including documentation.
</tr><tr>
<td align="center"><a href="https://modm.io/reference/module/modm-board-stm32_f4ve">STM32-F4VE</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-board-stm32f030_demo">STM32F030-DEMO</a></td>
<td align="center"><a href="https://modm.io/reference/module/modm-board-srxe">Smart Response XE</a></td>
</tr>
</table>
<!--/bsptable-->
Expand Down
24 changes: 24 additions & 0 deletions examples/srxe/blink/main.cpp
Original file line number Diff line number Diff line change
@@ -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 <modm/board.hpp>

int
main()
{
Board::initialize();

while (true)
{
Board::LedDebug::toggle();
modm::delay(1s);
}
}
9 changes: 9 additions & 0 deletions examples/srxe/blink/project.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<library>
<extends>modm:srxe</extends>
<options>
<option name="modm:build:build.path">../../../build/srxe/blink</option>
</options>
<modules>
<module>modm:build:scons</module>
</modules>
</library>
45 changes: 45 additions & 0 deletions src/modm/board/srxe/board.hpp
Original file line number Diff line number Diff line change
@@ -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 <modm/platform.hpp>

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<LedDebug>;

namespace Display {

using DC = GpioD6;
using CS = GpioE7;
using RST = GpioG2;

} // namespace Display

inline void
initialize() {
SystemClock::enable();

LedDebug::setOutput();

enableInterrupts();
}

} // namespace Board
15 changes: 15 additions & 0 deletions src/modm/board/srxe/board.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<library>
<repositories>
<repository>
<path>../../../../repo.lb</path>
</repository>
</repositories>

<options>
<option name="modm:target">atmega128rfa1-zu</option>
<option name="modm:platform:core:f_cpu">16000000</option>
</options>
<modules>
<module>modm:board:srxe</module>
</modules>
</library>
51 changes: 51 additions & 0 deletions src/modm/board/srxe/module.lb
Original file line number Diff line number Diff line change
@@ -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");
1 change: 1 addition & 0 deletions tools/scripts/synchronize_docs.py
Original file line number Diff line number Diff line change
Expand Up @@ -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")\
Expand Down

0 comments on commit a173bde

Please sign in to comment.