Rigid-flex is under ongoing development; recent improvements include new Board Region and Bending Line behaviors when working in Board Planning Mode in the PCB editor, and the introduction of the Board mode in the Layer Stack Manager. This new feature set is referred to as Rigid-Flex 2.0.
Configure the options detailed below in the Advanced Settings dialog to switch between Rigid-Flex 1.0 and Rigid-Flex 2.0:
Rigid-Flex 1.0 - disable PCB.RigidFlex2.0 and PCB.RigidFlex.SubstackPlanning
Rigid-Flex 2.0 - enable PCB.RigidFlex2.0 and PCB.RigidFlex.SubstackPlanning
Note that in previous releases of Altium Designer (Update 2 and older) the PCB.RigidFlex2.0 option was called Legacy.PCB.RigidFlex. The behavior has changed along with the name change; enabling the old option previously restored the old mode (Rigid-Flex1.0), whereas enabling the new option enables the new mode (Rigid-Flex2.0).
For information about working in Rigid-Flex 1.0 mode, please refer to the previous version of this documentation page (the version selector is located at the top of the page navigation section, on the left).
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.
For an engaging discussion on the materials, technologies, and processes, as well as the challenges involved with the production of a rigid-flex board, download and read the free Rigid-Flex Guidebook.
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.
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.
Enable the Rigid-Flex mode to configure a Rigid -Flex board; either via the Tools menu or by clicking the Features button (hover the cursor over the image to show this).
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 define the Substacks in a rigid-flex design.
The Board mode of the Layer Stack Manager is used to:
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 can be assigned to a Board Region as many times as required.
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.
A bookbinder style rigid-flex PCB, note that the center section has two Substacks.
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.
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.
A new substack is created from the currently selected 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.
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.
Enable the Individual Material Usage option to allow different adjacent layers.
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.
The selected Region, ConnectorRegion4, is getting the Substack ConnectorRigid4 assigned.
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.
Use the controls in the Navigation Bar to switch from one Branch to another.
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.
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
The overall Board Shape is defined by the set of Board Regions, the video shows two ways these regions can be created.
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.
In earlier versions of the software, the boundary between two Board Regions was defined by placing a Split Line. Split Lines are not used anymore, now the edge of the Board Region defines where one Substack ends and the adjacent Substack begins. If two Board Regions are overlapped (and those regions have common layers), then the stack with more layers is applied in the overlapping area.
When overlapped regions do not have common layers they can be folded independently.
More settings to control this behavior will be available soon in the Layer Stack Manager.
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.
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.
Add the coverlay layer(s) into the substack and configure the layer properties 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.
If the Board Region had the substack assigned before the coverlays were added in the LSM, use the right-click command or the panel button to add them to that region.
Note the additional tab for each coverlay layer added in the substack, click on a layer tab to make that layer the current layer, and examine or edit the coverlay.
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.
Openings in the coverlay for the component pads is controlled by the applicable Solder Mask Expansion design rule (which can be overridden by local pad settings).
To edit the coverlay:
Switch to Board Planning mode.
Click the appropriate layer tab to make the Coverlay layer the active layer.
The automatic coverlay is formed as a polygonal object, it can be selected and reshaped (or deleted) as required.
A section of custom coverlay has been placed and a cutout is about to be defined in it.
When the Coverlay layer is the active layer, clicking on the Board Region will select the Coverlay, not the region. To be able to select the Board Region or a Bending Line you must switch to a different layer, for example the Multi-Layer.
Keep in mind that user-defined coverlay changes, such as modifying the shape of the automatic coverlay or placing additional coverlay objects, are removed if the Remove Coverlay command is used on that Board Region.
If a Board Region that has coverlay defined is moved, the coverlay polygon will not move with it. In this situation, you must remove the coverlay (Right-Click » Coverlay Actions » Remove Coverlay) and re-add the coverlay ((Right-Click » Coverlay Actions » Add Coverlay).
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.
The centerline of the 1mil wide closed polyline is the edge of the coverlay.
Examining the Gerber output in a CAM viewer - the blue is the coverlay layer, the purple is the top solder mask layer.
Zoomed in, a custom coverlay cutout is selected - as with the coverlay outline the cutout is also defined as a closed polyline.
Supported 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
Layer Stack Report
NC / Excellon Route Tool Path - generated from outline for polyline objects.
Prints can be configured as required.
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).
Use the Fold State slider (or the 5 shortcut key) to apply all Bending Lines in the order defined by their sequence value (Fold Index).
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.
A simple 3D movie created from three key frames; the folding behavior is defined by the Bending Line Sequence values.
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.