ODB++ Export Guide for PCB Manufacturing¶
Overview¶
ODB++ is a comprehensive format that includes all manufacturing data in a single archive. It's widely accepted by PCB manufacturers and includes layer files, netlists, and job parameters.
What is ODB++?¶
ODB++ (Open Database++) is a CAD-to-CAM data exchange format that contains all the information needed for PCB manufacturing:
- Layer files for all copper, mask, and silkscreen layers
- Matrix file with layer stack information
- Netlist file with component connections
- Job file with manufacturing parameters
- Complete archive in .tgz format
How to Generate ODB++ from KiCAD¶
Method 1: Using the Web Application¶
- Generate a Stackup
- Go to the PCB Stackup Generator
- Configure your stackup with desired layers and materials
-
Generate the stackup
-
Export to KiCAD
- Navigate to the "Export KiCAD" tab
-
Generate KiCAD project files (.kicad_pcb, .kicad_pro)
-
Export to ODB++
- Navigate to the "Export ODB++" tab
- Click "Generate ODB++ Files"
- Download the ODB++ archive (.tgz file)
Method 2: Using KiCAD Directly¶
If you have KiCAD installed:
- Open your KiCAD project
- Go to File → Plot
- Select ODB++ format
- Configure plot settings
- Generate ODB++ files
Method 3: Using Python Script¶
from backend.utils.odb_export import ODBExporter
# Create exporter
odb_exporter = ODBExporter()
# Generate ODB++ from KiCAD files
kicad_files = {
'pcb': {
'content': kicad_pcb_content,
'filename': 'project.kicad_pcb'
}
}
result = odb_exporter.generate_odb_from_kicad_project(
kicad_files,
'my_project'
)
if result['success']:
print("ODB++ files generated successfully!")
# Access files in result['files']
✅ ODB++ Production Status¶
PRODUCTION READY & TESTED - The ODB++ export system has been successfully tested and verified with Keysight ADS. The binary format implementation works correctly for PCB manufacturing and simulation workflows.
ODB++ File Structure¶
The generated ODB++ archive contains:
project_name/
├── header.hdr # ODB++ header file
├── steps/
│ ├── 1/
│ │ ├── layers/ # Layer files
│ │ ├── matrix/ # Matrix file
│ │ ├── netlist/ # Netlist file
│ │ └── job/ # Job file
│ ├── 2/
│ │ └── drill/ # Drill files
│ ├── 3/
│ │ └── fabrication/ # Fabrication files
│ └── 4/
│ └── assembly/ # Assembly files
Layer Files¶
├── layers/
│ ├── F.Cu.lyr # Top copper layer
│ ├── B.Cu.lyr # Bottom copper layer
│ ├── F.Mask.lyr # Top solder mask
│ ├── B.Mask.lyr # Bottom solder mask
│ ├── F.SilkS.lyr # Top silkscreen
│ └── B.SilkS.lyr # Bottom silkscreen
├── matrix/
│ └── matrix.mat # Layer stack information
├── netlist/
│ └── netlist.net # Component connections
└── job/
└── job.job # Manufacturing parameters
Manufacturing Benefits¶
1. Complete Data Package¶
- All manufacturing data in one archive
- No missing files or layers
- Consistent format across manufacturers
2. Reduced Errors¶
- Built-in validation
- Automatic netlist checking
- Layer stack verification
3. Wide Compatibility¶
- Accepted by most PCB manufacturers
- Industry standard format
- No conversion needed
4. Cost Savings¶
- Faster processing by manufacturers
- Reduced design rule violations
- Fewer manufacturing iterations
Supported Manufacturers¶
ODB++ is supported by major PCB manufacturers including:
- JLCPCB - Accepts ODB++ format
- PCBWay - Supports ODB++ files
- TTM Technologies - ODB++ compatible
- Advanced Circuits - ODB++ support
- Sierra Circuits - ODB++ format
File Format Details¶
Layer Files (.lyr)¶
Matrix File (.mat)¶
Netlist File (.net)¶
Job File (.job)¶
ODB++/JOB
my_project
GENERATED_BY PCB_STACKUP_GENERATOR
DATE 2024-01-09 10:30:00
JOB_PARAMETERS
BOARD_THICKNESS 1.6
COPPER_FINISH HASL
SOLDER_MASK GREEN
Troubleshooting¶
Common Issues¶
- Missing Layer Files
- Ensure all copper layers are present
- Check solder mask and silkscreen layers
-
Verify layer naming conventions
-
Netlist Errors
- Validate component connections
- Check for floating nets
-
Verify component footprints
-
Manufacturing Rejections
- Review design rules
- Check minimum trace widths
- Verify via specifications
Validation Steps¶
- Open ODB++ in Gerber Viewer
- Use KiCAD's Gerber viewer
- Check all layers are visible
-
Verify component placement
-
Review Netlist
- Confirm all connections
- Check for missing components
-
Verify power and ground nets
-
Manufacturer Compatibility
- Check manufacturer's ODB++ requirements
- Verify file format version
- Confirm layer naming
Best Practices¶
1. Layer Organization¶
- Use standard layer names (F.Cu, B.Cu, etc.)
- Include all required layers
- Maintain layer order consistency
2. Component Placement¶
- Ensure all components have footprints
- Verify component references
- Check component orientations
3. Design Rules¶
- Follow manufacturer specifications
- Use appropriate trace widths
- Include proper clearances
4. Documentation¶
- Include project name and date
- Add manufacturing notes
- Specify special requirements
API Integration¶
Backend Endpoint¶
POST /api/odb-export
Content-Type: application/json
{
"kicadFiles": {
"pcb": {
"content": "kicad_pcb_content",
"filename": "project.kicad_pcb"
}
},
"projectName": "my_project"
}
Response Format¶
{
"success": true,
"message": "ODB++ files generated successfully",
"files": {
"odb_archive": {
"filename": "my_project.tgz",
"content": "binary_data",
"size": 12345
}
},
"metadata": {
"project_name": "my_project",
"layer_count": 6,
"component_count": 25,
"generated_at": "2024-01-09T10:30:00"
}
}
Conclusion¶
ODB++ export provides a comprehensive solution for PCB manufacturing data exchange. The format includes all necessary information in a single archive, reducing errors and improving manufacturing efficiency.
For questions or support, refer to the manufacturer's documentation or contact their technical support team.