An important part of the manufacturing process, of a product that uses a PIC microcontroller, is programming the processor. It gets complicated if the chip has to be programmed with both your Main App firmware AND some bootloader firmware. It gets still more complicated if your device also has to have a unique Serial Number, and maybe some other data or IDs programmed into the processor as well.
WHO should do this programming? How much of it? AT WHAT STAGE? Should the chip manufacturer (Microchip) or a programming house do at least part of the programming, before the chip has been soldered to the board? Should your contract manufacturer do part or all of the programming, after the processor chip has been soldered to the board? Or should your own company program part or all of the firmware itself, after it receives the fully assembled board?
Our Simple Upgrade Management SYSTEM lets you make your manufacturing process simpler and more efficient. SUMS can even protect your Intellectual Property during contract manufacturing as well. The flexibility of our system gives you lots of options, and lets you choose to build up the firmware in your devices the way YOU want.
What Must Be Programmed Into Your Finished Device
By the time your device is ready to be sold, its program memory should contain the following elements:
- Your Main App firmware
- Bootloader Firmware
- Configuration Words
- Company ID (Supplied by Trace Systems - uniquely identifies your company)
- Model ID (Supplied by you - uniquely identifies this specific product of your company)
- A unique Serial Number for each product unit (optional, but strongly advised)
Using SUMS to Make A Full Manufacturing Image
SUMS makes it easy for you to build up what we call a Manufacturing Image. This usually consists of all of the items in the above list except the Serial Number. That is, a full Manufacturing Image is a hex file that contains all of the items in the above list that are the same for all production units of a particular Hardware Model in your product line. You can use a device programmer to program the SUMS Bootloader Firmware (and the right Configuration Word settings for your Main App firmware) into a sample device first. Then, you run the device and use the SUMS Bootloader PC program, in Developer Mode, to program the Main App Firmware, Company ID, and Model ID into the device. Finally you tell the SUMS Bootloader PC program to make a Manufacturing Image: it reads all of program memory back, and stores an image of it into a single Manufacturing Image hex file that can be programmed into other devices.
This Manufacturing Image hex file can be programmed into all your production devices in a single step, either by your company or an outside programming service or contract manufacturer. This makes an efficient manufacturing process. Once your product has been assembled with this Manufacturing Image in the PIC processor, you use the SUMS Bootloader to program a unique Serial Number into each device, and the product unit is then ready for sale.
Other Programming Options, If You Have Security Concerns
This efficient manufacturing process is fine if the full Manufacturing Image is to be programmed into each chip by either your own company, or by an outside service that you can fully trust.
Unfortunately, our customers report that some contract manufacturers cannot be trusted. They have found that some unscrupulous contract manufacturers will send their hex files, containing the Intellectual Property that they have worked so hard to develop and perfect, to pirate manufacturers in the Far East. To put it bluntly, their product designs can be easily copied and thus stolen by these contract manufacturer "service companies."
Since a Manufacturing Image is an unprotected hex file, it can be stolen by an unscrupulous contract manufacturer. Fortunately, the flexibility of the SUMS system gives you other choices, so you can protect your Intellectual Property.
Alternative 1: Send Only Bootloader Firmware Hex File to Contract Manufacturer
One alternative is to just send the SUMS Bootloader Firmware hex file to your untrustworthy contract manufacturer, with none of your own firmware in the device at all. Contract manufacturer uses a device programmer to burn the Bootloader Firmware into the processor, and ships assembled board to you which contain only the SUMS Bootloader firmware.
Once your company receives the finished boards from your manufacturer, you can use the SUMS bootloader to program the Main App Firmware, Company ID , Model ID , and unique Serial Number into the device on the board.
Alternative 2: Send a Manufacturing Image Containing a Test Program
Another alternative is to make a Manufacturing Image that contains SUMS Bootloader firmware and a simple test program that can exercise and verify your board during production test. Contract manufacturer uses a device programmer to burn the Manufacturing Image into the processor, uses test firmware to verify that each board is working, and ships assembled boards to you which contain only this manufacturing test image.
Once your company receives the finished boards from your manufacturer, you can use the SUMS bootloader (in Developer Mode) to program the REAL Main App Firmware, Company ID , Model ID , and unique Serial Number into the device on the board.
Alternative 3: Send Bootloader Firmware Hex File and an Encrypted Firmware File to Contract Manufacturer
Create a Manufacturing Image hex file that contains just the Bootloader Firmware, Company ID, and Model ID, making sure that Code Protection Configuration bits are enabled (as is the default with SUMS Bootloader Firmware) so code cannot be read out of the device by a device program. Also send an encrypted Protected Firmware File, created by SUMS , that contains your Main App firmware in encrypted form.
Contract manufacturer uses SUMS bootloader to program your Main App firmware into each device, as if it were a field upgrade.
Once your company receives the finished boards from your manufacturer, you can use the SUMS bootloader (in Developer Mode) to program a unique Serial Number into each device, and the product unit is then ready for sale.
Next: Calling Bootloader Routines >>