Skip to content

These module docs are in beta and may be incomplete.


Discovery kit with STM32F469NI MCU

This BSPs Board::initialize() sets the board up with these settings:

  • 180MHz CPU clock frequency in overdrive mode.
  • 90MHz APB2 and 45MHz APB1 clock frequency.
  • MODM_LOGGER initialized at 115.2kBaud outputting on STLink.
  • 16MB SDRAM initialized for heap.
  • Disables the display by default.

You can enable and use the on-board display in two ways:

  1. Use the modm::GraphicDisplay returned by Board::getDisplay(), which initializes the display on first call and allocates the framebuffer in the external SDRAM. This is the simplest option.
  2. Call Board::initializeDisplay() and then provide your own display buffer with Board::setDisplayBuffer(void*).


No double-buffering is implemented, so you may notice some tearing if you update the display fast enough.

Access to the capacitive touchscreen is provided in the Board::ft6 namespace. Call Board::initializeTouchscreen() to setup the peripherals.

Product Link:


// Struct
struct Board::systemClock;

// Function
modm::GraphicDisplay& Board::getDisplay();
void Board::initialize();
void Board::initializeDisplay();
void Board::initializeTouchscreen();
void Board::setDisplayBuffer(void *buffer);
void* Board::getDisplayBuffer();

// Typedef
using Board::A0 = typedef GpioB1;
using Board::A1 = typedef GpioC2;
using Board::A2 = typedef GpioC3;
using Board::A3 = typedef GpioC4;
using Board::A4 = typedef GpioC5;
using Board::A5 = typedef GpioA4;
using Board::Button = typedef GpioInputA0;
using Board::D0 = typedef GpioG9;
using Board::D1 = typedef GpioG14;
using Board::D10 = typedef GpioH6;
using Board::D11 = typedef GpioB15;
using Board::D12 = typedef GpioB14;
using Board::D13 = typedef GpioD3;
using Board::D14 = typedef GpioB9;
using Board::D15 = typedef GpioB8;
using Board::D2 = typedef GpioG13;
using Board::D3 = typedef GpioA1;
using Board::D4 = typedef GpioG12;
using Board::D5 = typedef GpioA2;
using Board::D6 = typedef GpioA6;
using Board::D7 = typedef GpioG11;
using Board::D8 = typedef GpioG10;
using Board::D9 = typedef GpioA7;
using Board::DisplayReset = typedef GpioOutputH7;
using Board::LedBlue = typedef GpioInverted<GpioOutputK3>;
using Board::LedD13 = typedef GpioOutputD3;
using Board::LedGreen = typedef GpioInverted<GpioOutputG6>;
using Board::LedOrange = typedef GpioInverted<GpioOutputD4>;
using Board::LedRed = typedef GpioInverted<GpioOutputD5>;
using Board::LedUsb = typedef GpioInverted<GpioOutputB7>;
using Board::Leds = typedef SoftwareGpioPort< LedBlue, LedRed, LedOrange, LedGreen >;
using Board::LoggerDevice = typedef modm::IODeviceWrapper< stlink::Uart, modm::IOBuffer::BlockIfFull >;
using Board::ft6::I2cMaster = typedef I2cMaster1;
using Board::ft6::Int = typedef GpioInputJ5;
using Board::ft6::Scl = typedef GpioB8;
using Board::ft6::Sda = typedef GpioB9;
using Board::ft6::Touch = typedef modm::Ft6x06< I2cMaster >;
using Board::stlink::Rx = typedef GpioInputB11;
using Board::stlink::Tx = typedef GpioOutputB10;
using Board::stlink::Uart = typedef Usart3;

// Define


modm:board.disco-f469ni modm_board_disco-f469ni modm: board.disco-f469ni modm_architecture_clock modm: architecture: clock modm_board_disco-f469ni->modm_architecture_clock modm_architecture_memory modm: architecture: memory modm_board_disco-f469ni->modm_architecture_memory modm_debug modm: debug modm_board_disco-f469ni->modm_debug modm_driver_ft6x06 modm: driver: ft6x06 modm_board_disco-f469ni->modm_driver_ft6x06 modm_platform_clock modm: platform: clock modm_board_disco-f469ni->modm_platform_clock modm_platform_core modm: platform: core modm_board_disco-f469ni->modm_platform_core modm_platform_gpio modm: platform: gpio modm_board_disco-f469ni->modm_platform_gpio modm_platform_i2c_1 modm: platform: i2c: 1 modm_board_disco-f469ni->modm_platform_i2c_1 modm_platform_uart_3 modm: platform: uart: 3 modm_board_disco-f469ni->modm_platform_uart_3 modm_tlsf modm: tlsf modm_board_disco-f469ni->modm_tlsf modm_ui_display modm: ui: display modm_board_disco-f469ni->modm_ui_display