Designing a Rigid-Flex PCB
Parent page: More about PCB Design
What is Rigid-Flex?
As the name suggests, a flexible printed circuit is a pattern of conductors printed onto a flexible insulating film. Rigid-flex is the name given to a printed circuit that is a combination of both flexible circuit(s) and rigid circuit(s), as shown in the image.
Flexible circuit technology was initially developed for the space program to save space and weight. It is popular today as it not only saves space and weight - making it ideal for portable devices such as mobile phones and tablets - it can also reduce packaging complexity, improve product reliability, and reduce cost.
Flexible circuits are normally divided into two usage classes: static flexible circuits, and dynamic flexible circuits. Static flexible circuits (also referred to as use A), are those that undergo minimal flexing during assembly and service. Dynamic flexible circuits (also referred to as use B), are those that are designed for frequent flexing, such as a disk drive head, a printer head, or as part of the hinge in a laptop screen. This distinction is important as it affects both the material selection and the construction methodology. There are a number of layer stackup configurations that can be fabricated as rigid-flex, each with their own electrical, physical and cost advantages.
Mechanical Rigid-Flex Design
Designing a flex or rigid-flex circuit is very much an electromechanical process. Designing any PCB is a three-dimensional design process, but for a flex or rigid-flex design, the three-dimensional requirements are much more important. Why? Because the rigid-flex board may attach to multiple surfaces within the product enclosure, with the attaching and folding process happening as the product is assembled.
The traditional approach to confirm that the folded board fits within its enclosure has been to create a mechanical mockup - known as a paper doll cut out. By its very nature, it's difficult to achieve the accuracy and realism required with this approach. Altium is helping to solve this challenge with CoDesigner, a sophisticated mechanical - to - electronic design interface technology. CoDesigner allows the engineers to pass the board shape and component changes back and forth between the ECAD and MCAD design domains.
Designing a Rigid-Flex PCB
A printed circuit board is designed as a series of layers stacked on top of one another. For a traditional rigid printed circuit board, the board shape defines the board in the X-Y plane, and the stack of layers defines the board in the Z plane. The X-Y board shape is defined in the main PCB editing window, and the layers are configured in the Layer Stack Manager. In a rigid-flex PCB, there is more than one zone or Region in the finished printed circuit board, and each of those Regions can use a different set of layers.
To design a rigid-flex board, you need to:
- Enable the Rigid-Flex mode (Layer Stack Manager, Tools » Features » Rigid-Flex command)
- Define the Substack needed for each Region of the board, and configure how those Substacks align with each other in the Z plane.
- Define the shape of each Region, connect the Regions to each other in the X-Y plane, and assign the correct Substack to each Region.
Enabling Rigid-Flex
To support the complex structures present in a modern rigid-flex printed circuit board, the Z plane editor - the Layer Stack Manager, provides different display modes for editing the structure of your board. Select the Design » Layer Stack Manager command to open the Layer Stack Manager, where you can create and align the Substacks needed in your rigid-flex design.
When the Layer Stack Manager opens, it will show the current board layer Stackup. For a new PCB, this will be a simple two-layer board. To enable the features needed to design a rigid-flex board, select Rigid-Flex from the Tools » Features sub-menu or the Features button.
Once rigid-flex has been enabled, the display will change from Stackup mode (shown above) to Board mode (shown below). Use the Navigation bar at the upper right of the Layer Stack Manager to move back and forth between the Stackup and Board modes, as highlighted in the image below.
The Board mode of the Layer Stack Manager is used to:
- Add Substacks.
- Configure the relationships between layers in adjacent Substacks - do they share layers (Common), or are the layers unique in that Substack (Individual).
- Configure if adjacent layers intrude into the neighboring Substack.
- Add additional Branches (Branches are used when the design has multiple flex sections radiating from a single rigid section - more on this in the Creating a Branch section).
Configuring the Layer Stacks
A Board can include any number of Substacks. One approach that helps with visualizing the overall board structure is to define a Substack for each Region of the board. This is not a requirement though, the minimum requirement is to create a Substack for each unique set of layers needed in the overall design. Multiple Regions can then be assigned the same Substack, if required.
The video below shows a rigid-flex board with nine Board Regions, which use three unique Substacks.
Each Substack is created within a section. Why do you need sections? Because you can also create multiple Substacks within one section, a feature you use when you are creating a bookbinder-style rigid-flex board (two rigid regions connected by multiple flex regions). The image below shows two flex substacks, named FlexUpper and FlexLower, in the center section of the layer stack.
Working in Board mode in the Layer Stack Manager:
- Once Rigid-Flex mode has been enabled, the Layer Stack Manager opens in Board mode, where new Substacks are added and aligned with the adjacent Substacks.
- To edit the layers and layer properties of the selected Substack (selection is indicated by a pale blue outline, as shown above), either double-click on the Substack or use the Layer Stack Manager navigation bar to select the required Substack and open Stackup mode, where the individual layers in that Substack can be edited. Add and configure the layers as required.
- To return to the Board mode after editing a Substack, click the Home button in the Layer Stack Manager navigation bar.
Adding and Editing a New Substack
As well as being used to add and remove Substacks, Board mode is also used to configure if a Stackup uses common or individual layers.
Creating a new Substack:
- A new Substack is created from the currently selected layers (highlighted in pale blue) - the first step is to select the layers required in the new Substack:
- Left Click to select an entire Substack.
- Shift+Click to select a single layer in a Substack. Continue to Shift+Click on other layers to build up the set of selected layers. Alternatively, Shift+Click on the first layer you require, then move straight to the last layer and Shift+Click to select it; all layers between will also be selected.
- To add a new Substack using the selected layers, click the button and select the appropriate command:
- Insert Selected before - create the new Substack to the left of the currently selected Substack
- Insert Selected after - create the new Substack to the right of the currently selected Substack
- Insert Selected into - create the new Substack in the same section as the currently selected Substack.
- Branch - create a new branch, starting from the currently selected Substack. More about branches below.
- Alternatively, you can drag and drop the selected set of layers horizontally in the Board view to create a new substack of those layers (as shown in the video above).
- The new Substack will be created, double-click on the Substack to open it for editing in the Stackup mode of the Layer Stack Manager.
- If you are planning on adding Coverlays to a flex region, enable the Is Flex option in the Properties panel when the flex Substack is open in Stackup mode.
- Configure the Substack layers as required, then click the Home button in the Layer Stack Manager navigation bar to return to the Board mode.
- Edit the Substack Name in the Properties panel to reflect its function in the overall design.
- Continue to add a Substack for each Region in the rigid-flex design.
Material Usage
A rigid-flex design often has copper and dielectric layers that are common through the rigid and flex regions, but different outer dielectric layers, such as the coverlays. To help the designer manage this, the Properties for the selected Substack includes a Material Usage option.
- Common - material usage means: all layers in the Substack with the least layer count must have identical layers (and properties) as the layers in adjacent Substacks. This includes both the common copper/dielectric layers as well as any special purpose outer dielectric layers, such as coverlays.
- Individual - enable the Individual mode to allows different combinations of materials in this Substack.
Creating a Branch
If the design has a structure of stackups that cannot be modeled in the Board view, then it requires the Branch feature. In the example shown in the image below, there are four flexible regions radiating from different layers on the main board, with each flex region having a small rigid region at the end. Although it is possible to connect the four flex regions to the MainBoard without using Branches, it is not possible to create the small rigid region at the end of each flex region.
This board requires the use of the Branch feature. A Branch grows from a Substack, one Substack can have multiple branches radiating from it. In this example the MainBoard Substack has four branches; FirstFlexBranch
, SecondFlexBranch
, ThirdFlexBranch
and ForthFlexBranch
.
Working with Branches:
- A Branch is created with the currently selected Substack as its base, select the required Substack before adding a Branch.
- Click the button and select Branch from the menu. The new Branch will appear, containing just the common Substack being branched from. Enter a suitable Branch Name in the Properties panel.
- Add new Substacks to the Branch, as required.
- Use the Layer Stack Manager's Navigation Bar to switch from one Branch to another.
Defining the Board Shape and Regions
The layer stack defines the board in the vertical direction, or Z plane. In the PCB editor, the area that the board occupies in the X and Y planes is defined by the Board Shape. The board shape can be a polygonal region of any shape, with straight or curved edges that lie at any angle, that can also include cutouts (internal holes) of any shape.
There are two techniques that can be used to defining the overall board shape and the various rigid and flex regions:
- Define the overall board shape, and then slice it into regions. Learn more about defining the Board Shape.
- Place each rigid and flex Board Region in the workspace to build up the final board shape. Learn more about placing Board Regions.
The final shape can be created using a mixture of the two techniques.
Defining the Board Shape
Defining the Board Shape:
- The board shape can be defined interactively in Board Planning Mode (View » Board Planning Mode), or it can be defined based on an existing outline in 2D layout mode (View » 2D Layout Mode).
- To define the board shape from an existing outline, select the outline in 2D layout mode and run the Design » Board Shape » Define from selected objects command (or the Tools » Convert » Create Board Region from selected primitives command). The software will trace along the centerline of the selected track/arc objects to define the outer edge of the board shape.
- To define the board shape interactively, switch to Board Planning Mode and select the Place » Board Region command (or click the button on the Active Bar). The standard region object placement behaviors apply, use the Snap Grid and workspace Guides to help with this process. Enable the Board Shape option in the Snap Options palette to give the best level of control during Board Region editing. Learn more about Understanding the Snap Behavior.
- Place the required number of Regions. Regions can be drawn so they are overlapped, note that this does not define the extent that a flex region overlaps into a rigid region, that is defined by the Intrusion values in the Stackup definition.
- To define the Name and assign a Layer stack for each region, select the region and edit the properties in the Board Region mode of the Properties panel.
- To slice a Board Region into two smaller regions, use the Design » Slice Board Region command (or click the button on the Active Bar). The Slicing tool uses the standard line placement cornering modes, including 45°, 90°, 45° arc, 90° arc and any angle, press Shift+Spacebar to change the mode during slicing.
- The location and shape of an existing Board Region can be edited, using the standard polygonal object editing techniques.
► Learn more about defining the Board Shape
Defining the Bends
A bend in a flexible section of a rigid-flex board is defined by placing a Bending Line. A bending Line is a linear object, whose properties are edited in the Bend mode of the Properties panel.
Placing Bending Lines
- Bending Lines are placed in Board Planning Mode (1 shortcut).
- To place a Bending Line run the Place » Define Bending Line command (or click the button on the Active Bar). Place the Bending Line across the flexible Board Region. It is not necessary to precisely touch each edge of the region with the start and end of the Bending Line, the software will automatically extend it (if too short) or reduce it (if too long). At least one end of the Bending Line must touch or pass over the edge of the Region.
-
To edit the properties of a Bend, select it and edit the settings in the Bend mode of the Properties panel:
-
The Bend zone is displayed in a green-orange color, click anywhere within the zone to select that Bend.
-
Each Bend can be named so it can be easily identified.
-
Confirm that the Bend is being applied to the correct Substack Region, available regions are listed in the Stack Regions section.
-
Set the Bend Zone Radius and Bend Angle as required.
-
Bends are folded in the order of their Fold Index, use this feature when the folding order is important to check.
-
-
To move a Bending Line, click and drag on each end handle.
-
Bending Lines can be applied to board cutouts edges.
-
A selected Bend can be removed by clicking and holding on one of the vertices, then pressing Delete on the keyboard.
► Learn more about placing Bending Lines
Including Coverlay on a Flex Region
A common feature on rigid-flex boards is the selective use of coverlay material. This insulation layer is cut and laminated onto specific areas of the board, and because of this selective use, coverlay is also referred to as bikini coverlay. Coverlay layers are added in the Layer Stack Manager and the shape of coverlay objects can be manipulated in Board Planning Mode, once coverlays have been enabled for that region of the board.
Adding and Configuring a Coverlay
Coverlay layers are added in the Layer Stack Manager. To add coverlay layers:
- Enable the Is Flex option for the flex substack.
- Right-click on the appropriate layer(s) and select the Insert layer above (below) » Coverlay command to add coverlays.
- Define the properties of the coverlay, including the Coverlay expansion property.
- Save the layer stack to reflect the changes on the board.
- In Board Planning mode there will now be additional tabs for each coverlay layer added in the stack. Note that the color of the coverlay is defined by the layer color (View Configuration panel), not the color assigned in the Layer Stack Manager.
Enabling and Viewing the Coverlay
If coverlay layers are added to the substack before that substack is assigned to a Board Region, the coverlay objects will be present when the substack is assigned to a Board Region.
If coverlay layers are added to the substack after that substack has already been assigned to a Board Region, then coverlays must be added to that region. Coverlays can be added in Board Planning mode by selecting the Board Region and then either:
- Right-clicking on the region and selecting the Coverlay Actions » Add Coverlay command, or
- Clicking the Add Coverlay button in the Board Region mode of the Properties panel.
Editing or Placing Additional Coverlay
Coverlay is automatically added to cover the entire area of the Board Region it was added to, as shown in the image below (in accordance with the Coverlay expansion value defined in the Layer Stack Manager). Behaving like an additional solder mask layer, openings are automatically created for component pads in accordance with the applicable Solder Mask Expansion design rule, or else the settings defined for the Pad if the Solder Mask Expansions setting has been configured to override the design rule.
To edit the coverlay:
- Switch to Board Planning mode.
- Click the appropriate layer tab to make the Coverlay layer the active layer (the Coverlay layers may need to be made visible in the View Configuration panel).
- The automatic coverlay is formed as a polygonal object, it can be selected and reshaped (or deleted) as required.
- User-defined coverlay shapes can also be placed if required, using the Design » Place Coverlay Polygon and Design » Place Coverlay Cutout commands.
How Output is Generated for Coverlay Layers
When the output is generated, each layer is output as separate data. For example, when Gerber is generated, the top solder mask is written to one Gerber file, the top coverlay is written to another Gerber file.
The output for a coverlay can be divided into 2 categories:
- Pad/via openings - the output for pad/via openings is generated in the same way as regular top/bottom solder mask output: an object of the correct size/shape is flashed, in accordance with the applicable solder mask expansion design rule, or the object settings if the local override is enabled.
- Polygonal areas of coverlay (both automatic and manually placed) - a closed polyline outline is generated, defining the outer edge of each region of coverlay. The outline can be used to define a cutting path for the coverlay. Cutouts (user-defined irregular-shaped holes) defined in the coverlay are also output as a closed polyline for cutting path generation.
Supported Coverlay Output Formats
Coverlay output is supported by all of the appropriate output formats available in Altium Designer.
Coverlay film outputs
- Gerber RS-274X, X2 - Openings defined over objects, such as pads and vias, are flashed. The outer edge of the coverlay, as well as user-defined cutouts, are rendered as outlines - these outlines can be used by the fab house to generate a cutting path.
- ODB++ - Specific layer stack material regions are output (polygons and polygon cutouts) in ODB++ v7.0 and later, which properly supports multiple layer stacks and rigid-flex definitions.
- IPC2581B - as with ODB++, supporting multiple layer stack definitions and polygons of layer stack regions.
Layer Stack Outputs
- ODB++
- IPC2581B
- Layer Stack Report
Tool Outputs
- NC / Excellon Route Tool Path - generated from outline for polyline objects.
Prints
- Prints can be configured as required.
Designing a Flex-only PCB
The Layer Stack Manager requires at least one rigid substack to be defined. To design a flex-only PCB, first define the rigid substack then add a flex substack, as shown in the image below.
In Board Planning Mode, define the shape of the flex-only PCB and assign the flex substack in the Board Region mode of the Properties panel.
Designing a Board with a Flex Region Inside a Cutout
It is possible to design a rigid-flex board that has a flexible region within a cutout in the main PCB.
Notes about creating this type of board:
- The video below demonstrates the process.
- The board cutout must trace the outline of the flex region(s) within the cutout.
- Place the cutout before placing the flex region(s) inside the cutout zone.
- Any region within the cutout that does not use the same substack as the outer rigid region must have its priority set to a higher value than the value assigned to the outer rigid region.
- Configure the Used Stack Regions options for Bending lines placed on internal flex regions so that they only apply to that flex region.
- It can be easier and more accurate to define the shapes required for the cutout and the flex region(s) as outlines on a mechanical layer, using tracks and arcs. Then use the tools available to convert a selected outline to a board cutout, or a board region. Note that the conversion tool follows the centerline of the selected tracks and arcs, and requires the end points of adjacent tracks/arcs to exactly meet.
- Design » Board Shape » Create Board Region from Selected Objects (in 2D Mode)
- Tools » Convert » Create Board Cutout From Selected Primitives (in 2D Mode)
- Tools » Convert » Convert Selected Line to Bend Line (in 2D Mode)
Download the PcbDoc file used in the video
Displaying and Folding a Rigid-Flex Design in 3D
The PCB editor includes a powerful 3D rendering engine, which allows the presentation of a highly realistic three-dimensional representation of the loaded circuit board. This engine also supports rigid-flex circuits, and when used in combination with the Fold State slider in the PCB panel, it allows the designer to examine their rigid-flex design in the flat state, the fully folded state, and anywhere in between.
To switch to the 3D display mode, press the 3 shortcut key (press 2 to return to 2D or 1 to return to Board Planning Mode). The board will be displayed in 3D. If the component footprints include 3D body objects that define the mounted component, these will also be displayed. In the image below, you can see that the board includes a battery and a battery clip.
To apply all of the Bending Lines, slide the Fold State slider in the PCB panel when set to Layer Stack Regions mode as highlighted in the image below. Note that the bends are applied in the order defined by their sequence number. Bending Lines can share the same sequence number; it simply means that those bends will be folded at the same time when the Fold State slider is used. The board can also be folded/unfolded by running the View » Fold/Unfold command (or by pressing the 5 shortcut).
3D Movie Maker Support for Rigid-Flex Designs
The ability to fold a rigid-flex design can also be captured as a 3D movie. It is very simple to do and does not require the use of movie key frames during the folding sequence.
Refer to the PCB 3D Video page for a detailed description of how to make a 3D movie. As a basic guide:
- Switch the PCB editor to 3D mode.
- Open the PCB 3D Movie Editor panel and create a new video by clicking the New button. Click the newly-created video in the Movie Title region then give it a suitable name.
- Create an initial Key Frame showing the board in its unfolded state.
- Slide the Fold State slider to show the rigid-flex design in its folded state, then position the folded board as required.
- Now create a second Key Frame for this view and set the time. Consider how long you want it to take to fold the rigid-flex design (the Duration setting); typically this would be a few seconds.
- To check that the video captures the folding process correctly, click the play button (located in the player controls at the bottom of the panel.
- To generate a movie file, add a PCB 3D Video Documentation Output in an Output Job file. Remember to configure the video format options in the Video settings dialog.
- Click the Generate Content link in the Output Job file to create the movie file.
The video below was created using this process. It has the two key frames described above, plus one additional key frame that was added at the end to hold the final position for a second.
► Learn more about 3D PCB Video
Design Considerations
Below is a summary of key design areas that must be considered when designing a rigid-flex PCB:
- Conductor routing - choice of corner style for routes traveling over a flex region is important; avoid sharp corners; use a curve for least stress.
- Pad shape and area - use fillets (teardrops) with rabbit ears (anchoring spurs) for single-sided flex. The objective is to capture some of the pad shape with the coverlayer.
- Through holes - try to avoid through holes in the bend area, particularly in a dynamic application.
- Coverlayer - avoid stress risers (exposing the incoming track); reduce opening in coverlayer to 250um.
- Planes - crosshatched, if possible.
- Staggered lengths - to avoid layer buckling when flexed (bookbinding), stagger the layer lengths by approx 1.5 times the layer's thickness.
- Service loop - make the flex region slightly longer to help with assembly/disassembly and to allow for product dimensional variations (the extra length is referred to as the service loop).
- Conserve copper - consider how the flex circuit will be panelized; it might be better to adjust the design to ensure best material usage.
- Panelization - orient the flex regions to suit the grain of material (bend along the grain).
- Tear resistance - curved corners; drilled hole at corner; hole in slit; leave metal in corners.
- Routing - stagger the routes on two layer boards to avoid I beaming, and widen the routes through the bending zone (this is especially important for permanent bends).
- Static Bend Ratio - setting the ratio of the bend radius to the circuit thickness. Ideally, multi-layer circuits should have a bend ratio of at least 15:1. For double-sided circuits, the minimum ratio should be at least 10:1. For single-layer circuits, the minimum ratio should also be at least 5:1. For a dynamic application, aim for a bend ratio of 20-40:1.
- Rolled annealed copper is more ductile; plated copper is not the best choice for flexible regions.
Documentation and Drawing Requirements
Typical suggested documentation requirements include:
- The Flex PCB shall be fabricated to IPC-6013, class (your requirement here) standards.
- The Flex PCB shall be constructed to meet a minimum flammability rating of V-0 (if required).
- The Flex PCB shall be RoHS compliant (if required).
- The rigid material shall be GFN per IPC-4101/24 (if using epoxy material).
- The rigid material shall be GIN per IPC-4101/40 (if using polyimide material).
- The flexible copper clad material shall be IPC 4204/11 (flexible adhesive-less copper clad dielectric material).
- The covercoat material shall be per IPC 4203/1.
- The maximum board thickness shall not exceed (your requirement here) and applies after all lamination and plating processes. This is measured over finished plated surfaces.
- The thickness of acrylic adhesive through the rigid portion of the panel shall not exceed 10% of the overall construction. See comments on this above.
- Pouch material can be used for ease of manufacturing and must be removed from the flexible portion of the board prior to shipping.
- The flexible section thickness shall be (your requirement here). Do not add this note if this thickness is not critical.
- Minimum copper wall thickness of plated through holes to be (your requirement here; .001” average is recommended) with a minimum annular ring of (your requirement here; 002 is recommended).
- Apply green LPI soldermask (if required) over bare copper on both sides in the rigid sections only of the board. All exposed metal will be (specify your surface finish requirement here).
- Silkscreen both sides of the board (if required) using white or yellow (most common) non-conductive epoxy ink.
- Marking and identification requirements.
- Electrical test requirements.
- Packaging and shipping requirements.
- Impedance requirements.
Additional Drawing Detail
- A drill table detailing finished hole size, associated tolerances and plated/not plated.
- A dimensional drawing, including reference datum(s), critical dimensions, rigid to flex interfaces, bend location and direction markers.
- Panelization detail, if required.
- Construction and Layer detail, detailing material used for each layer, thicknesses and copper weights.
References
Flex and Rigid-Flex Circuits Technical Engineering Guide - Epec Engineering Technologies
Flexible Circuit Technology - Joe Fjelstad
Flex Circuits Design Guide - Minco Products Inc
Machine Design website:
- Basics of Flex Circuit Design - Robert Repas
- Staying Flexible - Mark Finstad, Applications Engineer