From eefd006c223edd5ada03bd3db7e5fa729cce5790 Mon Sep 17 00:00:00 2001 From: James Munns Date: Tue, 13 Aug 2024 12:33:30 -0500 Subject: [PATCH 01/10] Copy/paste original questions --- surveys/2024-08-survey.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 surveys/2024-08-survey.md diff --git a/surveys/2024-08-survey.md b/surveys/2024-08-survey.md new file mode 100644 index 0000000..72a8f47 --- /dev/null +++ b/surveys/2024-08-survey.md @@ -0,0 +1,12 @@ + +- Are you currently using embedded rust for hobby/school/work/none/in the past but not now? +- How long have you been using embedded Rust (0-6+ years) +- If using for work, how many devices/year is your company shipping currently using Rust? +- What architectures are you using (Arm/RISC-V/Xtensa/other) +- What chip families are you using (STM32/nRF52/RP/ESP32/etc) +- What frameworks/RTOSs are you using (Bare/Embassy/RTIC/Tock-OS/ESP-IDF/Hubris/other) +- How are you using Rust? (Only Rust, Rust as primary with C components, C as primary with Rust components, Rust tooling only (off device)) +- What tools do you use as part of your development process (Cargo, probe-rs, defmt, other) +- What are the most common crates/libraries you use in your projects (free entry) +- What are your biggest complaints or blockers for using Rust in your projects (free entry)? +- How happy are you with using Rust for embedded (1-10)? From e5aa1d47382603126bb050a24d2cc42140e4059c Mon Sep 17 00:00:00 2001 From: James Munns Date: Tue, 13 Aug 2024 13:06:27 -0500 Subject: [PATCH 02/10] Convert into survey format --- surveys/2024-08-survey.md | 129 ++++++++++++++++++++++++++++++++++---- 1 file changed, 118 insertions(+), 11 deletions(-) diff --git a/surveys/2024-08-survey.md b/surveys/2024-08-survey.md index 72a8f47..ac8fa7f 100644 --- a/surveys/2024-08-survey.md +++ b/surveys/2024-08-survey.md @@ -1,12 +1,119 @@ +# Survey questions -- Are you currently using embedded rust for hobby/school/work/none/in the past but not now? -- How long have you been using embedded Rust (0-6+ years) -- If using for work, how many devices/year is your company shipping currently using Rust? -- What architectures are you using (Arm/RISC-V/Xtensa/other) -- What chip families are you using (STM32/nRF52/RP/ESP32/etc) -- What frameworks/RTOSs are you using (Bare/Embassy/RTIC/Tock-OS/ESP-IDF/Hubris/other) -- How are you using Rust? (Only Rust, Rust as primary with C components, C as primary with Rust components, Rust tooling only (off device)) -- What tools do you use as part of your development process (Cargo, probe-rs, defmt, other) -- What are the most common crates/libraries you use in your projects (free entry) -- What are your biggest complaints or blockers for using Rust in your projects (free entry)? -- How happy are you with using Rust for embedded (1-10)? +This is the first Rust Embedded Working Group community survey. The goal is to gather feedback from users of Rust on Bare Metal or RTOS based embedded devices including microcontrollers. + +## Your use of embedded Rust + +### How are you currently using embedded Rust? + +Type: select all that apply (optional) + +- Hobby or personal projects +- School projects +- Work or professional projects +- Not currently using embedded Rust, but have in the past for projects +- I have not used embedded Rust for any projects + +### How long have you been using embedded Rust? + +Type: select one (optional) + +- Zero to one years +- One to two years +- Two to three years +- Three to four years +- Four to five years +- Five to six years +- More than six years + +### If you are using embedded Rust for work, how many devices per year is your company shipping using Rust? + +Type: select one (optional) + +- Unsure or unable to disclose +- 1 to 10 devices per year +- 10 to 100 devices per year +- 100 to 1000 devices per year +- 1000 to 10000 devices per year +- More than 10000 devices per year + +### What architectures are you using embedded Rust with? + +Type: select all that apply (optional) + +- Arm Cortex-A +- Arm Cortex-M +- Arm Cortex-R +- RISC-V 32-bit +- RISC-V 64-bit +- Xtensa +- Other (open response) + +### What chip families are you using embedded Rust with? + +Type: select all that apply (optional) + +- ATSAM (Atmel/Microchip) +- ESP32 (Espressif Systems) +- LPC or i.MX RT (NXP) +- nRF52 (Nordic Semiconductor) +- RP2xxx (Raspberry Pi) +- STM32 (STMicroelectronics) +- TI (Texas Instruments) +- Other (open response) + +### How do you typically use embedded Rust in your projects? + +Type: select all that apply (optional) + +- Exclusively Rust for firmware +- Majority Rust for firmware, with some C components or libraries +- Majority C for firmware, with some Rust components or libraries +- Exclusively C for firmware + +## Typical tools and libraries used + +### What frameworks or RTOSs are you using with embedded Rust? + +Type: select all that apply (optional) + +- Embassy +- ESP-IDF (`std` support on ESP32) +- Hubris OS +- RTIC +- Tock-OS +- Other (open response) + +### What tools do you use as part of your development process? + +Type: select all that apply (optional) + +- Cargo +- defmt +- probe-rs +- Rust Analyzer +- Other (open response) + +### What are the most common crates or libraries you use in your projects? + +Type: free text (optional) + +## Personal feedback + +### What are your biggest complaints or blockers for using Rust in your projects? + +Type: free text (optional) + +### How happy are you with using Rust for embedded projects? + +Type: select one (optional) + +- 1 (least happy) +- 2 +- 3 +- 4 +- 5 (most happy) + +### Is there anything else you would like the Embedded Working Group to know? + +Type: free text (optional) From 2d2297ea37da094c59bcdc2433a77f0ac36361cd Mon Sep 17 00:00:00 2001 From: James Munns Date: Tue, 13 Aug 2024 13:18:19 -0500 Subject: [PATCH 03/10] Apply suggestions from code review --- surveys/2024-08-survey.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/surveys/2024-08-survey.md b/surveys/2024-08-survey.md index ac8fa7f..45ce4ae 100644 --- a/surveys/2024-08-survey.md +++ b/surveys/2024-08-survey.md @@ -56,7 +56,7 @@ Type: select all that apply (optional) - ATSAM (Atmel/Microchip) - ESP32 (Espressif Systems) - LPC or i.MX RT (NXP) -- nRF52 (Nordic Semiconductor) +- nRF (Nordic Semiconductor) - RP2xxx (Raspberry Pi) - STM32 (STMicroelectronics) - TI (Texas Instruments) @@ -89,6 +89,7 @@ Type: select all that apply (optional) Type: select all that apply (optional) - Cargo +- cross - defmt - probe-rs - Rust Analyzer From fdd21b6ee1a80f78d2ad2f5a8aced13868f4d448 Mon Sep 17 00:00:00 2001 From: James Munns Date: Tue, 13 Aug 2024 13:18:41 -0500 Subject: [PATCH 04/10] Bend the ordering rules for elegance --- surveys/2024-08-survey.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/surveys/2024-08-survey.md b/surveys/2024-08-survey.md index 45ce4ae..690b003 100644 --- a/surveys/2024-08-survey.md +++ b/surveys/2024-08-survey.md @@ -42,8 +42,8 @@ Type: select one (optional) Type: select all that apply (optional) - Arm Cortex-A -- Arm Cortex-M - Arm Cortex-R +- Arm Cortex-M - RISC-V 32-bit - RISC-V 64-bit - Xtensa From 11e66a1879c3e673197a6d57cfd65c967fc8842a Mon Sep 17 00:00:00 2001 From: James Munns Date: Tue, 13 Aug 2024 13:20:27 -0500 Subject: [PATCH 05/10] Add "zero shipping" option --- surveys/2024-08-survey.md | 1 + 1 file changed, 1 insertion(+) diff --git a/surveys/2024-08-survey.md b/surveys/2024-08-survey.md index 690b003..5701c0e 100644 --- a/surveys/2024-08-survey.md +++ b/surveys/2024-08-survey.md @@ -31,6 +31,7 @@ Type: select one (optional) Type: select one (optional) - Unsure or unable to disclose +- Zero devices (only internal or non-production usage) - 1 to 10 devices per year - 10 to 100 devices per year - 100 to 1000 devices per year From 1449588d8d0deef826755e81e92580d6dbbcee84 Mon Sep 17 00:00:00 2001 From: James Munns Date: Tue, 13 Aug 2024 13:33:08 -0500 Subject: [PATCH 06/10] Add espflash --- surveys/2024-08-survey.md | 1 + 1 file changed, 1 insertion(+) diff --git a/surveys/2024-08-survey.md b/surveys/2024-08-survey.md index 5701c0e..d8c62d2 100644 --- a/surveys/2024-08-survey.md +++ b/surveys/2024-08-survey.md @@ -92,6 +92,7 @@ Type: select all that apply (optional) - Cargo - cross - defmt +- espflash - probe-rs - Rust Analyzer - Other (open response) From 54139887e12647126792cbc911b9aa82c2be2af0 Mon Sep 17 00:00:00 2001 From: James Munns Date: Fri, 16 Aug 2024 15:30:53 +0200 Subject: [PATCH 07/10] Address review comments --- surveys/2024-08-survey.md | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/surveys/2024-08-survey.md b/surveys/2024-08-survey.md index d8c62d2..74a9719 100644 --- a/surveys/2024-08-survey.md +++ b/surveys/2024-08-survey.md @@ -4,12 +4,12 @@ This is the first Rust Embedded Working Group community survey. The goal is to g ## Your use of embedded Rust -### How are you currently using embedded Rust? +### Where do you plan to use embedded Rust in the next 12 months? Type: select all that apply (optional) - Hobby or personal projects -- School projects +- School or University projects - Work or professional projects - Not currently using embedded Rust, but have in the past for projects - I have not used embedded Rust for any projects @@ -26,7 +26,7 @@ Type: select one (optional) - Five to six years - More than six years -### If you are using embedded Rust for work, how many devices per year is your company shipping using Rust? +### If you are using embedded Rust for work, how many embedded devices per year is your company shipping using Rust? Type: select one (optional) @@ -38,7 +38,7 @@ Type: select one (optional) - 1000 to 10000 devices per year - More than 10000 devices per year -### What architectures are you using embedded Rust with? +### What architectures are you planning to use embedded Rust with in the next 12 months? Type: select all that apply (optional) @@ -50,10 +50,11 @@ Type: select all that apply (optional) - Xtensa - Other (open response) -### What chip families are you using embedded Rust with? +### What chip families are you planning to use embedded Rust with in the next 12 months? Type: select all that apply (optional) +- Apollo (Ambiq) - ATSAM (Atmel/Microchip) - ESP32 (Espressif Systems) - LPC or i.MX RT (NXP) @@ -63,14 +64,14 @@ Type: select all that apply (optional) - TI (Texas Instruments) - Other (open response) -### How do you typically use embedded Rust in your projects? +### How do you typically use embedded Rust in your firmware projects? Type: select all that apply (optional) - Exclusively Rust for firmware -- Majority Rust for firmware, with some C components or libraries -- Majority C for firmware, with some Rust components or libraries -- Exclusively C for firmware +- Majority Rust for firmware, with some components or libraries in other languages (C/C++/Ada/Zig) +- Majority other languages (C/C++/Ada/Zig) for firmware, with some Rust components or libraries +- Exclusively other languages (C/C++/Ada/Zig) for firmware ## Typical tools and libraries used @@ -83,13 +84,16 @@ Type: select all that apply (optional) - Hubris OS - RTIC - Tock-OS +- Non-Rust based RTOSs (such as Zephyr, FreeRTOS, RIOT-OS, etc.) - Other (open response) ### What tools do you use as part of your development process? Type: select all that apply (optional) +- bindgen - Cargo +- cbindgen - cross - defmt - espflash @@ -97,13 +101,13 @@ Type: select all that apply (optional) - Rust Analyzer - Other (open response) -### What are the most common crates or libraries you use in your projects? +### What are the most common crates or libraries you use in your embedded projects? Type: free text (optional) ## Personal feedback -### What are your biggest complaints or blockers for using Rust in your projects? +### What are your biggest complaints or blockers for using Rust in your embedded projects? Type: free text (optional) From 3bf5db5cc6e472dcfd0350b711e0c137e1b3584d Mon Sep 17 00:00:00 2001 From: James Munns Date: Tue, 20 Aug 2024 20:39:31 +0200 Subject: [PATCH 08/10] Add final question --- surveys/2024-08-survey.md | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/surveys/2024-08-survey.md b/surveys/2024-08-survey.md index 74a9719..e992fb7 100644 --- a/surveys/2024-08-survey.md +++ b/surveys/2024-08-survey.md @@ -69,9 +69,22 @@ Type: select all that apply (optional) Type: select all that apply (optional) - Exclusively Rust for firmware -- Majority Rust for firmware, with some components or libraries in other languages (C/C++/Ada/Zig) -- Majority other languages (C/C++/Ada/Zig) for firmware, with some Rust components or libraries -- Exclusively other languages (C/C++/Ada/Zig) for firmware +- Majority Rust for firmware, with some components or libraries in other languages (C/C++/other) +- Majority other languages (C/C++/other) for firmware, with some Rust components or libraries +- Exclusively other languages (C/C++/other) for firmware + +### What other languages do you use with Rust in your firmware projects? + +Type: select all that apply (optional) + +* Ada +* C +* C++ +* Micro/Circuit Python +* Swift +* Zig +* None (exclusively Rust) +* Other (free entry) ## Typical tools and libraries used From 6eab2ba8fe1650439786be0631e3d20e007e8067 Mon Sep 17 00:00:00 2001 From: James Munns Date: Tue, 20 Aug 2024 20:40:45 +0200 Subject: [PATCH 09/10] Fix wording --- surveys/2024-08-survey.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/surveys/2024-08-survey.md b/surveys/2024-08-survey.md index e992fb7..dd3f72e 100644 --- a/surveys/2024-08-survey.md +++ b/surveys/2024-08-survey.md @@ -83,8 +83,8 @@ Type: select all that apply (optional) * Micro/Circuit Python * Swift * Zig -* None (exclusively Rust) -* Other (free entry) +* None - exclusively Rust +* Other (open response) ## Typical tools and libraries used From 936a7f5051efdb46354f924e5d99a4aeb8c345de Mon Sep 17 00:00:00 2001 From: James Munns Date: Tue, 20 Aug 2024 20:47:33 +0200 Subject: [PATCH 10/10] Apply suggestions from code review Co-authored-by: Adam Greig --- surveys/2024-08-survey.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/surveys/2024-08-survey.md b/surveys/2024-08-survey.md index dd3f72e..26cadd3 100644 --- a/surveys/2024-08-survey.md +++ b/surveys/2024-08-survey.md @@ -1,6 +1,6 @@ # Survey questions -This is the first Rust Embedded Working Group community survey. The goal is to gather feedback from users of Rust on Bare Metal or RTOS based embedded devices including microcontrollers. +This is the first Rust Embedded Working Group community survey. The goal is to gather feedback from users of Rust on bare-metal or RTOS based embedded devices including microcontrollers. ## Your use of embedded Rust @@ -9,7 +9,7 @@ This is the first Rust Embedded Working Group community survey. The goal is to g Type: select all that apply (optional) - Hobby or personal projects -- School or University projects +- School or university projects - Work or professional projects - Not currently using embedded Rust, but have in the past for projects - I have not used embedded Rust for any projects @@ -34,9 +34,9 @@ Type: select one (optional) - Zero devices (only internal or non-production usage) - 1 to 10 devices per year - 10 to 100 devices per year -- 100 to 1000 devices per year -- 1000 to 10000 devices per year -- More than 10000 devices per year +- 100 to 1,000 devices per year +- 1,000 to 10,000 devices per year +- More than 10,000 devices per year ### What architectures are you planning to use embedded Rust with in the next 12 months?