Documentation
Go to AppSign InSign Up
    Getting Started
    • Introduction to Flux
    • What is Flux?
    • Quick Start
    • The Flux Method
    • Creating an Account
    • Flux for Organizations
    • Setting Up Your Browser
      • Mouse & Trackpad
      • Multi-Screen Operation
      • Keyboard Shortcuts
    • Your First PCB in Flux
      • DFM & Export
      • PCB Layout & Routing
      • Project Setup
      • Schematic
      • Export & Manufacturing
    • KiCAD to Flux
      • Layout
      • Parts & Libraries
      • Schematics
    • Eagle to Flux
    • EasyEDA to Flux
    • Upverter to Flux
    • Altium to Flux
    • Getting Help
    Tutorials
    • Tutorials
    • Getting Started With Flux
      • Customizing Flux
    • Flux Use Cases
      • AI Architecture Design
      • AI Component Research
      • AI Design Reviews
      • AI Testing & Debugging
      • AI Auto-Layout
      • Generative AI
    • Start Learning Flux, No Matter Your Skill Level
      • Advanced Designer
      • First Time Designer
      • Intermediate Designer
    • Power Regulator
      • 1 – Part Selection
      • 2 – PCB Layout
      • 2 – Schematics
    • Routing
      • High-speed Routing
      • High Density Designs (HDI)
      • Working with Polygons
    • Adding Components to the Library
      • Publishing Components to the Library
      • Creating Components from Scratch
      • Importing Components
      • Working with Footprints
      • Working with Symbols
    • What is a Module?
      • Module Design Best Practices
      • Creating Modules
      • Using Modules
    • Generic Components
      • Creating a generic part
    • Copper Fills Tutorial
      • Creating Copper Cutouts
    • Board Outline Shape and Size
    • The Toolbar
    • Using Layout Rules
    • Intro to collaboration
    • Embedding a Flux Project
    • Reviewing component updates
    • Version Control Deep Dive
    • Custom Shapes
    • AI-Assisted Design with Flux
    • PCB Design Reviews (DRC)
    • Component Placement
    • Component Procurement
    • Multi-Layer PCB Design
    • Working with Ground Signals
    • Reusing Projects
      • Useful links
    Reference
    • Flux Context Menu
    • Calculator Tool
    • Change Project Name
    • Code Tool
    • Convert to component
    • Flux ACUs
    • Overview
    • Data Portability
    • Delete & Archive Projects
    • Design Rule Check (DRC)
    • Expressions
    • File Tool
    • FMEA Report Generation
    • Gerber Exports
    • Help Tool
    • Special Part Types
    • JEP30 PartModel Import/Export
    • Knowledge Base
    • Library Tool
    • Managing Units
    • Measuring Distances
    • Model Selection
    • Nets and Traces
      • Curved Traces
      • Impedance Control
      • Trace Width
    • Object Types
      • AssetNode
      • ControlNode
      • ElementNode
      • ElementTerminalNode
      • OutputNode
      • PropertyNode
      • RouteNode
      • RouteTerminalNode
    • Pads & Holes
    • Passive Component Consolidation
    • Layout Rules Reference
      • Layout Rules List
      • Object-Specific Layout Rules
      • Selector-Based Layout Rules
      • Layout Rules Inheritance & Precedence
      • Layout Rules Modifiers
    • Polygons
    • Comments
    • Cursors
    • Forking & Cloning
    • Copper Fills
    • Importing Schematics
    • Importing Components
    • Schematic Inspector
      • Assets Panel
      • Pricing & Availability Panel
      • Properties Panel
      • Simulation Panel
    • The Library
    • Project Launcher
      • New Blank Project
    • Layout Object Tree
      • PCB Object Types
    • Schematic Object List
    • The PCB Editor
      • Locking
      • Layer View Control
      • Positioning & Routing
      • Selecting Objects
      • Stackup Editor
    • Permission Tiers
    • Preloaded Examples
    • The Profile Page
      • Featured Projects
    • The Schematic Editor
      • Positioning & Wiring
    • Global Search
    • Sharing & Permissions
    • History & Version Control
    • Silkscreen
    • Simulator Tool
    • Star a Project (Favorite)
    • Vias
      • Smart Vias
    Copilot
    • Copilot Overview
    • Model Selection
    • Flux ACUs
    • Knowledge Base
    • Flux Context Menu
    • Calculator Tool
    • Code Tool
    • File Tool
    • Help Tool
    • Library Tool
    • Simulator Tool
    • FMEA Report Generation
    • Passive Component Consolidation
    FAQ
    • Schematic Editor
    • General FAQs
    • Flux and AI FAQs
    • PCB Editor FAQs
    • Parts and Modules
    • Pricing
    • Private and public projects
    • Data security and IP protection
    • When things go wrong: Errors and how to handle them
      • Lost connection
    Legal
    • Terms of Service
    • Privacy Statement
    • Main Services Agreement
    • Subprocessors

Tutorials

What is a Module?

Creating Modules

Tutorials

Creating Modules


Create your own modules for circuit blocks to easily reuse in any project.

Overview

The process of creating a module is similar to the one used to create a regular PCB layout but with some additional differences. In this tutorial, we'll show you how to create a module and best practices to get the most out of your module.

How To Create a Module

The main difference between a standard PCB layout and a module is the presence of terminals. While terminals are optional for standard designs, they are required for a module to work. This is because the terminals are used to connect the module to other components once the module is placed in a project.

The process to create a module is as follows:

  1. Create the circuit you want to make a module out of
  2. Add terminals to establish the connections
  3. Connect the terminals' pads in the PCB editor
  4. Add a designator prefix
  5. Publish the module

1- Create a circuit

Create the circuit you want to convert into a module. Make sure you follow some of these auto$ to get the most out of your design.

2- Add terminals

Simply drag the terminals from the library into the schematic editor. You can think of terminals as the inputs and outputs of your module. This means they should be connected to the nets or parts where you expect to connect other components when the module is used.

In this example, we created a module that converts any input voltage to 3.3V. As you see, the terminals are connected to the input and output of the regulator and to ground.

3- Connect the pads in the PCB layout

Once everything is placed and connected in the schematics, open the PCB Editor to begin placing and routing components. Once you open the PCB editor, you'll notice that each terminal has a corresponding pad.

You will route your connections to these points when the module is used in another project. Points P1, P2, and P3 could be placed on pads, through-holes, or vias in the module. For example, we could place P2 directly on the left pad of R2. Once placed, you can add a Size rule to reduce the size of P2 so that it is not excessively large, as shown in the GIF below.

For P1 in this example, it would be a good idea to place two vias connecting C2. This way, it will be easy to route a connection to P1 once the module is used in another project.

Once P3 is placed and resized using the Size rule, the module is complete and ready to be published.The completed example is below.

4- Add a designator prefix

It is good practice to add the word “module” to the Designator Prefix Fields, located in the project properties area (right side of the screen). This will make it clear that your project is intended to be a module and make your schematics easy to read. To add a designator prefix:

  • Make sure no object is selected by clicking on an empty portion of the canvas
  • Find the "Properties" menu on the right side
  • Edit the "Designator Prefix" property and add the word "module"
    • If there is no such property, you can add one by clicking the "Edit" button below.

5- Publish the Module

The final step is to publish the module to the library. Once the module is published, it can be searched and added to a project. When you drag the module into the schematic editor in a new project, you will see that it will include the module's designator prefix.


Previous

Module Design Best Practices

Next

Using Modules