Compare commits

...

18 Commits

Author SHA1 Message Date
cpresser
a2ad7026f1 Merge branch 'update-simulation-demos' into 'master'
Update simulation examples

Closes kicad/libraries/kicad-symbols#3205

See merge request kicad/code/kicad!2304
2025-09-13 12:31:22 +00:00
Jan Wichmann
36e38cd60a ADDED: Sort the templates alphabetically, leaving the default template at the top. 2025-09-13 03:15:44 -07:00
Seth Hillbrand
5fdfff2b9c Prevent lines from drawing on netclass layer
Only wires and busses get netclasses

Fixes https://gitlab.com/kicad/code/kicad/issues/21731
2025-09-13 02:51:00 -07:00
Seth Hillbrand
733a379ca3 Unify sheet name validators and apply to properties
Properties panel and properties dialog now share a validator with shared
strings

Fixes https://gitlab.com/kicad/code/kicad/issues/21689
2025-09-13 02:42:03 -07:00
Seth Hillbrand
497afffd48 Properly order netlist pages
We cannot reorder these without updating the defines.  So, keep the GUI
in line with the definitions

Fixes https://gitlab.com/kicad/code/kicad/issues/21730
2025-09-12 23:34:29 -07:00
Seth Hillbrand
89be756d1a Ensure that we are checking case differences
When comparing symbols, look for case differences in values since
netlists are indeed case sensitive
2025-09-12 23:27:06 -07:00
Seth Hillbrand
a6decf15b5 Don't assert on stderr messages
These can be things like missing library tables, directory creation, etc
2025-09-12 23:26:20 -07:00
Seth Hillbrand
4229b3cc76 Update cli golden files with new output format 2025-09-12 23:25:22 -07:00
Seth Hillbrand
32ee4ebdfa Fix QA.
QA was built with pin names outside but this was a bug.  For now, we
only want to test outside pin names.  The test can be expanded in the
future
2025-09-12 12:53:01 -07:00
Jeff Young
2c102a62e0 Auto-convert numeric values in fields when referencing them in expressions.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/21723
2025-09-12 20:35:17 +01:00
jean-pierre charras
aa4de22ef4 EDA_3D_CANVAS: fix crash when used in dialogs and clicking in the 3D shape
It was due to the fact a message (using ExpressMail) was sent to the board
and schematic editor, but it is possible only if the manager of this canvas
is a EDA_3D_VIEWER_FRAME, because only this kind of frame has ExpressMail stuff

Fixes https://gitlab.com/kicad/code/kicad/-/issues/21728
2025-09-12 20:00:10 +02:00
jean-pierre charras
79a3b7ac5f Add missing header to compil on msys2 2025-09-12 19:44:19 +02:00
Carsten Presser
972eea8bab Update sallen-key simulation-demo
User newer symbol that match the current upstream library.
Move the 'lowpass' label so it looks nicer
2025-09-06 15:19:50 +02:00
Carsten Presser
81ed6708c0 Rename 'pspice' simulation demo to 'amplifier-ac' 2025-09-06 15:14:34 +02:00
Carsten Presser
5d9549a9d1 Update 'pspice' simulation example
It used very outdated symbols
Also the name is not good.
2025-09-06 14:33:54 +02:00
Carsten Presser
a797797b17 Update LM317 simulation example
Use modern symbols
Align to grid
Show interesting simulation parameters
2025-09-06 14:10:58 +02:00
Carsten Presser
6fd93b23bd Update simulation demos: Replace '0' symbols with GND
Just a tiny visual fix: Replace the 0-Symbol with GND symbol.
Also store as KiCad9
2025-09-06 13:45:04 +02:00
Carsten Presser
8a0349ee90 Update laser_driver simulation example
This demo had some outdated symbols that don't look like the ones we
currently have in the upstream library.
Also some of the sim-parameters are now shown in the schematic to better
explain what is happening.
Hopefully that will make the example more accessible.

Resolves: https://gitlab.com/kicad/libraries/kicad-symbols/-/issues/3205
2025-09-06 13:21:57 +02:00
43 changed files with 16589 additions and 7471 deletions

View File

@ -1087,14 +1087,16 @@ void EDA_3D_CANVAS::OnLeftDown( wxMouseEvent& event )
if( footprint )
{
std::string command =
fmt::format( "$SELECT: 0,F{}",
EscapeString( footprint->GetReference(), CTX_IPC ).ToStdString() );
EDA_3D_VIEWER_FRAME* frame = static_cast<EDA_3D_VIEWER_FRAME*>( GetParent() );
// We send a message (by ExpressMail) to the board and schematic editor, but only
// if the manager of this canvas is a EDA_3D_VIEWER_FRAME, because only this
// kind of frame has ExpressMail stuff
EDA_3D_VIEWER_FRAME* frame = dynamic_cast<EDA_3D_VIEWER_FRAME*>( GetParent() );
if( frame )
{
std::string command = fmt::format( "$SELECT: 0,F{}",
EscapeString( footprint->GetReference(), CTX_IPC ).ToStdString() );
frame->Kiway().ExpressMail( FRAME_PCB_EDITOR, MAIL_SELECTION, command, frame );
frame->Kiway().ExpressMail( FRAME_SCH, MAIL_SELECTION, command, frame );
}

View File

@ -708,6 +708,104 @@ double EDA_UNIT_UTILS::UI::DoubleValueFromString( const EDA_IU_SCALE& aIuScale,
}
bool EDA_UNIT_UTILS::UI::DoubleValueFromString( const EDA_IU_SCALE& aIuScale, const wxString& aTextValue,
double& aDoubleValue )
{
double dtmp = 0;
// Acquire the 'right' decimal point separator
const struct lconv* lc = localeconv();
wxChar decimal_point = lc->decimal_point[0];
wxString buf( aTextValue.Strip( wxString::both ) );
// Convert any entered decimal point separators to the 'right' one
buf.Replace( wxT( "." ), wxString( decimal_point, 1 ) );
buf.Replace( wxT( "," ), wxString( decimal_point, 1 ) );
// Find the end of the numeric part
unsigned brk_point = 0;
while( brk_point < buf.Len() )
{
wxChar ch = buf[brk_point];
if( !( (ch >= '0' && ch <= '9') || (ch == decimal_point) || (ch == '-') || (ch == '+') ) )
break;
++brk_point;
}
if( brk_point == 0 )
return false;
// Extract the numeric part
buf.Left( brk_point ).ToDouble( &dtmp );
// Check the unit designator
wxString unit( buf.Mid( brk_point ).Strip( wxString::both ).Lower() );
EDA_UNITS units;
//check for um, μm (µ is MICRO SIGN) and µm (µ is GREEK SMALL LETTER MU) for micrometre
if( unit == wxT( "um" ) || unit == wxT( "\u00B5m" ) || unit == wxT( "\u03BCm" ) )
{
units = EDA_UNITS::UM;
}
else if( unit == wxT( "mm" ) )
{
units = EDA_UNITS::MM;
}
else if( unit == wxT( "cm" ) )
{
units = EDA_UNITS::CM;
}
else if( unit == wxT( "mil" ) || unit == wxT( "mils" ) || unit == wxT( "thou" ) )
{
units = EDA_UNITS::MILS;
}
else if( unit == wxT( "in" ) || unit == wxT( "\"" ) )
{
units = EDA_UNITS::INCH;
}
else if( unit == wxT( "oz" ) ) // 1 oz = 1.37 mils
{
units = EDA_UNITS::MILS;
dtmp *= 1.37;
}
else if( unit == wxT( "ra" ) ) // Radians
{
dtmp *= 180.0f / M_PI;
}
else if( unit == wxT( "fs" ) )
{
units = EDA_UNITS::FS;
}
else if( unit == wxT( "ps" ) )
{
units = EDA_UNITS::PS;
}
else if( unit == wxT( "ps/in" ) )
{
units = EDA_UNITS::PS_PER_INCH;
}
else if( unit == wxT( "ps/cm" ) )
{
units = EDA_UNITS::PS_PER_CM;
}
else if( unit == wxT( "ps/mm" ) )
{
units = EDA_UNITS::PS_PER_MM;
}
else
{
return false;
}
aDoubleValue = FromUserUnit( aIuScale, units, dtmp );
return true;
}
long long int EDA_UNIT_UTILS::UI::ValueFromString( const EDA_IU_SCALE& aIuScale, EDA_UNITS aUnits,
const wxString& aTextValue, EDA_DATA_TYPE aType )
{

View File

@ -25,6 +25,7 @@
#define KICAD_GIT_ERRORS_H
#include <vector>
#include <import_export.h>
#include <wx/translation.h>

View File

@ -289,13 +289,14 @@ bool FIELD_VALIDATOR::Validate( wxWindow* aParent )
}
bool FIELD_VALIDATOR::DoValidate( const wxString& aValue, wxWindow* aParent )
wxString GetFieldValidationErrorMessage( FIELD_T aFieldId, const wxString& aValue )
{
wxString msg;
FIELD_VALIDATOR validator( aFieldId );
wxString msg;
if( HasFlag( wxFILTER_EMPTY ) && aValue.empty() )
if( validator.HasFlag( wxFILTER_EMPTY ) && aValue.empty() )
{
switch( m_fieldId )
switch( aFieldId )
{
case FIELD_T::SHEET_NAME: msg = _( "A sheet must have a name." ); break;
case FIELD_T::SHEET_FILENAME: msg = _( "A sheet must have a file specified." ); break;
@ -303,11 +304,11 @@ bool FIELD_VALIDATOR::DoValidate( const wxString& aValue, wxWindow* aParent )
}
}
if( HasFlag( wxFILTER_EXCLUDE_CHAR_LIST ) && ContainsExcludedCharacters( aValue ) )
if( msg.empty() && validator.HasFlag( wxFILTER_EXCLUDE_CHAR_LIST ) )
{
wxArrayString badCharsFound;
for( const wxUniCharRef& excludeChar : GetCharExcludes() )
for( const wxUniCharRef& excludeChar : validator.GetCharExcludes() )
{
if( aValue.Find( excludeChar ) != wxNOT_FOUND )
{
@ -324,68 +325,83 @@ bool FIELD_VALIDATOR::DoValidate( const wxString& aValue, wxWindow* aParent )
}
}
wxString badChars;
for( size_t i = 0; i < badCharsFound.GetCount(); i++ )
if( !badCharsFound.IsEmpty() )
{
if( !badChars.IsEmpty() )
wxString badChars;
for( size_t i = 0; i < badCharsFound.GetCount(); i++ )
{
if( badCharsFound.GetCount() == 2 )
if( !badChars.IsEmpty() )
{
badChars += _( " or " );
}
else
{
if( i < badCharsFound.GetCount() - 2 )
badChars += _( ", or " );
if( badCharsFound.GetCount() == 2 )
{
badChars += _( " or " );
}
else
badChars += wxT( ", " );
{
if( i < badCharsFound.GetCount() - 2 )
badChars += _( ", or " );
else
badChars += wxT( ", " );
}
}
badChars += badCharsFound.Item( i );
}
badChars += badCharsFound.Item( i );
switch( aFieldId )
{
case FIELD_T::REFERENCE:
msg.Printf( _( "The reference designator cannot contain %s character(s)." ), badChars );
break;
case FIELD_T::VALUE:
msg.Printf( _( "The value field cannot contain %s character(s)." ), badChars );
break;
case FIELD_T::FOOTPRINT:
msg.Printf( _( "The footprint field cannot contain %s character(s)." ), badChars );
break;
case FIELD_T::DATASHEET:
msg.Printf( _( "The datasheet field cannot contain %s character(s)." ), badChars );
break;
case FIELD_T::SHEET_NAME:
msg.Printf( _( "The sheet name cannot contain %s character(s)." ), badChars );
break;
case FIELD_T::SHEET_FILENAME:
msg.Printf( _( "The sheet filename cannot contain %s character(s)." ), badChars );
break;
default:
msg.Printf( _( "The field cannot contain %s character(s)." ), badChars );
break;
};
}
}
switch( m_fieldId )
if( msg.empty() )
{
if( aFieldId == FIELD_T::REFERENCE && aValue.Contains( wxT( "${" ) ) )
{
case FIELD_T::REFERENCE:
msg.Printf( _( "The reference designator cannot contain %s character(s)." ), badChars );
break;
case FIELD_T::VALUE:
msg.Printf( _( "The value field cannot contain %s character(s)." ), badChars );
break;
case FIELD_T::FOOTPRINT:
msg.Printf( _( "The footprint field cannot contain %s character(s)." ), badChars );
break;
case FIELD_T::DATASHEET:
msg.Printf( _( "The datasheet field cannot contain %s character(s)." ), badChars );
break;
case FIELD_T::SHEET_NAME:
msg.Printf( _( "The sheet name cannot contain %s character(s)." ), badChars );
break;
case FIELD_T::SHEET_FILENAME:
msg.Printf( _( "The sheet filename cannot contain %s character(s)." ), badChars );
break;
default:
msg.Printf( _( "The field cannot contain %s character(s)." ), badChars );
break;
};
}
else if( m_fieldId == FIELD_T::REFERENCE && aValue.Contains( wxT( "${" ) ) )
{
msg.Printf( _( "The reference designator cannot contain text variable references" ) );
}
else if( m_fieldId == FIELD_T::REFERENCE && UTIL::GetRefDesPrefix( aValue ).IsEmpty() )
{
msg.Printf( _( "References must start with a letter." ) );
msg.Printf( _( "The reference designator cannot contain text variable references" ) );
}
else if( aFieldId == FIELD_T::REFERENCE && UTIL::GetRefDesPrefix( aValue ).IsEmpty() )
{
msg.Printf( _( "References must start with a letter." ) );
}
}
return msg;
}
bool FIELD_VALIDATOR::DoValidate( const wxString& aValue, wxWindow* aParent )
{
wxString msg = GetFieldValidationErrorMessage( m_fieldId, aValue );
if( !msg.empty() )
{
if( m_validatorWindow )

View File

@ -7,6 +7,14 @@
"track_widths": [],
"via_dimensions": []
},
"ipc2581": {
"dist": "",
"distpn": "",
"internal_id": "",
"mfg": "",
"mpn": ""
},
"layer_pairs": [],
"layer_presets": [],
"viewports": []
},
@ -194,17 +202,21 @@
"bus_entry_needed": "error",
"bus_to_bus_conflict": "error",
"bus_to_net_conflict": "error",
"conflicting_netclasses": "error",
"different_unit_footprint": "error",
"different_unit_net": "error",
"duplicate_reference": "error",
"duplicate_sheet_names": "error",
"endpoint_off_grid": "warning",
"extra_units": "error",
"footprint_filter": "ignore",
"footprint_link_issues": "warning",
"four_way_junction": "ignore",
"global_label_dangling": "warning",
"hier_label_mismatch": "error",
"label_dangling": "error",
"label_multiple_wires": "warning",
"lib_symbol_issues": "warning",
"lib_symbol_mismatch": "warning",
"missing_bidi_pin": "warning",
"missing_input_pin": "warning",
"missing_power_pin": "error",
@ -217,9 +229,14 @@
"pin_not_driven": "error",
"pin_to_pin": "warning",
"power_pin_not_driven": "error",
"same_local_global_label": "warning",
"similar_label_and_power": "warning",
"similar_labels": "warning",
"simulation_model_issue": "error",
"similar_power": "warning",
"simulation_model_issue": "ignore",
"single_global_label": "ignore",
"unannotated": "error",
"unconnected_wire_endpoint": "warning",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
@ -231,7 +248,7 @@
},
"meta": {
"filename": "pspice.kicad_pro",
"version": 1
"version": 3
},
"net_settings": {
"classes": [
@ -246,15 +263,16 @@
"microvia_drill": 0.1,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"priority": 2147483647,
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.25,
"via_diameter": 0.8,
"via_drill": 0.4,
"track_width": 0.2,
"via_diameter": 0.6,
"via_drill": 0.3,
"wire_width": 6
}
],
"meta": {
"version": 3
"version": 4
},
"net_colors": null,
"netclass_assignments": null,
@ -265,22 +283,94 @@
"gencad": "",
"idf": "",
"netlist": "",
"plot": "",
"pos_files": "",
"specctra_dsn": "",
"step": "",
"svg": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"annotate_start_num": 0,
"bom_export_filename": "${PROJECTNAME}.csv",
"bom_fmt_presets": [],
"bom_fmt_settings": {
"field_delimiter": ",",
"keep_line_breaks": false,
"keep_tabs": false,
"name": "CSV",
"ref_delimiter": ",",
"ref_range_delimiter": "",
"string_delimiter": "\""
},
"bom_presets": [],
"bom_settings": {
"exclude_dnp": false,
"fields_ordered": [
{
"group_by": false,
"label": "Reference",
"name": "Reference",
"show": true
},
{
"group_by": false,
"label": "Qty",
"name": "${QUANTITY}",
"show": true
},
{
"group_by": true,
"label": "Value",
"name": "Value",
"show": true
},
{
"group_by": true,
"label": "DNP",
"name": "${DNP}",
"show": true
},
{
"group_by": true,
"label": "Exclude from BOM",
"name": "${EXCLUDE_FROM_BOM}",
"show": true
},
{
"group_by": true,
"label": "Exclude from Board",
"name": "${EXCLUDE_FROM_BOARD}",
"show": true
},
{
"group_by": true,
"label": "Footprint",
"name": "Footprint",
"show": true
},
{
"group_by": false,
"label": "Datasheet",
"name": "Datasheet",
"show": true
}
],
"filter_string": "",
"group_symbols": true,
"include_excluded_from_bom": true,
"name": "Default Editing",
"sort_asc": true,
"sort_field": "Reference"
},
"connection_grid_size": 50.0,
"drawing": {
"dashed_lines_dash_length_ratio": 12.0,
"dashed_lines_gap_length_ratio": 3.0,
"default_bus_thickness": 12.0,
"default_junction_size": 40.0,
"default_line_thickness": 6.0,
"default_text_size": 50.0,
"default_wire_thickness": 6.0,
"field_names": [],
"intersheets_ref_own_page": false,
"intersheets_ref_prefix": "",
@ -288,9 +378,14 @@
"intersheets_ref_show": false,
"intersheets_ref_suffix": "",
"junction_size_choice": 3,
"label_size_ratio": 0.3,
"pin_symbol_size": 25.0,
"text_offset_ratio": 0.3
"label_size_ratio": 0.25,
"operating_point_overlay_i_precision": 3,
"operating_point_overlay_i_range": "~A",
"operating_point_overlay_v_precision": 3,
"operating_point_overlay_v_range": "~V",
"overbar_offset_ratio": 1.23,
"pin_symbol_size": 0.0,
"text_offset_ratio": 0.08
},
"legacy_lib_dir": "",
"legacy_lib_list": [],
@ -300,20 +395,20 @@
"net_format_name": "",
"ngspice": {
"fix_include_paths": true,
"fix_passive_vals": false,
"meta": {
"version": 0
},
"model_mode": 0,
"model_mode": 4,
"workbook_filename": ""
},
"page_layout_descr_file": "",
"plot_directory": "",
"spice_adjust_passive_values": false,
"space_save_all_events": true,
"spice_current_sheet_as_root": false,
"spice_external_command": "spice \"%I\"",
"spice_model_current_sheet_as_root": true,
"spice_save_all_currents": false,
"spice_save_all_dissipations": false,
"spice_save_all_voltages": false,
"subpart_first_id": 65,
"subpart_id_separator": 0
@ -321,7 +416,7 @@
"sheets": [
[
"a4349b77-fc13-4b06-b73d-e811f055a7b6",
""
"Root"
]
],
"text_variables": {}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,3 @@
(sym_lib_table
(version 7)
)

View File

@ -243,7 +243,7 @@
},
"meta": {
"filename": "generic_opamp_bip.kicad_pro",
"version": 2
"version": 3
},
"net_settings": {
"classes": [

View File

@ -1,5 +1,5 @@
(kicad_sch
(version 20241209)
(version 20250114)
(generator "eeschema")
(generator_version "9.0")
(uuid "7e4dfe8a-5df9-4426-b328-4b07a6aa7235")
@ -273,104 +273,6 @@
)
(embedded_fonts no)
)
(symbol "Simulation_SPICE:0"
(power)
(pin_names
(offset 0)
)
(exclude_from_sim no)
(in_bom yes)
(on_board yes)
(property "Reference" "#GND"
(at 0 -2.54 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Value" "0"
(at 0 -1.778 0)
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Footprint" ""
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Datasheet" "~"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Description" "0V reference potential for simulation"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "ki_keywords" "simulation"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(symbol "0_0_1"
(polyline
(pts
(xy -1.27 0) (xy 0 -1.27) (xy 1.27 0) (xy -1.27 0)
)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
)
(symbol "0_1_1"
(pin power_in line
(at 0 0 0)
(length 0)
(hide yes)
(name "0"
(effects
(font
(size 1.016 1.016)
)
)
)
(number "1"
(effects
(font
(size 1.016 1.016)
)
)
)
)
)
(embedded_fonts no)
)
(symbol "Simulation_SPICE:NPN"
(pin_numbers
(hide yes)
@ -1432,6 +1334,107 @@
)
(embedded_fonts no)
)
(symbol "power:GND"
(power)
(pin_numbers
(hide yes)
)
(pin_names
(offset 0)
(hide yes)
)
(exclude_from_sim no)
(in_bom yes)
(on_board yes)
(property "Reference" "#PWR"
(at 0 -6.35 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Value" "GND"
(at 0 -3.81 0)
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Footprint" ""
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Datasheet" ""
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Description" "Power symbol creates a global label with name \"GND\" , ground"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "ki_keywords" "global power"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(symbol "GND_0_1"
(polyline
(pts
(xy 0 0) (xy 0 -1.27) (xy 1.27 -1.27) (xy 0 -2.54) (xy -1.27 -1.27) (xy 0 -1.27)
)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
)
(symbol "GND_1_1"
(pin power_in line
(at 0 0 270)
(length 0)
(name "~"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "1"
(effects
(font
(size 1.27 1.27)
)
)
)
)
)
(embedded_fonts no)
)
)
(text "Generic OpAmp"
(exclude_from_sim no)
@ -1515,6 +1518,16 @@
)
(uuid "0cd3ba01-55f3-41bb-a5fb-061a1151a182")
)
(wire
(pts
(xy 156.21 88.9) (xy 156.21 87.63)
)
(stroke
(width 0)
(type default)
)
(uuid "0d6104cb-337d-4943-b0dd-8944f99e1c5f")
)
(wire
(pts
(xy 182.88 90.17) (xy 187.96 90.17)
@ -1585,6 +1598,16 @@
)
(uuid "348fe1d6-4e84-4bf0-af93-a6740aa76a98")
)
(wire
(pts
(xy 156.21 87.63) (xy 161.29 87.63)
)
(stroke
(width 0)
(type default)
)
(uuid "458b2f0a-94dd-4122-b1fd-4ae149f93c57")
)
(wire
(pts
(xy 166.37 97.79) (xy 166.37 99.06)
@ -1745,16 +1768,6 @@
)
(uuid "bfc55c24-d199-47d2-a80d-4486893c76b5")
)
(wire
(pts
(xy 156.21 87.63) (xy 161.29 87.63)
)
(stroke
(width 0)
(type default)
)
(uuid "c0c37149-28dc-42d5-b701-ffb0e1d5a23e")
)
(wire
(pts
(xy 135.89 92.71) (xy 135.89 102.87)
@ -1805,16 +1818,6 @@
)
(uuid "d7d6207e-cd83-455e-a057-1ae6276c01be")
)
(wire
(pts
(xy 156.21 86.36) (xy 156.21 87.63)
)
(stroke
(width 0)
(type default)
)
(uuid "ddaae287-f8aa-4b36-ab0a-b5ec0fe1ee8e")
)
(wire
(pts
(xy 176.53 90.17) (xy 182.88 90.17)
@ -2339,7 +2342,7 @@
)
)
(symbol
(lib_id "Simulation_SPICE:0")
(lib_id "power:GND")
(at 270.51 110.49 0)
(unit 1)
(exclude_from_sim no)
@ -2348,8 +2351,8 @@
(dnp no)
(fields_autoplaced yes)
(uuid "22fcf0d5-0463-42fe-8be0-1a1a2ae18260")
(property "Reference" "#GND06"
(at 270.51 113.03 0)
(property "Reference" "#PWR6"
(at 270.51 116.84 0)
(effects
(font
(size 1.27 1.27)
@ -2358,11 +2361,12 @@
)
)
(property "Value" "0"
(at 270.51 107.95 0)
(at 270.51 115.57 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Footprint" ""
@ -2374,7 +2378,7 @@
(hide yes)
)
)
(property "Datasheet" "~"
(property "Datasheet" ""
(at 270.51 110.49 0)
(effects
(font
@ -2383,7 +2387,7 @@
(hide yes)
)
)
(property "Description" "0V reference potential for simulation"
(property "Description" "Power symbol creates a global label with name \"GND\" , ground"
(at 270.51 110.49 0)
(effects
(font
@ -2398,14 +2402,14 @@
(instances
(project "generic_opamp_bip"
(path "/7e4dfe8a-5df9-4426-b328-4b07a6aa7235"
(reference "#GND06")
(reference "#PWR6")
(unit 1)
)
)
)
)
(symbol
(lib_id "Simulation_SPICE:0")
(lib_id "power:GND")
(at 198.12 95.25 0)
(unit 1)
(exclude_from_sim no)
@ -2414,8 +2418,8 @@
(dnp no)
(fields_autoplaced yes)
(uuid "2861aaee-2325-4636-9236-df60ef0751d2")
(property "Reference" "#GND03"
(at 198.12 97.79 0)
(property "Reference" "#PWR3"
(at 198.12 101.6 0)
(effects
(font
(size 1.27 1.27)
@ -2424,7 +2428,7 @@
)
)
(property "Value" "0"
(at 198.12 92.71 0)
(at 198.12 100.33 0)
(effects
(font
(size 1.27 1.27)
@ -2440,7 +2444,7 @@
(hide yes)
)
)
(property "Datasheet" "~"
(property "Datasheet" ""
(at 198.12 95.25 0)
(effects
(font
@ -2449,7 +2453,7 @@
(hide yes)
)
)
(property "Description" "0V reference potential for simulation"
(property "Description" "Power symbol creates a global label with name \"GND\" , ground"
(at 198.12 95.25 0)
(effects
(font
@ -2464,7 +2468,7 @@
(instances
(project "generic_opamp_bip"
(path "/7e4dfe8a-5df9-4426-b328-4b07a6aa7235"
(reference "#GND03")
(reference "#PWR3")
(unit 1)
)
)
@ -3276,7 +3280,7 @@
)
)
(symbol
(lib_id "Simulation_SPICE:0")
(lib_id "power:GND")
(at 252.73 110.49 0)
(unit 1)
(exclude_from_sim no)
@ -3285,8 +3289,8 @@
(dnp no)
(fields_autoplaced yes)
(uuid "a044f42a-0fd7-4a07-90a5-05ca17992166")
(property "Reference" "#GND05"
(at 252.73 113.03 0)
(property "Reference" "#PWR5"
(at 252.73 116.84 0)
(effects
(font
(size 1.27 1.27)
@ -3295,11 +3299,12 @@
)
)
(property "Value" "0"
(at 252.73 107.95 0)
(at 252.73 115.57 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Footprint" ""
@ -3311,7 +3316,7 @@
(hide yes)
)
)
(property "Datasheet" "~"
(property "Datasheet" ""
(at 252.73 110.49 0)
(effects
(font
@ -3320,7 +3325,7 @@
(hide yes)
)
)
(property "Description" "0V reference potential for simulation"
(property "Description" "Power symbol creates a global label with name \"GND\" , ground"
(at 252.73 110.49 0)
(effects
(font
@ -3335,14 +3340,14 @@
(instances
(project "generic_opamp_bip"
(path "/7e4dfe8a-5df9-4426-b328-4b07a6aa7235"
(reference "#GND05")
(reference "#PWR5")
(unit 1)
)
)
)
)
(symbol
(lib_id "Simulation_SPICE:0")
(lib_id "power:GND")
(at 233.68 110.49 0)
(unit 1)
(exclude_from_sim no)
@ -3351,8 +3356,8 @@
(dnp no)
(fields_autoplaced yes)
(uuid "a601c847-3958-442b-a945-25af8ed36e0f")
(property "Reference" "#GND04"
(at 233.68 113.03 0)
(property "Reference" "#PWR4"
(at 233.68 116.84 0)
(effects
(font
(size 1.27 1.27)
@ -3361,11 +3366,12 @@
)
)
(property "Value" "0"
(at 233.68 107.95 0)
(at 233.68 115.57 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Footprint" ""
@ -3377,7 +3383,7 @@
(hide yes)
)
)
(property "Datasheet" "~"
(property "Datasheet" ""
(at 233.68 110.49 0)
(effects
(font
@ -3386,7 +3392,7 @@
(hide yes)
)
)
(property "Description" "0V reference potential for simulation"
(property "Description" "Power symbol creates a global label with name \"GND\" , ground"
(at 233.68 110.49 0)
(effects
(font
@ -3401,7 +3407,7 @@
(instances
(project "generic_opamp_bip"
(path "/7e4dfe8a-5df9-4426-b328-4b07a6aa7235"
(reference "#GND04")
(reference "#PWR4")
(unit 1)
)
)
@ -3475,7 +3481,7 @@
)
)
(symbol
(lib_id "Simulation_SPICE:0")
(lib_id "power:GND")
(at 135.89 114.3 0)
(unit 1)
(exclude_from_sim no)
@ -3484,8 +3490,8 @@
(dnp no)
(fields_autoplaced yes)
(uuid "b3399f4d-6927-42f5-927a-02ea2fca80bb")
(property "Reference" "#GND01"
(at 135.89 116.84 0)
(property "Reference" "#PWR1"
(at 135.89 120.65 0)
(effects
(font
(size 1.27 1.27)
@ -3494,11 +3500,12 @@
)
)
(property "Value" "0"
(at 135.89 111.76 0)
(at 135.89 119.38 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Footprint" ""
@ -3510,7 +3517,7 @@
(hide yes)
)
)
(property "Datasheet" "~"
(property "Datasheet" ""
(at 135.89 114.3 0)
(effects
(font
@ -3519,7 +3526,7 @@
(hide yes)
)
)
(property "Description" "0V reference potential for simulation"
(property "Description" "Power symbol creates a global label with name \"GND\" , ground"
(at 135.89 114.3 0)
(effects
(font
@ -3534,7 +3541,7 @@
(instances
(project "generic_opamp_bip"
(path "/7e4dfe8a-5df9-4426-b328-4b07a6aa7235"
(reference "#GND01")
(reference "#PWR1")
(unit 1)
)
)
@ -3675,17 +3682,17 @@
)
)
(symbol
(lib_id "Simulation_SPICE:0")
(at 156.21 86.36 0)
(mirror x)
(lib_id "power:GND")
(at 156.21 88.9 0)
(mirror y)
(unit 1)
(exclude_from_sim no)
(in_bom yes)
(on_board yes)
(dnp no)
(uuid "fce61e56-3d8d-4627-ab66-168c1043305d")
(property "Reference" "#GND02"
(at 156.21 83.82 0)
(property "Reference" "#PWR2"
(at 156.21 95.25 0)
(effects
(font
(size 1.27 1.27)
@ -3694,15 +3701,25 @@
)
)
(property "Value" "0"
(at 156.21 92.71 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Footprint" ""
(at 156.21 88.9 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Footprint" ""
(at 156.21 86.36 0)
(property "Datasheet" ""
(at 156.21 88.9 0)
(effects
(font
(size 1.27 1.27)
@ -3710,17 +3727,8 @@
(hide yes)
)
)
(property "Datasheet" "~"
(at 156.21 86.36 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Description" "0V reference potential for simulation"
(at 156.21 86.36 0)
(property "Description" "Power symbol creates a global label with name \"GND\" , ground"
(at 156.21 88.9 0)
(effects
(font
(size 1.27 1.27)
@ -3734,7 +3742,7 @@
(instances
(project "generic_opamp_bip"
(path "/7e4dfe8a-5df9-4426-b328-4b07a6aa7235"
(reference "#GND02")
(reference "#PWR2")
(unit 1)
)
)

View File

@ -23,6 +23,14 @@
"track_widths": [],
"via_dimensions": []
},
"ipc2581": {
"dist": "",
"distpn": "",
"internal_id": "",
"mfg": "",
"mpn": ""
},
"layer_pairs": [],
"layer_presets": [],
"viewports": []
},
@ -215,11 +223,17 @@
"different_unit_net": "error",
"duplicate_reference": "error",
"duplicate_sheet_names": "error",
"endpoint_off_grid": "warning",
"extra_units": "error",
"footprint_filter": "ignore",
"footprint_link_issues": "warning",
"four_way_junction": "ignore",
"global_label_dangling": "warning",
"hier_label_mismatch": "error",
"label_dangling": "error",
"label_multiple_wires": "warning",
"lib_symbol_issues": "warning",
"lib_symbol_mismatch": "warning",
"missing_bidi_pin": "warning",
"missing_input_pin": "warning",
"missing_power_pin": "error",
@ -232,9 +246,14 @@
"pin_not_driven": "error",
"pin_to_pin": "warning",
"power_pin_not_driven": "error",
"same_local_global_label": "warning",
"similar_label_and_power": "warning",
"similar_labels": "warning",
"similar_power": "warning",
"simulation_model_issue": "error",
"single_global_label": "ignore",
"unannotated": "error",
"unconnected_wire_endpoint": "warning",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
@ -246,7 +265,7 @@
},
"meta": {
"filename": "laser_driver.kicad_pro",
"version": 1
"version": 3
},
"net_settings": {
"classes": [
@ -261,6 +280,7 @@
"microvia_drill": 0.1,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"priority": 2147483647,
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.25,
"via_diameter": 0.8,
@ -269,7 +289,7 @@
}
],
"meta": {
"version": 3
"version": 4
},
"net_colors": null,
"netclass_assignments": null,
@ -280,14 +300,89 @@
"gencad": "",
"idf": "",
"netlist": "",
"plot": "",
"pos_files": "",
"specctra_dsn": "",
"step": "",
"svg": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"annotate_start_num": 0,
"bom_export_filename": "${PROJECTNAME}.csv",
"bom_fmt_presets": [],
"bom_fmt_settings": {
"field_delimiter": ",",
"keep_line_breaks": false,
"keep_tabs": false,
"name": "CSV",
"ref_delimiter": ",",
"ref_range_delimiter": "",
"string_delimiter": "\""
},
"bom_presets": [],
"bom_settings": {
"exclude_dnp": false,
"fields_ordered": [
{
"group_by": false,
"label": "Reference",
"name": "Reference",
"show": true
},
{
"group_by": false,
"label": "Qty",
"name": "${QUANTITY}",
"show": true
},
{
"group_by": true,
"label": "Value",
"name": "Value",
"show": true
},
{
"group_by": true,
"label": "DNP",
"name": "${DNP}",
"show": true
},
{
"group_by": true,
"label": "Exclude from BOM",
"name": "${EXCLUDE_FROM_BOM}",
"show": true
},
{
"group_by": true,
"label": "Exclude from Board",
"name": "${EXCLUDE_FROM_BOARD}",
"show": true
},
{
"group_by": true,
"label": "Footprint",
"name": "Footprint",
"show": true
},
{
"group_by": false,
"label": "Datasheet",
"name": "Datasheet",
"show": true
}
],
"filter_string": "",
"group_symbols": true,
"include_excluded_from_bom": true,
"name": "Default Editing",
"sort_asc": true,
"sort_field": "Reference"
},
"connection_grid_size": 50.0,
"drawing": {
"dashed_lines_dash_length_ratio": 12.0,
"dashed_lines_gap_length_ratio": 3.0,
@ -304,6 +399,11 @@
"intersheets_ref_suffix": "",
"junction_size_choice": 3,
"label_size_ratio": 0.3,
"operating_point_overlay_i_precision": 3,
"operating_point_overlay_i_range": "~A",
"operating_point_overlay_v_precision": 3,
"operating_point_overlay_v_range": "~V",
"overbar_offset_ratio": 1.23,
"pin_symbol_size": 25.0,
"text_offset_ratio": 0.3
},
@ -319,14 +419,18 @@
"meta": {
"version": 0
},
"model_mode": 0,
"model_mode": 4,
"workbook_filename": ""
},
"page_layout_descr_file": "",
"plot_directory": "",
"space_save_all_events": true,
"spice_adjust_passive_values": false,
"spice_current_sheet_as_root": false,
"spice_external_command": "spice \"%I\"",
"spice_model_current_sheet_as_root": true,
"spice_save_all_currents": false,
"spice_save_all_dissipations": false,
"spice_save_all_voltages": false,
"subpart_first_id": 65,
"subpart_id_separator": 0
@ -334,7 +438,7 @@
"sheets": [
[
"345f09c0-9aae-452d-8e25-bb6665c6b8ac",
""
"Root"
]
],
"text_variables": {}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,4 @@
(sym_lib_table
(version 7)
(lib (name "laser_driver_schlib")(type "KiCad")(uri "${KIPRJMOD}/laser_driver_schlib.kicad_sym")(options "")(descr ""))
)

View File

@ -30,6 +30,7 @@
"mfg": "",
"mpn": ""
},
"layer_pairs": [],
"layer_presets": [],
"viewports": []
},
@ -225,10 +226,15 @@
"duplicate_sheet_names": "error",
"endpoint_off_grid": "warning",
"extra_units": "error",
"footprint_filter": "ignore",
"footprint_link_issues": "warning",
"four_way_junction": "ignore",
"global_label_dangling": "warning",
"hier_label_mismatch": "error",
"label_dangling": "error",
"label_multiple_wires": "warning",
"lib_symbol_issues": "warning",
"lib_symbol_mismatch": "warning",
"missing_bidi_pin": "warning",
"missing_input_pin": "warning",
"missing_power_pin": "error",
@ -241,9 +247,14 @@
"pin_not_driven": "error",
"pin_to_pin": "warning",
"power_pin_not_driven": "error",
"same_local_global_label": "warning",
"similar_label_and_power": "warning",
"similar_labels": "warning",
"similar_power": "warning",
"simulation_model_issue": "ignore",
"single_global_label": "ignore",
"unannotated": "error",
"unconnected_wire_endpoint": "warning",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
@ -255,7 +266,7 @@
},
"meta": {
"filename": "power_supply.kicad_pro",
"version": 1
"version": 3
},
"net_settings": {
"classes": [
@ -270,6 +281,7 @@
"microvia_drill": 0.1,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"priority": 2147483647,
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.25,
"via_diameter": 0.8,
@ -278,7 +290,7 @@
}
],
"meta": {
"version": 3
"version": 4
},
"net_colors": null,
"netclass_assignments": null,
@ -300,6 +312,7 @@
},
"schematic": {
"annotate_start_num": 0,
"bom_export_filename": "${PROJECTNAME}.csv",
"bom_fmt_presets": [],
"bom_fmt_settings": {
"field_delimiter": ",",
@ -353,6 +366,7 @@
],
"filter_string": "",
"group_symbols": true,
"include_excluded_from_bom": false,
"name": "Grouped By Value",
"sort_asc": true,
"sort_field": "Reference"
@ -391,11 +405,12 @@
"meta": {
"version": 0
},
"model_mode": 0,
"model_mode": 2,
"workbook_filename": "power_supply.wbk"
},
"page_layout_descr_file": "",
"plot_directory": "",
"space_save_all_events": true,
"spice_adjust_passive_values": false,
"spice_current_sheet_as_root": false,
"spice_external_command": "C:\\Spice64\\bin\\ngspice \"%I\"",

View File

@ -31,6 +31,7 @@
"mfg": "",
"mpn": ""
},
"layer_pairs": [],
"layer_presets": [],
"viewports": []
},
@ -225,10 +226,15 @@
"duplicate_sheet_names": "error",
"endpoint_off_grid": "warning",
"extra_units": "error",
"footprint_filter": "ignore",
"footprint_link_issues": "warning",
"four_way_junction": "ignore",
"global_label_dangling": "warning",
"hier_label_mismatch": "error",
"label_dangling": "error",
"label_multiple_wires": "warning",
"lib_symbol_issues": "warning",
"lib_symbol_mismatch": "warning",
"missing_bidi_pin": "warning",
"missing_input_pin": "warning",
"missing_power_pin": "error",
@ -241,9 +247,14 @@
"pin_not_driven": "error",
"pin_to_pin": "warning",
"power_pin_not_driven": "error",
"same_local_global_label": "warning",
"similar_label_and_power": "warning",
"similar_labels": "warning",
"similar_power": "warning",
"simulation_model_issue": "error",
"single_global_label": "ignore",
"unannotated": "error",
"unconnected_wire_endpoint": "warning",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
@ -255,7 +266,7 @@
},
"meta": {
"filename": "buck_conv.kicad_pro",
"version": 1
"version": 3
},
"net_settings": {
"classes": [
@ -270,6 +281,7 @@
"microvia_drill": 0.1,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"priority": 2147483647,
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.25,
"via_diameter": 0.8,
@ -278,7 +290,7 @@
}
],
"meta": {
"version": 3
"version": 4
},
"net_colors": null,
"netclass_assignments": null,
@ -300,6 +312,7 @@
},
"schematic": {
"annotate_start_num": 0,
"bom_export_filename": "${PROJECTNAME}.csv",
"bom_fmt_presets": [],
"bom_fmt_settings": {
"field_delimiter": ",",
@ -353,6 +366,7 @@
],
"filter_string": "",
"group_symbols": true,
"include_excluded_from_bom": false,
"name": "Grouped By Value",
"sort_asc": true,
"sort_field": "Reference"
@ -395,6 +409,7 @@
},
"page_layout_descr_file": "",
"plot_directory": "",
"space_save_all_events": true,
"spice_current_sheet_as_root": false,
"spice_external_command": "spice \"%I\"",
"spice_model_current_sheet_as_root": true,

View File

@ -1,12 +1,14 @@
(kicad_sch
(version 20231120)
(version 20250114)
(generator "eeschema")
(generator_version "8.0")
(generator_version "9.0")
(uuid "06b3cdeb-0ab8-40f0-ad85-5d97ad7ae2be")
(paper "A4")
(lib_symbols
(symbol "Device:C"
(pin_numbers hide)
(pin_numbers
(hide yes)
)
(pin_names
(offset 0.254)
)
@ -79,7 +81,7 @@
(symbol "C_0_1"
(polyline
(pts
(xy -2.032 -0.762) (xy 2.032 -0.762)
(xy -2.032 0.762) (xy 2.032 0.762)
)
(stroke
(width 0.508)
@ -91,7 +93,7 @@
)
(polyline
(pts
(xy -2.032 0.762) (xy 2.032 0.762)
(xy -2.032 -0.762) (xy 2.032 -0.762)
)
(stroke
(width 0.508)
@ -140,11 +142,16 @@
)
)
)
(embedded_fonts no)
)
(symbol "Device:L"
(pin_numbers hide)
(pin_numbers
(hide yes)
)
(pin_names
(offset 1.016) hide)
(offset 1.016)
(hide yes)
)
(exclude_from_sim no)
(in_bom yes)
(on_board yes)
@ -211,32 +218,8 @@
)
(symbol "L_0_1"
(arc
(start 0 -2.54)
(mid 0.6323 -1.905)
(end 0 -1.27)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
(arc
(start 0 -1.27)
(mid 0.6323 -0.635)
(end 0 0)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
(arc
(start 0 0)
(mid 0.6323 0.635)
(start 0 2.54)
(mid 0.6323 1.905)
(end 0 1.27)
(stroke
(width 0)
@ -248,8 +231,32 @@
)
(arc
(start 0 1.27)
(mid 0.6323 1.905)
(end 0 2.54)
(mid 0.6323 0.635)
(end 0 0)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
(arc
(start 0 0)
(mid 0.6323 -0.635)
(end 0 -1.27)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
(arc
(start 0 -1.27)
(mid 0.6323 -1.905)
(end 0 -2.54)
(stroke
(width 0)
(type default)
@ -297,9 +304,12 @@
)
)
)
(embedded_fonts no)
)
(symbol "Device:R"
(pin_numbers hide)
(pin_numbers
(hide yes)
)
(pin_names
(offset 0)
)
@ -418,107 +428,16 @@
)
)
)
)
(symbol "Simulation_SPICE:0"
(power)
(pin_names
(offset 0)
)
(exclude_from_sim no)
(in_bom yes)
(on_board yes)
(property "Reference" "#GND"
(at 0 -2.54 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Value" "0"
(at 0 -1.778 0)
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Footprint" ""
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Datasheet" "~"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Description" "0V reference potential for simulation"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "ki_keywords" "simulation"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(symbol "0_0_1"
(polyline
(pts
(xy -1.27 0) (xy 0 -1.27) (xy 1.27 0) (xy -1.27 0)
)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
)
(symbol "0_1_1"
(pin power_in line
(at 0 0 0)
(length 0) hide
(name "0"
(effects
(font
(size 1.016 1.016)
)
)
)
(number "1"
(effects
(font
(size 1.016 1.016)
)
)
)
)
)
(embedded_fonts no)
)
(symbol "Simulation_SPICE:D"
(pin_numbers hide)
(pin_numbers
(hide yes)
)
(pin_names
(offset 1.016) hide)
(offset 1.016)
(hide yes)
)
(exclude_from_sim no)
(in_bom yes)
(on_board yes)
@ -614,10 +533,10 @@
)
(polyline
(pts
(xy 1.27 0) (xy -1.27 0)
(xy 1.27 1.27) (xy 1.27 -1.27) (xy -1.27 0) (xy 1.27 1.27)
)
(stroke
(width 0)
(width 0.254)
(type default)
)
(fill
@ -626,10 +545,10 @@
)
(polyline
(pts
(xy 1.27 1.27) (xy 1.27 -1.27) (xy -1.27 0) (xy 1.27 1.27)
(xy 1.27 0) (xy -1.27 0)
)
(stroke
(width 0.254)
(width 0)
(type default)
)
(fill
@ -675,9 +594,12 @@
)
)
)
(embedded_fonts no)
)
(symbol "Simulation_SPICE:VDC"
(pin_numbers hide)
(pin_numbers
(hide yes)
)
(pin_names
(offset 0.0254)
)
@ -875,9 +797,12 @@
)
)
)
(embedded_fonts no)
)
(symbol "Simulation_SPICE:VPULSE"
(pin_numbers hide)
(pin_numbers
(hide yes)
)
(pin_names
(offset 0.0254)
)
@ -1049,9 +974,12 @@
)
)
)
(embedded_fonts no)
)
(symbol "Transistor_FET:IRF540N"
(pin_names hide)
(pin_names
(hide yes)
)
(exclude_from_sim no)
(in_bom yes)
(on_board yes)
@ -1122,18 +1050,6 @@
)
)
(symbol "IRF540N_0_1"
(polyline
(pts
(xy 0.254 0) (xy -2.54 0)
)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
(polyline
(pts
(xy 0.254 1.905) (xy 0.254 -1.905)
@ -1148,7 +1064,19 @@
)
(polyline
(pts
(xy 0.762 -1.27) (xy 0.762 -2.286)
(xy 0.254 0) (xy -2.54 0)
)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
(polyline
(pts
(xy 0.762 2.286) (xy 0.762 1.27)
)
(stroke
(width 0.254)
@ -1172,7 +1100,7 @@
)
(polyline
(pts
(xy 0.762 2.286) (xy 0.762 1.27)
(xy 0.762 -1.27) (xy 0.762 -2.286)
)
(stroke
(width 0.254)
@ -1182,30 +1110,6 @@
(type none)
)
)
(polyline
(pts
(xy 2.54 2.54) (xy 2.54 1.778)
)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
(polyline
(pts
(xy 2.54 -2.54) (xy 2.54 0) (xy 0.762 0)
)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
(polyline
(pts
(xy 0.762 -1.778) (xy 3.302 -1.778) (xy 3.302 1.778) (xy 0.762 1.778)
@ -1230,6 +1134,63 @@
(type outline)
)
)
(circle
(center 1.651 0)
(radius 2.794)
(stroke
(width 0.254)
(type default)
)
(fill
(type none)
)
)
(polyline
(pts
(xy 2.54 2.54) (xy 2.54 1.778)
)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
(circle
(center 2.54 1.778)
(radius 0.254)
(stroke
(width 0)
(type default)
)
(fill
(type outline)
)
)
(circle
(center 2.54 -1.778)
(radius 0.254)
(stroke
(width 0)
(type default)
)
(fill
(type outline)
)
)
(polyline
(pts
(xy 2.54 -2.54) (xy 2.54 0) (xy 0.762 0)
)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
(polyline
(pts
(xy 2.794 0.508) (xy 2.921 0.381) (xy 3.683 0.381) (xy 3.81 0.254)
@ -1254,39 +1215,6 @@
(type none)
)
)
(circle
(center 1.651 0)
(radius 2.794)
(stroke
(width 0.254)
(type default)
)
(fill
(type none)
)
)
(circle
(center 2.54 -1.778)
(radius 0.254)
(stroke
(width 0)
(type default)
)
(fill
(type outline)
)
)
(circle
(center 2.54 1.778)
(radius 0.254)
(stroke
(width 0)
(type default)
)
(fill
(type outline)
)
)
)
(symbol "IRF540N_1_1"
(pin input line
@ -1344,7 +1272,119 @@
)
)
)
(embedded_fonts no)
)
(symbol "power:GND"
(power)
(pin_numbers
(hide yes)
)
(pin_names
(offset 0)
(hide yes)
)
(exclude_from_sim no)
(in_bom yes)
(on_board yes)
(property "Reference" "#PWR"
(at 0 -6.35 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Value" "GND"
(at 0 -3.81 0)
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Footprint" ""
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Datasheet" ""
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Description" "Power symbol creates a global label with name \"GND\" , ground"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "ki_keywords" "global power"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(symbol "GND_0_1"
(polyline
(pts
(xy 0 0) (xy 0 -1.27) (xy 1.27 -1.27) (xy 0 -2.54) (xy -1.27 -1.27) (xy 0 -1.27)
)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
)
(symbol "GND_1_1"
(pin power_in line
(at 0 0 270)
(length 0)
(name "~"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "1"
(effects
(font
(size 1.27 1.27)
)
)
)
)
)
(embedded_fonts no)
)
)
(text "Simple Buck Converter"
(exclude_from_sim no)
(at 116.84 45.085 0)
(effects
(font
(size 1.27 1.27)
)
)
(uuid "957c002b-04b9-4c17-a6a5-29d39a5d31f7")
)
(junction
(at 119.38 55.88)
@ -1518,19 +1558,8 @@
)
(uuid "fb2633a5-dfac-4ca4-949e-3118fc6201e5")
)
(text "Simple Buck Converter"
(exclude_from_sim no)
(at 116.84 45.085 0)
(effects
(font
(size 1.27 1.27)
)
)
(uuid "957c002b-04b9-4c17-a6a5-29d39a5d31f7")
)
(label "VIN"
(at 67.31 55.88 0)
(fields_autoplaced yes)
(effects
(font
(size 1.27 1.27)
@ -1541,7 +1570,6 @@
)
(label "gg"
(at 91.44 64.77 0)
(fields_autoplaced yes)
(effects
(font
(size 1.27 1.27)
@ -1552,7 +1580,6 @@
)
(label "PWM_OUT"
(at 104.14 55.88 0)
(fields_autoplaced yes)
(effects
(font
(size 1.27 1.27)
@ -1563,7 +1590,6 @@
)
(label "PWM_IN"
(at 91.44 76.2 0)
(fields_autoplaced yes)
(effects
(font
(size 1.27 1.27)
@ -1574,7 +1600,6 @@
)
(label "VOUT"
(at 148.59 55.88 0)
(fields_autoplaced yes)
(effects
(font
(size 1.27 1.27)
@ -1809,7 +1834,7 @@
)
)
(symbol
(lib_id "Simulation_SPICE:0")
(lib_id "power:GND")
(at 119.38 73.66 0)
(unit 1)
(exclude_from_sim no)
@ -1818,8 +1843,8 @@
(dnp no)
(fields_autoplaced yes)
(uuid "128e36fa-5058-415a-99c2-286d9c8cfc6e")
(property "Reference" "#GND0105"
(at 119.38 76.2 0)
(property "Reference" "#PWR105"
(at 119.38 80.01 0)
(effects
(font
(size 1.27 1.27)
@ -1827,8 +1852,8 @@
(hide yes)
)
)
(property "Value" "0"
(at 119.38 72.39 0)
(property "Value" "GND"
(at 119.38 78.74 0)
(effects
(font
(size 1.27 1.27)
@ -1844,7 +1869,7 @@
(hide yes)
)
)
(property "Datasheet" "~"
(property "Datasheet" ""
(at 119.38 73.66 0)
(effects
(font
@ -1853,7 +1878,7 @@
(hide yes)
)
)
(property "Description" ""
(property "Description" "Power symbol creates a global label with name \"GND\" , ground"
(at 119.38 73.66 0)
(effects
(font
@ -1868,14 +1893,14 @@
(instances
(project "buck_conv"
(path "/06b3cdeb-0ab8-40f0-ad85-5d97ad7ae2be"
(reference "#GND0105")
(reference "#PWR105")
(unit 1)
)
)
)
)
(symbol
(lib_id "Simulation_SPICE:0")
(lib_id "power:GND")
(at 91.44 88.9 0)
(unit 1)
(exclude_from_sim no)
@ -1884,8 +1909,8 @@
(dnp no)
(fields_autoplaced yes)
(uuid "169e82f8-9522-4514-bb1c-627606ac169a")
(property "Reference" "#GND0101"
(at 91.44 91.44 0)
(property "Reference" "#PWR101"
(at 91.44 95.25 0)
(effects
(font
(size 1.27 1.27)
@ -1893,8 +1918,8 @@
(hide yes)
)
)
(property "Value" "0"
(at 91.44 87.63 0)
(property "Value" "GND"
(at 91.44 93.98 0)
(effects
(font
(size 1.27 1.27)
@ -1910,7 +1935,7 @@
(hide yes)
)
)
(property "Datasheet" "~"
(property "Datasheet" ""
(at 91.44 88.9 0)
(effects
(font
@ -1919,7 +1944,7 @@
(hide yes)
)
)
(property "Description" ""
(property "Description" "Power symbol creates a global label with name \"GND\" , ground"
(at 91.44 88.9 0)
(effects
(font
@ -1934,14 +1959,14 @@
(instances
(project "buck_conv"
(path "/06b3cdeb-0ab8-40f0-ad85-5d97ad7ae2be"
(reference "#GND0101")
(reference "#PWR101")
(unit 1)
)
)
)
)
(symbol
(lib_id "Simulation_SPICE:0")
(lib_id "power:GND")
(at 64.77 81.28 0)
(unit 1)
(exclude_from_sim no)
@ -1950,8 +1975,8 @@
(dnp no)
(fields_autoplaced yes)
(uuid "17391005-46ee-4a48-9324-7535f1efcdfb")
(property "Reference" "#GND0104"
(at 64.77 83.82 0)
(property "Reference" "#PWR104"
(at 64.77 87.63 0)
(effects
(font
(size 1.27 1.27)
@ -1959,8 +1984,8 @@
(hide yes)
)
)
(property "Value" "0"
(at 64.77 80.01 0)
(property "Value" "GND"
(at 64.77 86.36 0)
(effects
(font
(size 1.27 1.27)
@ -1976,7 +2001,7 @@
(hide yes)
)
)
(property "Datasheet" "~"
(property "Datasheet" ""
(at 64.77 81.28 0)
(effects
(font
@ -1985,7 +2010,7 @@
(hide yes)
)
)
(property "Description" ""
(property "Description" "Power symbol creates a global label with name \"GND\" , ground"
(at 64.77 81.28 0)
(effects
(font
@ -2000,7 +2025,7 @@
(instances
(project "buck_conv"
(path "/06b3cdeb-0ab8-40f0-ad85-5d97ad7ae2be"
(reference "#GND0104")
(reference "#PWR104")
(unit 1)
)
)
@ -2105,7 +2130,7 @@
)
)
(symbol
(lib_id "Simulation_SPICE:0")
(lib_id "power:GND")
(at 148.59 73.66 0)
(unit 1)
(exclude_from_sim no)
@ -2114,8 +2139,8 @@
(dnp no)
(fields_autoplaced yes)
(uuid "2a516606-7298-4159-86c1-136e036626d9")
(property "Reference" "#GND0102"
(at 148.59 76.2 0)
(property "Reference" "#PWR102"
(at 148.59 80.01 0)
(effects
(font
(size 1.27 1.27)
@ -2123,8 +2148,8 @@
(hide yes)
)
)
(property "Value" "0"
(at 148.59 72.39 0)
(property "Value" "GND"
(at 148.59 78.74 0)
(effects
(font
(size 1.27 1.27)
@ -2140,7 +2165,7 @@
(hide yes)
)
)
(property "Datasheet" "~"
(property "Datasheet" ""
(at 148.59 73.66 0)
(effects
(font
@ -2149,7 +2174,7 @@
(hide yes)
)
)
(property "Description" ""
(property "Description" "Power symbol creates a global label with name \"GND\" , ground"
(at 148.59 73.66 0)
(effects
(font
@ -2164,7 +2189,7 @@
(instances
(project "buck_conv"
(path "/06b3cdeb-0ab8-40f0-ad85-5d97ad7ae2be"
(reference "#GND0102")
(reference "#PWR102")
(unit 1)
)
)
@ -2468,7 +2493,7 @@
)
)
(symbol
(lib_id "Simulation_SPICE:0")
(lib_id "power:GND")
(at 167.64 73.66 0)
(unit 1)
(exclude_from_sim no)
@ -2477,8 +2502,8 @@
(dnp no)
(fields_autoplaced yes)
(uuid "7eba3dec-2ace-4a86-b96f-7aa202789590")
(property "Reference" "#GND0103"
(at 167.64 76.2 0)
(property "Reference" "#PWR103"
(at 167.64 80.01 0)
(effects
(font
(size 1.27 1.27)
@ -2486,8 +2511,8 @@
(hide yes)
)
)
(property "Value" "0"
(at 167.64 72.39 0)
(property "Value" "GND"
(at 167.64 78.74 0)
(effects
(font
(size 1.27 1.27)
@ -2503,7 +2528,7 @@
(hide yes)
)
)
(property "Datasheet" "~"
(property "Datasheet" ""
(at 167.64 73.66 0)
(effects
(font
@ -2512,7 +2537,7 @@
(hide yes)
)
)
(property "Description" ""
(property "Description" "Power symbol creates a global label with name \"GND\" , ground"
(at 167.64 73.66 0)
(effects
(font
@ -2527,7 +2552,7 @@
(instances
(project "buck_conv"
(path "/06b3cdeb-0ab8-40f0-ad85-5d97ad7ae2be"
(reference "#GND0103")
(reference "#PWR103")
(unit 1)
)
)
@ -2751,4 +2776,5 @@
(page "1")
)
)
)
(embedded_fonts no)
)

View File

@ -8,6 +8,7 @@
"mfg": "",
"mpn": ""
},
"layer_pairs": [],
"layer_presets": [],
"viewports": []
},
@ -203,10 +204,15 @@
"duplicate_sheet_names": "error",
"endpoint_off_grid": "warning",
"extra_units": "error",
"footprint_filter": "ignore",
"footprint_link_issues": "warning",
"four_way_junction": "ignore",
"global_label_dangling": "warning",
"hier_label_mismatch": "error",
"label_dangling": "error",
"label_multiple_wires": "warning",
"lib_symbol_issues": "warning",
"lib_symbol_mismatch": "warning",
"missing_bidi_pin": "warning",
"missing_input_pin": "warning",
"missing_power_pin": "error",
@ -219,9 +225,14 @@
"pin_not_driven": "error",
"pin_to_pin": "warning",
"power_pin_not_driven": "error",
"same_local_global_label": "warning",
"similar_label_and_power": "warning",
"similar_labels": "warning",
"similar_power": "warning",
"simulation_model_issue": "ignore",
"single_global_label": "ignore",
"unannotated": "error",
"unconnected_wire_endpoint": "warning",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
@ -233,7 +244,7 @@
},
"meta": {
"filename": "hv_converter.kicad_pro",
"version": 1
"version": 3
},
"net_settings": {
"classes": [
@ -248,6 +259,7 @@
"microvia_drill": 0.1,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"priority": 2147483647,
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.25,
"via_diameter": 0.8,
@ -256,7 +268,7 @@
}
],
"meta": {
"version": 3
"version": 4
},
"net_colors": null,
"netclass_assignments": null,
@ -278,6 +290,7 @@
},
"schematic": {
"annotate_start_num": 0,
"bom_export_filename": "${PROJECTNAME}.csv",
"bom_fmt_presets": [],
"bom_fmt_settings": {
"field_delimiter": ",",
@ -331,6 +344,7 @@
],
"filter_string": "",
"group_symbols": true,
"include_excluded_from_bom": false,
"name": "Grouped By Value",
"sort_asc": true,
"sort_field": "Reference"
@ -374,6 +388,7 @@
},
"page_layout_descr_file": "",
"plot_directory": "",
"space_save_all_events": true,
"spice_adjust_passive_values": false,
"spice_current_sheet_as_root": false,
"spice_external_command": "c:\\Spice64\\bin\\ngspice.exe \"%I\"",

File diff suppressed because it is too large Load Diff

View File

@ -1,577 +0,0 @@
(kicad_symbol_lib (version 20220331) (generator kicad_symbol_editor)
(symbol "+12V" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes)
(property "Reference" "#PWR" (id 0) (at 0 -3.81 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Value" "+12V" (id 1) (at 0 3.556 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (id 2) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_keywords" "Power Flag Symbol" (id 4) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "power-flag symbol" (id 5) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "+12V_0_1"
(polyline
(pts
(xy -0.762 1.27)
(xy 0 2.54)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 0 0)
(xy 0 2.54)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 0 2.54)
(xy 0.762 1.27)
)
(stroke (width 0) (type default))
(fill (type none))
)
)
(symbol "+12V_1_1"
(pin power_in line (at 0 0 90) (length 0) hide
(name "+12V" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
)
)
(symbol "0" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes)
(property "Reference" "#GND" (id 0) (at 0 -2.54 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Value" "0" (id 1) (at 0 -1.778 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (id 2) (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
(property "Datasheet" "" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
(symbol "0_0_1"
(polyline
(pts
(xy -1.27 0)
(xy 0 -1.27)
(xy 1.27 0)
(xy -1.27 0)
)
(stroke (width 0) (type default))
(fill (type none))
)
)
(symbol "0_1_1"
(pin power_in line (at 0 0 0) (length 0) hide
(name "0" (effects (font (size 1.016 1.016))))
(number "1" (effects (font (size 1.016 1.016))))
)
)
)
(symbol "CAP" (pin_names (offset 0.254)) (in_bom yes) (on_board yes)
(property "Reference" "C" (id 0) (at 2.54 3.81 90)
(effects (font (size 1.27 1.27)))
)
(property "Value" "CAP" (id 1) (at 2.54 -3.81 90)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (id 2) (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
(property "Datasheet" "" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
(symbol "CAP_0_1"
(polyline
(pts
(xy -3.81 -1.27)
(xy 3.81 -1.27)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy -3.81 1.27)
(xy 3.81 1.27)
)
(stroke (width 0) (type default))
(fill (type none))
)
)
(symbol "CAP_1_1"
(pin passive line (at 0 6.35 270) (length 5.08)
(name "~" (effects (font (size 1.016 1.016))))
(number "1" (effects (font (size 1.016 1.016))))
)
(pin passive line (at 0 -6.35 90) (length 5.08)
(name "~" (effects (font (size 1.016 1.016))))
(number "2" (effects (font (size 1.016 1.016))))
)
)
)
(symbol "C" (extends "CAP")
(property "Reference" "C" (id 0) (at 2.54 3.81 90)
(effects (font (size 1.27 1.27)))
)
(property "Value" "C" (id 1) (at 2.54 -3.81 90)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (id 2) (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
(property "Datasheet" "" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
)
(symbol "DIODE" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes)
(property "Reference" "D" (id 0) (at 0 3.81 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "DIODE" (id 1) (at 0 -4.445 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (id 2) (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
(property "Datasheet" "" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
(symbol "DIODE_0_1"
(polyline
(pts
(xy -1.905 2.54)
(xy -1.905 -2.54)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 1.905 2.54)
(xy 1.905 -2.54)
(xy -1.905 0)
)
(stroke (width 0) (type default))
(fill (type outline))
)
)
(symbol "DIODE_1_1"
(pin input line (at -5.08 0 0) (length 3.81)
(name "K" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin input line (at 5.08 0 180) (length 3.81)
(name "A" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
)
)
(symbol "GND" (power) (pin_names (offset 0)) (in_bom yes) (on_board yes)
(property "Reference" "#PWR" (id 0) (at 0 -5.08 0)
(effects (font (size 0.762 0.762)) hide)
)
(property "Value" "GND" (id 1) (at 0 -3.81 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (id 2) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_keywords" "Power Flag Symbol" (id 4) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "GROUND power-flag symbol" (id 5) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "GND_0_1"
(polyline
(pts
(xy 0 0)
(xy 0 -1.27)
(xy 1.27 -1.27)
(xy 0 -2.54)
(xy -1.27 -1.27)
(xy 0 -1.27)
)
(stroke (width 0) (type default))
(fill (type none))
)
)
(symbol "GND_1_1"
(pin power_in line (at 0 0 270) (length 0) hide
(name "GND" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
)
)
(symbol "INDUCTOR" (pin_numbers hide) (pin_names (offset 0)) (in_bom yes) (on_board yes)
(property "Reference" "L" (id 0) (at 0 2.54 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "INDUCTOR" (id 1) (at 0 -1.27 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (id 2) (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
(property "Datasheet" "" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
(symbol "INDUCTOR_0_1"
(arc (start -2.54 0) (mid -3.81 1.2645) (end -5.08 0)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 0 0) (mid -1.27 1.2645) (end -2.54 0)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 2.54 0) (mid 1.27 1.2645) (end 0 0)
(stroke (width 0) (type default))
(fill (type none))
)
(arc (start 5.08 0) (mid 3.81 1.2645) (end 2.54 0)
(stroke (width 0) (type default))
(fill (type none))
)
)
(symbol "INDUCTOR_1_1"
(pin input line (at -6.35 0 0) (length 1.27)
(name "1" (effects (font (size 0.762 0.762))))
(number "1" (effects (font (size 0.762 0.762))))
)
(pin input line (at 6.35 0 180) (length 1.27)
(name "2" (effects (font (size 0.762 0.762))))
(number "2" (effects (font (size 0.762 0.762))))
)
)
)
(symbol "ISOURCE" (pin_names (offset 1.016)) (in_bom yes) (on_board yes)
(property "Reference" "I" (id 0) (at 0 -4.572 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "ISOURCE" (id 1) (at 0.254 4.318 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (id 2) (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
(property "Datasheet" "" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
(symbol "ISOURCE_0_1"
(circle (center 0 -3.81) (radius 6.35)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy -8.89 -5.08)
(xy -8.89 5.08)
)
(stroke (width 0) (type default))
(fill (type outline))
)
(polyline
(pts
(xy -10.16 5.08)
(xy -8.89 7.62)
(xy -7.62 5.08)
)
(stroke (width 0) (type default))
(fill (type outline))
)
(circle (center 0 3.81) (radius 6.35)
(stroke (width 0) (type default))
(fill (type none))
)
(text "I" (at -8.128 -0.254 0)
(effects (font (size 2.54 2.54)))
)
)
(symbol "ISOURCE_1_1"
(pin input line (at 0 17.78 270) (length 7.62)
(name "E1" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin input line (at 0 -17.78 90) (length 7.62)
(name "E2" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
)
)
(symbol "PWR_FLAG" (power) (pin_numbers hide) (pin_names (offset 0) hide) (in_bom yes) (on_board yes)
(property "Reference" "#FLG" (id 0) (at 0 1.905 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Value" "PWR_FLAG" (id 1) (at 0 3.81 0)
(effects (font (size 1.016 1.016)))
)
(property "Footprint" "" (id 2) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "Datasheet" "" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_keywords" "Power Flag Symbol" (id 4) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "general power-flag symbol" (id 5) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "PWR_FLAG_0_0"
(pin power_out line (at 0 0 90) (length 0)
(name "pwr" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
)
(symbol "PWR_FLAG_0_1"
(polyline
(pts
(xy 0 0)
(xy 0 1.27)
(xy -1.016 1.905)
(xy 0 2.54)
(xy 1.016 1.905)
(xy 0 1.27)
)
(stroke (width 0) (type default))
(fill (type none))
)
)
)
(symbol "QNPN" (pin_names (offset 0)) (in_bom yes) (on_board yes)
(property "Reference" "Q" (id 0) (at -2.54 7.62 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "QNPN" (id 1) (at -2.54 5.08 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (id 2) (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
(property "Datasheet" "" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
(symbol "QNPN_0_0"
(polyline
(pts
(xy 0 0)
(xy 3.81 -3.81)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 3.81 -3.81)
(xy 3.81 -1.27)
(xy 1.27 -3.81)
(xy 3.81 -3.81)
)
(stroke (width 0) (type default))
(fill (type outline))
)
)
(symbol "QNPN_0_1"
(polyline
(pts
(xy 0 -3.81)
(xy 0 3.81)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 0 0)
(xy 3.81 3.81)
)
(stroke (width 0) (type default))
(fill (type none))
)
)
(symbol "QNPN_1_1"
(pin passive line (at 3.81 8.89 270) (length 5.08)
(name "C" (effects (font (size 1.016 1.016))))
(number "1" (effects (font (size 1.016 1.016))))
)
(pin input line (at -7.62 0 0) (length 7.62)
(name "B" (effects (font (size 1.016 1.016))))
(number "2" (effects (font (size 1.016 1.016))))
)
(pin passive line (at 3.81 -8.89 90) (length 5.08)
(name "E" (effects (font (size 1.016 1.016))))
(number "3" (effects (font (size 1.016 1.016))))
)
)
)
(symbol "QPNP" (pin_names (offset 0)) (in_bom yes) (on_board yes)
(property "Reference" "Q" (id 0) (at -2.54 7.62 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "QPNP" (id 1) (at -2.54 5.08 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (id 2) (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
(property "Datasheet" "" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
(symbol "QPNP_0_1"
(polyline
(pts
(xy 0 -3.81)
(xy 0 3.81)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 0 0)
(xy 3.81 -3.81)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 0 0)
(xy 3.81 3.81)
)
(stroke (width 0) (type default))
(fill (type none))
)
(polyline
(pts
(xy 3.048 -4.572)
(xy 4.572 -3.048)
(xy 2.159 -2.159)
(xy 3.048 -4.572)
)
(stroke (width 0) (type default))
(fill (type outline))
)
)
(symbol "QPNP_1_1"
(pin open_collector line (at 3.81 8.89 270) (length 5.08)
(name "C" (effects (font (size 1.016 1.016))))
(number "1" (effects (font (size 1.016 1.016))))
)
(pin input line (at -7.62 0 0) (length 7.62)
(name "B" (effects (font (size 1.016 1.016))))
(number "2" (effects (font (size 1.016 1.016))))
)
(pin open_emitter line (at 3.81 -8.89 90) (length 5.08)
(name "E" (effects (font (size 1.016 1.016))))
(number "3" (effects (font (size 1.016 1.016))))
)
)
)
(symbol "R" (pin_names (offset 0) hide) (in_bom yes) (on_board yes)
(property "Reference" "R" (id 0) (at 2.032 0 90)
(effects (font (size 1.27 1.27)))
)
(property "Value" "R" (id 1) (at 0 0 90)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (id 2) (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
(property "Datasheet" "" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
(property "ki_keywords" "R DEV" (id 4) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(property "ki_description" "Resistance" (id 5) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
)
(symbol "R_0_1"
(rectangle (start -1.016 3.81) (end 1.016 -3.81)
(stroke (width 0) (type default))
(fill (type none))
)
)
(symbol "R_1_1"
(pin passive line (at 0 6.35 270) (length 2.54)
(name "1" (effects (font (size 0.508 0.508))))
(number "1" (effects (font (size 0.508 0.508))))
)
(pin passive line (at 0 -6.35 90) (length 2.54)
(name "2" (effects (font (size 0.508 0.508))))
(number "2" (effects (font (size 0.508 0.508))))
)
)
)
(symbol "VSOURCE" (pin_names (offset 1.016)) (in_bom yes) (on_board yes)
(property "Reference" "V" (id 0) (at 0 -2.54 0)
(effects (font (size 1.27 1.27)))
)
(property "Value" "VSOURCE" (id 1) (at 0 2.54 0)
(effects (font (size 1.27 1.27)))
)
(property "Footprint" "" (id 2) (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
(property "Datasheet" "" (id 3) (at 0 0 0)
(effects (font (size 1.27 1.27)))
)
(symbol "VSOURCE_0_1"
(polyline
(pts
(xy -6.35 -6.35)
(xy -6.35 3.81)
)
(stroke (width 0) (type default))
(fill (type outline))
)
(polyline
(pts
(xy -7.62 3.81)
(xy -6.35 6.35)
(xy -5.08 3.81)
)
(stroke (width 0) (type default))
(fill (type outline))
)
(circle (center 0 0) (radius 10.16)
(stroke (width 0) (type default))
(fill (type none))
)
(text "V" (at -8.128 -0.254 0)
(effects (font (size 2.54 2.54)))
)
)
(symbol "VSOURCE_1_1"
(pin input line (at 0 17.78 270) (length 7.62)
(name "E1" (effects (font (size 1.27 1.27))))
(number "1" (effects (font (size 1.27 1.27))))
)
(pin input line (at 0 -17.78 90) (length 7.62)
(name "E2" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
)
)
)
)

View File

@ -1,3 +0,0 @@
(sym_lib_table
(lib (name "schematic_libspice")(type "KiCad")(uri "${KIPRJMOD}/schematic_libspice.kicad_sym")(options "")(descr ""))
)

View File

@ -117,6 +117,14 @@
"zones_allow_external_fillets": false,
"zones_use_no_outline": true
},
"ipc2581": {
"dist": "",
"distpn": "",
"internal_id": "",
"mfg": "",
"mpn": ""
},
"layer_pairs": [],
"layer_presets": [],
"viewports": []
},
@ -309,11 +317,21 @@
"different_unit_net": "error",
"duplicate_reference": "error",
"duplicate_sheet_names": "error",
"endpoint_off_grid": "warning",
"extra_units": "error",
"footprint_filter": "ignore",
"footprint_link_issues": "warning",
"four_way_junction": "ignore",
"global_label_dangling": "warning",
"hier_label_mismatch": "error",
"label_dangling": "error",
"label_multiple_wires": "warning",
"lib_symbol_issues": "warning",
"lib_symbol_mismatch": "warning",
"missing_bidi_pin": "warning",
"missing_input_pin": "warning",
"missing_power_pin": "error",
"missing_unit": "warning",
"multiple_net_names": "warning",
"net_not_bus_member": "warning",
"no_connect_connected": "warning",
@ -322,8 +340,14 @@
"pin_not_driven": "error",
"pin_to_pin": "warning",
"power_pin_not_driven": "error",
"same_local_global_label": "warning",
"similar_label_and_power": "warning",
"similar_labels": "warning",
"similar_power": "warning",
"simulation_model_issue": "ignore",
"single_global_label": "ignore",
"unannotated": "error",
"unconnected_wire_endpoint": "warning",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
@ -335,12 +359,12 @@
},
"meta": {
"filename": "sallen_key.kicad_pro",
"version": 1
"version": 3
},
"net_settings": {
"classes": [
{
"bus_width": 12.0,
"bus_width": 12,
"clearance": 0.2,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
@ -350,15 +374,16 @@
"microvia_drill": 0.1,
"name": "Default",
"pcb_color": "rgba(0, 0, 0, 0.000)",
"priority": 2147483647,
"schematic_color": "rgba(0, 0, 0, 0.000)",
"track_width": 0.25,
"via_diameter": 0.8,
"via_drill": 0.4,
"wire_width": 6.0
"wire_width": 6
}
],
"meta": {
"version": 3
"version": 4
},
"net_colors": null,
"netclass_assignments": null,
@ -369,14 +394,89 @@
"gencad": "",
"idf": "",
"netlist": "",
"plot": "",
"pos_files": "",
"specctra_dsn": "",
"step": "",
"svg": "",
"vrml": ""
},
"page_layout_descr_file": ""
},
"schematic": {
"annotate_start_num": 0,
"bom_export_filename": "${PROJECTNAME}.csv",
"bom_fmt_presets": [],
"bom_fmt_settings": {
"field_delimiter": ",",
"keep_line_breaks": false,
"keep_tabs": false,
"name": "CSV",
"ref_delimiter": ",",
"ref_range_delimiter": "",
"string_delimiter": "\""
},
"bom_presets": [],
"bom_settings": {
"exclude_dnp": false,
"fields_ordered": [
{
"group_by": false,
"label": "Reference",
"name": "Reference",
"show": true
},
{
"group_by": false,
"label": "Qty",
"name": "${QUANTITY}",
"show": true
},
{
"group_by": true,
"label": "Value",
"name": "Value",
"show": true
},
{
"group_by": true,
"label": "DNP",
"name": "${DNP}",
"show": true
},
{
"group_by": true,
"label": "Exclude from BOM",
"name": "${EXCLUDE_FROM_BOM}",
"show": true
},
{
"group_by": true,
"label": "Exclude from Board",
"name": "${EXCLUDE_FROM_BOARD}",
"show": true
},
{
"group_by": true,
"label": "Footprint",
"name": "Footprint",
"show": true
},
{
"group_by": false,
"label": "Datasheet",
"name": "Datasheet",
"show": true
}
],
"filter_string": "",
"group_symbols": true,
"include_excluded_from_bom": true,
"name": "Default Editing",
"sort_asc": true,
"sort_field": "Reference"
},
"connection_grid_size": 50.0,
"drawing": {
"dashed_lines_dash_length_ratio": 12.0,
"dashed_lines_gap_length_ratio": 3.0,
@ -393,6 +493,11 @@
"intersheets_ref_suffix": "",
"junction_size_choice": 3,
"label_size_ratio": 0.3,
"operating_point_overlay_i_precision": 3,
"operating_point_overlay_i_range": "~A",
"operating_point_overlay_v_precision": 3,
"operating_point_overlay_v_range": "~V",
"overbar_offset_ratio": 1.23,
"pin_symbol_size": 25.0,
"text_offset_ratio": 0.3
},
@ -408,14 +513,18 @@
"meta": {
"version": 0
},
"model_mode": 0,
"model_mode": 4,
"workbook_filename": ""
},
"page_layout_descr_file": "",
"plot_directory": "",
"space_save_all_events": true,
"spice_adjust_passive_values": false,
"spice_current_sheet_as_root": false,
"spice_external_command": "spice \"%I\"",
"spice_model_current_sheet_as_root": true,
"spice_save_all_currents": false,
"spice_save_all_dissipations": false,
"spice_save_all_voltages": false,
"subpart_first_id": 65,
"subpart_id_separator": 0
@ -423,7 +532,7 @@
"sheets": [
[
"403a5eac-c035-4b08-8ba1-e036b0ed18fb",
""
"Root"
]
],
"text_variables": {}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,4 @@
(sym_lib_table
(version 7)
(lib (name "sallen_key_schlib")(type "KiCad")(uri "${KIPRJMOD}/sallen_key_schlib.kicad_sym")(options "")(descr ""))
)

View File

@ -227,16 +227,16 @@ DIALOG_EXPORT_NETLIST::DIALOG_EXPORT_NETLIST( SCH_EDIT_FRAME* aEditFrame, wxWind
page->m_LeftBoxSizer->Add( label, 0, wxBOTTOM, 10 );
m_PanelNetType[PANELALLEGRO] = page;
page = new EXPORT_NETLIST_PAGE( m_NoteBook, wxT( "PADS" ), NET_TYPE_PADS, false );
label = new wxStaticText( page, wxID_ANY, _( "Export netlist in PADS format" ) );
page->m_LeftBoxSizer->Add( label, 0, wxBOTTOM, 10 );
m_PanelNetType[PANELPADS] = page;
page = new EXPORT_NETLIST_PAGE( m_NoteBook, wxT( "CadStar" ), NET_TYPE_CADSTAR, false );
label = new wxStaticText( page, wxID_ANY, _( "Export netlist in CadStar format" ) );
page->m_LeftBoxSizer->Add( label, 0, wxBOTTOM, 10 );
m_PanelNetType[PANELCADSTAR] = page;
page = new EXPORT_NETLIST_PAGE( m_NoteBook, wxT( "PADS" ), NET_TYPE_PADS, false );
label = new wxStaticText( page, wxID_ANY, _( "Export netlist in PADS format" ) );
page->m_LeftBoxSizer->Add( label, 0, wxBOTTOM, 10 );
m_PanelNetType[PANELPADS] = page;
InstallPageSpice();
InstallPageSpiceModel();

View File

@ -1697,16 +1697,35 @@ int LIB_SYMBOL::Compare( const LIB_SYMBOL& aRhs, int aCompareFlags, REPORTER* aR
if( !aReporter )
return retv;
}
else if( int tmp = aField->SCH_ITEM::compare( *bField, aCompareFlags ) )
else
{
retv = tmp;
REPORT( wxString::Format( _( "Field '%s' differs: %s; %s." ),
aField->GetName( false ),
ITEM_DESC( aField ),
ITEM_DESC( bField ) ) );
int tmp = 0;
if( !aReporter )
return retv;
// For EQUALITY comparison, we need to compare field content directly
// since SCH_ITEM::compare() returns 0 for EQUALITY flag
if( aCompareFlags & SCH_ITEM::COMPARE_FLAGS::EQUALITY )
{
// Compare field text content
tmp = aField->GetText().compare( bField->GetText() );
}
if( tmp == 0 )
{
// Fall back to base class comparison for other properties
tmp = aField->SCH_ITEM::compare( *bField, aCompareFlags );
}
if( tmp != 0 )
{
retv = tmp;
REPORT( wxString::Format( _( "Field '%s' differs: %s; %s." ),
aField->GetName( false ),
ITEM_DESC( aField ),
ITEM_DESC( bField ) ) );
if( !aReporter )
return retv;
}
}
}

View File

@ -750,7 +750,9 @@ std::optional<PIN_LAYOUT_CACHE::TEXT_INFO> PIN_LAYOUT_CACHE::GetPinNameInfo( int
info->m_Thickness = m_nameThickness;
info->m_Angle = ANGLE_HORIZONTAL;
if( m_pin.GetParentSymbol()->GetPinNameOffset() > 0 )
bool nameInside = m_pin.GetParentSymbol()->GetPinNameOffset() > 0;
if( nameInside )
{
// This means name inside the pin
VECTOR2I pos = { m_pin.GetLength() + m_pin.GetParentSymbol()->GetPinNameOffset(), 0 };
@ -760,6 +762,7 @@ std::optional<PIN_LAYOUT_CACHE::TEXT_INFO> PIN_LAYOUT_CACHE::GetPinNameInfo( int
info->m_TextPosition = pos + VECTOR2I{ thickOffset, 0 };
info->m_HAlign = GR_TEXT_H_ALIGN_LEFT;
info->m_VAlign = GR_TEXT_V_ALIGN_CENTER;
transformTextForPin( *info );
}
else
{
@ -769,42 +772,44 @@ std::optional<PIN_LAYOUT_CACHE::TEXT_INFO> PIN_LAYOUT_CACHE::GetPinNameInfo( int
info->m_TextPosition = pos;
info->m_HAlign = GR_TEXT_H_ALIGN_CENTER;
info->m_VAlign = GR_TEXT_V_ALIGN_BOTTOM;
}
// New policy: names follow same positioning semantics as numbers.
const SYMBOL* parentSym = m_pin.GetParentSymbol();
if( parentSym )
{
int maxHalfHeight = 0;
for( const SCH_PIN* p : parentSym->GetPins() )
// New policy: names follow same positioning semantics as numbers except when
// specified as inside. When names are inside, they should not overlap with the
// number position.
const SYMBOL* parentSym = m_pin.GetParentSymbol();
if( parentSym )
{
wxString n = p->GetShownName();
if( n.IsEmpty() )
continue;
maxHalfHeight = std::max( maxHalfHeight, p->GetNameTextSize() / 2 );
}
int clearance = getPinTextOffset() + schIUScale.MilsToIU( PIN_TEXT_MARGIN );
VECTOR2I pinPos = m_pin.GetPosition();
PIN_ORIENTATION orient = m_pin.PinDrawOrient( DefaultTransform );
bool verticalOrient = ( orient == PIN_ORIENTATION::PIN_UP || orient == PIN_ORIENTATION::PIN_DOWN );
int maxHalfHeight = 0;
for( const SCH_PIN* p : parentSym->GetPins() )
{
wxString n = p->GetShownName();
if( n.IsEmpty() )
continue;
maxHalfHeight = std::max( maxHalfHeight, p->GetNameTextSize() / 2 );
}
int clearance = getPinTextOffset() + schIUScale.MilsToIU( PIN_TEXT_MARGIN );
VECTOR2I pinPos = m_pin.GetPosition();
PIN_ORIENTATION orient = m_pin.PinDrawOrient( DefaultTransform );
bool verticalOrient = ( orient == PIN_ORIENTATION::PIN_UP || orient == PIN_ORIENTATION::PIN_DOWN );
if( verticalOrient )
{
// Vertical pins: name mirrors number placement (left + rotated) for visual consistency.
int boxWidth = info->m_TextSize * (int) info->m_Text.Length() * 0.6; // heuristic width
int centerX = pinPos.x - clearance - boxWidth / 2;
info->m_TextPosition = { centerX, pinPos.y };
info->m_Angle = ANGLE_VERTICAL;
info->m_HAlign = GR_TEXT_H_ALIGN_CENTER;
info->m_VAlign = GR_TEXT_V_ALIGN_CENTER;
}
else
{
// Horizontal pins: name above (negative Y) aligned to same Y offset logic as numbers.
info->m_TextPosition = { pinPos.x, pinPos.y - ( maxHalfHeight + clearance ) };
info->m_Angle = ANGLE_HORIZONTAL;
info->m_HAlign = GR_TEXT_H_ALIGN_CENTER;
info->m_VAlign = GR_TEXT_V_ALIGN_CENTER;
if( verticalOrient )
{
// Vertical pins: name mirrors number placement (left + rotated) for visual consistency.
int boxWidth = info->m_TextSize * (int) info->m_Text.Length() * 0.6; // heuristic width
int centerX = pinPos.x - clearance - boxWidth / 2;
info->m_TextPosition = { centerX, pinPos.y };
info->m_Angle = ANGLE_VERTICAL;
info->m_HAlign = GR_TEXT_H_ALIGN_CENTER;
info->m_VAlign = GR_TEXT_V_ALIGN_CENTER;
}
else
{
// Horizontal pins: name above (negative Y) aligned to same Y offset logic as numbers.
info->m_TextPosition = { pinPos.x, pinPos.y - ( maxHalfHeight + clearance ) };
info->m_Angle = ANGLE_HORIZONTAL;
info->m_HAlign = GR_TEXT_H_ALIGN_CENTER;
info->m_VAlign = GR_TEXT_V_ALIGN_CENTER;
}
}
}
return info;

View File

@ -198,8 +198,11 @@ void SCH_LINE::Show( int nestLevel, std::ostream& os ) const
std::vector<int> SCH_LINE::ViewGetLayers() const
{
return { LAYER_DANGLING, m_layer, LAYER_SELECTION_SHADOWS, LAYER_NET_COLOR_HIGHLIGHT,
LAYER_OP_VOLTAGES };
if( IsWire() || IsBus() )
return { LAYER_DANGLING, m_layer, LAYER_SELECTION_SHADOWS, LAYER_NET_COLOR_HIGHLIGHT,
LAYER_OP_VOLTAGES };
return { LAYER_DANGLING, m_layer, LAYER_SELECTION_SHADOWS, LAYER_OP_VOLTAGES };
}

View File

@ -1825,6 +1825,9 @@ void SCH_PAINTER::draw( const SCH_LINE* aLine, int aLayer )
if( !highlightNetclassColors && drawingNetColorHighlights )
return;
if( drawingNetColorHighlights && !( aLine->IsWire() || aLine->IsBus() ) )
return;
if( m_schSettings.m_OverrideItemColors && drawingNetColorHighlights )
return;

View File

@ -46,6 +46,8 @@
#include <settings/color_settings.h>
#include <settings/settings_manager.h>
#include <trace_helpers.h>
#include <validators.h>
#include <properties/property_validators.h>
#include <pgm_base.h>
#include <wx/log.h>
@ -1657,7 +1659,21 @@ static struct SCH_SHEET_DESC
propMgr.InheritsAfter( TYPE_HASH( SCH_SHEET ), TYPE_HASH( SCH_ITEM ) );
propMgr.AddProperty( new PROPERTY<SCH_SHEET, wxString>( _HKI( "Sheet Name" ),
&SCH_SHEET::SetName, &SCH_SHEET::GetName ) );
&SCH_SHEET::SetName, &SCH_SHEET::GetName ) )
.SetValidator( []( const wxAny&& aValue, EDA_ITEM* ) -> VALIDATOR_RESULT
{
wxString value;
if( !aValue.GetAs( &value ) )
return {};
wxString msg = GetFieldValidationErrorMessage( FIELD_T::SHEET_NAME, value );
if( msg.empty() )
return {};
return std::make_unique<VALIDATION_ERROR_MSG>( msg );
} );
propMgr.AddProperty( new PROPERTY<SCH_SHEET, int>( _HKI( "Border Width" ),
&SCH_SHEET::SetBorderWidth, &SCH_SHEET::GetBorderWidth,

View File

@ -256,6 +256,9 @@ namespace EDA_UNIT_UTILS
KICOMMON_API double DoubleValueFromString( const wxString& aTextValue );
KICOMMON_API bool DoubleValueFromString( const EDA_IU_SCALE& aIuScale, const wxString& aTextValue,
double& aDoubleValue );
/**
* Convert \a aTextValue in \a aUnits to internal units used by the application.
*

View File

@ -162,5 +162,11 @@ private:
FIELD_T m_fieldId;
};
/**
* Return the error message if @a aValue is invalid for @a aFieldId.
* Returns an empty string when the value is valid.
*/
wxString GetFieldValidationErrorMessage( FIELD_T aFieldId, const wxString& aValue );
#endif // #ifndef VALIDATORS_H

View File

@ -54,6 +54,56 @@ void TEMPLATE_SELECTION_PANEL::AddTemplateWidget( TEMPLATE_WIDGET* aTemplateWidg
}
// Sort the widgets alphabetically, leaving Default at the top
void TEMPLATE_SELECTION_PANEL::SortAlphabetically()
{
std::vector<TEMPLATE_WIDGET*> sortedList;
TEMPLATE_WIDGET* default_temp = nullptr;
size_t count = m_SizerChoice->GetItemCount();
if( count <= 1 )
return;
for( size_t idx = 0; idx < count; idx++ )
{
wxSizerItem* item = m_SizerChoice->GetItem( idx );
if( item && item->IsWindow() )
{
TEMPLATE_WIDGET* temp = static_cast<TEMPLATE_WIDGET*>( item->GetWindow() );
const wxString title = *temp->GetTemplate()->GetTitle();
if( default_temp == nullptr && title.CmpNoCase( "default" ) == 0 )
default_temp = temp;
else
sortedList.push_back( temp );
}
}
std::sort(
sortedList.begin(), sortedList.end(),
[]( TEMPLATE_WIDGET* aWidgetA, TEMPLATE_WIDGET* aWidgetB ) -> bool
{
const wxString* a = aWidgetA->GetTemplate()->GetTitle();
const wxString* b = aWidgetB->GetTemplate()->GetTitle();
return ( *a ).CmpNoCase( *b ) < 0;
});
m_SizerChoice->Clear( false );
if( default_temp != nullptr )
m_SizerChoice->Add( default_temp );
for (TEMPLATE_WIDGET* temp : sortedList)
{
m_SizerChoice->Add( temp );
}
Layout();
}
TEMPLATE_WIDGET::TEMPLATE_WIDGET( wxWindow* aParent, DIALOG_TEMPLATE_SELECTOR* aDialog ) :
TEMPLATE_WIDGET_BASE( aParent )
{
@ -337,6 +387,7 @@ void DIALOG_TEMPLATE_SELECTOR::buildPageContent( const wxString& aPath, int aPag
}
}
m_panels[aPage]->SortAlphabetically();
Layout();
}

View File

@ -81,6 +81,8 @@ public:
void AddTemplateWidget( TEMPLATE_WIDGET* aTemplateWidget );
void SortAlphabetically();
protected:
wxNotebookPage* m_parent;
wxString m_templatesPath; ///< the path to access to the folder

View File

@ -447,28 +447,33 @@ LIBEVAL::VALUE* PCBEXPR_VAR_REF::GetValue( LIBEVAL::CONTEXT* aCtx )
if( it->second->Name() == wxT( "Pin Type" ) )
return new PCBEXPR_PINTYPE_VALUE( str );
else
return new LIBEVAL::VALUE( str );
// If it quacks like a duck, it is a duck
double doubleVal;
if( EDA_UNIT_UTILS::UI::DoubleValueFromString( pcbIUScale, str, doubleVal ) )
return new LIBEVAL::VALUE( doubleVal );
return new LIBEVAL::VALUE( str );
}
else
else if( it->second->Name() == wxT( "Layer" )
|| it->second->Name() == wxT( "Layer Top" )
|| it->second->Name() == wxT( "Layer Bottom" ) )
{
const wxAny& any = item->Get( it->second );
PCB_LAYER_ID layer;
if( it->second->Name() == wxT( "Layer" )
|| it->second->Name() == wxT( "Layer Top" )
|| it->second->Name() == wxT( "Layer Bottom" ) )
{
if( any.GetAs<PCB_LAYER_ID>( &layer ) )
return new PCBEXPR_LAYER_VALUE( layer );
else if( any.GetAs<wxString>( &str ) )
return new PCBEXPR_LAYER_VALUE( context->GetBoard()->GetLayerID( str ) );
}
else
{
if( any.GetAs<wxString>( &str ) )
return new LIBEVAL::VALUE( str );
}
if( any.GetAs<PCB_LAYER_ID>( &layer ) )
return new PCBEXPR_LAYER_VALUE( layer );
else if( any.GetAs<wxString>( &str ) )
return new PCBEXPR_LAYER_VALUE( context->GetBoard()->GetLayerID( str ) );
}
else
{
const wxAny& any = item->Get( it->second );
if( any.GetAs<wxString>( &str ) )
return new LIBEVAL::VALUE( str );
}
return new LIBEVAL::VALUE();

View File

@ -1,7 +1,7 @@
{
"$schema": "https://schemas.kicad.org/erc.v1.json",
"coordinate_units": "mm",
"date": "2025-08-20T22:34:08+0000",
"date": "2025-09-12T21:52:37-0700",
"kicad_version": "9.99.0",
"sheets": [
{
@ -158,51 +158,6 @@
"severity": "warning",
"type": "footprint_link_issues"
},
{
"description": "Symbol 'GND' doesn't match copy in library 'power'",
"items": [
{
"description": "Symbol #PWR03 [GND]",
"pos": {
"x": 1.2192,
"y": 0.8382
},
"uuid": "5d9a8cf4-5c54-4c57-accb-dd6295272287"
}
],
"severity": "warning",
"type": "lib_symbol_mismatch"
},
{
"description": "Symbol 'GND' doesn't match copy in library 'power'",
"items": [
{
"description": "Symbol #PWR04 [GND]",
"pos": {
"x": 1.1176,
"y": 1.0033
},
"uuid": "a45b22f2-0929-43b6-b1fb-e2272cb68106"
}
],
"severity": "warning",
"type": "lib_symbol_mismatch"
},
{
"description": "Symbol 'GND' doesn't match copy in library 'power'",
"items": [
{
"description": "Symbol #PWR01 [GND]",
"pos": {
"x": 1.1938,
"y": 0.9652
},
"uuid": "19ba0538-2910-44b8-9336-edf1ff095912"
}
],
"severity": "warning",
"type": "lib_symbol_mismatch"
},
{
"description": "Footprint 'R_1206_3216Metric' not found in library 'Resistor_SMD'",
"items": [
@ -248,21 +203,6 @@
"severity": "warning",
"type": "lib_symbol_issues"
},
{
"description": "Symbol 'GND' doesn't match copy in library 'power'",
"items": [
{
"description": "Symbol #PWR02 [GND]",
"pos": {
"x": 1.4097,
"y": 0.8763
},
"uuid": "62fef766-bfdd-4a4a-a8fa-79183473dd3b"
}
],
"severity": "warning",
"type": "lib_symbol_mismatch"
},
{
"description": "Footprint 'R_1206_3216Metric' not found in library 'Resistor_SMD'",
"items": [

View File

@ -1,4 +1,4 @@
ERC report (2025-08-20T22:34:08+0000, Encoding UTF8)
ERC report (2025-09-12T21:52:36-0700, Encoding UTF8)
***** Sheet /
[power_pin_not_driven]: Input Power pin not driven by any Output Power pins
@ -31,15 +31,6 @@ ERC report (2025-08-20T22:34:08+0000, Encoding UTF8)
[footprint_link_issues]: Footprint 'C_1206_3216Metric' not found in library 'Capacitor_SMD'
; warning
@(121.92 mm, 80.01 mm): Symbol C1 [C_Small]
[lib_symbol_mismatch]: Symbol 'GND' doesn't match copy in library 'power'
; warning
@(121.92 mm, 83.82 mm): Symbol #PWR03 [GND]
[lib_symbol_mismatch]: Symbol 'GND' doesn't match copy in library 'power'
; warning
@(111.76 mm, 100.33 mm): Symbol #PWR04 [GND]
[lib_symbol_mismatch]: Symbol 'GND' doesn't match copy in library 'power'
; warning
@(119.38 mm, 96.52 mm): Symbol #PWR01 [GND]
[footprint_link_issues]: Footprint 'R_1206_3216Metric' not found in library 'Resistor_SMD'
; warning
@(127.00 mm, 93.98 mm): Symbol R1 [R_US]
@ -49,9 +40,6 @@ ERC report (2025-08-20T22:34:08+0000, Encoding UTF8)
[lib_symbol_issues]: The current configuration does not include the symbol library 'Amplifier_Operational'
; warning
@(143.51 mm, 78.74 mm): Symbol U1 [TLV2371DBV]
[lib_symbol_mismatch]: Symbol 'GND' doesn't match copy in library 'power'
; warning
@(140.97 mm, 87.63 mm): Symbol #PWR02 [GND]
[footprint_link_issues]: Footprint 'R_1206_3216Metric' not found in library 'Resistor_SMD'
; warning
@(149.86 mm, 93.98 mm): Symbol R2 [R_US]
@ -62,4 +50,4 @@ ERC report (2025-08-20T22:34:08+0000, Encoding UTF8)
; warning
@(177.80 mm, 78.74 mm): Symbol J3 [Conn_01x01_Pin]
** ERC messages: 20 Errors 2 Warnings 18
** ERC messages: 16 Errors 2 Warnings 14

View File

@ -1,4 +1,4 @@
ERC report (2025-08-20T22:34:09+0000, Encoding UTF8)
ERC report (2025-09-12T21:52:37-0700, Encoding UTF8)
***** Sheet /
[power_pin_not_driven]: Input Power pin not driven by any Output Power pins
@ -31,15 +31,6 @@ ERC report (2025-08-20T22:34:09+0000, Encoding UTF8)
[footprint_link_issues]: Footprint 'C_1206_3216Metric' not found in library 'Capacitor_SMD'
; warning
@(4.800 in, 3.150 in): Symbol C1 [C_Small]
[lib_symbol_mismatch]: Symbol 'GND' doesn't match copy in library 'power'
; warning
@(4.800 in, 3.300 in): Symbol #PWR03 [GND]
[lib_symbol_mismatch]: Symbol 'GND' doesn't match copy in library 'power'
; warning
@(4.400 in, 3.950 in): Symbol #PWR04 [GND]
[lib_symbol_mismatch]: Symbol 'GND' doesn't match copy in library 'power'
; warning
@(4.700 in, 3.800 in): Symbol #PWR01 [GND]
[footprint_link_issues]: Footprint 'R_1206_3216Metric' not found in library 'Resistor_SMD'
; warning
@(5.000 in, 3.700 in): Symbol R1 [R_US]
@ -49,9 +40,6 @@ ERC report (2025-08-20T22:34:09+0000, Encoding UTF8)
[lib_symbol_issues]: The current configuration does not include the symbol library 'Amplifier_Operational'
; warning
@(5.650 in, 3.100 in): Symbol U1 [TLV2371DBV]
[lib_symbol_mismatch]: Symbol 'GND' doesn't match copy in library 'power'
; warning
@(5.550 in, 3.450 in): Symbol #PWR02 [GND]
[footprint_link_issues]: Footprint 'R_1206_3216Metric' not found in library 'Resistor_SMD'
; warning
@(5.900 in, 3.700 in): Symbol R2 [R_US]
@ -62,4 +50,4 @@ ERC report (2025-08-20T22:34:09+0000, Encoding UTF8)
; warning
@(7.000 in, 3.100 in): Symbol J3 [Conn_01x01_Pin]
** ERC messages: 20 Errors 2 Warnings 18
** ERC messages: 16 Errors 2 Warnings 14

View File

@ -194,7 +194,6 @@ def test_sch_export_erc( kitest,
stdout, stderr, exitcode = utils.run_and_capture( command )
assert exitcode == expected_exit_code
assert stderr == ''
# some of our netlist formats are not cross platform so skip for now
if not skip_compare:

View File

@ -46,6 +46,9 @@ static std::unique_ptr<LIB_SYMBOL> createTestResistorSymbol()
{
auto symbol = std::make_unique<LIB_SYMBOL>( wxT( "TestResistor" ) );
// Set pin name offset to 0 so names are positioned outside (like numbers)
symbol->SetPinNameOffset( 0 );
// Create first pin with stacked numbers [1-5]
auto pin1 = std::make_unique<SCH_PIN>( symbol.get() );
pin1->SetPosition( VECTOR2I( 0, schIUScale.MilsToIU( 250 ) ) ); // top pin