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?

Module Design Best Practices

Tutorials

Module Design Best Practices


Learn how to approach a module design to get the most value out of them.

Overview

Although you can create a module with any arrangement of components, some up-front planning will help you be more efficient and make reusing designs easier. This tutorial covers some of the best practices for using modules.

Single-Sided vs. Double-Sided Placement

Module in Flux can be designed with components on a single or multi-sided board. Placement on both sides of the board could limit your ability to place other components, including components that might need to connect to the module. Inside the PCB Editor window in Flux, a module can be flipped to the opposite layer with the same command that is used for any other component.

There are some advantages to making all of your modules single-sided:

  • You can place two single-sided modules in the same area on opposite sides of the board
  • Placement on only one side leaves a lot of space for routing on the back layer

However, for some designs, placement on both sides might be the best way to create a more compact layout. Make sure to consider both options when designing and placing components in a module.

Place Terminal Pads Around the Edge

Generally, pins on integrated circuits are laid out near the edge of the package, making them easily accessible. This placement strategy is also preferable in designing modules.

Putting connections around the edges of the module makes them more accessible to other circuits.

Let's consider what happens if a module designer doesn't follow that guideline in the example is shown below:

In the design above, we've placed a module in a project with 3 extra components (R1, R2, and C1). The module designer has placed pads (marked in yellow) in the inside of the module. This would require the use of vias to access pads or place components in the bottom layer. This is not ideal because we might be interfering with the module design.

Create Module Based on Function

A great way to build modules is to build circuits that perform specific functions. If you look through the public library in Flux, you’ll see many examples of modules, with a variety of functions. Some examples of functionally-specific modules include:

  • Power regulator circuit, either with discretes or a controller
  • USB controller and connector
  • Microcontroller with its decoupling capacitors
  • Interface bridge circuits
  • ADC or DAC with passives for configuration
  • Op-amp circuits with specific gain and feedback design

If you focus on creating modules based on function, it will be much easier to combine your modules later.

Expose Every Interface

If you’re creating a module for a component like a microcontroller or an ASIC, it’s a good idea to expose all the interfaces available in the IC so they can be accessed through the module. This means adding terminals to every interface on the microcontroller (like UART, SPI, etc.) even if you don't expect to use them in your current design.

Doing so will require more effort upfront, but it will make your module more reusable, saving you time in the future.

Write a Clear Description

Make sure your module has a concise description of its functions, what other components might be needed, what power level is necessary, and any further details needed to make the circuitry work correctly. Your future self will thank you when using your module in a future project.

This is also particularly important if you're planning to make your module public. Having a clear description will help other Flux users know if that module is right for them and how to use it.

In summary, think of modules as building blocks for reducing your design effort if used properly. You can link them together however you want in the schematic without changing their internal placement and routing.


Previous

What is a Module?

Next

Creating Modules