Home > News & Blog > Outsourced Device Programming

Outsourced Device Programming: A Simplified Manufacturing Solution

Outsourced Device Programming: A Simplified Manufacturing Solution

Microcontrollers are tiny devices that control many of the products we use in our everyday lives, from fridges and coffee machines to phones and cars. While demand for these devices is high and growing, manufacturers face pressure to keep their production lines moving quickly and efficiently while ensuring quality.

One way to simplify the manufacturing process and improve quality control is to outsource device programming. This can help manufacturers focus on other aspects of production and free up resources to meet customer demands.

Outsourcing device programming can be beneficial for manufacturers in terms of cost, time and quality. However, it is important to partner with a reputable and experienced programming company to ensure that the process is executed smoothly and efficiently.

Our CMO Ciara McCarthy sat down with Mick McCarthy, EPS Global's Chief Operations Officer and a 40 year veteran of the electronics/semiconductor industry. Mick co-founded EPS in 1999 and was CEO of the company for 20 years before moving to the COO role to allow him to concentrate on growing the services side of the business.


How do I flash Microcontrollers in bulk?

To start, I should explain what a microcontroller is. It's basically a computer on a chip and it is used in embedded applications, for example: control systems in cars; implantable medical devices; wireless meters; hair dryers, microcontrollers are used in all of them. So when we talk about a microcontroller, we're talking about a programmable microcontroller. What they do is they stick a bit of memory onto the side of the microprocessor core, and that becomes a microprocessor, or series of cores that can be configured by the engineers who design the programs.

What are the methods for flashing microcontrollers?

There’s two approaches to this:

  1. This can be done during the manufacturing process, a process called In Circuit Test (which I'll refer to as ICT from hereon in), which is located in the middle of the production line.

    All the surface mount devices (SMD) have already been placed on the board, and you take the board off the line, stick it on a bed of nails to test that all the devices are attached correctly. At that stage you can run in the firmware into the device.

  2. The other option you have is you can program the microcontrollers before they go down onto the board, and that is used by various manufacturers because it simplifies the in circuit test process. There are many test engineers who have been working on in-circuit test algorithms and they're very, very complex things, a board can have thousands of devices on it that need to be tested and they hate to see the ICT process coming along, because it further complicates the entire process.

    It's very popular these days to program your devices before they go down onto the boards, and that can be done either by the manufacturer or the contract manufacturer themselves, or more popularly by outsourcing the programming of those devices to companies like EPS Global.

What is offboard programming?

Offboard programming is programming the device before it goes on the board. So if you could imagine something like an automotive application where the required standards are very, very high. The off-board programming has evolved over many years from simply a task that needed to be done, into a task that needed to be controlled to quality standards such as one part per million, and the equipment that is used to provide offboard programming has evolved significantly as well.

Now within EPS, we have been providing offboard device programming services for the last 23 years, and I personally have been involved in the off board programming business for the last 35 years, so I've seen a huge evolution in the quality standards available in how you handle programmable components, from microcontrollers to memory and logic devices.

We ourselves have developed our own capability within EPS Global where we have a significant research and development facility in Brno city, Czech Republic, and we have evolved our own component handlers over the years. Now we not only provide off-board programming services, but we also enable 3D Coplanarity testing, AOI testing after the devices have gone back into tape, and various other functions within the programming cycle, such as securing the microcontroller. We have a product that we can stand over and guarantee the necessary quality standards.

Does offboard programming speed up the ICT process?

Yes, very significantly. If you could imagine a train going down the line and there's a blockage at ICT which slows the entire train down. How do manufacturers usually get over this if they want to program the devices in ICT? They usually put more testers in the line. These testers cost $1,000,000 each. So I often think of it like toll booth. You're driving along the road and then you need to pay a toll. Then, the road spreads into a dozen or so toll booths because it's a very slow process. This is the same as ICT.

What manufacturers tend to do is try to make that ICT process as efficient as possible. If you could imagine an SMT line where the beat rate of the line was 60 boards an hour. They're getting 60 boards every hour out of the line. The more complications they experience at ICT, the lower this beat rate is. They may have the pick and place capability to build 60 boards per hour, but the actual programming overhead adds some time to that, which could slow it down to 50% or 25% of that, and to counter that they put in more testers, or they program the device before it goes on the board.

Offboard programming doesn't just take that time overhead away, it has several other advantages. One is that when you program a device off board it becomes live, and it becomes bootable. It means that as soon as the device is placed on the board and the board is switched on at ICT, it can boot straight away, it already has the program in it, and again, the poor unfortunate test engineer who has to manage the test algorithm, has his or her life has made significantly simpler as he or she doesn't have to test to devices that haven't been programmed yet.

Are EPS Global's device programming machines automatic?

Yes, they're completely automatic. If we talk about a programming job, we have a routine in place. When we get an order for a new job from our customers, our customers will tend to give us their blank devices. With blank devices, you could have 10 different blank devices, but there's also a one-to-many relationship between the blank device and the programmed device. The customer may have 20 different programs that they want run in to the same blank device, and on top of that they will have cycles of "up revs" or engineering change orders as the firmware gets up revved for various things throughout the life cycle of the product, and all of those up revs in firmware need to be managed throughout the programming cycle.

We have a first article master process, and the first article master process is done when we program the very first device of a new revision of firmware. Those few sample parts are programmed and sent to the client with complex documentation that enables them to test the veracity of those parts and that they have been programmed correctly, that they have been handled correctly, etc. They test them in their lines, and then certify that back to us that they approve that this part has been programmed correctly, and that enables us to put that rev of that part into production.

How does EPS manage firmware changes?

Our entire process is built around the programmed part number. In old database speak, the program part number is our keyed field. If a manufacturer comes to us with an engineering change order and said: “we've had a change of firmware and we need you now to use this this version”, we'll say okay, what's the new part number for that? I mean, it's a very simple process from our point of view. No manufacturer that I know of in the world would have the same programmed part number for an up revved firmware as the previous rev of software. So the programmed part number is our Bible if you like, that's the one that we're driven by and we have a whole hierarchy built up around that.

In our situation, when we receive instructions from our clients to program some parts, it's based around the program part. The first time we do this, and it's part of the first start master process that I mentioned before, we build a bill of materials. The bill of materials includes all of the instructions that are required, including special requirements. I think we've got something like 120 fields in our bill of materials table on our system and all of those need to be filled in and the first start a master process is driven by that bill of materials. What our system does is, it takes the specified blank device, it applies the detail on the bill of materials to that device, it automatically creates a works order with instructions, we program to that works order, and we get the expected result out of the bank. Now there's all sorts of checks and balances in there, but there basically is a new bill of materials for every up rev in firmware that we.

How do you ensure that the failure rate stays below 1 part per million?

We have so many checks and balances built into our handling of these devices that any problems that arise are spotted within the process, and even if something happens that causes a retrospective investigation, we have log files that are maintained, the standard is 15 years. We can trace a lot code back for 15 years, in fact, we can trace it back longer, but the rules state that we need to trace it for 15 years, and that includes right down to operator level, who actually initiated the programming run, at what time it was done at, how long the device was out of the dry bag. All the details are recorded automatically within our system. We have had situations where some of our customers have asked us to track back where there are perceived problems and we have been able to give them all the details they need. In that regard, if you could imagine in an automotive control system, there are black boxes that basically are the ECUs that are used in the automotive industry. Say they have a problem with a car and they've isolated it to one specific ECU, they have to be able to open that ECU, have a look at the device and come back and trace all of those details. It's an extremely complex system that has been built up over many years of tracing and tracking.

Is EPS regularly audited by automotive customers to maintain those standards?

Yes, several times a year by all customers.

What is 3D Coplanarity testing and AOI?

3D Coplanarity testing is a process by which the device is subject to a test using complex cameras that will test the leads on the device in 3 different planes, the X, Y, and Z plane. What we are doing is trying to prove to our client we have not degraded the part in any way, shape, or form, by carrying out the programming process. We build these checkers into every machine that we make, and particularly in the automotive industry it's an absolute requirement that you have to 3D check the device after it has been programmed. The device is usually presented either in tray or in tape, we automatically pick the device out, we program it, we bring it back and on the way back, it basically gets checked in all of the three planes.

AOI basically means Automatic Optical Inspection. That is a process that's carried out after the devices have been placed back in tape, after the cover tape has been sealed on the top. The AOI camera then looks at the orientation of the device to make sure that they're all placed back in the correct orientation.

Should I purchase my own automatic programming machines or outsource my IC Programming requirements?

You could, but automatic programming equipment is very expensive and it's akin to buying SMT machines. It's got a very heavy capital overhead associated with it. An automatic programmer probably starts at $500,000 USD, and on top of that programmable devices can come in many different packages, but 2 of the very popular packages are BGA, meaning Ball Grid Array; and QFP meaning Quad Flat Pack.

Ball Grid Array is what it sounds like, it is a device that has all the contacts underneath in tiny little solder balls, and that can range anywhere from 64 up to 300-400 different contacts underneath the programmable device, which are very complex devices.

QFP devices are devices that have pins, very delicate pins on all four sides, and again, the QFP devices can run anywhere from 24 pins up 300 pins. Very delicate devices that require really precise, automatic handling, and they're principally the devices that need to be checked at 3D inspection.

Outsourcing your IC programming to EPS removes several costs and risks - the upfront investment in capital equipment, operationally you need to employ qualified engineering staff to keep up the maintenance of the machines, optimize your processes to comply with international quality standards and pass customer audits. We have the experience, equipment, quality management systems in place and global scale to support customers wherever they may be.

If I purchase my own machines, do I need to purchase multiple sockets to facilitate my job?

Yes. I think the SMT function is really a matter of reducing the number of associated risks. You you've got placement risks; you've got firmware revision risks; if you're doing off-board programming, you've got lead times associated with getting new sockets in; sockets are expensive, they can cost $1,500 each. So all the time, there's this constant overhead running through the management of an offboard programming site within a manufacturer's premises.

Whereas we have 23 programming centers around the world located in 14 different countries, mostly independently run EPS programming centers, and in some cases where we have relationships with very large clients we will tend to build a programming center in their premises. For example, the very large Tier-1 automotive manufacturers, we have in-plant programming centers in some of those locations. Now because we're being asked to program all sorts of programmable devices, we've built up a collection of programming adapters or sockets which are common to a number of different customers. So in that situation, whereas our investment in adapters is very high in every location, there tends to be a large commonality between programmable devices. In memory, you'll have very common type packages, and micros are the same. The economies of scale apply to us in that situation, which is value we can pass on to our customers. Whereas if you have a manufacturer in a specific location that needs to buy a set of adapters, because usually you've got multiples of 4, 8, 12 adapters associated with these automatic handlers, and they have to pay a couple of grand each for these things, it starts to get very expensive and even the management of the hardware adapter itself becomes a very difficult job. Whereas we have standardized routines around the world to manage all of those processes.

What is the cost structure and do you offer flexibility in the supply models for customers?

We negotiate a programming price per device with our customers, and that's a measurable price. It doesn't move often enough for my liking! But it almost never gets more expensive. In these days of volume programming, it tends to become commoditized. It's outsourced to us, and then people just forget about it. They look at the annual volumes of business and they negotiate with us based on those annual volumes. Once you outsource it and the process is set up, there's many supply models:

  1. One is you can free issue those parts out to us and we program them and send them back to you;

  2. the other is you can consign those parts from your supplier to us, we will manage the use of those parts from our inventory on a consigned basis, we can give you full visibility of your inventory at that situation;

  3. or else we can buy the parts under your conditions from your supplier. We manage the transaction, we charge a finance charge, and we charge a programming charge.

All of those models work very smoothly from our point of view. In general, the rules around those things haven't changed in a long time.

What are the key financial and production efficiency advantages of outsourcing my programming to EPS Global, rather than doing it in-house?

Really to summarize, a customer outsources their device programming to us based on whichever business model works for them and then kind of forgets about it because they're working with somebody they've audited and trust. The parts come back to them, packaged correctly and ready to be placed, pre-programmed, on the board on the assembly line. Their line doesn't have to slow down at ICT because the parts don't need to be programmed at the point at which they're being tested on the bed of nails. What they get is a freer flowing line, running more efficiently, getting more products out the other end which is going to save them time and money.

Where do you see the industry, and EPS going in the next 10 years?

Our long term strategy is to continue our geographic expansion and also to continue our activity diversification within our existing engagements. In a lot of situations we have very good relationships with the top 20 or 30 OEMs, contract manufacturers, Tier-1 automotive suppliers, and they have many, many locations throughout the world and what we tend to do is develop our relationship with those customers based on single or dual or multiple relationships, and try to expand those into further geographical area. That's been a very, very successful strategy for us, and we would see ourselves continuing that. We have the equipment side of it nailed down in that we have developed handlers and they get more efficient every day.

We are also currently very busy supporting our customers with component preforming, baking, kitting and in providing custom carrier tape, these are opportunities to diversify in each one of our locations. We don't have carrier tape manufacturing in every location, but we have already invested heavily in carrier tape capability with an emphasis on our client base, where for instance, they may have components that normally would be hand inserted after the SMT process, and we work with them to provide Tape & Reeling to help them automate their SMT process, thereby saving them more money, making them more efficient. In some cases we've put very large connectors on carrier tape so that they can be automatically picked and placed on the board during the process. That's a developing, and very interesting area from our point of view.

The new thing for us is Secure Programming, we have developed relationships with a number of specialists in this area, where we have built their hardware into our hardware, and we can now provide very sophisticated levels of securing microcontrollers in all of our locations. We have a two part series where we talk about the risks and then the actual value to the manufacturer to actually to secure their connected devices; protect their IP, their brand reputation, and their users in the field. You can listen here: Securing IoT Devices to avoid an Internet of Trouble - Part 1 and How do we Guarantee Trust & Privacy in a Hyper-Connected World of Devices? - Part 2.

Service diversification, growth into the secure IoT space, and geographic expansion, it sounds like the future is bright. We'll leave it on that high note and say thanks for joining us today.

Do you have semiconductors you need programmed?

We are strategically located in all major automotive electronic clusters worldwide. Our state-of-the-art, fully automated systems will program, 3D coplanarity check, laser mark and tape & reel your product and we can guarantee rapid delivery to help you meet your production deadlines.

Glossary of Terms

  • ICT (In Circuit Test): Testing the validity of electronic circuits without removing the components from the circuit board.
  • SMD: Surface Mount Devices
  • PCB: Printed Circuit Board
  • Offboard Programming: The process of writing code or firmware to a component prior to placing it on the circuit board
  • AOI: Automatic Optical Inspection
  • BGA: Ball Grid Array
  • QFP: Quad Flat Pack

Related Posts