Compare commits

..

2 commits

Author SHA1 Message Date
0fba4ff7ca Add a gitignore for FreeCAD backups 2026-08-02 17:18:59 +02:00
8b090f9bbf FAFO Updated Motor Horn
Our stepper motors have very short axles which makes the current design
of the motor horns not sit straight.

Redesign them to use a partially disassembled GT2 pulley as an axle
mount.
2026-08-02 17:10:51 +02:00
146 changed files with 345 additions and 15059 deletions

4
.gitignore vendored
View file

@ -1,4 +0,0 @@
__pycache__/
*.py[cod]
.DS_Store
._*

View file

@ -32,28 +32,7 @@ joint the projects community [Discord Server](https://discord.gg/maRvMVpa2Q).
5. Upload firmware using VSCode with PlattformIO plugin
6. Calibrate axis
Also check out the setup guide for new devices: [Setup Guide](documentation/setup_guide/setup_guide.md)
## ✨NEW: Hardware Version 4.0
A new version of the hardware has been released, fixing several issues with the previous design:
- Self collision during homing fixed.
- Connection of ball joint block with screws only was not well constrained and could rotated a bit.
- No reliable way to ensure consistent linkage rod length
- Unnecessary ball joint friction
- Accurate ball position heavily dependet on print quality and corner rounding
- Rubber bands could not be changed or removed once glued in.
A video about the improved ball joint and linkage manufactoring process can be found on YouTube: [Better Ball Joints for the Open Micro-Manipulator](https://www.youtube.com/watch?v=NM2KXvRGmpg)
Also the FreeCAD model was restructured and improved and now includes all pins and fasteners. It now provides a reference for all required mechanical parts.
<div style="display: flex;">
<img src="images/Hardware-v4.0.jpg" alt="Open Micro-Manipulator GUI" width="50%">
</div>
WARNING: BOM is not updated yet...
## Open Micro-Manipulator GUI
## ✨NEW: Open Micro-Manipulator GUI
To make testing and using the Open-Micro Manipulator easy and convenient a python control program with a graphical user interface is provided here: [Open Micro-Manipulator GUI](https://github.com/0x23/OpenMicroManipulatorGUI).
It has simple controlls to move the device around, while also displaying a live camera feed (e.g. from a microscope camera). Additional features, include a simple g-code runner and realtime mouse control (e.g. for Biology applications).
@ -99,7 +78,6 @@ get_workspace_transform()
home(axis_list=None)
calibrate_joint(joint_index, save_result)
move_to(x, y, z, f, move_immediately, blocking, timeout)
set_tool_output(tool_idx, output_value, immediate)
set_pose(x, y, z)
dwell(time_s, blocking, timeout)
enable_motors(enable)
@ -107,27 +85,8 @@ wait_for_stop(polling_interval_ms, disable_callbacks)
set_max_acceleration(linear_accel, angular_accel)
set_servo_parameter(pos_kp, pos_ki, vel_kp, vel_ki, vel_filter_tc)
```
## ✨ Firmware v1.0.4
Firmware 1.0.4 comes with many smaller improvements and bugfixes and a great new feature as well:
- **Tools**: Tool usage (for example for laser engraving) is now supported on the two GPIO pins of J5 on the pcb.
Tools are integrated into the planner and run fast and with correct timing when executing g-code.
The tools support PWM (using the PIO feature to squeeze out extra channels without relying on software PWM).
Example usage:
```
M3 T0 S0.7 // set pwm output of tool 0 to 70%
G4 S0.001 // dwell command (or any other motion command) - necessary to apply the tools output
```
- **Calibration**: Calibration has now some addition error checks to improve error reporting of potential problems like encoder alignment.
- **Kinematic Model Parameter**: Initialization code has been cleaned up and better comments where added to the parameters. Parameters are preset for HW v4.0 but you can toggle back to the old HW-v3.0 parameters if necessary.
- **Bugfixes**: smaller bugfixes
IMPORTANT: If you have **Hardware Version v3.0** you need to switch back to the old kinematic parameters in the [kinematic_model_delta3d.cpp](firmware/MotionControllerRP/src/kinematic_models/kinematic_model_delta3d.cpp) file (there is an #define for that at the top).
## Firmware v1.0.1
## ✨ Firmware v1.0.1
This update improves calibration, homing, logging, and adds several new G-Code commands.
@ -159,7 +118,7 @@ You can also 3D-Print the parts but have to live with thermal drift (carbon fill
<br>
The CAD files can be found here: [CAD Models](construction).
Please note that FreeCAD version **1.2.0dev** was used, and the files might not work with older versions.
Please note that FreeCAD version **1.1.0dev** was used, and the files might not work with older versions.
STL files for printing can be found here: [STL Files](construction/STL_3D_Printing/)
@ -180,8 +139,6 @@ For usual winding resistance of your motors, the device should be powered by $${
<img src="images/ControllerPCB.jpg" alt="Image 2" style="flex: 1; object-fit: contain; height: 10vw;">
</div>
The repository now also contains the fabrication files that can be directly uploaded to the PCB manufacturer.
## ⚙ Firmware
The firmware is written in C++ and takes some inspiration from the 'SimpleFOC' project. It aims to be streamlined and readable without any extra fuss, focusing on the hardware used in this project.
@ -213,7 +170,6 @@ The client must wait for an acknowledgment from the previous command before send
| `G4 S/P` | Dwell/pause for a specified time. <br>`S`: seconds <br>`P`: milliseconds |
| `G24 X Y Z A B C` | Directly set current pose for servo loops with optional rotation vector* `A`, `B`, `C`. |
| `G28 A-F` | Home one or more joints. <br>• Optional joint selection `A``F`. |
| `M3` | Set Tool output. <br>`T`: tool index <br>`S`: output value (0.0..1.0) <br> Note: new values is only applied on the next motion or dwell command |
| `M17` | Enable motors and read current pose as the start pose. |
| `M18` | Disable motors. |
| `M50` | Get current internal pose. (Encoders are not read here) |
@ -238,6 +194,4 @@ If you'd like to support this project, consider the following:
- **Support the project on Ko-fi** If you find this project valuable, you can support it financially via [Ko-fi](https://ko-fi.com/diffractionlimited) ☕.
## Youtube Video
[![Watch the video](images/video-thumbnails/01_MicroManipulator.jpg)](https://youtu.be/MgQbPdiuUTw)
[![Better Ball Joints for the Open Micro-Manipulator](images/video-thumbnails/02_BetterBallJoints.jpg)](https://youtu.be/MgQbPdiuUTw)
[![Watch the video](images/thumbnail.jpg)](https://youtu.be/MgQbPdiuUTw)

1
construction/.gitignore vendored Normal file
View file

@ -0,0 +1 @@
*.FCBak

View file

@ -1,618 +0,0 @@
{
"board": {
"3dviewports": [],
"design_settings": {
"defaults": {
"apply_defaults_to_fp_fields": false,
"apply_defaults_to_fp_shapes": false,
"apply_defaults_to_fp_text": false,
"board_outline_line_width": 0.05,
"copper_line_width": 0.2,
"copper_text_italic": false,
"copper_text_size_h": 1.5,
"copper_text_size_v": 1.5,
"copper_text_thickness": 0.3,
"copper_text_upright": false,
"courtyard_line_width": 0.05,
"dimension_precision": 4,
"dimension_units": 3,
"dimensions": {
"arrow_length": 1270000,
"extension_offset": 500000,
"keep_text_aligned": true,
"suppress_zeroes": true,
"text_position": 0,
"units_format": 0
},
"fab_line_width": 0.1,
"fab_text_italic": false,
"fab_text_size_h": 1.0,
"fab_text_size_v": 1.0,
"fab_text_thickness": 0.15,
"fab_text_upright": false,
"other_line_width": 0.1,
"other_text_italic": false,
"other_text_size_h": 1.0,
"other_text_size_v": 1.0,
"other_text_thickness": 0.15,
"other_text_upright": false,
"pads": {
"drill": 0.8,
"height": 0.8,
"width": 0.8
},
"silk_line_width": 0.1,
"silk_text_italic": false,
"silk_text_size_h": 1.0,
"silk_text_size_v": 1.0,
"silk_text_thickness": 0.1,
"silk_text_upright": false,
"zones": {
"min_clearance": 0.0
}
},
"diff_pair_dimensions": [],
"drc_exclusions": [],
"meta": {
"version": 2
},
"rule_severities": {
"annular_width": "error",
"clearance": "error",
"connection_width": "warning",
"copper_edge_clearance": "error",
"copper_sliver": "warning",
"courtyards_overlap": "error",
"creepage": "error",
"diff_pair_gap_out_of_range": "error",
"diff_pair_uncoupled_length_too_long": "error",
"drill_out_of_range": "error",
"duplicate_footprints": "warning",
"extra_footprint": "warning",
"footprint": "error",
"footprint_filters_mismatch": "ignore",
"footprint_symbol_mismatch": "warning",
"footprint_type_mismatch": "ignore",
"hole_clearance": "error",
"hole_to_hole": "warning",
"holes_co_located": "warning",
"invalid_outline": "error",
"isolated_copper": "warning",
"item_on_disabled_layer": "error",
"items_not_allowed": "error",
"length_out_of_range": "error",
"lib_footprint_issues": "warning",
"lib_footprint_mismatch": "warning",
"malformed_courtyard": "error",
"microvia_drill_out_of_range": "error",
"mirrored_text_on_front_layer": "warning",
"missing_courtyard": "ignore",
"missing_footprint": "warning",
"net_conflict": "warning",
"nonmirrored_text_on_back_layer": "warning",
"npth_inside_courtyard": "ignore",
"padstack": "warning",
"pth_inside_courtyard": "ignore",
"shorting_items": "error",
"silk_edge_clearance": "warning",
"silk_over_copper": "warning",
"silk_overlap": "warning",
"skew_out_of_range": "error",
"solder_mask_bridge": "error",
"starved_thermal": "error",
"text_height": "warning",
"text_on_edge_cuts": "error",
"text_thickness": "warning",
"through_hole_pad_without_hole": "error",
"too_many_vias": "error",
"track_angle": "error",
"track_dangling": "warning",
"track_segment_length": "error",
"track_width": "error",
"tracks_crossing": "error",
"unconnected_items": "error",
"unresolved_variable": "error",
"via_dangling": "warning",
"zones_intersect": "error"
},
"rules": {
"max_error": 0.005,
"min_clearance": 0.0,
"min_connection": 0.0,
"min_copper_edge_clearance": 0.5,
"min_groove_width": 0.0,
"min_hole_clearance": 0.25,
"min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.2,
"min_microvia_drill": 0.1,
"min_resolved_spokes": 2,
"min_silk_clearance": 0.0,
"min_text_height": 0.8,
"min_text_thickness": 0.08,
"min_through_hole_diameter": 0.3,
"min_track_width": 0.0,
"min_via_annular_width": 0.1,
"min_via_diameter": 0.5,
"solder_mask_to_copper_clearance": 0.005,
"use_height_for_length_calcs": true
},
"teardrop_options": [
{
"td_onpthpad": true,
"td_onroundshapesonly": false,
"td_onsmdpad": true,
"td_ontrackend": false,
"td_onvia": true
}
],
"teardrop_parameters": [
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_round_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_rect_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_track_end",
"td_width_to_size_filter_ratio": 0.9
}
],
"track_widths": [],
"tuning_pattern_settings": {
"diff_pair_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 1.0
},
"diff_pair_skew_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
},
"single_track_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
}
},
"via_dimensions": [],
"zones_allow_external_fillets": false
},
"ipc2581": {
"dist": "",
"distpn": "",
"internal_id": "",
"mfg": "",
"mpn": ""
},
"layer_pairs": [],
"layer_presets": [],
"viewports": []
},
"boards": [],
"cvpcb": {
"equivalence_files": []
},
"erc": {
"erc_exclusions": [],
"meta": {
"version": 0
},
"pin_map": [
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
1,
2
],
[
0,
1,
0,
0,
0,
0,
1,
1,
2,
1,
1,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2
],
[
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
2
],
[
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
1,
2,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
0,
2,
1,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2
]
],
"rule_severities": {
"bus_definition_conflict": "error",
"bus_entry_needed": "error",
"bus_to_bus_conflict": "error",
"bus_to_net_conflict": "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",
"missing_unit": "warning",
"multiple_net_names": "warning",
"net_not_bus_member": "warning",
"no_connect_connected": "warning",
"no_connect_dangling": "warning",
"pin_not_connected": "error",
"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"
}
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "balljoint_plate_pcb.kicad_pro",
"version": 3
},
"net_settings": {
"classes": [
{
"bus_width": 12,
"clearance": 0.2,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2,
"line_style": 0,
"microvia_diameter": 0.3,
"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.2,
"via_diameter": 0.6,
"via_drill": 0.3,
"wire_width": 6
}
],
"meta": {
"version": 4
},
"net_colors": null,
"netclass_assignments": null,
"netclass_patterns": []
},
"pcbnew": {
"last_paths": {
"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_line_thickness": 6.0,
"default_text_size": 50.0,
"field_names": [],
"intersheets_ref_own_page": false,
"intersheets_ref_prefix": "",
"intersheets_ref_short": false,
"intersheets_ref_show": false,
"intersheets_ref_suffix": "",
"junction_size_choice": 3,
"label_size_ratio": 0.375,
"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.15
},
"legacy_lib_dir": "",
"legacy_lib_list": [],
"meta": {
"version": 1
},
"net_format_name": "",
"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,
"spice_save_all_currents": false,
"spice_save_all_dissipations": false,
"spice_save_all_voltages": false,
"subpart_first_id": 65,
"subpart_id_separator": 0
},
"sheets": [
[
"2e8012d9-ff9a-4144-ae87-c56d322b63ec",
"Root"
]
],
"text_variables": {}
}

View file

@ -1,738 +0,0 @@
(kicad_sch
(version 20250114)
(generator "eeschema")
(generator_version "9.0")
(uuid "2e8012d9-ff9a-4144-ae87-c56d322b63ec")
(paper "A4")
(lib_symbols
(symbol "Mechanical:MountingHole"
(pin_names
(offset 1.016)
)
(exclude_from_sim no)
(in_bom no)
(on_board yes)
(property "Reference" "H"
(at 0 5.08 0)
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Value" "MountingHole"
(at 0 3.175 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" "Mounting Hole without connection"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "ki_keywords" "mounting hole"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "ki_fp_filters" "MountingHole*"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(symbol "MountingHole_0_1"
(circle
(center 0 0)
(radius 1.27)
(stroke
(width 1.27)
(type default)
)
(fill
(type none)
)
)
)
(embedded_fonts no)
)
)
(symbol
(lib_id "Mechanical:MountingHole")
(at 119.38 66.04 0)
(unit 1)
(exclude_from_sim no)
(in_bom no)
(on_board yes)
(dnp no)
(fields_autoplaced yes)
(uuid "22cd77c6-6419-49c9-a315-e5470917281d")
(property "Reference" "H7"
(at 121.92 64.7699 0)
(effects
(font
(size 1.27 1.27)
)
(justify left)
)
)
(property "Value" "MountingHole"
(at 121.92 67.3099 0)
(effects
(font
(size 1.27 1.27)
)
(justify left)
)
)
(property "Footprint" "MountingHole:MountingHole_2mm"
(at 119.38 66.04 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Datasheet" "~"
(at 119.38 66.04 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Description" "Mounting Hole without connection"
(at 119.38 66.04 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(instances
(project "balljoint_plate_pcb"
(path "/2e8012d9-ff9a-4144-ae87-c56d322b63ec"
(reference "H7")
(unit 1)
)
)
)
)
(symbol
(lib_id "Mechanical:MountingHole")
(at 96.52 66.04 0)
(unit 1)
(exclude_from_sim no)
(in_bom no)
(on_board yes)
(dnp no)
(fields_autoplaced yes)
(uuid "35b726c5-8939-42dc-9c24-6937721b1381")
(property "Reference" "H1"
(at 99.06 64.7699 0)
(effects
(font
(size 1.27 1.27)
)
(justify left)
)
)
(property "Value" "MountingHole"
(at 99.06 67.3099 0)
(effects
(font
(size 1.27 1.27)
)
(justify left)
)
)
(property "Footprint" "MountingHole:MountingHole_2mm"
(at 96.52 66.04 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Datasheet" "~"
(at 96.52 66.04 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Description" "Mounting Hole without connection"
(at 96.52 66.04 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(instances
(project ""
(path "/2e8012d9-ff9a-4144-ae87-c56d322b63ec"
(reference "H1")
(unit 1)
)
)
)
)
(symbol
(lib_id "Mechanical:MountingHole")
(at 119.38 59.69 0)
(unit 1)
(exclude_from_sim no)
(in_bom no)
(on_board yes)
(dnp no)
(fields_autoplaced yes)
(uuid "77599518-9e81-421c-a589-255563863e7d")
(property "Reference" "H6"
(at 121.92 58.4199 0)
(effects
(font
(size 1.27 1.27)
)
(justify left)
)
)
(property "Value" "MountingHole"
(at 121.92 60.9599 0)
(effects
(font
(size 1.27 1.27)
)
(justify left)
)
)
(property "Footprint" "MountingHole:MountingHole_2mm"
(at 119.38 59.69 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Datasheet" "~"
(at 119.38 59.69 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Description" "Mounting Hole without connection"
(at 119.38 59.69 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(instances
(project "balljoint_plate_pcb"
(path "/2e8012d9-ff9a-4144-ae87-c56d322b63ec"
(reference "H6")
(unit 1)
)
)
)
)
(symbol
(lib_id "Mechanical:MountingHole")
(at 119.38 53.34 0)
(unit 1)
(exclude_from_sim no)
(in_bom no)
(on_board yes)
(dnp no)
(fields_autoplaced yes)
(uuid "bf678316-db0e-4397-9446-1c043850ee54")
(property "Reference" "H5"
(at 121.92 52.0699 0)
(effects
(font
(size 1.27 1.27)
)
(justify left)
)
)
(property "Value" "MountingHole"
(at 121.92 54.6099 0)
(effects
(font
(size 1.27 1.27)
)
(justify left)
)
)
(property "Footprint" "MountingHole:MountingHole_2mm"
(at 119.38 53.34 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Datasheet" "~"
(at 119.38 53.34 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Description" "Mounting Hole without connection"
(at 119.38 53.34 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(instances
(project "balljoint_plate_pcb"
(path "/2e8012d9-ff9a-4144-ae87-c56d322b63ec"
(reference "H5")
(unit 1)
)
)
)
)
(symbol
(lib_id "Mechanical:MountingHole")
(at 68.58 66.04 0)
(unit 1)
(exclude_from_sim no)
(in_bom no)
(on_board yes)
(dnp no)
(fields_autoplaced yes)
(uuid "ce16cea6-101f-4ffc-a2f6-b65e2eb092ea")
(property "Reference" "H3"
(at 71.12 64.7699 0)
(effects
(font
(size 1.27 1.27)
)
(justify left)
)
)
(property "Value" "MountingHole"
(at 71.12 67.3099 0)
(effects
(font
(size 1.27 1.27)
)
(justify left)
)
)
(property "Footprint" "MountingHole:MountingHole_2mm"
(at 68.58 66.04 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Datasheet" "~"
(at 68.58 66.04 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Description" "Mounting Hole without connection"
(at 68.58 66.04 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(instances
(project "balljoint_plate_pcb"
(path "/2e8012d9-ff9a-4144-ae87-c56d322b63ec"
(reference "H3")
(unit 1)
)
)
)
)
(symbol
(lib_id "Mechanical:MountingHole")
(at 48.26 53.34 0)
(unit 1)
(exclude_from_sim no)
(in_bom no)
(on_board yes)
(dnp no)
(fields_autoplaced yes)
(uuid "e2172f75-ac85-4747-8e3f-8bd8f214554d")
(property "Reference" "H8"
(at 50.8 52.0699 0)
(effects
(font
(size 1.27 1.27)
)
(justify left)
)
)
(property "Value" "MountingHole"
(at 50.8 54.6099 0)
(effects
(font
(size 1.27 1.27)
)
(justify left)
)
)
(property "Footprint" "MountingHole:MountingHole_2mm"
(at 48.26 53.34 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Datasheet" "~"
(at 48.26 53.34 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Description" "Mounting Hole without connection"
(at 48.26 53.34 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(instances
(project "balljoint_plate_pcb"
(path "/2e8012d9-ff9a-4144-ae87-c56d322b63ec"
(reference "H8")
(unit 1)
)
)
)
)
(symbol
(lib_id "Mechanical:MountingHole")
(at 68.58 72.39 0)
(unit 1)
(exclude_from_sim no)
(in_bom no)
(on_board yes)
(dnp no)
(fields_autoplaced yes)
(uuid "ea0c2fa5-13e6-496d-a0ba-a48b9d6ec936")
(property "Reference" "H4"
(at 71.12 71.1199 0)
(effects
(font
(size 1.27 1.27)
)
(justify left)
)
)
(property "Value" "MountingHole"
(at 71.12 73.6599 0)
(effects
(font
(size 1.27 1.27)
)
(justify left)
)
)
(property "Footprint" "MountingHole:MountingHole_2mm"
(at 68.58 72.39 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Datasheet" "~"
(at 68.58 72.39 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Description" "Mounting Hole without connection"
(at 68.58 72.39 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(instances
(project "balljoint_plate_pcb"
(path "/2e8012d9-ff9a-4144-ae87-c56d322b63ec"
(reference "H4")
(unit 1)
)
)
)
)
(symbol
(lib_id "Mechanical:MountingHole")
(at 48.26 66.04 0)
(unit 1)
(exclude_from_sim no)
(in_bom no)
(on_board yes)
(dnp no)
(fields_autoplaced yes)
(uuid "ef8cad87-32d9-4829-8ec4-9aba40945885")
(property "Reference" "H10"
(at 50.8 64.7699 0)
(effects
(font
(size 1.27 1.27)
)
(justify left)
)
)
(property "Value" "MountingHole"
(at 50.8 67.3099 0)
(effects
(font
(size 1.27 1.27)
)
(justify left)
)
)
(property "Footprint" "MountingHole:MountingHole_2mm"
(at 48.26 66.04 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Datasheet" "~"
(at 48.26 66.04 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Description" "Mounting Hole without connection"
(at 48.26 66.04 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(instances
(project "balljoint_plate_pcb"
(path "/2e8012d9-ff9a-4144-ae87-c56d322b63ec"
(reference "H10")
(unit 1)
)
)
)
)
(symbol
(lib_id "Mechanical:MountingHole")
(at 96.52 72.39 0)
(unit 1)
(exclude_from_sim no)
(in_bom no)
(on_board yes)
(dnp no)
(fields_autoplaced yes)
(uuid "fb8c5c26-8db1-405b-b136-fb52772326a9")
(property "Reference" "H2"
(at 99.06 71.1199 0)
(effects
(font
(size 1.27 1.27)
)
(justify left)
)
)
(property "Value" "MountingHole"
(at 99.06 73.6599 0)
(effects
(font
(size 1.27 1.27)
)
(justify left)
)
)
(property "Footprint" "MountingHole:MountingHole_2mm"
(at 96.52 72.39 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Datasheet" "~"
(at 96.52 72.39 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Description" "Mounting Hole without connection"
(at 96.52 72.39 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(instances
(project "balljoint_plate_pcb"
(path "/2e8012d9-ff9a-4144-ae87-c56d322b63ec"
(reference "H2")
(unit 1)
)
)
)
)
(symbol
(lib_id "Mechanical:MountingHole")
(at 48.26 59.69 0)
(unit 1)
(exclude_from_sim no)
(in_bom no)
(on_board yes)
(dnp no)
(fields_autoplaced yes)
(uuid "fe98a2dd-c6f8-4781-ad26-1f0d6d940384")
(property "Reference" "H9"
(at 50.8 58.4199 0)
(effects
(font
(size 1.27 1.27)
)
(justify left)
)
)
(property "Value" "MountingHole"
(at 50.8 60.9599 0)
(effects
(font
(size 1.27 1.27)
)
(justify left)
)
)
(property "Footprint" "MountingHole:MountingHole_2mm"
(at 48.26 59.69 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Datasheet" "~"
(at 48.26 59.69 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Description" "Mounting Hole without connection"
(at 48.26 59.69 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(instances
(project "balljoint_plate_pcb"
(path "/2e8012d9-ff9a-4144-ae87-c56d322b63ec"
(reference "H9")
(unit 1)
)
)
)
)
(sheet_instances
(path "/"
(page "1")
)
)
(embedded_fonts no)
)

View file

@ -1,183 +0,0 @@
(kicad_pcb
(version 20241229)
(generator "pcbnew")
(generator_version "9.0")
(general
(thickness 1.6)
(legacy_teardrops no)
)
(paper "A4")
(layers
(0 "F.Cu" signal)
(2 "B.Cu" signal)
(9 "F.Adhes" user "F.Adhesive")
(11 "B.Adhes" user "B.Adhesive")
(13 "F.Paste" user)
(15 "B.Paste" user)
(5 "F.SilkS" user "F.Silkscreen")
(7 "B.SilkS" user "B.Silkscreen")
(1 "F.Mask" user)
(3 "B.Mask" user)
(17 "Dwgs.User" user "User.Drawings")
(19 "Cmts.User" user "User.Comments")
(21 "Eco1.User" user "User.Eco1")
(23 "Eco2.User" user "User.Eco2")
(25 "Edge.Cuts" user)
(27 "Margin" user)
(31 "F.CrtYd" user "F.Courtyard")
(29 "B.CrtYd" user "B.Courtyard")
(35 "F.Fab" user)
(33 "B.Fab" user)
(39 "User.1" user)
(41 "User.2" user)
(43 "User.3" user)
(45 "User.4" user)
)
(setup
(pad_to_mask_clearance 0)
(allow_soldermask_bridges_in_footprints no)
(tenting front back)
(pcbplotparams
(layerselection 0x00000000_00000000_55555555_5755f5ff)
(plot_on_all_layers_selection 0x00000000_00000000_00000000_00000000)
(disableapertmacros no)
(usegerberextensions no)
(usegerberattributes yes)
(usegerberadvancedattributes yes)
(creategerberjobfile yes)
(dashed_line_dash_ratio 12.000000)
(dashed_line_gap_ratio 3.000000)
(svgprecision 4)
(plotframeref no)
(mode 1)
(useauxorigin no)
(hpglpennumber 1)
(hpglpenspeed 20)
(hpglpendiameter 15.000000)
(pdf_front_fp_property_popups yes)
(pdf_back_fp_property_popups yes)
(pdf_metadata yes)
(pdf_single_document no)
(dxfpolygonmode yes)
(dxfimperialunits yes)
(dxfusepcbnewfont yes)
(psnegative no)
(psa4output no)
(plot_black_and_white yes)
(sketchpadsonfab no)
(plotpadnumbers no)
(hidednponfab no)
(sketchdnponfab yes)
(crossoutdnponfab yes)
(subtractmaskfromsilk no)
(outputformat 1)
(mirror no)
(drillshape 1)
(scaleselection 1)
(outputdirectory "")
)
)
(net 0 "")
(footprint "MountingHole:MountingHole_2.1mm"
(layer "F.Cu")
(uuid "ed2aaa6b-5540-4a25-b7e9-ac5d652620c5")
(at 200 100)
(descr "Mounting Hole 2.1mm, no annular, generated by kicad-footprint-generator mountinghole.py")
(tags "mountinghole")
(property "Reference" "H1"
(at 0 -3.05 0)
(layer "F.SilkS")
(hide yes)
(uuid "fbe2e5cd-8ff5-4647-939e-dd0ce550d54b")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Value" "MountingHole"
(at 0 3.05 0)
(layer "F.Fab")
(hide yes)
(uuid "efaf7238-551f-42f4-9d49-e8e793241c12")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Datasheet" ""
(at 0 0 0)
(layer "F.Fab")
(hide yes)
(uuid "9905b809-f32a-45b5-8697-736e838bd016")
(effects
(font
(size 1.27 1.27)
(thickness 0.15)
)
)
)
(property "Description" "Mounting Hole without connection"
(at 0 0 0)
(layer "F.Fab")
(hide yes)
(uuid "8f1f216c-eab1-4bba-acf3-9e9e03db4f0f")
(effects
(font
(size 1.27 1.27)
(thickness 0.15)
)
)
)
(property ki_fp_filters "MountingHole*")
(path "/e3431358-f109-41e1-8abd-e7609e5abada")
(sheetname "/")
(sheetfile "ball_alignment_disc_pcb.kicad_sch")
(attr exclude_from_pos_files exclude_from_bom)
(pad "" np_thru_hole circle
(at 0 0)
(size 1 1)
(drill 1)
(layers "*.Cu" "*.Mask")
(uuid "1f69a6ec-ea69-46af-a4f5-2440b716d18f")
)
(embedded_fonts no)
)
(gr_circle
(center 200 100)
(end 206 100)
(stroke
(width 0.1)
(type solid)
)
(fill yes)
(layer "F.Mask")
(uuid "dde5242d-1496-4d55-8821-ba405bdd666d")
)
(gr_circle
(center 200 100)
(end 206 100)
(stroke
(width 0.1)
(type solid)
)
(fill yes)
(layer "B.Mask")
(uuid "af62cc96-00a1-4ff1-84ee-660a587d88d7")
)
(gr_circle
(center 200 100)
(end 204 100)
(stroke
(width 0.05)
(type default)
)
(fill no)
(layer "Edge.Cuts")
(uuid "5abbc2ab-0559-4408-94b5-cf7e8005ef3e")
)
(embedded_fonts no)
)

View file

@ -1,618 +0,0 @@
{
"board": {
"3dviewports": [],
"design_settings": {
"defaults": {
"apply_defaults_to_fp_fields": false,
"apply_defaults_to_fp_shapes": false,
"apply_defaults_to_fp_text": false,
"board_outline_line_width": 0.05,
"copper_line_width": 0.2,
"copper_text_italic": false,
"copper_text_size_h": 1.5,
"copper_text_size_v": 1.5,
"copper_text_thickness": 0.3,
"copper_text_upright": false,
"courtyard_line_width": 0.05,
"dimension_precision": 4,
"dimension_units": 3,
"dimensions": {
"arrow_length": 1270000,
"extension_offset": 500000,
"keep_text_aligned": true,
"suppress_zeroes": true,
"text_position": 0,
"units_format": 0
},
"fab_line_width": 0.1,
"fab_text_italic": false,
"fab_text_size_h": 1.0,
"fab_text_size_v": 1.0,
"fab_text_thickness": 0.15,
"fab_text_upright": false,
"other_line_width": 0.1,
"other_text_italic": false,
"other_text_size_h": 1.0,
"other_text_size_v": 1.0,
"other_text_thickness": 0.15,
"other_text_upright": false,
"pads": {
"drill": 0.8,
"height": 1.27,
"width": 2.54
},
"silk_line_width": 0.1,
"silk_text_italic": false,
"silk_text_size_h": 1.0,
"silk_text_size_v": 1.0,
"silk_text_thickness": 0.1,
"silk_text_upright": false,
"zones": {
"min_clearance": 0.5
}
},
"diff_pair_dimensions": [],
"drc_exclusions": [],
"meta": {
"version": 2
},
"rule_severities": {
"annular_width": "error",
"clearance": "error",
"connection_width": "warning",
"copper_edge_clearance": "error",
"copper_sliver": "warning",
"courtyards_overlap": "error",
"creepage": "error",
"diff_pair_gap_out_of_range": "error",
"diff_pair_uncoupled_length_too_long": "error",
"drill_out_of_range": "error",
"duplicate_footprints": "warning",
"extra_footprint": "warning",
"footprint": "error",
"footprint_filters_mismatch": "ignore",
"footprint_symbol_mismatch": "warning",
"footprint_type_mismatch": "ignore",
"hole_clearance": "error",
"hole_to_hole": "warning",
"holes_co_located": "warning",
"invalid_outline": "error",
"isolated_copper": "warning",
"item_on_disabled_layer": "error",
"items_not_allowed": "error",
"length_out_of_range": "error",
"lib_footprint_issues": "warning",
"lib_footprint_mismatch": "warning",
"malformed_courtyard": "error",
"microvia_drill_out_of_range": "error",
"mirrored_text_on_front_layer": "warning",
"missing_courtyard": "ignore",
"missing_footprint": "warning",
"net_conflict": "warning",
"nonmirrored_text_on_back_layer": "warning",
"npth_inside_courtyard": "ignore",
"padstack": "warning",
"pth_inside_courtyard": "ignore",
"shorting_items": "error",
"silk_edge_clearance": "warning",
"silk_over_copper": "warning",
"silk_overlap": "warning",
"skew_out_of_range": "error",
"solder_mask_bridge": "error",
"starved_thermal": "error",
"text_height": "warning",
"text_on_edge_cuts": "error",
"text_thickness": "warning",
"through_hole_pad_without_hole": "error",
"too_many_vias": "error",
"track_angle": "error",
"track_dangling": "warning",
"track_segment_length": "error",
"track_width": "error",
"tracks_crossing": "error",
"unconnected_items": "error",
"unresolved_variable": "error",
"via_dangling": "warning",
"zones_intersect": "error"
},
"rules": {
"max_error": 0.005,
"min_clearance": 0.0,
"min_connection": 0.0,
"min_copper_edge_clearance": 0.5,
"min_groove_width": 0.0,
"min_hole_clearance": 0.25,
"min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.2,
"min_microvia_drill": 0.1,
"min_resolved_spokes": 2,
"min_silk_clearance": 0.0,
"min_text_height": 0.8,
"min_text_thickness": 0.08,
"min_through_hole_diameter": 0.3,
"min_track_width": 0.0,
"min_via_annular_width": 0.1,
"min_via_diameter": 0.5,
"solder_mask_to_copper_clearance": 0.005,
"use_height_for_length_calcs": true
},
"teardrop_options": [
{
"td_onpthpad": true,
"td_onroundshapesonly": false,
"td_onsmdpad": true,
"td_ontrackend": false,
"td_onvia": true
}
],
"teardrop_parameters": [
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_round_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_rect_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_track_end",
"td_width_to_size_filter_ratio": 0.9
}
],
"track_widths": [],
"tuning_pattern_settings": {
"diff_pair_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 1.0
},
"diff_pair_skew_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
},
"single_track_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
}
},
"via_dimensions": [],
"zones_allow_external_fillets": false
},
"ipc2581": {
"dist": "",
"distpn": "",
"internal_id": "",
"mfg": "",
"mpn": ""
},
"layer_pairs": [],
"layer_presets": [],
"viewports": []
},
"boards": [],
"cvpcb": {
"equivalence_files": []
},
"erc": {
"erc_exclusions": [],
"meta": {
"version": 0
},
"pin_map": [
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
1,
2
],
[
0,
1,
0,
0,
0,
0,
1,
1,
2,
1,
1,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2
],
[
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
2
],
[
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
1,
2,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
0,
2,
1,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2
]
],
"rule_severities": {
"bus_definition_conflict": "error",
"bus_entry_needed": "error",
"bus_to_bus_conflict": "error",
"bus_to_net_conflict": "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",
"missing_unit": "warning",
"multiple_net_names": "warning",
"net_not_bus_member": "warning",
"no_connect_connected": "warning",
"no_connect_dangling": "warning",
"pin_not_connected": "error",
"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"
}
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "ball_alignment_disc_pcb.kicad_pro",
"version": 3
},
"net_settings": {
"classes": [
{
"bus_width": 12,
"clearance": 0.2,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2,
"line_style": 0,
"microvia_diameter": 0.3,
"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.2,
"via_diameter": 0.6,
"via_drill": 0.3,
"wire_width": 6
}
],
"meta": {
"version": 4
},
"net_colors": null,
"netclass_assignments": null,
"netclass_patterns": []
},
"pcbnew": {
"last_paths": {
"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_line_thickness": 6.0,
"default_text_size": 50.0,
"field_names": [],
"intersheets_ref_own_page": false,
"intersheets_ref_prefix": "",
"intersheets_ref_short": false,
"intersheets_ref_show": false,
"intersheets_ref_suffix": "",
"junction_size_choice": 3,
"label_size_ratio": 0.375,
"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.15
},
"legacy_lib_dir": "",
"legacy_lib_list": [],
"meta": {
"version": 1
},
"net_format_name": "",
"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,
"spice_save_all_currents": false,
"spice_save_all_dissipations": false,
"spice_save_all_voltages": false,
"subpart_first_id": 65,
"subpart_id_separator": 0
},
"sheets": [
[
"fbd80f03-6df8-4a15-a16d-0e5ad187d22b",
"Root"
]
],
"text_variables": {}
}

View file

@ -1,162 +0,0 @@
(kicad_sch
(version 20250114)
(generator "eeschema")
(generator_version "9.0")
(uuid "fbd80f03-6df8-4a15-a16d-0e5ad187d22b")
(paper "A4")
(lib_symbols
(symbol "Mechanical:MountingHole"
(pin_names
(offset 1.016)
)
(exclude_from_sim no)
(in_bom no)
(on_board yes)
(property "Reference" "H"
(at 0 5.08 0)
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Value" "MountingHole"
(at 0 3.175 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" "Mounting Hole without connection"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "ki_keywords" "mounting hole"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "ki_fp_filters" "MountingHole*"
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(symbol "MountingHole_0_1"
(circle
(center 0 0)
(radius 1.27)
(stroke
(width 1.27)
(type default)
)
(fill
(type none)
)
)
)
(embedded_fonts no)
)
)
(symbol
(lib_id "Mechanical:MountingHole")
(at 133.35 91.44 0)
(unit 1)
(exclude_from_sim no)
(in_bom no)
(on_board yes)
(dnp no)
(fields_autoplaced yes)
(uuid "e3431358-f109-41e1-8abd-e7609e5abada")
(property "Reference" "H1"
(at 135.89 90.1699 0)
(effects
(font
(size 1.27 1.27)
)
(justify left)
)
)
(property "Value" "MountingHole"
(at 135.89 92.7099 0)
(effects
(font
(size 1.27 1.27)
)
(justify left)
)
)
(property "Footprint" "MountingHole:MountingHole_2.1mm"
(at 133.35 91.44 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Datasheet" "~"
(at 133.35 91.44 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Description" "Mounting Hole without connection"
(at 133.35 91.44 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(instances
(project ""
(path "/fbd80f03-6df8-4a15-a16d-0e5ad187d22b"
(reference "H1")
(unit 1)
)
)
)
)
(sheet_instances
(path "/"
(page "1")
)
)
(embedded_fonts no)
)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -1,25 +1,19 @@
# Bill of Materials (BOM)
## Mechanics
| Name | Qty | Description | Comments | Suggested link | Image |
|------|-----|-------------|----------|----------------|-------|
| Steel ball | 12 | Ø1 mm (0.04") | Precision G10 or better. Can be sourced from small ball bearings | |
| Steel ball | 12 | Ø1.25 mm (0.05") | Precision G10 or better. Can be sourced from small ball bearings | |
| PU stretch cord | 1 m | Ø1mm | e.g. "Stretch Magic" or "Magic String" | [Aliexpress](https://www.aliexpress.us/item/3256805953910514.html)| ![Pu strech cord](images/PU_StretchCord.png)|
| Neodym Cylinder Magnet | 70 | Ø3mm h=5 mm | N52 Grade | [NeoMagnets](https://www.buyneomagnets.com/p/3mm-dia-x-5mm-thick-n52-neodymium-rare-earth-disc-magnets-100-pack/)|
| Neodym Cylinder Magnet | 70 | Ø3mm h=5 mm | N52 Grade | [Ebay Link]()|
| Brass Pipe | 1 m | OD=Ø2mm ID=Ø1 mm | | [Amazon](https://a.co/d/1pRFmtf)| ![Brass Pipe](images/BrassPipe.png)|
| M2-8 dowel | 9 | | | | |
| SHCS M2-8 | 9 | | | | |
| Set Screw M3-6 | 3 | | | | |
| FHCS M3-6 | 3 | | | | |
| FHCS M3-10 | 9 | | | | |
| FHCS M3-20 | 12 | | | | |
| Crimp Beads | 12 | | Used to affix the ends of the PU cord | | |
## Electronics
| M2 Screw | 12 | M2×12 mm, Countersunk | | |
| M3 Grub Screw | 6 | M3×4 | | |
## Electronics
| Name | Qty | Description | Comments | Suggested link | Image |
|------|-----|-------------|----------|----------------|-------|
| DC-DC Step Down Module | 1 | 5V Fixed Output Step-Down Buck Converter | | [Aliexpress](https://www.aliexpress.com/item/1005008257960729.html)| ![DC-DC Step Down](images/Fixed_DC_DC-StepDown.png)|
| DC-DC Step Down Module | 1 | 4.7523 V Step-Down Buck Converter | | [Aliexpress](https://www.aliexpress.us/item/3256806752772875.html)| ![DC-DC Step Down](images/DC_DC-StepDown.png)|
| (1N5819) OR (PMEG4010) | 1 | Diode (through-hole or SMD) | | |
| Raspberry Pi Pico 2 | 1 | Microcontroller board | | | ![Raspberry Pi Pico 2](images/RaspberryPiPico2.png)|
| MT6835 Magnetic Encoder Module | 3 | Magnetic encoder | | [Aliexpress](https://www.aliexpress.us/item/3256808005140674.html)| ![MT6835 Magnetic Encoder Module](images/MT6835.png)|
@ -27,51 +21,17 @@
| 470 µF Electrolytic Capacitor | 3 | > 100 µF | anything > 100µF will work well | |
| 10 µF Ceramic Capacitor 0603 | 3 | Optional | | |
| 4.7 k Resistor 0603 | 2 | Optional | | |
| 2 Pin Power Header | 1 | 7.5 mm pitch | | |
| 4 Pin Header | 4 | 2.5 mm pitch | | |
| 8 Pin Header | 1 | 2.0 mm pitch | | |
| NEMA 17 Stepper Motor | 3 | Body ≤ 38 mm | Body length <= 38mm | |
| JST XH2.54 4P connector | 3 | 4P Housing & Header 2.54mm pitch | J1, J2, J3 (motors) | [Aliexpress](https://www.aliexpress.com/item/1005007080333485.html?spm=a2g0o.order_list.order_list_main.53.3d5d1802JZg5Wb) | ![JST XH2.54 Connector](images/JST_XH2.54_Connector.png) |
| XT60H Connector | 1 | 2P Male & Female pair 7.5mm pitch | Power connector | [Aliexpress](https://www.aliexpress.com/item/1005007605928815.html?spm=a2g0o.order_list.order_list_main.409.3d5d1802JZg5Wb) | ![XT60H Connector](images/XT60H_Pairs.png) |
| PH2.0 4P Housing <br> PH2.0 8P Housing | 1 <br> 1 | 4P 2mm pitch Housing <br> 8P 2mm pitch Housing | J5 (tool/I2C)<br> J4 (encoders) | [Aliexpress](https://www.aliexpress.com/item/1005010491403413.html?spm=a2g0o.order_detail.order_detail_item.3.2b60126a5SMahl) | ![PH2.0 Housings](images/PH2_Housings.png) |
| PH2.0 4P Header <br> PH2.0 8P Header | 1 <br> 1 | 4P 2mm pitch Header <br> 8P 2mm pitch Header | J5 (tool/I2C) <br> J4 (encoders) | [Aliexpress](https://www.aliexpress.com/item/1005010491403413.html?spm=a2g0o.order_detail.order_detail_item.3.2b60126a5SMahl) | ![PH2.0 Headers](images/PH2_Headers.png) |
## PCBs
| Name | Qty | Description | Comments | Image |
| ------------------- | --- | ----------- | -------- | ----- |
| Control Board | 1 | | | |
| balljoint_plate_pcb | 6 | | | |
## 3D Printing
| Name | Qty | Description | Comments | Image |
| ------------------- | --- | ----------- | --------------------------------------------------------------- | -------------------------------------------------- |
| Motor Horn | 3 | | 0.4 mm+ nozzle may require post-processing | ![Motor Horn](images/MotorHorn.png) |
| RubberBandCollet | 12 | | 0.4 mm nozzle, 0.1mm Layer height + may require post-processing | ![Rubber Band Collet](images/RubberBandCollet.png) |
| Motor Mount | 3 | | | ![Motor Mount](images/MotorMount.png) |
| End Effector | 1 | | | ![End Effector](images/EndEffector.png) |
| Base Block | 1 | | | ![Base Block](images/BaseBlock.png) |
# Tool - Rod Sharpener
## 3D Printing
| Name | Qty | Description | Comments | Image |
| ------------- | --- | ----------- | -------- | ----- |
| Rod Guide | 1 | | | |
| Blade Carrier | 1 | | | |
# Tool - Rod Length Setting Press
## PCBs
| Name | Qty | Description | Comments | Image |
| ----------------------- | --- | ----------- | -------- | ----- |
| ball_alignment_disc_pcb | 1 | | | |
## 3D Printing
| Name | Qty | Description | Comments | Image |
| ----------------------- | --- | ----------- | -------- | ----- |
| RodGrindingJigA | 1 | | | |
| RodGrindingJigB | 1 | | | |
| RodGuide | 1 | | | |
| RodCollet | 2 | | | |
| CaliperClamp | 2 | | | |
| Name | Qty | Description | Comments | Image |
|------|-----|-------------|----------|-------|
| Motor Horn | 3 | | 0.4 mm+ nozzle may require post-processing | ![Motor Horn](images/MotorHorn.png)|
| RubberBandCollet | 12 | | 0.4 mm nozzle, 0.1mm Layer height + may require post-processing | ![Rubber Band Collet](images/RubberBandCollet.png)|
| BallJointMount | 6 | | 0.4 mm nozzle, 0.1mm Layer height + may require post-processing | ![Ball Joint Mount](images/BallJointMount.png)|
| Motor Mount | 3 | | | ![Motor Mount](images/MotorMount.png)|
| End Effector | 1 | | | ![End Effector](images/EndEffector.png)|
| Base Block | 1 | | | ![Base Block](images/BaseBlock.png)|

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 171 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 165 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 303 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

View file

@ -1,36 +0,0 @@
# Setup Guide
This guide walks you through the setup of your new **Open Micro-Manipulator** device.
## Checklist for New Devices
1. **Was the mechanical limit pin added to the rotor?**
This pin is required for proper homing of the device.
<div style="display: flex;">
<img src="mechanical_limit_pin.jpg" alt="Mechanical Limit Pin" width="40%">
</div>
2. **Are the screws that secure the rotor to the motor shaft installed?**
If the rotor is not firmly attached, it may slip imperceptibly during homing or other movements, leading to problems during calibration and homing.
3. **Is the homing direction correct?**
During the homing command (`G28`), the end effector should move toward the base.
If it moves in the opposite direction, rewire the motor to reverse its direction.
<div style="display: flex;">
<img src="homing_direction.jpg" alt="Mechanical Limit Pin" width="40%">
</div>
## Calibration and Checking the Encoders
You can use the calibration plotter to check if your encoders are working as expected.
On the left you see a good calibration on the right a bad calibration.
| <img src="good_calibration.jpg"> | <img src="bad_calibration.jpg"> |
:--:|:--:
| **Good calibration** | **Bad calibration** |
THIS DOCUMENT IS UNFINISHED AND WORK IN PROGRESS...

File diff suppressed because it is too large Load diff

View file

@ -1,632 +0,0 @@
{
"board": {
"3dviewports": [],
"design_settings": {
"defaults": {
"apply_defaults_to_fp_fields": false,
"apply_defaults_to_fp_shapes": false,
"apply_defaults_to_fp_text": false,
"board_outline_line_width": 0.05,
"copper_line_width": 0.2,
"copper_text_italic": false,
"copper_text_size_h": 1.5,
"copper_text_size_v": 1.5,
"copper_text_thickness": 0.3,
"copper_text_upright": false,
"courtyard_line_width": 0.05,
"dimension_precision": 4,
"dimension_units": 3,
"dimensions": {
"arrow_length": 1270000,
"extension_offset": 500000,
"keep_text_aligned": true,
"suppress_zeroes": true,
"text_position": 0,
"units_format": 0
},
"fab_line_width": 0.1,
"fab_text_italic": false,
"fab_text_size_h": 1.0,
"fab_text_size_v": 1.0,
"fab_text_thickness": 0.15,
"fab_text_upright": false,
"other_line_width": 0.1,
"other_text_italic": false,
"other_text_size_h": 1.0,
"other_text_size_v": 1.0,
"other_text_thickness": 0.15,
"other_text_upright": false,
"pads": {
"drill": 0.8,
"height": 1.27,
"width": 2.54
},
"silk_line_width": 0.1,
"silk_text_italic": false,
"silk_text_size_h": 1.0,
"silk_text_size_v": 1.0,
"silk_text_thickness": 0.1,
"silk_text_upright": false,
"zones": {
"min_clearance": 0.25
}
},
"diff_pair_dimensions": [
{
"gap": 0.0,
"via_gap": 0.0,
"width": 0.0
}
],
"drc_exclusions": [],
"meta": {
"version": 2
},
"rule_severities": {
"annular_width": "error",
"clearance": "error",
"connection_width": "warning",
"copper_edge_clearance": "error",
"copper_sliver": "warning",
"courtyards_overlap": "error",
"creepage": "error",
"diff_pair_gap_out_of_range": "error",
"diff_pair_uncoupled_length_too_long": "error",
"drill_out_of_range": "error",
"duplicate_footprints": "warning",
"extra_footprint": "warning",
"footprint": "error",
"footprint_filters_mismatch": "ignore",
"footprint_symbol_mismatch": "warning",
"footprint_type_mismatch": "ignore",
"hole_clearance": "error",
"hole_to_hole": "warning",
"holes_co_located": "warning",
"invalid_outline": "error",
"isolated_copper": "warning",
"item_on_disabled_layer": "error",
"items_not_allowed": "error",
"length_out_of_range": "error",
"lib_footprint_issues": "warning",
"lib_footprint_mismatch": "warning",
"malformed_courtyard": "error",
"microvia_drill_out_of_range": "error",
"mirrored_text_on_front_layer": "warning",
"missing_courtyard": "ignore",
"missing_footprint": "warning",
"net_conflict": "warning",
"nonmirrored_text_on_back_layer": "warning",
"npth_inside_courtyard": "ignore",
"padstack": "warning",
"pth_inside_courtyard": "ignore",
"shorting_items": "error",
"silk_edge_clearance": "warning",
"silk_over_copper": "warning",
"silk_overlap": "warning",
"skew_out_of_range": "error",
"solder_mask_bridge": "error",
"starved_thermal": "error",
"text_height": "warning",
"text_on_edge_cuts": "error",
"text_thickness": "warning",
"through_hole_pad_without_hole": "error",
"too_many_vias": "error",
"track_angle": "error",
"track_dangling": "warning",
"track_segment_length": "error",
"track_width": "error",
"tracks_crossing": "error",
"unconnected_items": "error",
"unresolved_variable": "error",
"via_dangling": "warning",
"zones_intersect": "error"
},
"rules": {
"max_error": 0.005,
"min_clearance": 0.0,
"min_connection": 0.0,
"min_copper_edge_clearance": 0.5,
"min_groove_width": 0.0,
"min_hole_clearance": 0.25,
"min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.2,
"min_microvia_drill": 0.1,
"min_resolved_spokes": 2,
"min_silk_clearance": 0.0,
"min_text_height": 0.8,
"min_text_thickness": 0.08,
"min_through_hole_diameter": 0.3,
"min_track_width": 0.0,
"min_via_annular_width": 0.1,
"min_via_diameter": 0.5,
"solder_mask_to_copper_clearance": 0.0,
"use_height_for_length_calcs": true
},
"teardrop_options": [
{
"td_onpthpad": true,
"td_onroundshapesonly": false,
"td_onsmdpad": true,
"td_ontrackend": false,
"td_onvia": true
}
],
"teardrop_parameters": [
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_round_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_rect_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_track_end",
"td_width_to_size_filter_ratio": 0.9
}
],
"track_widths": [
0.0
],
"tuning_pattern_settings": {
"diff_pair_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 1.0
},
"diff_pair_skew_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
},
"single_track_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
}
},
"via_dimensions": [
{
"diameter": 0.0,
"drill": 0.0
}
],
"zones_allow_external_fillets": false
},
"ipc2581": {
"dist": "",
"distpn": "",
"internal_id": "",
"mfg": "",
"mpn": ""
},
"layer_pairs": [],
"layer_presets": [],
"viewports": []
},
"boards": [],
"cvpcb": {
"equivalence_files": []
},
"erc": {
"erc_exclusions": [],
"meta": {
"version": 0
},
"pin_map": [
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
1,
0,
1,
2
],
[
0,
1,
0,
0,
0,
0,
1,
1,
2,
1,
1,
2
],
[
0,
0,
0,
0,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
2
],
[
1,
1,
1,
1,
1,
0,
1,
1,
1,
1,
1,
2
],
[
0,
0,
0,
1,
0,
0,
1,
0,
0,
0,
0,
2
],
[
0,
2,
1,
2,
0,
0,
1,
0,
2,
2,
2,
2
],
[
0,
2,
0,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
0,
2,
1,
1,
0,
0,
1,
0,
2,
0,
0,
2
],
[
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2,
2
]
],
"rule_severities": {
"bus_definition_conflict": "error",
"bus_entry_needed": "error",
"bus_to_bus_conflict": "error",
"bus_to_net_conflict": "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",
"missing_unit": "warning",
"multiple_net_names": "warning",
"net_not_bus_member": "warning",
"no_connect_connected": "warning",
"no_connect_dangling": "warning",
"pin_not_connected": "error",
"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",
"undefined_netclass": "error",
"unit_value_mismatch": "error",
"unresolved_variable": "error",
"wire_dangling": "error"
}
},
"libraries": {
"pinned_footprint_libs": [],
"pinned_symbol_libs": []
},
"meta": {
"filename": "EncoderBoard.kicad_pro",
"version": 3
},
"net_settings": {
"classes": [
{
"bus_width": 12,
"clearance": 0.2,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2,
"line_style": 0,
"microvia_diameter": 0.3,
"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.2,
"via_diameter": 0.6,
"via_drill": 0.3,
"wire_width": 6
}
],
"meta": {
"version": 4
},
"net_colors": null,
"netclass_assignments": null,
"netclass_patterns": []
},
"pcbnew": {
"last_paths": {
"gencad": "",
"idf": "",
"netlist": "",
"plot": "encoder-gerber",
"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_line_thickness": 6.0,
"default_text_size": 50.0,
"field_names": [],
"intersheets_ref_own_page": false,
"intersheets_ref_prefix": "",
"intersheets_ref_short": false,
"intersheets_ref_show": false,
"intersheets_ref_suffix": "",
"junction_size_choice": 3,
"label_size_ratio": 0.375,
"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.15
},
"legacy_lib_dir": "",
"legacy_lib_list": [],
"meta": {
"version": 1
},
"net_format_name": "",
"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,
"spice_save_all_currents": false,
"spice_save_all_dissipations": false,
"spice_save_all_voltages": false,
"subpart_first_id": 65,
"subpart_id_separator": 0
},
"sheets": [
[
"76a3543d-18d5-494b-9749-b3ee4fa138fc",
"Root"
]
],
"text_variables": {}
}

File diff suppressed because it is too large Load diff

Some files were not shown because too many files have changed in this diff Show more