theembeddedrustacean / ser-std

Simplified Embedded Rust: Standard Edition Book Projects and Templates
https://www.theembeddedrustacean.com/c/ser-std
59 stars 5 forks source link

Include Detailed Guidance on Selecting and Purchasing Physical Hardware for ESP32-C3 Development #4

Open wubin28 opened 4 days ago

wubin28 commented 4 days ago

Is your feature request related to a problem? Please describe. Readers following “Simplified Embedded Rust: ESP Standard Library Edition” may encounter build failures when running “Hello World” examples on the Wokwi simulator, hindering their learning experience. This issue necessitates the use of physical hardware. However, the book lacks detailed information on purchasing such hardware. While some guidance is available at the end of the ser-std GitHub repository, it does not provide clear instructions on choosing between boards like the ESP32-C3-DevKitM-1 and the ESP32-C3-DevKit-RUST-1 for Rust-based embedded development.

Describe the feature you'd like I recommend adding a dedicated section in the book that offers: • Clear instructions on selecting appropriate physical hardware for ESP32-C3 development. • A comparison of available development boards, such as the ESP32-C3-DevKitM-1 and ESP32-C3-DevKit-RUST-1, highlighting their features, benefits, and suitability for Rust-based projects. • Detailed purchasing information, including recommended retailers and considerations for international readers.

This addition would provide readers with the necessary guidance to acquire suitable hardware, ensuring a seamless learning experience.

Describe alternatives you've considered An alternative approach could involve directing readers to external resources or forums for hardware selection advice. However, incorporating this information directly into the book would offer immediate value and maintain its self-contained nature, enhancing the reader’s experience.

Additional context Including detailed hardware selection and purchasing guidance aligns with the book’s goal of simplifying embedded Rust development. This addition would empower readers to make informed decisions, facilitating a smoother transition from simulation to physical implementation.

theembeddedrustacean commented 3 days ago

Valid point. Thank you for the feedback @wubin28. Unfortunately, the build failures can happen either due to the code version being out of sync or sometimes due to server issues. They were also more frequent than anticipated. Hopefully, with time, this would stabilize. Also, the development options chapter was actually much more extensive and was reduced through the book's review process. The goal ultimately was to direct beginners to Wokwi to avoid the intricacies and pain of dealing with and purchasing hardware, adding another layer of complexity. Readers were referred to the repo for the option of dealing with hardware.

My current thinking is to either include all that in an appendix rather than the main body to maintain the flow focused on Wokwi or extend the description in the git repo.

I'll keep this issue open until a decision has been made on addressing this in an upcoming update cycle of the book.

wubin28 commented 3 days ago

Dear @theembeddedrustacean ,

Thank you for your prompt response and for considering my feedback. I genuinely appreciate the book’s goal of enabling embedded development using Wokwi, with the need for physical hardware only in rare cases. However, my experience has not been as seamless as hoped.

Yesterday, I eagerly followed the instructions in the book to run the first “Hello World” example on Wokwi (project link), but I was met with the following error message:

Project Link: https://wokwi.com/projects/414857042750169089?gh=1

Error message:     Updating crates.io index
     Locking 165 packages to latest compatible versions
      Adding bindgen v0.69.4 (latest: v0.70.1)
      Adding bitflags v1.3.2 (latest: v2.6.0)
      Adding embedded-hal v0.2.7 (latest: v1.0.0)
      Adding globwalk v0.8.1 (latest: v0.9.1)
      Adding heck v0.4.1 (latest: v0.5.0)
      Adding itertools v0.12.1 (latest: v0.13.0)
      Adding linux-raw-sys v0.4.14 (latest: v0.6.5)
      Adding nb v0.1.3 (latest: v1.1.0)
      Adding rustc-hash v1.1.0 (latest: v2.0.0)
      Adding strum v0.24.1 (latest: v0.26.3)
      Adding strum v0.25.0 (latest: v0.26.3)
      Adding strum_macros v0.24.3 (latest: v0.26.4)
      Adding strum_macros v0.25.3 (latest: v0.26.4)
      Adding syn v1.0.109 (latest: v2.0.77)
      Adding which v4.4.2 (latest: v6.0.3)
      Adding windows-core v0.52.0 (latest: v0.58.0)
      Adding windows-sys v0.52.0 (latest: v0.59.0)
error: couldn't check if the package is yanked: registry: Failed to retrieve toml_edit from crates.io index: registry: EOF while parsing a string at line 1 column 1021
warning: the --out-dir flag has been changed to --artifact-dir
 Downloading crates ...
  Downloaded unicode-xid v0.2.6
error: No space left on device (os error 28)

Error: Process exited with 101

I tried again today and encountered the same issue. Unfortunately, this has halted my progress at the beginning of Chapter 4 in an 11-chapter book. Understandably, this has been quite frustrating, and the error messages have dampened the joy of reading and learning from your book.

While assembling and debugging hardware devices can be challenging, I believe that with detailed documentation and a supportive Discord community, it wouldn’t hinder readers from continuing with the book. Adding an appendix that discusses hardware assembly and debugging would be highly beneficial, and I suggest completing it as soon as possible.

I’ve already ordered the recommended hardware from your list and look forward to exploring the practical aspects of embedded Rust development. I appreciate your efforts in making this subject accessible and eagerly anticipate the upcoming updates.

Thank you once again for your consideration.

Best regards,

Bin Wu

theembeddedrustacean commented 3 days ago

Hello Again @wubin28,

The cited issue can be resolved by modifying the build parameters requiring Wowki support. Hopefully, this can be resolved soon. An alternative avenue would be using the Wokwi VS Code extension locally but I would still have to try that out if the issue still remains.

Also, relative to both Wokwi and hardware, the following issue might appear: esp-rs/std-training/issues/266

All this is mostly due to the project still being relatively dynamic. The good news is that updates typically propagate fairly quickly.

theembeddedrustacean commented 2 days ago

Update @wubin28,

The Wokwi examples are back up and running now. However, you might still encounter the https://github.com/esp-rs/std-training/issues/266 issue highlighted earlier.

As a workaround, until Espressif introduces a fix, add cc="=1.1.31" as a dependency under [dependencies] in the Cargo.toml file.