- Unless you are building something with high volumes (or something trivially easy), development costs are going to be your biggest expense by far, specially firmware/software.
- Using cheap parts is nice, and if you come from the DIY world you will know many such parts. If you are going to build something commercially, avoid those things like the plague, because they will become the biggest sinkhole of technological debt.
- Software/Apps behave like high-risk investments (natural monopolies, zero-or-nothing situations, low initial costs), electronics behaves more like long term investments (high initial costs, high development path dependency). It's way more profitable to have a product you barely have to touch (but sells well), than several that need constant modifications.
Which leads me to some tips:
- There's not much sense in 8 bit / 16 bit microcontrollers for most projects nowadays. Don't fear going to 32 bit.
- MIPS/AVR are nice, but if you are building something that is not a one-off (or you plan to build on the product), go with ARM (for now).
- Build your PoC and prototypes on manufacturer libraries, but once you have the resources for it, well-thought and tailored libraries will make your life easier.
- When working on libraries, don't write them directly from the datasheet. Go for the family references, target the whole family instead of a single chip.
- Before chosing any component, specially the ones that are hard to replace, price is secondary at best. Availability is way more important.
- If you are willing to take some risk, look at Rust for embedded. The language is still 'young' and there's a lot of stuff that needs to settle down, but man, does it look good.
And for PoC pick one with more memory - e.g. you can find chip (like stm32f0x1) with same pinout, peripherals - you can optimize that later, and don't worry about it while using fat libraries.
- Unless you are building something with high volumes (or something trivially easy), development costs are going to be your biggest expense by far, specially firmware/software.
- Using cheap parts is nice, and if you come from the DIY world you will know many such parts. If you are going to build something commercially, avoid those things like the plague, because they will become the biggest sinkhole of technological debt.
- Software/Apps behave like high-risk investments (natural monopolies, zero-or-nothing situations, low initial costs), electronics behaves more like long term investments (high initial costs, high development path dependency). It's way more profitable to have a product you barely have to touch (but sells well), than several that need constant modifications.
Which leads me to some tips:
- There's not much sense in 8 bit / 16 bit microcontrollers for most projects nowadays. Don't fear going to 32 bit.
- MIPS/AVR are nice, but if you are building something that is not a one-off (or you plan to build on the product), go with ARM (for now).
- Build your PoC and prototypes on manufacturer libraries, but once you have the resources for it, well-thought and tailored libraries will make your life easier.
- When working on libraries, don't write them directly from the datasheet. Go for the family references, target the whole family instead of a single chip.
- Before chosing any component, specially the ones that are hard to replace, price is secondary at best. Availability is way more important.
- If you are willing to take some risk, look at Rust for embedded. The language is still 'young' and there's a lot of stuff that needs to settle down, but man, does it look good.