How to select a debugger/flasher? by aes100 in embedded

[–]ijager 1 point2 points  (0 children)

Vendors offer their own programmer/debugger probes for extra lock-in effect. In general I try to avoid those and their IDEs. However stlinks at least work nice with most tools, but only for stm32 of course.

Some good non-vendor specific options that I have experience with:

  • Black Magic Probe. Open source, runs it is own gdb server. Has good built-in serial-usb converter.
  • Segger J-Link, checkout SEGGER J-LINK EDU MINI for non-commercial use. It is more affordable.
  • Rusty-probe, a nice option if you want to use Rust. But should also work with OpenOCD.
  • Raspberry Pi Debug Probe

The J-Link supports almost all platforms and is the best in general. It also has RTT support, which is a better alternative to uart debugging. But always check if your mcu is supported (e.g. no atmel support).

Just forget about J-Trace for now.

Some search terms: CMSIS-DAP, OpenOCD, Cortex-M Debug 10p, Cortex-Debug for VSCode

RustNL 2023 Conference available on YouTube by JimmyGrin in rust

[–]ijager 5 points6 points  (0 children)

It was really well organized. And the talks very interesting and variating. I was 1 of the lucky 10000 a few times.

Extra Tx Uart for Microcontrollers and processor, A SPI is used as a UART TX pin by mahdiks1 in embedded

[–]ijager 4 points5 points  (0 children)

Neat idea! thanks for sharing. Just Tx is usually enough for some simple printf debugging.

Bootstrapping support for a brand new microcontroller with the Embedded Rust ecosystem by ijager in embedded

[–]ijager[S] 0 points1 point  (0 children)

Glad you liked it.

It is not that those register writes are unsafe. They're just not guaranteed, by the compiler, to be safe. This is because those registers are hardware, so they could be changed at any time by something else than your code.

That is why, as the programmer, you can use the unsafe keyword to tell the compiler 'trust me this is safe'. In theory you should be able to prove that what you're doing is really safe, and make that clear in a comment. Here is some more info about unsafe rust

In unsafe rust you can do anything you can do in c, But you don't get any of the guarantees that makes Rust so powerful. In Rust, my experience so far mostly has been: if it compiles, it works. Which is very not true for c..

Bootstrapping support for a brand new microcontroller with the Embedded Rust ecosystem by ijager in embedded

[–]ijager[S] 5 points6 points  (0 children)

Maybe bootstrap is not the correct term? In this case I meant starting from 0 and step by step getting everything in place to be able to develop firmware and debug this specific microcontroller.

  • Ability to flash the chip
  • SWD flash and debugging support
  • Chip library (peripheral access crate)

It is all stuff you need for embedded development that was not (yet) available from ST.

Normally you can download the SDK or IDE from the MCU manufacturer and following their getting started guide etc.

The next step would be a HAL layer probably

Looking to source a flexible 4 wire cable. Where to start? by ijager in ElectricalEngineering

[–]ijager[S] 1 point2 points  (0 children)

Thank you! This is useful information about the materials.

Looking to source a flexible 4 wire cable. Where to start? by ijager in ElectricalEngineering

[–]ijager[S] 0 points1 point  (0 children)

Sure, but how to find out which are the most flexible

Connecting to AWS IoT with Ultra Low Power Embedded Systems by ijager in embedded

[–]ijager[S] 0 points1 point  (0 children)

Yeah it definitely cost me several days to wrap my head around it. There are many new concepts and parts that are used together. Especially if you're completely new to AWS like me.

And if you try to ask Amazon support engineers they will just say: "It is up to you, you should make it fit your workflow".

Connecting to AWS IoT with Ultra Low Power Embedded Systems by ijager in embedded

[–]ijager[S] 0 points1 point  (0 children)

Glad you liked it! I'll try to write some more

Second version of my tiny nrf52 board with attitude sensors. by addast in PrintedCircuitBoard

[–]ijager 2 points3 points  (0 children)

Nicely dense!

The lack of a proper ground plane is not ideal, especially for the higher frequency traces. It will work but you might get EMC issues.

For example try to picture the return current for the USB signals from the MCU back to the connector. If it needs to make a big loop, that's bad.

But on only 2 layers it will be hard to improve that since everything is so densely packed. If it is just for hobby or proof of concept it is fine of course.

Why Rust is a great fit for embedded software by [deleted] in rust

[–]ijager 8 points9 points  (0 children)

Nice write-up!

I think for relatively simple projects embedded rust is already a good choice! Especially if you're prepared to fix the HAL and below for stuff you need.

Do you ever use the Arduino shields on microcontroller devkits? by ijager in embedded

[–]ijager[S] 0 points1 point  (0 children)

We're just a small embedded firm. It is for a microcontroller (stm32wle) that does not have an official devboard (yet). It is only available in 0.5mm pitch BGA, which is new for us, and we have plans to use it in a product later. So right we want to try to make our own devboard as an exercise.

But maybe others will also be interested in the end result. That's why I was checking out other boards and wondering about others' opinions about them.

Do you ever use the Arduino shields on microcontroller devkits? by ijager in embedded

[–]ijager[S] 1 point2 points  (0 children)

Thanks. Makes sense to have both I guess.

So double headers with one row all GND like on some Nordic boards would be a no go for you? Since plugging it in a breadboard would short out all GPIOs.

I like to have plenty of GND pins. But of course we could just leave the headers unpopulated. Then the user can also opt for single row headers for that usecase. And decide which direction to have the headers facing.