ClearSky Development - Helping its customers

Frequently Asked Questions:

Q) What is Factory Automation?
A) Factory Automation is using computers, sensors and actuators to control the production processes for the efficiency, quality and tracking of products.  FA comes in many different forms and uses very simple techniques and systems for the assembly of mechanical products or food processing to the very complicated world of semiconductor manufacturing where there hundreds of steps, processes and complicated material handling issues are handled by an MES (Manufacturing Execution System)  These system can also go so far as to interface with ordering, inventory, etc. to electronically control accounting and shipping and other functions.

Q) What is Reverse Engineering?
A)  Reverse Engineering is a process where a mechanical, electrical or software product or project has for some reason lost its documentation and needs to be regenerated.  The device is carefully measured, probed and taken apart and documented in whatever formats are needed.  This could be as simple as a mechanical part to the very complicated world of a custom integrated circuit known as an ASIC.  Even complex software binary code can be disassembled into its smaller components and regenerated into a documented and commented source code format for reentering the design cycle.

Q) What is Firmware?
A) Firmware is software that has been hard-coded into flash or ROM (Read Only Memory) to be utilized in what is known as embedded systems.  These embedded systems are usually small dedicated computer systems that perform a defined set of functions.  Examples would be a cell phone, MP3 player, Internet router, hand-held remote control, etc.

Q) How is Reverse Engineering done?
A) Reverse Engineering is a carefully planned set of steps to create documentation for an existing undocumented product or project.  It is first broken into its basic areas of Mechanical, Electrical, Hardware, Software, Chemical, etc.  Each of these areas are then broken into finer and finer components and documented until enough documentation exists to properly reproduce the product using only the new documentation.

Q) What is SolidWorks?
A) SolidWorks is a software design package for modeling, simulating and documenting mechanical parts and assemblies.  It is capable of the simple to the very complex in design and simulation including stress testing of planned assemblies.  The Mars rovers sent to Mars in 2003 named Spirit and Opportunity (still operating as of 2009) were completely mechanically designed and simulated using only SolidWorks software.

Q) What are the steps for Hardware Design?
A) Hardware Design is a process of creating an electronic circuit usually on a PCB (Printed Circuit Board) or custom chip known as an ASIC (Application Specific Integrated Circuit).  The first step is to define what the product is required or needed to do.  Then a design document is written to cover these functions called the Hardware Requirements Document.  From these functions, it is determined what can most be effectively produced in software to keep the hardware as simple as possible.  Usually the hardware is a small processor or microcontroller with some sensor and actuator interface circuits called I/O (Input – Output).  After it is determined what is expected of the hardware, a set of block diagrams are created showing the basic interconnectivity of the different components.  Then using the block diagram, a thorough document is written about each of the blocks or components and what their function and interrelationship is to the other blocks.  This is called the Hardware Specification Document.  A selection process commences to find and procure samples of all the hardware components.  From this exercise, it is determined buy vs. build, availability, performance criteria, mechanical dimensions and many other criteria needed to qualify each part.  Then a schematic diagram is created showing the real detail of the actual hardware using the selected components.  The schematic produces different files such as a BOM (Bill Of Materials) and CAD output files for a PCB package.  The schematic is then imported into a PCB (Printed Circuit Board) CAD program for layout and routing of the circuits.  When the PCB is complete in design and free of errors, it is sent out to be proto-typed.  After it is proto-typed and tested, changes will be made according to the proto-type performance results and the cycle is repeated until performance satisfaction against the Hardware Requirements and Specification Documents are achieved.  If the production requirements call for an ASIC, the process of entering the associated PCB circuits into an ASIC CAD program begin with a similar set of steps.  Sometimes a hardware design can go right into an ASIC; bypassing the proto-type process if the design is OTS (Off The Shelf) or it has already been done.

Q) What are the steps for Software Design?
A) It is first assumed that the Hardware Design for the project is complete enough in the design phase to minimize software changes due to hardware changes.  When it makes sense to proceed, a functional specification is written to clearly define what is needed and expected from the software capabilities.  Most notably would be the real-time and resource issues.  This is called the software Requirements Document.  After it is determined what is expected of the software, a set of block diagrams are created showing the basic interconnectivity of the different components.  Then using the block diagram, a thorough document is written about each of the blocks or components and what their function and interrelationship is to the other blocks.  This is called the Software Specification Document.  A selection process commences to find and determine buy vs. build, availability, performance criteria, resource needs, etc.  After it is decided what is to be used, the coding commences.  It is performed in measurable and testable sized pieces so it remains modular and scalable at the same time.  Each component is developed on its own and tested in the necessary environment to prove its validity from the Software Requirements and Specification documents.  There are an unlimited amount of requirements available to a software project so it is imperative these requirements are carefully thought out in the beginning to minimize the design cycle.  The testing and debugging continue until the all of the components and eventually the entire software system work flawlessly against the Software Requirements and Specification documents.

Q) What are the steps for Firmware Design?
A) Firmware Design is exactly the same as Software Design except it has components that operate in RAM (Random Access Memory) and parts that work in ROM (Read Only Memory).  See ‘What are the steps for Software Design?’.

Q) What are the steps for PCB Design?
A) It is assumed all of the necessary preliminary steps have been taken before the PCB (Printed Circuit Board) design process begins.  (See ‘What are the steps for Hardware Design?’).  The schematics are imported into what is known as the placement and router part of the PCB CAD design package.  Critical areas are blocked off and the number of layers of the PCB are determined and created.  Critical issues such as EMI (Electro-Magnetic Interference), RFI (Radio Frequency Interference) and power distribution issues have been identified and are used to select where basic groups of components or circuits are placed on the board.  Other major issues such as mechanical mounting, connectors and other such needs are first placed and considered so these fixed areas are then left alone while smaller moveable parts are placed around these physical constraints.  After all the components have been placed and the board sizing or outline has been frozen, the routing process takes place.  The PCD Router does most of the work on its own using the fixed constraints and other design criteria set before the routing began.  After the router has finished as far as it can go, the PCB designer manually cleans up and finishes routing the connections the CAD Package could not resolve.  This is an art and only experienced PCB designers can properly finish this part of the design cycle.  When the routing is complete, components are named and other text is added to the PCB for documentation and identification purposes.  When the design is complete, plots are created in whatever format the PCB production facility requires for each of the layers and other ancillary support information.  The design package is then sent to the PCB house along with instructions for materials, quantity, etc. to produce a few proto-types.  When the proto-type PCBs are received, they are ‘stuffed’ with a set of components and either hand soldered or wave soldered in place.  Then the PCB debug cycle commences and continues until all of the PCB bugs have been found and corrected using a cut and jump method or software changes if software is involved.  These bugs or changes are then entered into the schematic or PCB layout as needed and the whole process runs again until a perfect PCB is produced.

Q) What are the steps in ASIC Design?
A) The steps in ASIC Design are exactly the same as hardware design (See ‘What are the steps for Hardware Design?’) except the vendor of the ASIC or foundry would have their own specific CAD program, terminology, components, I/O and many other criteria the hardware designer would be required to learn and live by.  Usually an ASIC supplier has many libraries, examples, tools, simulators and training to circumvent any need to reinvent the wheel or make fatal errors.

Q) What are the steps in Mechanical Design?
A) The steps in Mechanical Design begin with a Requirements Document including sketches, models, diagrams and other graphics to set forth enough of the concept before actual mechanical design begins.  From this document, a second document called the Mechanical Specifications Document is written that clearly defines all of the necessary mechanical specifications such as materials, colors, finishes, tolerances, etc., that the mechanical designer uses as a guideline in designing the part or parts.  Then from these documents,
3-D models are created to prove fitment, interference, stress testing, BOM (Bill Of Materials) and other issues necessary to eliminate as much of the unknowns as possible.  Then drawings are produced from the models along with machining notes for the machine shop to produce a proto-type.  The proto-type and fasteners are ordered and when received, all is checked for fitment, finishes and other criteria necessary to satisfy the Requirements and Mechanical Specifications Documents.  After any changes have been made, the proto-type cycle repeats until it is determined production can begin.

Q) What is Real Time?
A) Real Time is a term used in computing to refer to a period of critical time when the CPU or hardware needs to perform a task or tasks before the specified period of time is up.  This could be as simple as sampling a sensor or input to responding to an action request that causes an actuator to function.  It also can be referring to how long a software function takes such as a browsers response to a clients input.