KLST_TINY Board
KLST_TINY (v0.1) is a pocket-calculator-sized development board with 3 push-button encoders, 3 LEDs and 2 serial ports, based on STM32F446 MCU. it aims to facilitate the development of smaller audio applications. the board can be connected to other KLST_TINY boards via the serial IDC connector ( 15 + 21 ). it can be programmed via the Arduin IDE through the USB connector ( DFU mode ) or with an external programmer ( SWD mode ).
# | FUNCTION | DESCRIPTION |
---|---|---|
01 | audio input, line-in | 3.5mm, line level input for audio signals ( e.g connection to computer audio output ) |
02 | audio output, line-out | 3.5mm, line level output for audio signals ( e.g connection to HiFi systems ) |
03 | 3× programmable LEDs | LED_00 + LED_01 + LED_02 user programmable LEDs |
04 | 3× rotary encoders | with push buttons |
05 | 3.3/5V power pins | power in-+output pins. can either be used to power the board or to power peripherals if board is powered via USB |
06 | 8× GPIO pins | programmable GPIO pins, note that the pins are only 3.3V tolerant |
07 | 2× ADCs + 2× DACs | additional ADCs + DACs w/ 12BIT resolution |
08 | 3.3/5V power pins | see 05 |
09 | 4× mounting holes | M3 diameter |
10 | headphones + mic | 3.5mm, 3 ring audio jack with stereo output and mono input. can be used to connect e.g a headset. might require a OMTP to CTIA/AHJ converter. |
11 | 2× UART ( serial ) | SERIAL_00 + SERIAL_01 pin out for serial ports. same ports as 15 + 21 |
12 | 1× I2C | I2C interface |
13 | 1× SPI | SPI interface |
14 | audio in-+output + line-in+out | same as 01 + 02 |
15 | IDC connector w/ power + UART | SERIAL_00 serial port with IDC connector. requires special twisted cable. can be used to connect e.g to other KLST_TINY boards. |
16 | STM32F446RET microcontroller | microcontroller ( MCU ) with 180MHz, 128KB RAM, 512KB Flash |
17 | JTAG/SWD interface | 10-pin interface for external programmer ( e.g STLINK-V3 ) |
18 | SD card reader | SPI-based SD card reader interface ( currently not functional ) |
19 | power LED | |
20 | USB-B micro + PWR | USB port for connecting board as USB device. can also be used to program and power the board |
21 | IDC connector w/ power + UART | SERIAL_01 , see 15 |
22 | WM8731 Audio Codec | audio DAC+ADC w/ 16BIT resolution and up to 48KHz sampling rate |
23 | boot flash button | select boot mode. if button is held down during reset board starts in DFU mode |
24 | reset button | resets board |
25 | programmer button | sends board into DFU mode ( LEDs blink in pattern ) |
26 | USB-A | USB port for connecting USB Devices to board as USB host e.g computer mouse or keyboard |
Pin Map
PIN | DOMAIN | DOMAIN | PIN | |||
---|---|---|---|---|---|---|
5V | GND | PWR | SERIAL | RX00 | RX01 | |
3V3 | GND | GND | GND | |||
00 | 01 | GPIO | TX00 | TX01 | ||
02 | 03 | I2C | SCL | SDA | ||
04 | 05 | GND | 3V3 | |||
06 | 07 | SPI | MISO | MOSI | ||
00 | 01 | ADC | GND | SCK | ||
00 | 01 | DAC | GND | 3V3 | ||
5V | GND | PWR | INPUT | L | R | |
3V3 | GND | OUTPUT | L | R |
Feature Summary
- STM32F446RE MCU with 180MHz, 128KB RAM, 512KB Flash
- WM8731 audio codec with 2× audio DAC + 2× audio ADC ( 16/24BIT )
- 2× ADC ( 12BIT, opt 6 extra channels )
- 2× DAC ( 12BIT )
- 3× UART ( serial )
- 8× GPIO
- 1× USB ( device or host )
- 1× I2C
- 1× SPI
- 3× rotary encoders with push buttons
- 3× programmable LEDs + 1× power LED
- 11× timers
- 1× SD card reader
- 1× JTAG/SWD interface ( 10-pin )
- programmer + reset + boot flash buttons
- 4× Mounting Holes
Debugging
KLST_TINY
can make use of the USB Device ( labeled DEVICE+PWR
) connector to create a virtual serial port (CDC). this port can be used e.g to exchange debug information with a USB Host e.g a computer running the Arduino application.
in order to activate the port the following configuration must be selected from the menu in the Arduino application:
- from
Tools > U(S)ART support:
select"Enable (generic 'Serial')"
- from
Tools > USB support (if available):
select"CDC (generic 'Serial' supersede U(S)ART)"
- from
Tools > USB speed (if available):
select"Low/Full Speed"
the example program below can be used to test the serial port:
#include "Klangstrom.h"
void setup() {
Serial.begin(115200);
}
void loop() {
Serial.println(".");
delay(1000);
}
after uploading the program KLST_TINY
should appear as a virtual serial port ( e.g on macOS it might look like this /dev/tty.usbmodemXXXXXXXXXXXXX
).
Errata
see Known Issues ( Application )