Design Flow Overview
A custom engineered project requires a lot of development. Relative to software, many more stages of the development cycle exist. In fact the software engineering component is a small component relative to the huge task of hardware development. Often times several different types of engineers are needed for hardware engineering. This list of people often include a board engineer, logic engineer, firmware engineer, analog engineer, board manufacturer, software engineer, mechanical engineer, and machinist. All of these people must be coordinated with the project's requirements and work together for a seamless outcome.
Costs Related To Hardware Engineering
Engineers in the hardware field are not nearly as prevalent as software engineers. Therefore their demand can outpace their supply, making them difficult to attain and retain without high salaries and excellent benefits. This adds to the costs of the development cycle.
Because hardware engineering is a highly specialized field, the tools of the trade are not made in quantity, and can be extremely expensive. Tools like soldering tips can be hundreds of dollars. Solder stations can be thousands of dollars. Logic analyzers can be tens of thousands of dollars. Assembly machines can be hundreds of thousands of dollars! And the above is just a very small list of tools needed for the engineering process.
Since the hardware field is so rapidly changing, engineers need to constantly adapt to changes in the field. This is done through books, periodicals, and education that are quite expensive. The new changes require constant updating to design models, and the tools that are used for development.
Related to the changes is component research. Research is extensive with thousands of new components arriving on the scene each year. These components require hundreds of hours reading data sheets and component features so the best components for particular jobs can be chosen.
STEP 1. Learn the Customers Business Model and Hardware Needs.
The first step of developing custom hardware is to learn how your business works. For instance, we need to know if you have a high-volume or low-volume product. A high-volume product may be worth investing more time into research and development, in return lifetime production costs can be lower. On a low volume product you might opt to reduce R&D costs, at the expense of boards that may be more complex to manufacturer, components that may be more expensive, or parts that need to be individually machined, rather than mass molded by the injection process. In this latter case the production costs may be more expensive, but not nearly as expensive as the R&D costs of a high-volume design. Finding the balance that makes the most flexible, and least-expensive total cost of development is our goal.
We also need to know where your equipment will be used. Is it designed to be used in the military? Or perhaps it's a consumer product. Maybe it is for the automotive market. These affect the shock resistance, temperature extremes, and abuse the system needs to survive in. All this translates to specific environmental requirements, component specifications, board layout, and system conditioning components. This is where we decide how strict your system tolerances need to be.
Interface requirements are also part of this phase of the project. We need to know what you want to monitor. Is it a pressure sensor? Or perhaps the rotation of a knob. Are the sensors digital, analog, or both? Do they require signal conditioning? What kind of hardware feedback do you need for the end user? Is it just LEDs, or do you need an LCD system? What types of interfaces to other systems are required? Your project may be best off with wireless Ethernet, or perhaps a simple SPI interface. Maybe it would be most effective having a USB interface. Interface requirements are researched by us, and evaluated for the best solutions for your system.
STEP 2. Determine required system footprint and electro-mechanical requirements.
After learning your business model, hardware needs, and the environment the system will be in, we need to determine the size, and weight of the system. This is the footprint of your system. It tells us the shape, and how big (or small) the outside dimensions need to be. We need to know this, as it affects what electronics we can use inside of the given footprint. Footprints sizes may be necessary for something simple, like an enclosure. Or they could be more complex, such as a mechanical system with electronics directly integrated into the mechanical motion of the design. Generally, the smaller a system needs to be, the more difficult it is to create. Small devices often require specialty parts, high density components, tight board specs, and the latest MEMS and other micro component designs. We'll study your footprint requirements, and research the hundreds of thousands of electronic components available on the market to find out what components are best suited for your system.
STEP 3. CAD design of electro-mechanical systems.
After developing a parts manifest, we'll acquire the mechanical design sheets for each component. This allows us to create a design that integrates the electronics into your mechanical hardware. This stage involves dealing with footprint constraints, developing a mechanically robust design, creating an aesthetic outside design for the system, developing the designs for the mechanical components that go into the system (thumb wheels, board housings, system covers, etc). We also need to create internal channels for wire and cable routing, as this is part of the infrastructure of your tool that connects all components together. At this stage, we design the mechanical operations of the device, as well as allocate physical space for the electronic components and interconnects.
STEP 4. Logic Engineering
After the interfaces and I/O requirements of a system are determined, we need to come up with a logic design. This is the design is the foundation of the paths the different chips and components use to talk to one another. It also includes programmable logic design that allows us to create very flexible, adaptable, and compact systems through the use of chips like FPGAs and CPLDs. Languages such as Verilog and VHDL are used to create the actual chip layouts that will interact with the various parts of your system.
STEP 5. Firmware development
When the board design is done, we know how everything is supposed to connect together. Now we need to write programs that control the data flow across all of these connections. This is the firmware. Firmware is similar to software, in that it is a program that tells a computer how to operate. However, this "computer" is called a "microcontroller," and usually has RAM, ROM, storage, and certain IO integrated into one chip. The chip is not very powerful (compared to the microprocessors that are in your personal computer). Therefore firmware must be written very efficiently, and in a rock solid fashion. As a testament to firmware developers, think of the last time your car's engine computer, microwave oven, printer, or CD player locked up and required a "reboot." It's a very rare occurrence. All of these devices operate on firmware.
STEP 6. CAD Engineering of Circuit Boards
This phase and the CAD phase are often visited multiple times in a project. In the CAD phase we create a model that has constraints placed on it by the footprint. Our goal is to create a board that fits into the space available on the CAD design. Sometimes there may need to be tweaks, or minor changes to the CAD design to allow a board design to neatly fit into place. Board design can be an art in itself. Most modern board designs have several layers of traces (the conductive "wires" printed on a board). These traces have to be connected to other layers with vias. The vias must avoid interfering with parts that are soldered to the layers above and below them. Board design must also adhere to electrical and thermal rules. Via and traces may act as heat dissipation channels for the components on the board. Vias and traces can also cause electrical problems if used improperly. This requires careful placement of the vias and traces on your system's boards. We also assign unique names and calculate and assign values to every single component (resistor, capacitor, diode, regulator, microchip, etc) for use later in the assembly process. Our job here is to engineer robust, well-designed circuit boards by observing physical, mechanical, thermal, and electronic requirements.
STEP 7. Board CAM Processing
After a board is engineered, it needs to be turned into a physical item, rather than just a CAD design in our computers. Similar to the machining aspect of the mechanical systems, the boards need to be converted into instructions for the board machines to process. The board manufacturing process requires both optical and mechanical operations, and has different file needs for each. In the CAM processing, we create drill files, and Gerber files that tell the system what size drill bits to use for drilling holes for vias, and components, as well as photographic information, such as where traces should be routed, how wide they need to be, and what chips they need to connect to. We also create part manifests that are used later in assembly and component sourcing. This manifest lists the part numbers assigned in the Board Engineering phase, as well as the parts value, manufacturer, part number, supplier name, supplier SKU, and total quantity. In this step, we create all the information necessary to physically create and assemble the circuit boards.
STEP 8. Board Manufacturing
This is the stage where boards are run through the photographic, chemical, and machining processes. The board begins life as layers of copper with non-conductive material sandwiched between. The copper is coated with an emulsion that protects it from acid. The files created in the Board CAM stage are used to expose the emulsion to light. Depending on the process, the emulsion will harden, or deteriorate when exposed to the light. The boards are then dipped in a solution that removes the weakened emulsion, thus exposing bare copper. The board is then inserted into an acid bath that eats away all exposed copper, thus leaving specific conductive paths (traces) that connect to various locations on the board. Next the drill file is used to drill the mounting, via, and thru holes of the board. Boards then are inserted with vias to connect the various layers of the traces together. The copper is then plated. This plating may be lead-based or silver, depending on whether it needs to be RoHS compliant or not. The plating process may affect the ease of assembly later in the board development process, and therefore cost and ease of assembly/repair is considered for the plating material. Finally additional layers are printed on the board, such as solder masks to keep solder from flowing into places we don't want it, as well as to prevent bridging of connections from solder during the assembly phase. The values and names of components are silkscreened on the boards, too. This helps identify parts for assembly or servicing. During this stage we develop run the boards through the various phases of creation, as well as select options such as silkscreen, solder mask, and plating material.
STEP 9. Component Sourcing
After a CAD design is completed, we have a parts manifest. This manifest tells us all the information about the various sources that supply us with components. We may have resistors from one manufacturer, capacitors from a different manufacturer, and chips from a variety of manufacturers. We need to keep track of all of this, and what distribution channels we use to acquire these manufacturer's parts. Parts from different manufacturers can vary by several dollars, or just a fraction of a cent. Many components times a few fractions of a cent can quickly add up to big costs, though. Therefore much research time may be used to find the most cost-effective supplier for each and every part on your boards. Calls or online orders must then be made to the various distributors so they can supply us with the parts we need in the assembly phase. Many parts in electronics have a lead-time. This is the amount of time, after a request, that a manufacturer takes to build components. On jobs with a tight schedule, Digital Indigo may be able to go through all the steps of the manufacturing process. But if one single vendor of chips has a lead-time greater than the development cycle, it can halt everything in it's tracks. This affects the components we use, in turn affecting the board design, and the mechanical design that holds the boards or components in question. In this step we need to establish our distribution channels so we can be supplied with our much-needed components. We also need to determine what lead times are acceptable for the given project.
STEP 10. Board Assembly
After manufacturing of the board is complete, it needs to have the components placed onto it. This is called assembly. At this stage the parts are soldered onto the board either manually, using a microscope and very steady hands, or mechanically using the files created in the Board CAM step to operate robots. Some assemblies can be very complex, especially those that use chips with pins spaced only a few thousands of an inch apart. Or BGA chips that have their connections in a grid on the bottom of the chip. Each ball in the grid has to be soldered perfectly, and then X-Rayed to make sure everything "looks" okay under the chip! In the assembly process, it's normal to have some component destroyed. Therefore parts manifest have to take into account a factor of part destruction. In this step we either place the components by hand, or program a robot to do the assembly for us. This is based on the complexity, and quantity of boards required.
STEP 11. CAM Mechanical Processing
After creating a CAD Mechanical design, the parts need to be changed over to code that operates the machines that create the parts designed in the CAD stage of the project. In this step, we need to determine machine tools needed, the speed the tools can be operated, and the order cuts, drills, taps, and other machine work needs to be done. We also design jigs, calibration systems, and fixtures for your system so the raw stock can be held in the machine in a way that doesn't interfere with the operation of the machine's movements.
STEP 12. CNC Machining
The result of the CAM Processing stage is G-Code. This code tells the CNC machines which tools to use, and how to move those tools to cut your system's mechanical parts out of raw stock. The machinist will manage the tool libraries and code for you system's mechanical needs.
STEP 13. Device Driver / Interface Programming
After the prototype system has gone through all of the previous steps, it usually needs to talk to other devices; typically a desktop computer. This desktop computer needs to know how to talk to the system—essentially to learn your custom hardware's language. This is done with the device driver. This is the software portion of hardware development. In this step we write software that tells you computer how to send data to, and read data from (talk back and forth) with you hardware.
STEP 14. Test Assembly Development
Once the device has been approved for production, a test assembly needs to be developed. This allows the board(s) and compoenents to quickly attached tested. In this step we create one-off cables and board assemblies specifically designed to test the product created in the previous steps.
STEP 15. Assembly Process & Documentation
Next, an assembly process needs to be developed. This process documents how the mechanical and electronic pieces relate to each other during their assembly into a fully working product. In this step we determine the best order of assembly to build the finished units, measure and document cable lengths, photograph assembly for a step-by-step process of assemble, and document torque specifications. Hard copy documentation is then created so that assembly is consistent across all production runs.