I am trying to shift my career to the embedded software world. I learned about all the peripherals like ADC, USART, SPI, I2C, DMA, timers, and all on an STM32. (All bare-metal using CMSIS. I tried to avoid HAL.) Currently , I am working on a preemptive processes scheduler, but still, I don't understand how to break into the industry. There is so little info about it online ; I know it's pretty niche and all . It would be great to get some insights from an oldfag in the industry and probably some resources.
>>109421894What do you mean I learned. Order home a basic ass stm32, a sensor kit, oscilloscope, logic analyzer, multimeter, stlink, breadboard and start building a bunch of random IoT gadgets and toys with cheap chink motors until you really learn. And use gemini or whatever LLM to troubleshoot things or give you ideas, have fun anon.
>>109421894Unless you work for a silicon company like Nordic or STM or whatever, you will just be using a vendor HAL most of the time. All thoses peripherals and protocols are solved problems. Good to know about, so it is good that you did all that if you are telling the truth. What I would recommend though is making something where the MCU is part of a larger system. I don’t really know though, I ended up in this field by chance out of college.
>>109422166>using a vendor HALOnly incompetent hacks do that. I don't and my colleagues don't. Most (all?) vender HALs are junk and you lose about half of your resources and can't use 80% of the more advanced pheripheral functions by using it. A lot of embedded needs assembly in some places.OP is right to want to learn and use it propperly. Only thing to add is basic electronics theory. Without it you will be a useless embedded software guy. Also, read the assembly output from your code.Embedded programminf needs a diffrent mindset from PC software.Good luck OPt. >10 years of embedded, 7 years PC GUI software and web
>>109423546Yeah you are probably right. I feel like a bit of a fraud in this field and I defer to your expertise.
>>109423546Whats some other advice you would give...to be a unicorn in the industry or very strong candidate.
>>109424640Understand the application you are working on. If it is a sensor company, understand how the measurement principle works. If it's motor control, understand how motors work. And not just on a high level, but in some detail. We got job applications from guys that thoght they are embedded programmer because they played with an Arduino once. Don't be that guy.
>>109421894Need to learn the hardware side too. How to read schematics, specifications, inspect boards, etc. How to design simple hardware, how to debug it and patch it. You will be working with custom hardware, that may or may not work properly. Other than that embedded software is pretty broad. You might be working on some simple low consumption sensors, rf systems, embedded linux, motors, HMI, random shit with esp32, writing drivers, etc so the requirements are specific to the job.
>>109421894But can you program Arduino?
>>109421894>I don't understand how to break into the industryIdk if I'm gonna blackpill you on this, but the "industry" here is just factories. Most of them are in China. If you want to find a job ask your local factory if they have positions open
>>109427495Development and production are often not in the same place. Factories are in china, engineers are still in europa and america. For how long is a different question.
>>109423546how the fuck hals are so shit?
>>109428157Because the peripherals are complex and the interface (registers) is often already very abstracted from what is happening in hardware anyway.For a UART to work, you often need to write 1 or 2 register and it's basically running. The other 20 registers it might has are for settings that you almost never need, but make all the difference when you need them. The problem is that the HAL, needing to be compatible with all hardware, will only implement the lowest common denominator for the most basic use case. Also, in a lot of cases it it's not making it easier to use the HAL. Either you read the datasheet and don't use the HAL or you read the HAL manual and start reading the datasheet when you reach the limit of HAL. I rather read only the datasheet.
>>109421894bad idea. embedded systems are really simple but require tons of knowledge on the documentation, exactly the sort of work flow ai is optimized for. if you want to get into hardware learn vlsi.
>>109428302HALs suck due to a combination of minimizing development effort for the vendor and maximizing flexibility for the user. I strongly suspect that just asking AI to use CMSIS to write your drivers and do platform setup will get you better results faster than using a HAL, though.
>>109428320I do wonder how long until AI can just do IEC62304 and so on.
>>109421894>I learned about all the peripherals like USART, SPI, I2CThose are protocols not peripherals. A peripheral would implement these.
>>109428662Semantics.More important is to also learn about the higher levels of the protocols. E.g UART -> modbus, I2C -> sm-bus etc...
not OP but I incidentally also want to get into STM32 and do IoT shit like >>109422050 recommended. Which boards should I get to minimize the effort of connecting them to my wifi network? So far I've only used nucleo 32
>>109421894Ham SDR stuff is embedded type electrionics with emphasis on RF but also audio frequencies. Plenty of free resources at >>>/diy/ham
>>109432086Is this an expensive subfield? I am quite poor at the moment.
>>109423546the american FEARS the Shenzen Sages
>>109432069STM32F429, and maybe beaglebone black.t. 7 years embedded, used to teach linux kernel driver dev to grad students.
>>109433175The sky is the limit. Thankfully it starts cheap, pic. related is about USD 3. Home made electronics is a long time /ham/ tradition, and you can get very far for very little money.In any case, much of the tech literature is free.
>>109433804>>109435537can you virtualize any of this?like a virtual learning environment
I guess if you want to do it "properly" you should pay for a Keil license and buy a decent USB data analyzer so you can make sure your SPI data is valid or toggle pins to figure out what's going wrong with things fuck up, which invariably they do. I don't do embedded "professionally", I like to use ESP32-S3/P4 cheap boards with VSC + platformio and cline. Learn LVGL. It's bloat, but if you learn to wrangle it, it does make fancy UIs very quickly which impress non-technical people.