News for hackers. Stuff that matters.
Re:Can you become a firmware engineer(embedded software engi... by the__alchemist on Wednesday April 28, 2021 @06:55AM (#26967924)
I don't think the subject is impenetrable, but that doesn't mean you'll find a job. Like web dev, the challenge is tieing together a range of related skills. For example:

  - Proficiency in a low-level language (C, C++ or Rust)
  - Part choosing
  - PCB design
  - Knowing how to read datasheets and reference manuals
  - Understanding how registers work
  - Coding without an allocator
  - Balancing performance with power-saving (battery-powered devices etc)
  - Control flow patterns unfamiliar to desktop work (Interrupts etc)
  - Knowing the capabilities and quirks of the specific hardware you're using
  - Setting up a toolchain etc
  - API design for turning register-level code into something practical (like writing drivers or a HAL)
  - Soldering
How you can start: Buy a dev board; ARM Cortex-M is a good choice. Eg an STM32 Discover board, or NRF52 board. Either choose an appropriate IDE for C/++, like STM32 Cube, or clone the Knurling App Template for Rust.

Figure out a project you'd like to do. Make it happen using the dev board. Ie buy input and output devices, perhaps on breakout boards. Once you're comfortable with this, learn PCB design software; there are some OK free ones like KiCad. Design and order some custom boards. Learn to solder parts their assembly service doesn't have, or won't install.

As an aside to proficiency, there's something rewarding about making a program that has no noticeable latency due to lack of conflicting priorities, and bloat associated with web and GPOS programming.

Re:Can you become a firmware engineer(embedded software engi... by pracer on Wednesday April 28, 2021 @07:01AM (#26967957)
In regards to finding a project to start practicing, coupled with buying a dev board, I can recommend this course https://www.edx.org/course/embedded-systems-shape-the-world-...

I did it some time ago, the board they use is pretty cheap and it could be a good starting point. Disclaimer: - I did this course (or similar, but same professors and same university) online some years ago, so I assume it has been updated. - I do not get any benefits, monetary or otherwise, for promoting this course or for new enrollments. I just recommend it based on my personal experience.

Re:Can you become a firmware engineer(embedded software engi... by markus_zhang on Wednesday April 28, 2021 @09:55AM (#26969402)
Hi pracer this looks good. Just curious are oscilloscopes and logic analyzers some software or we need to purchase both? (wouldn't be a bad idea to put down the $$ TBH if one wants to take hardware as a serious hobby)

> Debug using oscilloscopes, logic analyzers, and software instrumentation

Re:Can you become a firmware engineer(embedded software engi... by the__alchemist on Wednesday April 28, 2021 @11:10AM (#26970276)
Oscilloscopes are hardware that can be used to analyze digital and analog signals. They may be able to interface with a PC (USB) using software as well. logic analyzers are small, usually cheap pieces of hardware that can analyze digital signals only, and rely on software on a connected PC. IMO even the $10 analyzers are great for digital (troubleshooting I2C, SPI etc), and can analyze many channels at once. You only need a scope for analog.
Re:Can you become a firmware engineer(embedded software engi... by matt_the_bass on Wednesday April 28, 2021 @06:51PM (#26975260)
If I could only afford one, I would recommend the o-scope. Most firmware runs on bespoke hardware and the programmer can’t assume the hardware is abstracted away from the software. MANY bugs I’ve tracked down required electronics probing.
Re:Can you become a firmware engineer(embedded software engi... by markus_zhang on Wednesday April 28, 2021 @12:10PM (#26971000)
Thanks, yeah I know what they are but not sure whether we need to purchase real ones or the course has some simulations.

We have logic analyzers for just 10 bucks? Wow that's much more affordable than I thought. I thought both need like hundreds of bucks.