3 ms·
I'd love to work with physical software (software that interacts with the real world through sensors and actuators), as a C developer, how should I move into th
by mips_avatar 6y ago
I'd love to work with physical software (software that interacts with the real world through sensors and actuators), as a C developer, how should I move into this space? Every time I try intro to ARM kits I feel like I'm in over my head.
- Symmetry 6y agoI've gotten recruiter email from SpaceX but I've worked in embedded sensor systems, big radars for the government, and robotics so those might be stepping stones. Be warned you might have be a US citizen.
- zachlite 6y agoI worked with AVR microcontrollers, and the avr-gcc toolchain when I was in college. It's basically an abstraction layer below what an Arduino provides you. https://en.wikipedia.org/wiki/AVR_microcontrollers https://en.wikipedia.org/wiki/AVR_microcontrollers
- lnsru 6y agoStart reading data sheets of these ARM parts. It’s straightforward when you know what peripherals do you need. Get familiar with FreeRTOS or other embedded operating system. It’s really not rocket science. You only need to know, what do you want to build. Otherwise it gets boring very quickly.
- davedx 6y agoI’m having a lot of fun with Arduino at the moment. You can do a lot with them.
- chasd00 6y agoI know you said you're a C developer by the MicroPython boards get you up and running pretty quickly. It's straightforward to get a blinking LED ( the Hello World of embedded programming ). Otherwise, I would use a STM32 dev board and their IDEs and tools. It will get you off the ground and blinking LEDs way faster than working out the toolchain, loaders, ASM, setting the clocks and peripherals and all that work that has to be done before you even get to your application.
- Rebelgecko 6y agoStart out with an Arduino, or ESP32/ESP8266. The ESP boards are probably the best bang for your buck out there if you're just playing around— you can start out with the Arduino environment (C++-ish), or use something like PlatformIO to interface a bit more directly with the hardware. It's not as low level as an ARM board where you have to worry a bunch about setting up clock multipliers and all that jazz, but the power to do so is there when you're ready for it. The best way to learn is to solve a problem that motivates you. Maybe you want a phone notification when your laundry is done, or when a room in your house exceeds a certain temperature. Work on some little projects like that If you want to get even lower level, then try out the ARM boards again. Someone else mentioned STM32 boards, which are great in many ways but IMO not very user friendly (Their STMCube software actually makes me mad). You can also try your hand at FPGA development. Verilog and VHDL are both popular languages, and preferences between the two tend to depend on domain. There's compilers that let you program FPGAs in C, but shying away from that. If you want to look for work, probably the big industries to check out are: Consumer embedded hardware: companies that make printers, cell phone radios, etc Medical devices Aerospace/defense
- deleted 6y ago[deleted]