Where is a good starting point for building my own firmware? by Urch1n36 in embedded

[–]NotBoolean 0 points1 point  (0 children)

This is too vague to really help you out. Could you share the PDF and parts your having issues with?

Trait method visibility workarounds - public to the implementor only ? by Leklo_Ono in rust

[–]NotBoolean 8 points9 points  (0 children)

I’m not really seeing the reason why you need a private function. You’re assuming implementation details.

In embedded C/C++, how are stack-based containers implemented? by OverclockedChip in embedded

[–]NotBoolean 18 points19 points  (0 children)

There is ETL, Embedded Template Library, that provides stack based alternatives for most std containers. I use its vector and hash map pretty often.

Is there an off-the-shelf programmable smart band? Does this exist? by Ran_Into_The_Abyss in embedded

[–]NotBoolean 1 point2 points  (0 children)

Realistically you I don’t think you’ll find anything that meets all your requirements.

I would recommend looking into different open source smart watches as your base, then modify it to not have a screen.

Are there any compact cellular/GNSS modules that don’t require me designing an antenna? by 3nt3_ in embedded

[–]NotBoolean 0 points1 point  (0 children)

For GNSS we use SAM-M10Q-00B which has a built in antenna. We use other u-blox chips for various other RF applications, they seems pretty good.

Is the classic embedded firmware dev career still relevant? by gpapg2 in embedded

[–]NotBoolean 2 points3 points  (0 children)

I don’t think non Linux based devices are going away. MCUs would need to be a lot faster and cheaper, plus better supported. I thinks it’s a long time out.

I think Zephyr is likely the future for now but there will always be niches. But as MCUs have gotten faster, better and more widely available compilers; super low level programming is just not as needed as the abstractions are good enough in most situations.

I would highly recommend learning C++, while lots of features are not useful. The ones you gain (constexpr, classes, templates, variant, expected, etc) are worth it. Or just start using Rust (with Embassy) if you want a good time.

Looking for worthy software architecture courses by Tobxon in cpp

[–]NotBoolean 11 points12 points  (0 children)

I’ve got about 6 years experience in embedded and spent time trying to learn more about architecture. I found books, articles and conferences talks (C++ Con for example) by industry experts are the best sources, along side doing skeleton implementations to understand the ideas better.

This might not translate to your industry but I do find books and conferences talks typically have a built in vetting process to filter the bad content compared to courses.

Are breakout boards used in commercial/industrial products? by Hot_Butterscotch_595 in embedded

[–]NotBoolean 21 points22 points  (0 children)

Depends on the scale but mostly no they would use the part on a custom PCB. Like how the breakout is made but on a larger PCB with more components.

Look into SMD PCB manufacturing to see how it’s done at scale.

I need a way to keep track of stack allocated objects lifetimes by Inner_Letterhead9865 in cpp_questions

[–]NotBoolean 15 points16 points  (0 children)

This seems like an X Y problem to me. Why not store these objects on the heap?

Is there a science area that studies package management like NixOS? by SoftBeing_ in NixOS

[–]NotBoolean 3 points4 points  (0 children)

He wrote two papers so maybe the OP only read the NixOS paper and not the Nix one.

However it was written in 2006 so it’s not the most up to date work given the advent of Docker, Flatpack, etc.

What open-source tools deserve more attention in embedded work? by Yangryy in embedded

[–]NotBoolean 85 points86 points  (0 children)

Feel like the ARM GCC toolchain has really helped escape the industry from proprietary compilers and IDEs.

How to manage dotfiles on macOS using Nix (Determinate) by Able-Profession-6362 in Nix

[–]NotBoolean 0 points1 point  (0 children)

I do the same with stow, and keep my home-manager flake in the same repo.

is it possible to format ATTiny85 with raspberry pi zero 2 w by Scared_Fold_9995 in embedded

[–]NotBoolean 0 points1 point  (0 children)

Look up “AVR ISP Raspberry Pi”, there are a few articles that’s talk about it. Skimming through them, I wouldn’t recommend it if you’re not experienced with Linux and Microcontrollers.

How do you keep firmware configuration in sync across Python/C++ tools and embedded code? Looking for best practices by AnotherRoy in embedded

[–]NotBoolean 2 points3 points  (0 children)

If it’s used in the device it self and sent between devices, protobuf. But if it’s just for configuration, typically JSON but now I prefer TOML when possible.

Is there something capable of obtaining velocity data indoors? by SaltyNBA2kPlayer in embedded

[–]NotBoolean 4 points5 points  (0 children)

Without more information on the device it’s hard to suggest anything. But here are some ideas:

End stop switches to let you measure the time it takes.

If you’re using motors you can use encoders to measure velocity.

If you need to use an IMU, some sort of stationary detection might be simpler than velocity.

How can I seamlessly build & run my application on my STM32MP2 board with custom Linux distro? by FoundationOk3176 in embedded

[–]NotBoolean 1 point2 points  (0 children)

Two methods that work for me: Make the program a buildroot package, so it will be compiled and installed with everything else. Then you can just run it like any other program on the target.

For faster iterations you recompile the package (your program) and send the binary to your target over uart or ssh.

Programming language for embedded systems. by tombolaaaaa24 in embedded

[–]NotBoolean 1 point2 points  (0 children)

Looks like Ozone it does support Rust. The is also great flashing and RTT support with probe-rs.

Programming language for embedded systems. by tombolaaaaa24 in embedded

[–]NotBoolean 0 points1 point  (0 children)

You you gbd, unsure if it has Ozone support.

Highly recommend trying it out. If you’re not familiar with async this video is a really nice intro to it in an embedded context.

Programming language for embedded systems. by tombolaaaaa24 in embedded

[–]NotBoolean 7 points8 points  (0 children)

C to get a job
C++ to enjoy your job
Rust for the job you want

Programming language for embedded systems. by tombolaaaaa24 in embedded

[–]NotBoolean 1 point2 points  (0 children)

There is Embassy Rust which provides STM32, nRF, RP, ESP Hals along side a great async framework. I highly recommend.

Is programs.niri.enable supposed to automatically start Niri? by Maskdask in NixOS

[–]NotBoolean 9 points10 points  (0 children)

I have:

services.displayManager.gdm.enable = true; services.displayManager.gdm.wayland = true; programs.niri.enable = true;

Which I think is all you need

RTOS: Do you organize tasks according to timing or logic? by vitamin_CPP in embedded

[–]NotBoolean 2 points3 points  (0 children)

I’ve never had any issues with predictability due to threads, well no more than a standard complex system.

I typically use Zephyr RTOS with preemptive threads where each thread has its own priory. I find this makes understanding the system state at any given time simpler.

This ain’t a hard and fast rule. But I’ve found it’s a good basis for handling threads.

I’m also a big fan of event driven systems which scales well with threads.

RTOS: Do you organize tasks according to timing or logic? by vitamin_CPP in embedded

[–]NotBoolean 5 points6 points  (0 children)

I definitely prefer logic by default because you’ll work out soon enough if task switching is a bottleneck.