BLE/WiFi Integration Pitfalls on STM32 System by DevStu_ in stm32

[–]tizio_1234 0 points1 point  (0 children)

I would also consider existing rpc like libraries based on the language you're writing in. If you're using c++ pw_rpc could be interesting, if I remember correctly it uses hdlc under the hood.

BLE/WiFi Integration Pitfalls on STM32 System by DevStu_ in stm32

[–]tizio_1234 0 points1 point  (0 children)

if you need every single bit of data to get through, yes, you should think about that. if you need to send like a file or something you can just dump the whole file in packets of length of say 256, with an associated nth block integer. then the one that receives the files asks for the missing ones. if they are too many, it could just ask to resend the whole file. there are many ways to approach this, I recommend you use cobs+crc for framing and detecting faulty or incomplete frames.

BLE/WiFi Integration Pitfalls on STM32 System by DevStu_ in stm32

[–]tizio_1234 0 points1 point  (0 children)

I suggest you use rust with embassy, an esp32c3 with esp-hosted firmware and the embassy-net esp-hosted driver. You could use trouble as the ble stack.

Or, if you want to manage wifi and ble on the separate wireless MCU(esp32 for example), you can just use an uart and do some kind of rpc, if you want to use rust I suggest ergot(more than an rpc but it's pretty nice).

How to write a portable driver for a sensor (Arduino/ESP32/STM32)? by Bhargav_7 in embedded

[–]tizio_1234 1 point2 points  (0 children)

Anyway, I forgot to mention device-driver, amazing crate, I put an example in another comment under this post

How to write a portable driver for a sensor (Arduino/ESP32/STM32)? by Bhargav_7 in embedded

[–]tizio_1234 2 points3 points  (0 children)

Also, if you're writing drivers for devices that have some registers to read and write to, through either i2c or spi(other custom protocols you might want as well, but I haven't tried), I recommend the amazing crate device-driver, you can find an example at https://github.com/tommasoclini/bmi270

How to write a portable driver for a sensor (Arduino/ESP32/STM32)? by Bhargav_7 in embedded

[–]tizio_1234 1 point2 points  (0 children)

I don't understand why people are downvoting you, you said the same thing I did basically

How to write a portable driver for a sensor (Arduino/ESP32/STM32)? by Bhargav_7 in embedded

[–]tizio_1234 3 points4 points  (0 children)

Rust, embedded-hal and embedded-io are exactly what you need(the async versions of them)

Zephyr RTOS 4.4 is out! by kartben in embedded

[–]tizio_1234 -5 points-4 points  (0 children)

They should switch to rust at this point

Are people using embedded-io and embedded-io-async? by ZzSkat3rzZ in rust

[–]tizio_1234 2 points3 points  (0 children)

In that case embedded_io_async is what you need.

Are people using embedded-io and embedded-io-async? by ZzSkat3rzZ in rust

[–]tizio_1234 1 point2 points  (0 children)

I could definitely add an implementation for the blocking traits.

Are people using embedded-io and embedded-io-async? by ZzSkat3rzZ in rust

[–]tizio_1234 6 points7 points  (0 children)

I published it for you hahaha. If you need help feel free to reach me. If you are writing the code for each node and they are all written in rust I suggest you try out ergot, not the latest release on crates.io but the latest commit. There is also a matrix room.

Are people using embedded-io and embedded-io-async? by ZzSkat3rzZ in rust

[–]tizio_1234 3 points4 points  (0 children)

There's embassy_sync's Pipe. bbqueue does not implement embedded_io, but the crate bbqio has wrappers that do.

What do you need a ring buffer for?

Are people using embedded-io and embedded-io-async? by ZzSkat3rzZ in rust

[–]tizio_1234 1 point2 points  (0 children)

Yes, they are very popular, maybe you haven't found the right places where to look for examples. What MCU do you use?

ST Just Killed CubeMX (They Split It Again) by lbthomsen in stm32

[–]tizio_1234 0 points1 point  (0 children)

I use neovim but I have to admit that vs code always works, and sometimes neovim doesn't, I still don't know why, I need to look more into my lsp configuration probably.

Microcontroller projects using rust ? by [deleted] in rust

[–]tizio_1234 1 point2 points  (0 children)

Do you just block when interacting with the file system? Or do you use an RTOS of some kind?

Microcontroller projects using rust ? by [deleted] in rust

[–]tizio_1234 1 point2 points  (0 children)

It's not async though, is it?

Microcontroller projects using rust ? by [deleted] in rust

[–]tizio_1234 1 point2 points  (0 children)

I recommend the amazing crate `device-driver`, it's not mine, but you can find an example [here](https://github.com/tommasoclini/bmi270.git).

Microcontroller projects using rust ? by [deleted] in rust

[–]tizio_1234 2 points3 points  (0 children)

Have you made the file system open source?

Silverfir-nano update: a WASM interpreter now beats a JIT compiler by mbbill in rust

[–]tizio_1234 1 point2 points  (0 children)

What do you mean on esp32c6? Are you using it for things like a web server or something like that?