As a firmware contractor, I frequently get questions about what embedded firmware is and what is required.
Embedded firmware programming is different from normal PC programming because it is usually designed to do one task or set of tasks. The power of a PC is that it can run many different programs. You may choose to write a letter in Word or read a pdf document in reader. This flexibility comes at a cost though – they’re usually pretty large (although with netbooks and tablet PCs, they’re getting smaller).
There is a whole segment of electronic devices that don’t need this flexibility. Consider a microwave which needs to read the keypad and display the resulting cook time. After the cook time is set and the start button is pressed, it will need to count down the seconds and turn the microwave off after it is complete. Pretty simple, right? Firmware has some definite advantages in this case. The microcontroller is simpler and therefore cheaper than a comparable microprocessor. Also the fact that the program is simpler means it is more reliable. What would you do if your microwave blue screened while making popcorn?
Here are some advantages to keep in mind for embedded firmware microcontroller design projects:
- Task Specific: Embedded microcontroller projects target one specific task or set of tasks.
- Cheaper Cost: Embedded microcontrollers are a cheaper solution for specific tasks than a full-blown PC which uses a microprocessor with external chips. Microcontrollers have memory, input and output capabilities, communications buses, and peripherals such as timers built into one silicon chip. This microcontroller includes what could be 5 different parts internally. Also less circuit board is needed for the microcontrollers which reduces design time, board cost, and defects.
- Special Tools: Embedded firmware programming requires some specialized tools but the cost of these tools has decreased. In many cases, tools are free or have a limited evaluation period.
- Enhanced Security: Since the memory is inside the chip, your embedded firmware design is harder to steal. Most chips have a security bit that prevents hackers from reading your firmware programming. Compare the security of an embedded firmware program on a microcontroller to the security on a PC where the program can be copied to a flash drive or CD.
- Ruggedness: Embedded firmware programs run out of on-board SRAM and FLASH memory so they are more rugged than the mechanical hard disk drives that have moving parts.
A contract firmware design house like ours helps a customer select the best microcontroller for the job and then provides the underlying embedded firmware programming required to run the task. A contract firmware company can typically complete a design in less than 6 months depending upon the complexity of the project. Using contract firmware labor means you pay for the design and possibly maintenance without having to hire a full-time embedded firmware programmer.
Additional Information Links
How is an Electronic Product Developed? An overview of the complete product development process can be found here on the Overview of a Design post. In this post, we go through the design of the electronics. Typically, the process proceeds like this:
- The customer writes down the basic functionality of their product. What does it do? This will determine the input and output functionality. The input functionality is how you get information into the device. It could be a sensor or a pushbutton or a keyboard. The output functionality is how information is retrieved from the device. This could be a printer, a display, a blinking LED, etc. We’ll guide you through the process of detailing how the device will work.
- Next, we choose the devices that make up the product. Numerous electronic parts will need to be chosen. In many cases, there are a number of options and we will help you select the appropriate part based upon look, feel, and price.
- Once the device is specified, we can begin drawing up the connections between the components which is referred to as a schematic. We provide schematic capture services. These schematics are also used to troubleshoot any problems that may arise.
- After the schematic is created, The schematic interconnections of the electronics parts are used to generate the circuit board. It generally takes about 2 weeks to get the circuit boards.
- At this point the circuit boards are ready to have the parts soldered onto them.
- Basic functionality can now be tested. If a microcontroller is used, the debugging capabilities can be tested.
- Typically some changes will be required at this point. For the most part, simple modifications called blue wire mods can be used to patch in new functionality or parts so further improvements, fixes or changes can be implemented.
- Once the functionality has been proven, steps 4-6 can be repeated. Modifications to the prototype are faster because much of the design (form, fit and function) has been completed prior to step 4.
At this point, the product is pretty close to production. We’ll go through the production process in a different post.
Additional Product Development Links
Need to turn your bombshell idea into a product? Lynx Innovations is the answer. Our staff helps you convert your dream into a physical product.
We start out by understanding how your device will interact with the outside world.
- Do you need a display? We can help you select a display based upon price, functionality, power consumption etc.
- Do you need buttons? We help you select buttons based upon price, what it feels like, and size.
- Is this a portable product? Batteries are an important consideration. In this case you need to choose how long it can run before being charged, how large it is, and the resulting weight.
- Does it connect to a computer? USB, ethernet, internet, RS232 serial port connections are just some of the available options.
Lynx Innovations believes that time is money and therefore creates a quick prototype board for putting the possiblities into a tangible form. These steps are followed for a successful design.
- The initial concept will be captured on a schematic which is then used to create a circuit board prototype. As new ideas or changes are required, in most cases they can temporarily be tested on this prototype platform. At this point, we also need to start thinking about the mechanical design.
- Firmware can written and tested on this initial prototype platform. We plan the ways that the firmware can be updated during development as well as production. Initial design focuses on getting the basic concept to work and getting that prototype into our customer’s hands. We then begin adding the extra features and finishing touches to the design. As a result of working on the prototype, most of our customers will request changes or additions to the initial idea.
- More focus is placed on the mechanical design at this stage. An enclosure or case is chosen. This will affect the layout of the circuit board. Placement of keypads, buttons, displays, and input/output ports are finalized.
- At this point, we’re ready for a new circuit board. The design changes are made to the schematic and a new circuit board is laid out, created and then built with the appropriate components.
- Finalization of the design is next. With the new circuit board, the finishing touches are added to the product. Diagnostic routines are added to the firmware for production testing.
- The design is turned over to production. Typically a small pilot run of 100 or so pieces irons out the kinks in the production. This pilot run is a sellable product so the customer can start making money at this point. The next step is full-scale production.
If this process sounds good to you, please call us for a consultation. We can talk you through the process and answer any questions you may have. Contact us using the information on our Contact page.
Additional Product Development Links