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.