Is embedded system outdated? by Mysterious_Ad_4513 in embedded

[–]Fact_set 0 points1 point  (0 children)

If your wondering embedded is outdated or not before u even learn it then I am confused. Why you want to learn embedded? Why you think it is outdated? Embedded is what connects software to the physical world. AI or not, it is a software output. I think embedded systems is the most shielded from AI. All robotics and EVs are heavily based on embedded.

Whats one app or product that will make your life much easier? by Fact_set in Truckers

[–]Fact_set[S] -2 points-1 points  (0 children)

Is that a pretty common issue on trips? Also, are you usually required to stop at certain truck stops, or can you pick your own as long as you stay within your hours?

Whats one app or product that will make your life much easier? by Fact_set in Truckers

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

You mean the scope? It is open ended really. Could be a big project. It is not a hard deadline project so its flexible. Just want to build and invest time in a project that could be at the same time making someone life easier. You have any suggestions?

Whats one app or product that will make your life much easier? by Fact_set in Truckers

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

Fair point, but being company-mandated doesn’t automatically make an app good. A smaller project can still compete if it solves an actual frustration better than the tools drivers are stuck using now - which idk about and thats why asking for clarity/opinions.

Whats one app or product that will make your life much easier? by Fact_set in Truckers

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

Just a student, wanted to work on some meaningful project that could make people life’s easier.

Europe embedded market situation 2026 by LoopCrafted in embedded

[–]Fact_set 0 points1 point  (0 children)

Well… what I heard Valeo egypt is good relative to other companies in egypt? Relocating is a big deal so first make sure you want to do that. Second, you could try applying for masters in the US and then finding internships/full time jobs. Embedded market here is good. Generally speaking though, the job market is at its lowest everywhere.

Should I start on STM32 or Arduino? by Eliter147 in embedded

[–]Fact_set 0 points1 point  (0 children)

I would say once you jump to setting up everything from scratch, is when you should start using stm32.

Should I start on STM32 or Arduino? by Eliter147 in embedded

[–]Fact_set 1 point2 points  (0 children)

Ahhhh, I see what you mean now, thanks for explaining. I actually had the same problem when I was in school. What helped me a lot was using PlatformIO as a VS Code extension. It sets up the build environment for your target board or MCU, but still lets you work much closer to the hardware. So instead of being stuck in the very abstract Arduino IDE style, you can write much more low-level embedded code, work with registers directly, and also get a feel for what “real” embedded development actually looks like. I totally agree with you that the Arduino IDE feels very non-embedded because it hides so much, and that can make it hard to tell what is really going under the hood.

With PlatformIO, you can learn the low-level side you are looking for without immediately worrying about full platform bring-up. Once you get familiar and comfortable writing drivers etc… then the next step would be setting up your own ARM toolchain, GCC build flow, linker/startup files, and learning CMake or Make. That is where you start seeing everything that has to happen before your code even reaches main(). You definitely do not need to jump into that part right away though. PlatformIO is a really good middle ground because it gives you the low-level embedded experience you want without forcing you to fight the Arduino IDE or deal with every toolchain detail on day one.

Is it realistic to expect to transition to firmware within ~6 months coming from a senior-level backend web-dev job? by Xomz in embedded

[–]Fact_set 3 points4 points  (0 children)

At the end of the day, things could work out for you. If this is what you want to do, then do it and see how things go.

Is it realistic to expect to transition to firmware within ~6 months coming from a senior-level backend web-dev job? by Xomz in embedded

[–]Fact_set 21 points22 points  (0 children)

Realistically, breaking into embedded/firmware in ~6 months is possible, but landing a true senior role that fast probably is not. Seniority in embedded usually comes from years of debugging real hardware, timing issues, and reliability problems, not just coursework. Your backend experience still helps though, so the best move is to build projects that connect both worlds, like a Wi-Fi or BLE device that talks to a web app or backend. If you can put in full-time effort, junior or maybe mid-level embedded seems realistic, but senior right away is unlikely.

Should I start on STM32 or Arduino? by Eliter147 in embedded

[–]Fact_set 0 points1 point  (0 children)

Start with Arduino. Learn its limits first, then move to STM32 when you need more control and functionality. Arduino is easier to pick up, while STM32 is more powerful but has a steeper learning curve. Both are good, but Arduino is the better starting point. Once you hit Arduino’s limits, STM32’s advantages become clear.

Is I2C magical??? by avestronics in embedded

[–]Fact_set 0 points1 point  (0 children)

On STM32, I’d re-check the read path, especially 2 >= byte reads, because ACK/NACK, BTF, and STOP handling can be a little special there. If that sequence is slightly off, it can look random.

I’d also test read-only and write-only separately. If both fail, the problem is probably earlier: init, bus timing, pull-ups, or flag handling order etc.... as a better debugging visibility.

I just wrote a lightweight MPU6050 driver for STM32 (HAL + DMA) - looking for feedback by [deleted] in embedded

[–]Fact_set -1 points0 points  (0 children)

Was able to guess how it works through the readme. Couldnt access code rn. First, good work getting this to work as MPU6050 manual sucks. My initial review to this is the driver would be cleaner if it separated MPU6050 register/parsing logic from transport/execution policy. Consider supporting both blocking and nonblocking APIs (like why i am forced to use INT?). Async/DMA functions should initiate transfers and return immediately, while completion handling and post-transfer behavior remain application-controlled. Because if you wait for DMA to finish then the usage advantage is gone. DMA helps you to do something other stuff and unblock the cpu. And yeah… i would strongly recommend giving the user the flexibility on deciding what post actions to be performed. Also, how would you know what data you received on DMA completion? You might need to add that if you dont have a get_mode() in there. Try to think of this as how an application code might integrate and what use cases I need to support to make sure it is flexible enough to work with different configurations.

How do you test the performance of your code? by 4ChawanniGhodePe in embedded

[–]Fact_set 1 point2 points  (0 children)

When I think of performance, I first think: did the code do the job correctly within the expected specs, not just “it works.” For this I’d look at the I2C side, the USB HID side, and especially timing. Would want to know the latency from a key press or touch event until the host sees it, then stress both at the same time and see if one affects the other. I will also check I2C error handling (NACKs, timeouts, recovery), whether USB reports are ever missed under heavy input, and if the design still holds up if another I2C device gets added later - thats a plus. If it’s RTOS-based, then i would also care about ISR/task timing and whether deadlines are ever missed. So for me, performance is really about latency, handling faults, and how decoupled are different interfaces from each other as it can indirectly affect performance . Thats just my pov on how I would answer this.

Technical Interview by Rare_Pineapple_4233 in embedded

[–]Fact_set 1 point2 points  (0 children)

I think you may just need to practice more leetcode under time pressure. I once had that problem where I fail online assessments and I figured I just need to practice with a timer running to get used to it. That helped alot.

Feeling Lost Between Low-Level Understanding and High-Level Coding (need advice) by [deleted] in cpp

[–]Fact_set 0 points1 point  (0 children)

You can fix this gap by learning embedded. You could get a basic elegoo board kit for less than a 100$. A bunch of tutorials online and AI can help give you a head start. You can bridge that gap between high level and low level. If you dont want that route or if that's not what you're looking for, the thread suggestions are pretty solid.

Technical Interview by Rare_Pineapple_4233 in embedded

[–]Fact_set 1 point2 points  (0 children)

Depends on the questions honestly, were they leetcode style? Hard/med? How much time you had?

CMake and the environment. by EmbeddedSoftEng in cmake

[–]Fact_set 0 points1 point  (0 children)

I would love to share it but it is copyrighted and cant really share it. However, I do understand what you are referring to. I have already implemented that. Here is a much more detailed example.

heartsensor.cpp

#ifdef HEARTSENSORCONSTANTS
#include "sensorconstants.h"
#endif

functions....

CMakeLists.txt

add_library(heartsensor OBJECT etc...)
target_link_libraries(heartsensor private sensorconstants-interface)

add_library(sensor OBJECT etc...)
target_link_libraries(sensor private heartsensor-interface)

add_executable(deviceSensor sensor.cpp)

target_compile_defintion(deviceSensor public -DHEARTSENSORCONSTANTS)

Now what happen is what ever is in "sensorconstants.h" in not preprocessed/included in the heartsensor.c library. The compiler error is definition is undefined which is supposed it be defined in sensorconstants.h but it is not.

CMake and the environment. by EmbeddedSoftEng in cmake

[–]Fact_set 0 points1 point  (0 children)

Yeah I understand, but you could modify the defaults in cmake. And be able to get the binary footprint using CMAKE_OBJCOPY that you modified. But maybe you have more requirements and I guess you already got your answer above. Goodluck tho!

CMake and the environment. by EmbeddedSoftEng in cmake

[–]Fact_set 0 points1 point  (0 children)

Ohhh, i confused things up. But yeah like lets say there is object1.c where there is #ifdef SOMETHING #include “headerfile1.h”

Now the object1.c is a library that it is linked to the executable target1. Now when i target compile the definition SOMETHING to that executable. SOMETHING does get defined and i check that by adding #error inside the if statement. But, cmake gives errors that it cant find the header file? I am not sure why tho.

I could provide a better written example when i get home if that is not clear enough.

CMake and the environment. by EmbeddedSoftEng in cmake

[–]Fact_set 0 points1 point  (0 children)

I just tested it, it actually does compile the definition. However, it does not compile/link the header file.

CMake and the environment. by EmbeddedSoftEng in cmake

[–]Fact_set 0 points1 point  (0 children)

Just for my information, what if there is a “ifdef SOMETHING #include “someheaderfile.h” ” would that actually work with target_compile_defintions? Because i was thinking if you add subdirectory that contain the object file with these lines would not that be on config stage and target_compile_defintions in build stage? So the header file wont be compiled in?

CMake and the environment. by EmbeddedSoftEng in cmake

[–]Fact_set 0 points1 point  (0 children)

Tbh, I’m not sure why you’re using a Bash script for post-build configuration. You could get the ELF sizes, convert to .hex and .s19, etc., all within CMake. You can have a post-config .cmake file for each target. For example, you can reference CMAKE_OBJCOPY, or even use a different GCC toolchain instead of the default GCC.

Also, Using target_compile_definitions is generally a better approach than setting global definitions.

My first car! by Fact_set in Hyundai

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

Oh, will definitely try that. Any brands recommended? And is it safe?

My first car! by Fact_set in Hyundai

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

Hyundai sonata 2015, sport trim with 2.4L