Piano Forte - with ESP8266 WiFi and HM-11 Bluetooth Low Energy |
In the last few weeks, a few things have come to light that make working with the STM32Fxxx series of ARM microcontrollers a lot more fruitful.
Espruino - JavaScript On-Board
The Espruino project, which provides a JavaScript interpreter for several of the STM32F ARM devices has blossomed and matured, giving a whole host of new powerful functionality and the benefit from the immediacy and interactive nature of an interpreted language.
Also - there is now a large user base for Espruino, and a forum offering help and guidance for the newcomer - as well as code examples.
As the standard variant of Piano Forte uses virtually the same microcontroller as the Espruino board - (they are both STM32F103 with 256K of flash and 48K of RAM), it's just a case of downloading the latest code image from their site and programming it in using the STM32 bootloader utility.
Making Connection
Espruino uses the STM full speed USB com port driver, but if there is no USB plugged in, it defaults to USART1 which appears on PA9 and PA10. This is useful for testing - as it allows you to get a board up and running with just a FTDI or similar serial cable. The serial baud rate defaults to 9600 baud - but this is intentional, because it allows a Bluetooth module - such as the HM-11 to be used directly for programming and communicating with the Piano Forte.
The Piano Forte was also designed to be an I/O board for the Raspberry Pi. The Pi can be used to send the javascript text across to the Piano Forte - again at 9600 baud - using it's UART pins (8 and 10) on the GPIO connector.
The FTDI is debug cable connected via USART1 - this also has access to the serial bootloader
PA9 Tx
PA10 Rx
If the Piano is to be fitted to a Raspberry Pi - the FTDI cable is redundant and the USART1 is connected to the PI GPIO header via a couple of series resistors on the underside of the pcb.
Wireless Options
Piano Forte was designed from the start to allow various wireless connectivity options. These will be most useful when the board is intended for stand- alone operation - and not as an I/O slave for the Ras-Pi.
An 8 pin header is included on the pcb to allow the ESP-01 to be fitted.
The ESP8266 module is connected via USART2 which appears on PA2 and PA3
PA2 Tx
PA3 Rx
Additionally there is a footprint on the pcb which accepts the HM-11 Bluetooth module.
The HM-11 BLE module is connected via USART3 on ports PB10 and PB11
PB10 Tx
PB11 Rx
On the first set of prototype boards this will need a couple of wire links.