Following is the status of examples.
The examples are run with stm32f1xx_hal
on a bluepill
,
stm32f3xx_hal
on a Discovery kit STM32F303
, stm32l1xx_hal
on a STM32L100C Discovery
and a heltec-lora-node151
, stm32f4xx_hal
on a Nucleo-64 STM32F411
, a blackpill
with MCU stm32f401
,
and a blackpill
with MCU stm32f411
.
A board name starting with none-
is an indication that I do not have hardware for an MCU that uses the
hal, so cannot do the manual testing myself.
(If you do run the examples on MCUs using these HALs, please report via
the repository issues and I will add notes.)
In the table cells:
green check marks and red X marks indicate that the CI of the example builds or fails.
runs
is an indication that a manual test on actual hardware has been done and it works correctly or as noted, and
no
means the manual test fails badly as noted.
As of June 2021 the Travis.org CI has stopped. The Github Workflow testing is working but the generation of the table below has not been migrated from Travis. It is relatively accurate (as of June 2021) but for recent results see the Github workflow CI.
The CI testing is automatic and corresponds to the most recent example code, and using recent git versions of crates.
The manual tests are not automatic, and less current. When I remember to record it,
clicking on runs
will go to the code repository history for the commit when a manual test was done.
In addition to the example code at the time, the Cargo.lock
file in the board directories gives an
indication of the versions of dependencies.
These examples use only the indicated hal and the main embedded crates. Some variations on these are available at the repository with the additional examples indicated below. The names in the board column are also the names of the build directories. Those names link to a file recording the commit that was used for the last CI example build tests.
hal | board | blink | echo_by_char | echo_string | serial_char | serial_string | gps_rw | temperature |
---|---|---|---|---|---|---|---|---|
stm32f0xx | none-stm32f030 | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
stm32f1xx | bluepill | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
stm32f3xx | discovery-stm32f303 | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
stm32f4xx | nucleo-64 | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
stm32f4xx | blackpill-stm32f411 | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
stm32f4xx | blackpill-stm32f401 | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
stm32f7xx | none-stm32f722 | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
stm32h7xx | none-stm32h742 | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
stm32l0xx | none-stm32l0x2 | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
stm32l1xx | discovery-stm32l100 | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
stm32l1xx | heltec-lora-node151 | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
stm32l4xx | none-stm32l4x2 | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
oled_gps
and lora_gps
the available USART1 is used for the GPS so they might work.Additional examples use crates in addition to the HAL and the main embedded crates. There are now a fairly large number of these examples. They are maintained in repository rust-integration-testing with CI workflow testing. The testing strategy is more extensive than in the table above. Examples are tested using both released and git versions of the crates. A simple table as above is difficult to maintain, but the most recent (non-dependabot) github workflow report at the above CI link is usually a good summary.
Code for these are in subdirectories of the repository examples/
directory.
The main groupings are as follows.
dht
uses crate dht-sensor. Run tests were done with
both DHT11 and DHT22 sensors. DHT22 is specified by adding feature dht22
. DHT11 is used if nothing is
specified. The code must be compiled with --release
to run or it is not fast enough to read the
sensor and an Error Timeout
occurs. The sensor values are approximately
correct at room temperature, but the sensors have not been calibrated or tested at other temperatures.
text_i2c
uses crate ssd1306. Run tests have been succesful.
oled_gps
uses crate embedded-graphics
. Run testing on discovery-stm32f303
is not very reliably,
but better on 5v than 3v. Run testing on stm32l1xx fails reading gps, it does not return.
Run tests on other hardware have been mostly succesful.
the directory also has the core examples in the table above so they are included in the expanded CI testing strategies.
examples/driver-examples
have been
adjusted to run with various HAL crates.
I do not have hardware to test many of these examples so they have not been run tested.lora_spi_send
, lora_spi_receive
and lora_spi_gps
use
crate rust-radio-sx127x.
The crate uses embedded-hal 1.0.0 alpha
.
It works with hal crates built with older embedded-hal by using a compat()
shim to satisfy traits.
These examples have been (occassionaly) run tested on bluepill
and blackpill stm32f411
hardware.bluepill
and blackpill stm32f411
hardware.