It’s always challenging for us to manage embedded projects when we have small resources. The key to do it is to choose what to do when and our experience is here to rescue us out of difficult situations. The procedure in this post is for typical microcontroller based projects with little to average complexity. This scheme assumes that you have at least some experience with such projects and you have at least one relevant hardware development kit or a previously designed hardware which has some features common with your new project. It’s not about soldering DIP-only components on veroboard rather its a professional way for relatively experienced designers. Off-course there may be better ways to execute such a project. You can suggest if you like.
- Designs your hardware: Normally we work on development kits. If you are using a reference design, which normally happens and is a standard practice now a days, try to design around it. In this way you are basically re-using the effort made by the vendor to bring up something working. It will save lots of development time. Adjust the hardware according to your special needs. This may be the schematic change, components packages change, or perhaps one or two extra peripherals addition. When you are done and satisfied with the hardware, send it to the PCB fab. The PCB fab takes its time.
- Order components: While designing PCB, you had generated BOM/BOQ and you need to place an order for that. This also takes time so you need to do it early.
- Develop firmware: What will you do when the PCB design has been shipped to fab and components are on their way after shipment? Well, meanwhile you can develop your firmware using the available tools. For instance you can verify your LCD code, the serial code or some other chunk of firmware.
- Prototyping: When the PCBs and components arrive, you need to stuff the PCB. Remove any visible hardware bugs if possible.
- Dump the firmware: Flash the firmware into the flash and check if that LED blinks which was supposed to do.
- Adjust Firmware according to the actual hardware: But wait, you had adjusted the hardware according to your needs. For example, you had re-adjusted the pin allocation etc. Make necessary changes in the firmware, one by one, and keep debugging the functionality. In this way, complete your whole projects with a presentable prototype.