Python library and STM32F4 Discovery firmware to control the microcontroller's GPIOs and serial interfaces directly from python. This allows for intefacing with external devices quickly without having to write any firmware!
Currently supported interfaces: I2C1, GPIOs (A-E), SPI1, ADCs, DACs, PWM (2 channels)
Future support (hopefully): UART, I2C2-3, SPI2+
For examples, see: https://github.com/alvarop/silta/tree/main/sw/examples
For firmware download/build/update instructions, see: https://github.com/alvarop/silta/tree/main/fw
For python module build instructions, see: https://github.com/alvarop/silta/tree/main/sw
You should be able to use pip to get the silta python module using:
pip install silta
- PB6 - I2C1 SCL (default)
- PB7 - I2C1 SDA (optional)
- PB8 - I2C1 SCL (optional)
- PB9 - I2C1 SDA (default)
- PA5 - SPI1 SCK
- PA6 - SPI1 MISO
- PA7 - SPI1 MOSI
- PA0 - ADC1_0
- PA1 - ADC1_1
- PA2 - ADC1_2
- PA3 - ADC1_3
- PA4 - ADC1_4 (Will disable DAC)
- PA5 - ADC1_5 (Will disable DAC and/or SPI1 SCK)
- PA6 - ADC1_6
- PA7 - ADC1_7
- PB0 - ADC1_8
- PB1 - ADC1_9
- PC0 - ADC1_10
- PC1 - ADC1_11
- PC2 - ADC1_12
- PC3 - ADC1_13
- PC4 - ADC1_14
- PC5 - ADC1_15
Must be enabled separately, since it disables SPI1 SCK
- PA4 - DAC1
- PA5 - DAC2
NOTE: PWM is currently locked at 10ms period, mainly for use with servos.
- PE5
- PE6
Most other pins in ports A-E should work as GPIOs Notable/useful ones:
- PD12 - Green LED
- PD13 - Orange LED
- PD14 - Red LED