Compare commits
5 Commits
ea3b0f29ea
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f8547c9ff3 | ||
|
|
75672d4ec4 | ||
|
|
3551b073d7 | ||
|
|
1047fa70a0 | ||
|
|
c7adbcd1c7 |
154
Belegung Schütze.txt
Normal file
154
Belegung Schütze.txt
Normal file
@@ -0,0 +1,154 @@
|
|||||||
|
# Belegung Schütze
|
||||||
|
|
||||||
|
# Ids
|
||||||
|
|
||||||
|
* SW_FLUR = 0XD238
|
||||||
|
* SW_ANBAU = 0x87A9
|
||||||
|
* SW_WOHNZIMMER = 0x87CA
|
||||||
|
|
||||||
|
* UP_WOHNZIMMER_TUER = 0x051F
|
||||||
|
* UP_WOHNZIMMER_TERASSE = 0x05df
|
||||||
|
* UP_FLUR_EINGANG = 0x0769
|
||||||
|
* UP_BUERO = 0x1177
|
||||||
|
* UP_FLUR_BUERO = 0x05A1
|
||||||
|
* UP_FLUR_KUECHE = 0x01EF
|
||||||
|
* UP_KINDERZIMMER = 0x0196
|
||||||
|
* UP_FLUR_ELTERN = 0x0632
|
||||||
|
* UP_ELTERN = 0x08AE
|
||||||
|
* UP_KUECHE_FLUR = 0x07F5
|
||||||
|
* UP_KUECHE_BAD = 0x0585
|
||||||
|
|
||||||
|
|
||||||
|
## Offene Ideen
|
||||||
|
|
||||||
|
1. Stromzähler anzapfen und Messen
|
||||||
|
2. Gartenbeleuchtung -> 2tes Schütz im Garten
|
||||||
|
3. Klingel einbinden -> ebenfalls oben klingeln können
|
||||||
|
4. Tür von oben öffnen können.
|
||||||
|
4. Audio-Streaming
|
||||||
|
5. Garage -> Auto da, Garagentür
|
||||||
|
6. Küchenlicht an Arbeitsplatte
|
||||||
|
7. Küchenlicht von Küchentisch?
|
||||||
|
8. Automatischer Öffner Türe oben
|
||||||
|
9. Temperatursensoren einbinden in jeden Raum
|
||||||
|
|
||||||
|
## Wohnzimmer
|
||||||
|
|
||||||
|
1. Garten
|
||||||
|
2. Flur1 am Büro
|
||||||
|
3. Büro
|
||||||
|
4. Nachtlicht Vögel
|
||||||
|
5. Wohnzimmer1
|
||||||
|
6. Wohnzimmer2
|
||||||
|
7. Rollo Runter Wohnzimmer
|
||||||
|
8. Rollo Hoch Wohnzimmer
|
||||||
|
|
||||||
|
## Flur
|
||||||
|
|
||||||
|
1. ---
|
||||||
|
2. Licht Schlafzimmer
|
||||||
|
3. Licht Linus
|
||||||
|
4. Rollo hoch Linus
|
||||||
|
5. Rollo runter Linus
|
||||||
|
6. Flur2 am Eingang
|
||||||
|
|
||||||
|
## Anbau
|
||||||
|
|
||||||
|
1. Kabüffchen
|
||||||
|
2. Unterlicht Küche
|
||||||
|
3. Licht Küche
|
||||||
|
4. Badezimmer
|
||||||
|
|
||||||
|
# Unterputz IDs
|
||||||
|
|
||||||
|
## Linus Zimmer
|
||||||
|
|
||||||
|
Id: 0x0196
|
||||||
|
Belegung:
|
||||||
|
|---+---| |-------|
|
||||||
|
| 3 | 4 |--| 8 |
|
||||||
|
|---+---| |-------|
|
||||||
|
| 4 | 1 |
|
||||||
|
|---+---|
|
||||||
|
| 7 |
|
||||||
|
|-------|
|
||||||
|
|
||||||
|
# Wohnzimmer Türe
|
||||||
|
|
||||||
|
Id: 0x051F
|
||||||
|
|-------|
|
||||||
|
| - |
|
||||||
|
+---+---|
|
||||||
|
| 3 | 2 |
|
||||||
|
|---+---|
|
||||||
|
| 1 |
|
||||||
|
|---+---|
|
||||||
|
| O O |
|
||||||
|
+-------+
|
||||||
|
|
||||||
|
## Küche Badezimmer
|
||||||
|
|
||||||
|
Id: 0x0585
|
||||||
|
Belegung:
|
||||||
|
|---+---| |-------|
|
||||||
|
| 1 |--| 3 |
|
||||||
|
|---+---| |-------|
|
||||||
|
| 2 |
|
||||||
|
|---+---|
|
||||||
|
| O O |
|
||||||
|
|-------|+
|
||||||
|
|
||||||
|
|
||||||
|
## Küche Flur
|
||||||
|
|
||||||
|
Id: 0x07F5
|
||||||
|
Belegung:
|
||||||
|
|---+---|
|
||||||
|
| 1 |
|
||||||
|
|---+---|
|
||||||
|
| 2 |
|
||||||
|
|---+---|
|
||||||
|
| |
|
||||||
|
|-------|
|
||||||
|
|
||||||
|
|
||||||
|
## Flur eingang
|
||||||
|
|
||||||
|
Id: 0x0769
|
||||||
|
Belegung:
|
||||||
|
|---+---|
|
||||||
|
| 1 |
|
||||||
|
|---+---|
|
||||||
|
| 2 |
|
||||||
|
|---+---|
|
||||||
|
| |
|
||||||
|
|-------|
|
||||||
|
|
||||||
|
|
||||||
|
## Büro
|
||||||
|
|
||||||
|
Id: 0x1177
|
||||||
|
Belegung:
|
||||||
|
|---+---|
|
||||||
|
| 1 |
|
||||||
|
|---+---|
|
||||||
|
|
||||||
|
|
||||||
|
## Flur-Büro
|
||||||
|
|
||||||
|
Id: 0x05A1
|
||||||
|
Belegung:
|
||||||
|
|---+---|
|
||||||
|
| 1 |
|
||||||
|
|---+---|
|
||||||
|
|
||||||
|
|
||||||
|
## Flur-Küche
|
||||||
|
|
||||||
|
Id: 0x01EF
|
||||||
|
Belegung:
|
||||||
|
|---+---|
|
||||||
|
| 1 |
|
||||||
|
|---+---|
|
||||||
|
|
||||||
|
|
||||||
Binary file not shown.
2
MeyCan2025/MeyCan2025l/MeyCan2025l.kicad_pcb
Normal file
2
MeyCan2025/MeyCan2025l/MeyCan2025l.kicad_pcb
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
(kicad_pcb (version 20211014) (generator pcbnew)
|
||||||
|
)
|
||||||
130
MeyCan2025/MeyCan2025l/MeyCan2025l.kicad_prl
Normal file
130
MeyCan2025/MeyCan2025l/MeyCan2025l.kicad_prl
Normal file
@@ -0,0 +1,130 @@
|
|||||||
|
{
|
||||||
|
"board": {
|
||||||
|
"active_layer": 0,
|
||||||
|
"active_layer_preset": "",
|
||||||
|
"auto_track_width": true,
|
||||||
|
"hidden_netclasses": [],
|
||||||
|
"hidden_nets": [],
|
||||||
|
"high_contrast_mode": 0,
|
||||||
|
"net_color_mode": 1,
|
||||||
|
"opacity": {
|
||||||
|
"images": 0.6,
|
||||||
|
"pads": 1.0,
|
||||||
|
"shapes": 1.0,
|
||||||
|
"tracks": 1.0,
|
||||||
|
"vias": 1.0,
|
||||||
|
"zones": 0.6
|
||||||
|
},
|
||||||
|
"selection_filter": {
|
||||||
|
"dimensions": true,
|
||||||
|
"footprints": true,
|
||||||
|
"graphics": true,
|
||||||
|
"keepouts": true,
|
||||||
|
"lockedItems": false,
|
||||||
|
"otherItems": true,
|
||||||
|
"pads": true,
|
||||||
|
"text": true,
|
||||||
|
"tracks": true,
|
||||||
|
"vias": true,
|
||||||
|
"zones": true
|
||||||
|
},
|
||||||
|
"visible_items": [
|
||||||
|
"vias",
|
||||||
|
"footprint_text",
|
||||||
|
"footprint_anchors",
|
||||||
|
"ratsnest",
|
||||||
|
"grid",
|
||||||
|
"footprints_front",
|
||||||
|
"footprints_back",
|
||||||
|
"footprint_values",
|
||||||
|
"footprint_references",
|
||||||
|
"tracks",
|
||||||
|
"drc_errors",
|
||||||
|
"drawing_sheet",
|
||||||
|
"bitmaps",
|
||||||
|
"pads",
|
||||||
|
"zones",
|
||||||
|
"drc_warnings",
|
||||||
|
"locked_item_shadows",
|
||||||
|
"conflict_shadows",
|
||||||
|
"shapes"
|
||||||
|
],
|
||||||
|
"visible_layers": "ffffffff_ffffffff_ffffffff_ffffffff",
|
||||||
|
"zone_display_mode": 0
|
||||||
|
},
|
||||||
|
"git": {
|
||||||
|
"repo_type": "",
|
||||||
|
"repo_username": "",
|
||||||
|
"ssh_key": ""
|
||||||
|
},
|
||||||
|
"meta": {
|
||||||
|
"filename": "MeyCan2025l.kicad_prl",
|
||||||
|
"version": 5
|
||||||
|
},
|
||||||
|
"net_inspector_panel": {
|
||||||
|
"col_hidden": [
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
false
|
||||||
|
],
|
||||||
|
"col_order": [
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
3,
|
||||||
|
4,
|
||||||
|
5,
|
||||||
|
6,
|
||||||
|
7,
|
||||||
|
8,
|
||||||
|
9
|
||||||
|
],
|
||||||
|
"col_widths": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"custom_group_rules": [],
|
||||||
|
"expanded_rows": [],
|
||||||
|
"filter_by_net_name": true,
|
||||||
|
"filter_by_netclass": true,
|
||||||
|
"filter_text": "",
|
||||||
|
"group_by_constraint": false,
|
||||||
|
"group_by_netclass": false,
|
||||||
|
"show_unconnected_nets": false,
|
||||||
|
"show_zero_pad_nets": false,
|
||||||
|
"sort_ascending": true,
|
||||||
|
"sorting_column": 0
|
||||||
|
},
|
||||||
|
"open_jobsets": [],
|
||||||
|
"project": {
|
||||||
|
"files": []
|
||||||
|
},
|
||||||
|
"schematic": {
|
||||||
|
"selection_filter": {
|
||||||
|
"graphics": true,
|
||||||
|
"images": true,
|
||||||
|
"labels": true,
|
||||||
|
"lockedItems": false,
|
||||||
|
"otherItems": true,
|
||||||
|
"pins": true,
|
||||||
|
"symbols": true,
|
||||||
|
"text": true,
|
||||||
|
"wires": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
424
MeyCan2025/MeyCan2025l/MeyCan2025l.kicad_pro
Normal file
424
MeyCan2025/MeyCan2025l/MeyCan2025l.kicad_pro
Normal file
@@ -0,0 +1,424 @@
|
|||||||
|
{
|
||||||
|
"board": {
|
||||||
|
"3dviewports": [],
|
||||||
|
"design_settings": {
|
||||||
|
"defaults": {
|
||||||
|
"board_outline_line_width": 0.1,
|
||||||
|
"copper_line_width": 0.2,
|
||||||
|
"copper_text_size_h": 1.5,
|
||||||
|
"copper_text_size_v": 1.5,
|
||||||
|
"copper_text_thickness": 0.3,
|
||||||
|
"other_line_width": 0.15,
|
||||||
|
"silk_line_width": 0.15,
|
||||||
|
"silk_text_size_h": 1.0,
|
||||||
|
"silk_text_size_v": 1.0,
|
||||||
|
"silk_text_thickness": 0.15
|
||||||
|
},
|
||||||
|
"diff_pair_dimensions": [],
|
||||||
|
"drc_exclusions": [],
|
||||||
|
"rules": {
|
||||||
|
"min_copper_edge_clearance": 0.0,
|
||||||
|
"solder_mask_clearance": 0.0,
|
||||||
|
"solder_mask_min_width": 0.0
|
||||||
|
},
|
||||||
|
"track_widths": [],
|
||||||
|
"via_dimensions": []
|
||||||
|
},
|
||||||
|
"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": "MeyCan2025l.kicad_pro",
|
||||||
|
"version": 3
|
||||||
|
},
|
||||||
|
"net_settings": {
|
||||||
|
"classes": [
|
||||||
|
{
|
||||||
|
"clearance": 0.2,
|
||||||
|
"diff_pair_gap": 0.25,
|
||||||
|
"diff_pair_via_gap": 0.25,
|
||||||
|
"diff_pair_width": 0.2,
|
||||||
|
"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.25,
|
||||||
|
"via_diameter": 0.8,
|
||||||
|
"via_drill": 0.4
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"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": "Referenz"
|
||||||
|
},
|
||||||
|
"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": [],
|
||||||
|
"text_variables": {}
|
||||||
|
}
|
||||||
5
MeyCan2025/MeyCan2025l/MeyCan2025l.kicad_sch
Normal file
5
MeyCan2025/MeyCan2025l/MeyCan2025l.kicad_sch
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
(kicad_sch (version 20211123) (generator eeschema)
|
||||||
|
(paper "A4")
|
||||||
|
(lib_symbols)
|
||||||
|
(symbol_instances)
|
||||||
|
)
|
||||||
2536
MeyCan2025/Meycad2025.kicad_sch
Normal file
2536
MeyCan2025/Meycad2025.kicad_sch
Normal file
File diff suppressed because it is too large
Load Diff
418
Meycad-B_Cu.gbr
418
Meycad-B_Cu.gbr
@@ -1,209 +1,209 @@
|
|||||||
%TF.GenerationSoftware,KiCad,Pcbnew,(6.0.4)*%
|
%TF.GenerationSoftware,KiCad,Pcbnew,(6.0.4)*%
|
||||||
%TF.CreationDate,2022-05-25T07:35:57+02:00*%
|
%TF.CreationDate,2022-05-25T07:35:57+02:00*%
|
||||||
%TF.ProjectId,Meycad,4d657963-6164-42e6-9b69-6361645f7063,rev?*%
|
%TF.ProjectId,Meycad,4d657963-6164-42e6-9b69-6361645f7063,rev?*%
|
||||||
%TF.SameCoordinates,Original*%
|
%TF.SameCoordinates,Original*%
|
||||||
%TF.FileFunction,Copper,L2,Bot*%
|
%TF.FileFunction,Copper,L2,Bot*%
|
||||||
%TF.FilePolarity,Positive*%
|
%TF.FilePolarity,Positive*%
|
||||||
%FSLAX46Y46*%
|
%FSLAX46Y46*%
|
||||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||||
G04 Created by KiCad (PCBNEW (6.0.4)) date 2022-05-25 07:35:57*
|
G04 Created by KiCad (PCBNEW (6.0.4)) date 2022-05-25 07:35:57*
|
||||||
%MOMM*%
|
%MOMM*%
|
||||||
%LPD*%
|
%LPD*%
|
||||||
G01*
|
G01*
|
||||||
G04 APERTURE LIST*
|
G04 APERTURE LIST*
|
||||||
%TA.AperFunction,ComponentPad*%
|
%TA.AperFunction,ComponentPad*%
|
||||||
%ADD10C,2.400000*%
|
%ADD10C,2.400000*%
|
||||||
%TD*%
|
%TD*%
|
||||||
%TA.AperFunction,ComponentPad*%
|
%TA.AperFunction,ComponentPad*%
|
||||||
%ADD11R,2.400000X2.400000*%
|
%ADD11R,2.400000X2.400000*%
|
||||||
%TD*%
|
%TD*%
|
||||||
%TA.AperFunction,ComponentPad*%
|
%TA.AperFunction,ComponentPad*%
|
||||||
%ADD12R,1.600000X1.600000*%
|
%ADD12R,1.600000X1.600000*%
|
||||||
%TD*%
|
%TD*%
|
||||||
%TA.AperFunction,ComponentPad*%
|
%TA.AperFunction,ComponentPad*%
|
||||||
%ADD13O,1.600000X1.600000*%
|
%ADD13O,1.600000X1.600000*%
|
||||||
%TD*%
|
%TD*%
|
||||||
%TA.AperFunction,ComponentPad*%
|
%TA.AperFunction,ComponentPad*%
|
||||||
%ADD14C,1.600000*%
|
%ADD14C,1.600000*%
|
||||||
%TD*%
|
%TD*%
|
||||||
%TA.AperFunction,ComponentPad*%
|
%TA.AperFunction,ComponentPad*%
|
||||||
%ADD15R,1.000000X1.000000*%
|
%ADD15R,1.000000X1.000000*%
|
||||||
%TD*%
|
%TD*%
|
||||||
%TA.AperFunction,ComponentPad*%
|
%TA.AperFunction,ComponentPad*%
|
||||||
%ADD16O,1.000000X1.000000*%
|
%ADD16O,1.000000X1.000000*%
|
||||||
%TD*%
|
%TD*%
|
||||||
%TA.AperFunction,Conductor*%
|
%TA.AperFunction,Conductor*%
|
||||||
%ADD17C,0.250000*%
|
%ADD17C,0.250000*%
|
||||||
%TD*%
|
%TD*%
|
||||||
G04 APERTURE END LIST*
|
G04 APERTURE END LIST*
|
||||||
D10*
|
D10*
|
||||||
%TO.P,J1,4,Pin_4*%
|
%TO.P,J1,4,Pin_4*%
|
||||||
%TO.N,Net-(J1-Pad4)*%
|
%TO.N,Net-(J1-Pad4)*%
|
||||||
X116220000Y-100900000D03*
|
X116220000Y-100900000D03*
|
||||||
%TO.P,J1,3,Pin_3*%
|
%TO.P,J1,3,Pin_3*%
|
||||||
%TO.N,Net-(J1-Pad3)*%
|
%TO.N,Net-(J1-Pad3)*%
|
||||||
X112720000Y-100900000D03*
|
X112720000Y-100900000D03*
|
||||||
%TO.P,J1,2,Pin_2*%
|
%TO.P,J1,2,Pin_2*%
|
||||||
%TO.N,+5V*%
|
%TO.N,+5V*%
|
||||||
X109220000Y-100900000D03*
|
X109220000Y-100900000D03*
|
||||||
D11*
|
D11*
|
||||||
%TO.P,J1,1,Pin_1*%
|
%TO.P,J1,1,Pin_1*%
|
||||||
%TO.N,GNDREF*%
|
%TO.N,GNDREF*%
|
||||||
X105720000Y-100900000D03*
|
X105720000Y-100900000D03*
|
||||||
%TD*%
|
%TD*%
|
||||||
D12*
|
D12*
|
||||||
%TO.P,A1,1,D1/TX*%
|
%TO.P,A1,1,D1/TX*%
|
||||||
%TO.N,unconnected-(A1-Pad1)*%
|
%TO.N,unconnected-(A1-Pad1)*%
|
||||||
X87630000Y-83810000D03*
|
X87630000Y-83810000D03*
|
||||||
D13*
|
D13*
|
||||||
%TO.P,A1,2,D0/RX*%
|
%TO.P,A1,2,D0/RX*%
|
||||||
%TO.N,unconnected-(A1-Pad2)*%
|
%TO.N,unconnected-(A1-Pad2)*%
|
||||||
X90170000Y-83810000D03*
|
X90170000Y-83810000D03*
|
||||||
%TO.P,A1,3,~{RESET}*%
|
%TO.P,A1,3,~{RESET}*%
|
||||||
%TO.N,unconnected-(A1-Pad3)*%
|
%TO.N,unconnected-(A1-Pad3)*%
|
||||||
X92710000Y-83810000D03*
|
X92710000Y-83810000D03*
|
||||||
%TO.P,A1,4,GND*%
|
%TO.P,A1,4,GND*%
|
||||||
%TO.N,GNDREF*%
|
%TO.N,GNDREF*%
|
||||||
X95250000Y-83810000D03*
|
X95250000Y-83810000D03*
|
||||||
%TO.P,A1,5,D2*%
|
%TO.P,A1,5,D2*%
|
||||||
%TO.N,unconnected-(A1-Pad5)*%
|
%TO.N,unconnected-(A1-Pad5)*%
|
||||||
X97790000Y-83810000D03*
|
X97790000Y-83810000D03*
|
||||||
%TO.P,A1,6,D3*%
|
%TO.P,A1,6,D3*%
|
||||||
%TO.N,unconnected-(A1-Pad6)*%
|
%TO.N,unconnected-(A1-Pad6)*%
|
||||||
X100330000Y-83810000D03*
|
X100330000Y-83810000D03*
|
||||||
%TO.P,A1,7,D4*%
|
%TO.P,A1,7,D4*%
|
||||||
%TO.N,unconnected-(A1-Pad7)*%
|
%TO.N,unconnected-(A1-Pad7)*%
|
||||||
X102870000Y-83810000D03*
|
X102870000Y-83810000D03*
|
||||||
%TO.P,A1,8,D5*%
|
%TO.P,A1,8,D5*%
|
||||||
%TO.N,unconnected-(A1-Pad8)*%
|
%TO.N,unconnected-(A1-Pad8)*%
|
||||||
X105410000Y-83810000D03*
|
X105410000Y-83810000D03*
|
||||||
%TO.P,A1,9,D6*%
|
%TO.P,A1,9,D6*%
|
||||||
%TO.N,unconnected-(A1-Pad9)*%
|
%TO.N,unconnected-(A1-Pad9)*%
|
||||||
X107950000Y-83810000D03*
|
X107950000Y-83810000D03*
|
||||||
%TO.P,A1,10,D7*%
|
%TO.P,A1,10,D7*%
|
||||||
%TO.N,unconnected-(A1-Pad10)*%
|
%TO.N,unconnected-(A1-Pad10)*%
|
||||||
X110490000Y-83810000D03*
|
X110490000Y-83810000D03*
|
||||||
%TO.P,A1,11,D8*%
|
%TO.P,A1,11,D8*%
|
||||||
%TO.N,unconnected-(A1-Pad11)*%
|
%TO.N,unconnected-(A1-Pad11)*%
|
||||||
X113030000Y-83810000D03*
|
X113030000Y-83810000D03*
|
||||||
%TO.P,A1,12,D9*%
|
%TO.P,A1,12,D9*%
|
||||||
%TO.N,unconnected-(A1-Pad12)*%
|
%TO.N,unconnected-(A1-Pad12)*%
|
||||||
X115570000Y-83810000D03*
|
X115570000Y-83810000D03*
|
||||||
%TO.P,A1,13,D10*%
|
%TO.P,A1,13,D10*%
|
||||||
%TO.N,Net-(A1-Pad13)*%
|
%TO.N,Net-(A1-Pad13)*%
|
||||||
X118110000Y-83810000D03*
|
X118110000Y-83810000D03*
|
||||||
%TO.P,A1,14,D11*%
|
%TO.P,A1,14,D11*%
|
||||||
%TO.N,Net-(A1-Pad14)*%
|
%TO.N,Net-(A1-Pad14)*%
|
||||||
X120650000Y-83810000D03*
|
X120650000Y-83810000D03*
|
||||||
%TO.P,A1,15,D12*%
|
%TO.P,A1,15,D12*%
|
||||||
%TO.N,Net-(A1-Pad15)*%
|
%TO.N,Net-(A1-Pad15)*%
|
||||||
X123190000Y-83810000D03*
|
X123190000Y-83810000D03*
|
||||||
%TO.P,A1,16,D13*%
|
%TO.P,A1,16,D13*%
|
||||||
%TO.N,Net-(A1-Pad16)*%
|
%TO.N,Net-(A1-Pad16)*%
|
||||||
X123190000Y-68570000D03*
|
X123190000Y-68570000D03*
|
||||||
%TO.P,A1,17,3V3*%
|
%TO.P,A1,17,3V3*%
|
||||||
%TO.N,unconnected-(A1-Pad17)*%
|
%TO.N,unconnected-(A1-Pad17)*%
|
||||||
X120650000Y-68570000D03*
|
X120650000Y-68570000D03*
|
||||||
%TO.P,A1,18,AREF*%
|
%TO.P,A1,18,AREF*%
|
||||||
%TO.N,unconnected-(A1-Pad18)*%
|
%TO.N,unconnected-(A1-Pad18)*%
|
||||||
X118110000Y-68570000D03*
|
X118110000Y-68570000D03*
|
||||||
%TO.P,A1,19,A0*%
|
%TO.P,A1,19,A0*%
|
||||||
%TO.N,unconnected-(A1-Pad19)*%
|
%TO.N,unconnected-(A1-Pad19)*%
|
||||||
X115570000Y-68570000D03*
|
X115570000Y-68570000D03*
|
||||||
%TO.P,A1,20,A1*%
|
%TO.P,A1,20,A1*%
|
||||||
%TO.N,unconnected-(A1-Pad20)*%
|
%TO.N,unconnected-(A1-Pad20)*%
|
||||||
X113030000Y-68570000D03*
|
X113030000Y-68570000D03*
|
||||||
%TO.P,A1,21,A2*%
|
%TO.P,A1,21,A2*%
|
||||||
%TO.N,unconnected-(A1-Pad21)*%
|
%TO.N,unconnected-(A1-Pad21)*%
|
||||||
X110490000Y-68570000D03*
|
X110490000Y-68570000D03*
|
||||||
%TO.P,A1,22,A3*%
|
%TO.P,A1,22,A3*%
|
||||||
%TO.N,unconnected-(A1-Pad22)*%
|
%TO.N,unconnected-(A1-Pad22)*%
|
||||||
X107950000Y-68570000D03*
|
X107950000Y-68570000D03*
|
||||||
%TO.P,A1,23,A4*%
|
%TO.P,A1,23,A4*%
|
||||||
%TO.N,unconnected-(A1-Pad23)*%
|
%TO.N,unconnected-(A1-Pad23)*%
|
||||||
X105410000Y-68570000D03*
|
X105410000Y-68570000D03*
|
||||||
%TO.P,A1,24,A5*%
|
%TO.P,A1,24,A5*%
|
||||||
%TO.N,unconnected-(A1-Pad24)*%
|
%TO.N,unconnected-(A1-Pad24)*%
|
||||||
X102870000Y-68570000D03*
|
X102870000Y-68570000D03*
|
||||||
%TO.P,A1,25,A6*%
|
%TO.P,A1,25,A6*%
|
||||||
%TO.N,unconnected-(A1-Pad25)*%
|
%TO.N,unconnected-(A1-Pad25)*%
|
||||||
X100330000Y-68570000D03*
|
X100330000Y-68570000D03*
|
||||||
%TO.P,A1,26,A7*%
|
%TO.P,A1,26,A7*%
|
||||||
%TO.N,unconnected-(A1-Pad26)*%
|
%TO.N,unconnected-(A1-Pad26)*%
|
||||||
X97790000Y-68570000D03*
|
X97790000Y-68570000D03*
|
||||||
%TO.P,A1,27,+5V*%
|
%TO.P,A1,27,+5V*%
|
||||||
%TO.N,Net-(A1-Pad27)*%
|
%TO.N,Net-(A1-Pad27)*%
|
||||||
X95250000Y-68570000D03*
|
X95250000Y-68570000D03*
|
||||||
%TO.P,A1,28,~{RESET}*%
|
%TO.P,A1,28,~{RESET}*%
|
||||||
%TO.N,unconnected-(A1-Pad28)*%
|
%TO.N,unconnected-(A1-Pad28)*%
|
||||||
X92710000Y-68570000D03*
|
X92710000Y-68570000D03*
|
||||||
%TO.P,A1,29,GND*%
|
%TO.P,A1,29,GND*%
|
||||||
%TO.N,GNDREF*%
|
%TO.N,GNDREF*%
|
||||||
X90170000Y-68570000D03*
|
X90170000Y-68570000D03*
|
||||||
%TO.P,A1,30,VIN*%
|
%TO.P,A1,30,VIN*%
|
||||||
%TO.N,unconnected-(A1-Pad30)*%
|
%TO.N,unconnected-(A1-Pad30)*%
|
||||||
X87630000Y-68570000D03*
|
X87630000Y-68570000D03*
|
||||||
%TD*%
|
%TD*%
|
||||||
D12*
|
D12*
|
||||||
%TO.P,C1,1*%
|
%TO.P,C1,1*%
|
||||||
%TO.N,GNDREF*%
|
%TO.N,GNDREF*%
|
||||||
X91440000Y-93980000D03*
|
X91440000Y-93980000D03*
|
||||||
D14*
|
D14*
|
||||||
%TO.P,C1,2*%
|
%TO.P,C1,2*%
|
||||||
%TO.N,Net-(C1-Pad2)*%
|
%TO.N,Net-(C1-Pad2)*%
|
||||||
X93940000Y-93980000D03*
|
X93940000Y-93980000D03*
|
||||||
%TD*%
|
%TD*%
|
||||||
D15*
|
D15*
|
||||||
%TO.P,JP1,1,A*%
|
%TO.P,JP1,1,A*%
|
||||||
%TO.N,Net-(J1-Pad4)*%
|
%TO.N,Net-(J1-Pad4)*%
|
||||||
X96520000Y-99060000D03*
|
X96520000Y-99060000D03*
|
||||||
D16*
|
D16*
|
||||||
%TO.P,JP1,2,B*%
|
%TO.P,JP1,2,B*%
|
||||||
%TO.N,Net-(JP1-Pad2)*%
|
%TO.N,Net-(JP1-Pad2)*%
|
||||||
X96520000Y-97790000D03*
|
X96520000Y-97790000D03*
|
||||||
%TD*%
|
%TD*%
|
||||||
D12*
|
D12*
|
||||||
%TO.P,C2,1*%
|
%TO.P,C2,1*%
|
||||||
%TO.N,GNDREF*%
|
%TO.N,GNDREF*%
|
||||||
X94020000Y-88900000D03*
|
X94020000Y-88900000D03*
|
||||||
D14*
|
D14*
|
||||||
%TO.P,C2,2*%
|
%TO.P,C2,2*%
|
||||||
%TO.N,Net-(C2-Pad2)*%
|
%TO.N,Net-(C2-Pad2)*%
|
||||||
X96520000Y-88900000D03*
|
X96520000Y-88900000D03*
|
||||||
%TD*%
|
%TD*%
|
||||||
D17*
|
D17*
|
||||||
%TO.N,Net-(A1-Pad27)*%
|
%TO.N,Net-(A1-Pad27)*%
|
||||||
X117555311Y-91440000D02*
|
X117555311Y-91440000D02*
|
||||||
X120650000Y-94534689D01*
|
X120650000Y-94534689D01*
|
||||||
X120650000Y-94534689D02*
|
X120650000Y-94534689D02*
|
||||||
X120650000Y-99060000D01*
|
X120650000Y-99060000D01*
|
||||||
X106680000Y-88900000D02*
|
X106680000Y-88900000D02*
|
||||||
X109220000Y-91440000D01*
|
X109220000Y-91440000D01*
|
||||||
X109220000Y-91440000D02*
|
X109220000Y-91440000D02*
|
||||||
X117555311Y-91440000D01*
|
X117555311Y-91440000D01*
|
||||||
X106690000Y-88890000D02*
|
X106690000Y-88890000D02*
|
||||||
X106680000Y-88900000D01*
|
X106680000Y-88900000D01*
|
||||||
X106690000Y-87645000D02*
|
X106690000Y-87645000D02*
|
||||||
X106690000Y-88890000D01*
|
X106690000Y-88890000D01*
|
||||||
X105425000Y-87645000D02*
|
X105425000Y-87645000D02*
|
||||||
X106690000Y-87645000D01*
|
X106690000Y-87645000D01*
|
||||||
X104140000Y-86360000D02*
|
X104140000Y-86360000D02*
|
||||||
X105425000Y-87645000D01*
|
X105425000Y-87645000D01*
|
||||||
X99060000Y-86360000D02*
|
X99060000Y-86360000D02*
|
||||||
X104140000Y-86360000D01*
|
X104140000Y-86360000D01*
|
||||||
X97780000Y-87640000D02*
|
X97780000Y-87640000D02*
|
||||||
X99060000Y-86360000D01*
|
X99060000Y-86360000D01*
|
||||||
X97780000Y-93985000D02*
|
X97780000Y-93985000D02*
|
||||||
X97780000Y-87640000D01*
|
X97780000Y-87640000D01*
|
||||||
X106690000Y-80010000D02*
|
X106690000Y-80010000D02*
|
||||||
X106690000Y-87645000D01*
|
X106690000Y-87645000D01*
|
||||||
X95250000Y-68570000D02*
|
X95250000Y-68570000D02*
|
||||||
X106690000Y-80010000D01*
|
X106690000Y-80010000D01*
|
||||||
X99060000Y-63500000D02*
|
X99060000Y-63500000D02*
|
||||||
X101600000Y-63500000D01*
|
X101600000Y-63500000D01*
|
||||||
X95250000Y-67310000D02*
|
X95250000Y-67310000D02*
|
||||||
X99060000Y-63500000D01*
|
X99060000Y-63500000D01*
|
||||||
X95250000Y-68570000D02*
|
X95250000Y-68570000D02*
|
||||||
X95250000Y-67310000D01*
|
X95250000Y-67310000D01*
|
||||||
%TD*%
|
%TD*%
|
||||||
M02*
|
M02*
|
||||||
|
|||||||
@@ -1,87 +1,87 @@
|
|||||||
%TF.GenerationSoftware,KiCad,Pcbnew,(6.0.4)*%
|
%TF.GenerationSoftware,KiCad,Pcbnew,(6.0.4)*%
|
||||||
%TF.CreationDate,2022-05-25T07:35:57+02:00*%
|
%TF.CreationDate,2022-05-25T07:35:57+02:00*%
|
||||||
%TF.ProjectId,Meycad,4d657963-6164-42e6-9b69-6361645f7063,rev?*%
|
%TF.ProjectId,Meycad,4d657963-6164-42e6-9b69-6361645f7063,rev?*%
|
||||||
%TF.SameCoordinates,Original*%
|
%TF.SameCoordinates,Original*%
|
||||||
%TF.FileFunction,Soldermask,Bot*%
|
%TF.FileFunction,Soldermask,Bot*%
|
||||||
%TF.FilePolarity,Negative*%
|
%TF.FilePolarity,Negative*%
|
||||||
%FSLAX46Y46*%
|
%FSLAX46Y46*%
|
||||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||||
G04 Created by KiCad (PCBNEW (6.0.4)) date 2022-05-25 07:35:57*
|
G04 Created by KiCad (PCBNEW (6.0.4)) date 2022-05-25 07:35:57*
|
||||||
%MOMM*%
|
%MOMM*%
|
||||||
%LPD*%
|
%LPD*%
|
||||||
G01*
|
G01*
|
||||||
G04 APERTURE LIST*
|
G04 APERTURE LIST*
|
||||||
%ADD10C,2.100000*%
|
%ADD10C,2.100000*%
|
||||||
%ADD11C,2.400000*%
|
%ADD11C,2.400000*%
|
||||||
%ADD12R,2.400000X2.400000*%
|
%ADD12R,2.400000X2.400000*%
|
||||||
%ADD13R,1.600000X1.600000*%
|
%ADD13R,1.600000X1.600000*%
|
||||||
%ADD14O,1.600000X1.600000*%
|
%ADD14O,1.600000X1.600000*%
|
||||||
%ADD15C,1.600000*%
|
%ADD15C,1.600000*%
|
||||||
%ADD16R,1.000000X1.000000*%
|
%ADD16R,1.000000X1.000000*%
|
||||||
%ADD17O,1.000000X1.000000*%
|
%ADD17O,1.000000X1.000000*%
|
||||||
G04 APERTURE END LIST*
|
G04 APERTURE END LIST*
|
||||||
D10*
|
D10*
|
||||||
%TO.C,REF\u002A\u002A*%
|
%TO.C,REF\u002A\u002A*%
|
||||||
X109220000Y-58420000D03*
|
X109220000Y-58420000D03*
|
||||||
%TD*%
|
%TD*%
|
||||||
D11*
|
D11*
|
||||||
%TO.C,J1*%
|
%TO.C,J1*%
|
||||||
X116220000Y-100900000D03*
|
X116220000Y-100900000D03*
|
||||||
X112720000Y-100900000D03*
|
X112720000Y-100900000D03*
|
||||||
X109220000Y-100900000D03*
|
X109220000Y-100900000D03*
|
||||||
D12*
|
D12*
|
||||||
X105720000Y-100900000D03*
|
X105720000Y-100900000D03*
|
||||||
%TD*%
|
%TD*%
|
||||||
D13*
|
D13*
|
||||||
%TO.C,A1*%
|
%TO.C,A1*%
|
||||||
X87630000Y-83810000D03*
|
X87630000Y-83810000D03*
|
||||||
D14*
|
D14*
|
||||||
X90170000Y-83810000D03*
|
X90170000Y-83810000D03*
|
||||||
X92710000Y-83810000D03*
|
X92710000Y-83810000D03*
|
||||||
X95250000Y-83810000D03*
|
X95250000Y-83810000D03*
|
||||||
X97790000Y-83810000D03*
|
X97790000Y-83810000D03*
|
||||||
X100330000Y-83810000D03*
|
X100330000Y-83810000D03*
|
||||||
X102870000Y-83810000D03*
|
X102870000Y-83810000D03*
|
||||||
X105410000Y-83810000D03*
|
X105410000Y-83810000D03*
|
||||||
X107950000Y-83810000D03*
|
X107950000Y-83810000D03*
|
||||||
X110490000Y-83810000D03*
|
X110490000Y-83810000D03*
|
||||||
X113030000Y-83810000D03*
|
X113030000Y-83810000D03*
|
||||||
X115570000Y-83810000D03*
|
X115570000Y-83810000D03*
|
||||||
X118110000Y-83810000D03*
|
X118110000Y-83810000D03*
|
||||||
X120650000Y-83810000D03*
|
X120650000Y-83810000D03*
|
||||||
X123190000Y-83810000D03*
|
X123190000Y-83810000D03*
|
||||||
X123190000Y-68570000D03*
|
X123190000Y-68570000D03*
|
||||||
X120650000Y-68570000D03*
|
X120650000Y-68570000D03*
|
||||||
X118110000Y-68570000D03*
|
X118110000Y-68570000D03*
|
||||||
X115570000Y-68570000D03*
|
X115570000Y-68570000D03*
|
||||||
X113030000Y-68570000D03*
|
X113030000Y-68570000D03*
|
||||||
X110490000Y-68570000D03*
|
X110490000Y-68570000D03*
|
||||||
X107950000Y-68570000D03*
|
X107950000Y-68570000D03*
|
||||||
X105410000Y-68570000D03*
|
X105410000Y-68570000D03*
|
||||||
X102870000Y-68570000D03*
|
X102870000Y-68570000D03*
|
||||||
X100330000Y-68570000D03*
|
X100330000Y-68570000D03*
|
||||||
X97790000Y-68570000D03*
|
X97790000Y-68570000D03*
|
||||||
X95250000Y-68570000D03*
|
X95250000Y-68570000D03*
|
||||||
X92710000Y-68570000D03*
|
X92710000Y-68570000D03*
|
||||||
X90170000Y-68570000D03*
|
X90170000Y-68570000D03*
|
||||||
X87630000Y-68570000D03*
|
X87630000Y-68570000D03*
|
||||||
%TD*%
|
%TD*%
|
||||||
D13*
|
D13*
|
||||||
%TO.C,C1*%
|
%TO.C,C1*%
|
||||||
X91440000Y-93980000D03*
|
X91440000Y-93980000D03*
|
||||||
D15*
|
D15*
|
||||||
X93940000Y-93980000D03*
|
X93940000Y-93980000D03*
|
||||||
%TD*%
|
%TD*%
|
||||||
D16*
|
D16*
|
||||||
%TO.C,JP1*%
|
%TO.C,JP1*%
|
||||||
X96520000Y-99060000D03*
|
X96520000Y-99060000D03*
|
||||||
D17*
|
D17*
|
||||||
X96520000Y-97790000D03*
|
X96520000Y-97790000D03*
|
||||||
%TD*%
|
%TD*%
|
||||||
D13*
|
D13*
|
||||||
%TO.C,C2*%
|
%TO.C,C2*%
|
||||||
X94020000Y-88900000D03*
|
X94020000Y-88900000D03*
|
||||||
D15*
|
D15*
|
||||||
X96520000Y-88900000D03*
|
X96520000Y-88900000D03*
|
||||||
%TD*%
|
%TD*%
|
||||||
M02*
|
M02*
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
%TF.GenerationSoftware,KiCad,Pcbnew,(6.0.4)*%
|
%TF.GenerationSoftware,KiCad,Pcbnew,(6.0.4)*%
|
||||||
%TF.CreationDate,2022-05-25T07:35:57+02:00*%
|
%TF.CreationDate,2022-05-25T07:35:57+02:00*%
|
||||||
%TF.ProjectId,Meycad,4d657963-6164-42e6-9b69-6361645f7063,rev?*%
|
%TF.ProjectId,Meycad,4d657963-6164-42e6-9b69-6361645f7063,rev?*%
|
||||||
%TF.SameCoordinates,Original*%
|
%TF.SameCoordinates,Original*%
|
||||||
%TF.FileFunction,Paste,Bot*%
|
%TF.FileFunction,Paste,Bot*%
|
||||||
%TF.FilePolarity,Positive*%
|
%TF.FilePolarity,Positive*%
|
||||||
%FSLAX46Y46*%
|
%FSLAX46Y46*%
|
||||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||||
G04 Created by KiCad (PCBNEW (6.0.4)) date 2022-05-25 07:35:57*
|
G04 Created by KiCad (PCBNEW (6.0.4)) date 2022-05-25 07:35:57*
|
||||||
%MOMM*%
|
%MOMM*%
|
||||||
%LPD*%
|
%LPD*%
|
||||||
G01*
|
G01*
|
||||||
G04 APERTURE LIST*
|
G04 APERTURE LIST*
|
||||||
G04 APERTURE END LIST*
|
G04 APERTURE END LIST*
|
||||||
M02*
|
M02*
|
||||||
|
|||||||
@@ -1,71 +1,71 @@
|
|||||||
%TF.GenerationSoftware,KiCad,Pcbnew,(6.0.4)*%
|
%TF.GenerationSoftware,KiCad,Pcbnew,(6.0.4)*%
|
||||||
%TF.CreationDate,2022-05-25T07:35:57+02:00*%
|
%TF.CreationDate,2022-05-25T07:35:57+02:00*%
|
||||||
%TF.ProjectId,Meycad,4d657963-6164-42e6-9b69-6361645f7063,rev?*%
|
%TF.ProjectId,Meycad,4d657963-6164-42e6-9b69-6361645f7063,rev?*%
|
||||||
%TF.SameCoordinates,Original*%
|
%TF.SameCoordinates,Original*%
|
||||||
%TF.FileFunction,Legend,Bot*%
|
%TF.FileFunction,Legend,Bot*%
|
||||||
%TF.FilePolarity,Positive*%
|
%TF.FilePolarity,Positive*%
|
||||||
%FSLAX46Y46*%
|
%FSLAX46Y46*%
|
||||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||||
G04 Created by KiCad (PCBNEW (6.0.4)) date 2022-05-25 07:35:57*
|
G04 Created by KiCad (PCBNEW (6.0.4)) date 2022-05-25 07:35:57*
|
||||||
%MOMM*%
|
%MOMM*%
|
||||||
%LPD*%
|
%LPD*%
|
||||||
G01*
|
G01*
|
||||||
G04 APERTURE LIST*
|
G04 APERTURE LIST*
|
||||||
%ADD10C,0.150000*%
|
%ADD10C,0.150000*%
|
||||||
G04 APERTURE END LIST*
|
G04 APERTURE END LIST*
|
||||||
D10*
|
D10*
|
||||||
X124086666Y-63285714D02*
|
X124086666Y-63285714D02*
|
||||||
X123705714Y-63285714D01*
|
X123705714Y-63285714D01*
|
||||||
X123943809Y-62952380D02*
|
X123943809Y-62952380D02*
|
||||||
X123943809Y-63809523D01*
|
X123943809Y-63809523D01*
|
||||||
X123896190Y-63904761D01*
|
X123896190Y-63904761D01*
|
||||||
X123800952Y-63952380D01*
|
X123800952Y-63952380D01*
|
||||||
X123705714Y-63952380D01*
|
X123705714Y-63952380D01*
|
||||||
X122991428Y-63904761D02*
|
X122991428Y-63904761D02*
|
||||||
X123086666Y-63952380D01*
|
X123086666Y-63952380D01*
|
||||||
X123277142Y-63952380D01*
|
X123277142Y-63952380D01*
|
||||||
X123372380Y-63904761D01*
|
X123372380Y-63904761D01*
|
||||||
X123420000Y-63809523D01*
|
X123420000Y-63809523D01*
|
||||||
X123420000Y-63428571D01*
|
X123420000Y-63428571D01*
|
||||||
X123372380Y-63333333D01*
|
X123372380Y-63333333D01*
|
||||||
X123277142Y-63285714D01*
|
X123277142Y-63285714D01*
|
||||||
X123086666Y-63285714D01*
|
X123086666Y-63285714D01*
|
||||||
X122991428Y-63333333D01*
|
X122991428Y-63333333D01*
|
||||||
X122943809Y-63428571D01*
|
X122943809Y-63428571D01*
|
||||||
X122943809Y-63523809D01*
|
X122943809Y-63523809D01*
|
||||||
X123420000Y-63619047D01*
|
X123420000Y-63619047D01*
|
||||||
X122562857Y-63904761D02*
|
X122562857Y-63904761D02*
|
||||||
X122467619Y-63952380D01*
|
X122467619Y-63952380D01*
|
||||||
X122277142Y-63952380D01*
|
X122277142Y-63952380D01*
|
||||||
X122181904Y-63904761D01*
|
X122181904Y-63904761D01*
|
||||||
X122134285Y-63809523D01*
|
X122134285Y-63809523D01*
|
||||||
X122134285Y-63761904D01*
|
X122134285Y-63761904D01*
|
||||||
X122181904Y-63666666D01*
|
X122181904Y-63666666D01*
|
||||||
X122277142Y-63619047D01*
|
X122277142Y-63619047D01*
|
||||||
X122420000Y-63619047D01*
|
X122420000Y-63619047D01*
|
||||||
X122515238Y-63571428D01*
|
X122515238Y-63571428D01*
|
||||||
X122562857Y-63476190D01*
|
X122562857Y-63476190D01*
|
||||||
X122562857Y-63428571D01*
|
X122562857Y-63428571D01*
|
||||||
X122515238Y-63333333D01*
|
X122515238Y-63333333D01*
|
||||||
X122420000Y-63285714D01*
|
X122420000Y-63285714D01*
|
||||||
X122277142Y-63285714D01*
|
X122277142Y-63285714D01*
|
||||||
X122181904Y-63333333D01*
|
X122181904Y-63333333D01*
|
||||||
X121848571Y-63285714D02*
|
X121848571Y-63285714D02*
|
||||||
X121467619Y-63285714D01*
|
X121467619Y-63285714D01*
|
||||||
X121705714Y-62952380D02*
|
X121705714Y-62952380D02*
|
||||||
X121705714Y-63809523D01*
|
X121705714Y-63809523D01*
|
||||||
X121658095Y-63904761D01*
|
X121658095Y-63904761D01*
|
||||||
X121562857Y-63952380D01*
|
X121562857Y-63952380D01*
|
||||||
X121467619Y-63952380D01*
|
X121467619Y-63952380D01*
|
||||||
X120420000Y-63047619D02*
|
X120420000Y-63047619D02*
|
||||||
X120372380Y-63000000D01*
|
X120372380Y-63000000D01*
|
||||||
X120277142Y-62952380D01*
|
X120277142Y-62952380D01*
|
||||||
X120039047Y-62952380D01*
|
X120039047Y-62952380D01*
|
||||||
X119943809Y-63000000D01*
|
X119943809Y-63000000D01*
|
||||||
X119896190Y-63047619D01*
|
X119896190Y-63047619D01*
|
||||||
X119848571Y-63142857D01*
|
X119848571Y-63142857D01*
|
||||||
X119848571Y-63238095D01*
|
X119848571Y-63238095D01*
|
||||||
X119896190Y-63380952D01*
|
X119896190Y-63380952D01*
|
||||||
X120467619Y-63952380D01*
|
X120467619Y-63952380D01*
|
||||||
X119848571Y-63952380D01*
|
X119848571Y-63952380D01*
|
||||||
M02*
|
M02*
|
||||||
|
|||||||
@@ -1,37 +1,37 @@
|
|||||||
%TF.GenerationSoftware,KiCad,Pcbnew,(6.0.4)*%
|
%TF.GenerationSoftware,KiCad,Pcbnew,(6.0.4)*%
|
||||||
%TF.CreationDate,2022-05-25T07:35:57+02:00*%
|
%TF.CreationDate,2022-05-25T07:35:57+02:00*%
|
||||||
%TF.ProjectId,Meycad,4d657963-6164-42e6-9b69-6361645f7063,rev?*%
|
%TF.ProjectId,Meycad,4d657963-6164-42e6-9b69-6361645f7063,rev?*%
|
||||||
%TF.SameCoordinates,Original*%
|
%TF.SameCoordinates,Original*%
|
||||||
%TF.FileFunction,Profile,NP*%
|
%TF.FileFunction,Profile,NP*%
|
||||||
%FSLAX46Y46*%
|
%FSLAX46Y46*%
|
||||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||||
G04 Created by KiCad (PCBNEW (6.0.4)) date 2022-05-25 07:35:57*
|
G04 Created by KiCad (PCBNEW (6.0.4)) date 2022-05-25 07:35:57*
|
||||||
%MOMM*%
|
%MOMM*%
|
||||||
%LPD*%
|
%LPD*%
|
||||||
G01*
|
G01*
|
||||||
G04 APERTURE LIST*
|
G04 APERTURE LIST*
|
||||||
%TA.AperFunction,Profile*%
|
%TA.AperFunction,Profile*%
|
||||||
%ADD10C,0.100000*%
|
%ADD10C,0.100000*%
|
||||||
%TD*%
|
%TD*%
|
||||||
G04 APERTURE END LIST*
|
G04 APERTURE END LIST*
|
||||||
D10*
|
D10*
|
||||||
X119380000Y-60960000D02*
|
X119380000Y-60960000D02*
|
||||||
X124460000Y-60960000D01*
|
X124460000Y-60960000D01*
|
||||||
X119380000Y-58420000D02*
|
X119380000Y-58420000D02*
|
||||||
X119380000Y-60960000D01*
|
X119380000Y-60960000D01*
|
||||||
X134620001Y-81280000D02*
|
X134620001Y-81280000D02*
|
||||||
G75*
|
G75*
|
||||||
G03*
|
G03*
|
||||||
X134620001Y-81280000I-1J0D01*
|
X134620001Y-81280000I-1J0D01*
|
||||||
G01*
|
G01*
|
||||||
X124460001Y-104140000D02*
|
X124460001Y-104140000D02*
|
||||||
G75*
|
G75*
|
||||||
G03*
|
G03*
|
||||||
X124460001Y-104140000I-1J0D01*
|
X124460001Y-104140000I-1J0D01*
|
||||||
G01*
|
G01*
|
||||||
X132619430Y-81280000D02*
|
X132619430Y-81280000D02*
|
||||||
G75*
|
G75*
|
||||||
G03*
|
G03*
|
||||||
X132619430Y-81280000I-25000000J0D01*
|
X132619430Y-81280000I-25000000J0D01*
|
||||||
G01*
|
G01*
|
||||||
M02*
|
M02*
|
||||||
|
|||||||
5142
Meycad-F_Cu.gbr
5142
Meycad-F_Cu.gbr
File diff suppressed because it is too large
Load Diff
@@ -1,154 +1,154 @@
|
|||||||
%TF.GenerationSoftware,KiCad,Pcbnew,(6.0.4)*%
|
%TF.GenerationSoftware,KiCad,Pcbnew,(6.0.4)*%
|
||||||
%TF.CreationDate,2022-05-25T07:35:57+02:00*%
|
%TF.CreationDate,2022-05-25T07:35:57+02:00*%
|
||||||
%TF.ProjectId,Meycad,4d657963-6164-42e6-9b69-6361645f7063,rev?*%
|
%TF.ProjectId,Meycad,4d657963-6164-42e6-9b69-6361645f7063,rev?*%
|
||||||
%TF.SameCoordinates,Original*%
|
%TF.SameCoordinates,Original*%
|
||||||
%TF.FileFunction,Soldermask,Top*%
|
%TF.FileFunction,Soldermask,Top*%
|
||||||
%TF.FilePolarity,Negative*%
|
%TF.FilePolarity,Negative*%
|
||||||
%FSLAX46Y46*%
|
%FSLAX46Y46*%
|
||||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||||
G04 Created by KiCad (PCBNEW (6.0.4)) date 2022-05-25 07:35:57*
|
G04 Created by KiCad (PCBNEW (6.0.4)) date 2022-05-25 07:35:57*
|
||||||
%MOMM*%
|
%MOMM*%
|
||||||
%LPD*%
|
%LPD*%
|
||||||
G01*
|
G01*
|
||||||
G04 APERTURE LIST*
|
G04 APERTURE LIST*
|
||||||
G04 Aperture macros list*
|
G04 Aperture macros list*
|
||||||
%AMRoundRect*
|
%AMRoundRect*
|
||||||
0 Rectangle with rounded corners*
|
0 Rectangle with rounded corners*
|
||||||
0 $1 Rounding radius*
|
0 $1 Rounding radius*
|
||||||
0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners*
|
0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners*
|
||||||
0 Add a 4 corners polygon primitive as box body*
|
0 Add a 4 corners polygon primitive as box body*
|
||||||
4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0*
|
4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0*
|
||||||
0 Add four circle primitives for the rounded corners*
|
0 Add four circle primitives for the rounded corners*
|
||||||
1,1,$1+$1,$2,$3*
|
1,1,$1+$1,$2,$3*
|
||||||
1,1,$1+$1,$4,$5*
|
1,1,$1+$1,$4,$5*
|
||||||
1,1,$1+$1,$6,$7*
|
1,1,$1+$1,$6,$7*
|
||||||
1,1,$1+$1,$8,$9*
|
1,1,$1+$1,$8,$9*
|
||||||
0 Add four rect primitives between the rounded corners*
|
0 Add four rect primitives between the rounded corners*
|
||||||
20,1,$1+$1,$2,$3,$4,$5,0*
|
20,1,$1+$1,$2,$3,$4,$5,0*
|
||||||
20,1,$1+$1,$4,$5,$6,$7,0*
|
20,1,$1+$1,$4,$5,$6,$7,0*
|
||||||
20,1,$1+$1,$6,$7,$8,$9,0*
|
20,1,$1+$1,$6,$7,$8,$9,0*
|
||||||
20,1,$1+$1,$8,$9,$2,$3,0*%
|
20,1,$1+$1,$8,$9,$2,$3,0*%
|
||||||
G04 Aperture macros list end*
|
G04 Aperture macros list end*
|
||||||
%ADD10C,2.100000*%
|
%ADD10C,2.100000*%
|
||||||
%ADD11R,2.275000X2.200000*%
|
%ADD11R,2.275000X2.200000*%
|
||||||
%ADD12RoundRect,0.150000X0.587500X0.150000X-0.587500X0.150000X-0.587500X-0.150000X0.587500X-0.150000X0*%
|
%ADD12RoundRect,0.150000X0.587500X0.150000X-0.587500X0.150000X-0.587500X-0.150000X0.587500X-0.150000X0*%
|
||||||
%ADD13R,0.950000X2.800000*%
|
%ADD13R,0.950000X2.800000*%
|
||||||
%ADD14RoundRect,0.100000X-0.100000X-0.200000X0.100000X-0.200000X0.100000X0.200000X-0.100000X0.200000X0*%
|
%ADD14RoundRect,0.100000X-0.100000X-0.200000X0.100000X-0.200000X0.100000X0.200000X-0.100000X0.200000X0*%
|
||||||
%ADD15RoundRect,0.135000X0.185000X-0.135000X0.185000X0.135000X-0.185000X0.135000X-0.185000X-0.135000X0*%
|
%ADD15RoundRect,0.135000X0.185000X-0.135000X0.185000X0.135000X-0.185000X0.135000X-0.185000X-0.135000X0*%
|
||||||
%ADD16RoundRect,0.135000X-0.135000X-0.185000X0.135000X-0.185000X0.135000X0.185000X-0.135000X0.185000X0*%
|
%ADD16RoundRect,0.135000X-0.135000X-0.185000X0.135000X-0.185000X0.135000X0.185000X-0.135000X0.185000X0*%
|
||||||
%ADD17C,2.400000*%
|
%ADD17C,2.400000*%
|
||||||
%ADD18R,2.400000X2.400000*%
|
%ADD18R,2.400000X2.400000*%
|
||||||
%ADD19R,1.600000X1.600000*%
|
%ADD19R,1.600000X1.600000*%
|
||||||
%ADD20O,1.600000X1.600000*%
|
%ADD20O,1.600000X1.600000*%
|
||||||
%ADD21C,1.600000*%
|
%ADD21C,1.600000*%
|
||||||
%ADD22R,1.000000X1.000000*%
|
%ADD22R,1.000000X1.000000*%
|
||||||
%ADD23O,1.000000X1.000000*%
|
%ADD23O,1.000000X1.000000*%
|
||||||
G04 APERTURE END LIST*
|
G04 APERTURE END LIST*
|
||||||
D10*
|
D10*
|
||||||
%TO.C,REF\u002A\u002A*%
|
%TO.C,REF\u002A\u002A*%
|
||||||
X109220000Y-58420000D03*
|
X109220000Y-58420000D03*
|
||||||
%TD*%
|
%TD*%
|
||||||
D11*
|
D11*
|
||||||
%TO.C,Y1*%
|
%TO.C,Y1*%
|
||||||
X114300000Y-88900000D03*
|
X114300000Y-88900000D03*
|
||||||
X109125000Y-88900000D03*
|
X109125000Y-88900000D03*
|
||||||
%TD*%
|
%TD*%
|
||||||
D12*
|
D12*
|
||||||
%TO.C,U3*%
|
%TO.C,U3*%
|
||||||
X122857500Y-100010000D03*
|
X122857500Y-100010000D03*
|
||||||
X122857500Y-98110000D03*
|
X122857500Y-98110000D03*
|
||||||
X120982500Y-99060000D03*
|
X120982500Y-99060000D03*
|
||||||
%TD*%
|
%TD*%
|
||||||
D13*
|
D13*
|
||||||
%TO.C,U2*%
|
%TO.C,U2*%
|
||||||
X124220000Y-88040000D03*
|
X124220000Y-88040000D03*
|
||||||
X122680000Y-88040000D03*
|
X122680000Y-88040000D03*
|
||||||
X121160000Y-88040000D03*
|
X121160000Y-88040000D03*
|
||||||
X119620000Y-88040000D03*
|
X119620000Y-88040000D03*
|
||||||
X119620000Y-94840000D03*
|
X119620000Y-94840000D03*
|
||||||
X121160000Y-94840000D03*
|
X121160000Y-94840000D03*
|
||||||
X122680000Y-94840000D03*
|
X122680000Y-94840000D03*
|
||||||
X124220000Y-94840000D03*
|
X124220000Y-94840000D03*
|
||||||
%TD*%
|
%TD*%
|
||||||
D14*
|
D14*
|
||||||
%TO.C,U1*%
|
%TO.C,U1*%
|
||||||
X110785000Y-95380000D03*
|
X110785000Y-95380000D03*
|
||||||
X111435000Y-95380000D03*
|
X111435000Y-95380000D03*
|
||||||
X112085000Y-95380000D03*
|
X112085000Y-95380000D03*
|
||||||
X112735000Y-95380000D03*
|
X112735000Y-95380000D03*
|
||||||
X112735000Y-92580000D03*
|
X112735000Y-92580000D03*
|
||||||
X112085000Y-92580000D03*
|
X112085000Y-92580000D03*
|
||||||
X111435000Y-92580000D03*
|
X111435000Y-92580000D03*
|
||||||
X110785000Y-92580000D03*
|
X110785000Y-92580000D03*
|
||||||
%TD*%
|
%TD*%
|
||||||
D15*
|
D15*
|
||||||
%TO.C,R2*%
|
%TO.C,R2*%
|
||||||
X99060000Y-102110000D03*
|
X99060000Y-102110000D03*
|
||||||
X99060000Y-101090000D03*
|
X99060000Y-101090000D03*
|
||||||
%TD*%
|
%TD*%
|
||||||
D16*
|
D16*
|
||||||
%TO.C,R1*%
|
%TO.C,R1*%
|
||||||
X101090000Y-63500000D03*
|
X101090000Y-63500000D03*
|
||||||
X102110000Y-63500000D03*
|
X102110000Y-63500000D03*
|
||||||
%TD*%
|
%TD*%
|
||||||
D17*
|
D17*
|
||||||
%TO.C,J1*%
|
%TO.C,J1*%
|
||||||
X116220000Y-100900000D03*
|
X116220000Y-100900000D03*
|
||||||
X112720000Y-100900000D03*
|
X112720000Y-100900000D03*
|
||||||
X109220000Y-100900000D03*
|
X109220000Y-100900000D03*
|
||||||
D18*
|
D18*
|
||||||
X105720000Y-100900000D03*
|
X105720000Y-100900000D03*
|
||||||
%TD*%
|
%TD*%
|
||||||
D19*
|
D19*
|
||||||
%TO.C,A1*%
|
%TO.C,A1*%
|
||||||
X87630000Y-83810000D03*
|
X87630000Y-83810000D03*
|
||||||
D20*
|
D20*
|
||||||
X90170000Y-83810000D03*
|
X90170000Y-83810000D03*
|
||||||
X92710000Y-83810000D03*
|
X92710000Y-83810000D03*
|
||||||
X95250000Y-83810000D03*
|
X95250000Y-83810000D03*
|
||||||
X97790000Y-83810000D03*
|
X97790000Y-83810000D03*
|
||||||
X100330000Y-83810000D03*
|
X100330000Y-83810000D03*
|
||||||
X102870000Y-83810000D03*
|
X102870000Y-83810000D03*
|
||||||
X105410000Y-83810000D03*
|
X105410000Y-83810000D03*
|
||||||
X107950000Y-83810000D03*
|
X107950000Y-83810000D03*
|
||||||
X110490000Y-83810000D03*
|
X110490000Y-83810000D03*
|
||||||
X113030000Y-83810000D03*
|
X113030000Y-83810000D03*
|
||||||
X115570000Y-83810000D03*
|
X115570000Y-83810000D03*
|
||||||
X118110000Y-83810000D03*
|
X118110000Y-83810000D03*
|
||||||
X120650000Y-83810000D03*
|
X120650000Y-83810000D03*
|
||||||
X123190000Y-83810000D03*
|
X123190000Y-83810000D03*
|
||||||
X123190000Y-68570000D03*
|
X123190000Y-68570000D03*
|
||||||
X120650000Y-68570000D03*
|
X120650000Y-68570000D03*
|
||||||
X118110000Y-68570000D03*
|
X118110000Y-68570000D03*
|
||||||
X115570000Y-68570000D03*
|
X115570000Y-68570000D03*
|
||||||
X113030000Y-68570000D03*
|
X113030000Y-68570000D03*
|
||||||
X110490000Y-68570000D03*
|
X110490000Y-68570000D03*
|
||||||
X107950000Y-68570000D03*
|
X107950000Y-68570000D03*
|
||||||
X105410000Y-68570000D03*
|
X105410000Y-68570000D03*
|
||||||
X102870000Y-68570000D03*
|
X102870000Y-68570000D03*
|
||||||
X100330000Y-68570000D03*
|
X100330000Y-68570000D03*
|
||||||
X97790000Y-68570000D03*
|
X97790000Y-68570000D03*
|
||||||
X95250000Y-68570000D03*
|
X95250000Y-68570000D03*
|
||||||
X92710000Y-68570000D03*
|
X92710000Y-68570000D03*
|
||||||
X90170000Y-68570000D03*
|
X90170000Y-68570000D03*
|
||||||
X87630000Y-68570000D03*
|
X87630000Y-68570000D03*
|
||||||
%TD*%
|
%TD*%
|
||||||
D19*
|
D19*
|
||||||
%TO.C,C1*%
|
%TO.C,C1*%
|
||||||
X91440000Y-93980000D03*
|
X91440000Y-93980000D03*
|
||||||
D21*
|
D21*
|
||||||
X93940000Y-93980000D03*
|
X93940000Y-93980000D03*
|
||||||
%TD*%
|
%TD*%
|
||||||
D22*
|
D22*
|
||||||
%TO.C,JP1*%
|
%TO.C,JP1*%
|
||||||
X96520000Y-99060000D03*
|
X96520000Y-99060000D03*
|
||||||
D23*
|
D23*
|
||||||
X96520000Y-97790000D03*
|
X96520000Y-97790000D03*
|
||||||
%TD*%
|
%TD*%
|
||||||
D19*
|
D19*
|
||||||
%TO.C,C2*%
|
%TO.C,C2*%
|
||||||
X94020000Y-88900000D03*
|
X94020000Y-88900000D03*
|
||||||
D21*
|
D21*
|
||||||
X96520000Y-88900000D03*
|
X96520000Y-88900000D03*
|
||||||
%TD*%
|
%TD*%
|
||||||
M02*
|
M02*
|
||||||
|
|||||||
@@ -1,82 +1,82 @@
|
|||||||
%TF.GenerationSoftware,KiCad,Pcbnew,(6.0.4)*%
|
%TF.GenerationSoftware,KiCad,Pcbnew,(6.0.4)*%
|
||||||
%TF.CreationDate,2022-05-25T07:35:57+02:00*%
|
%TF.CreationDate,2022-05-25T07:35:57+02:00*%
|
||||||
%TF.ProjectId,Meycad,4d657963-6164-42e6-9b69-6361645f7063,rev?*%
|
%TF.ProjectId,Meycad,4d657963-6164-42e6-9b69-6361645f7063,rev?*%
|
||||||
%TF.SameCoordinates,Original*%
|
%TF.SameCoordinates,Original*%
|
||||||
%TF.FileFunction,Paste,Top*%
|
%TF.FileFunction,Paste,Top*%
|
||||||
%TF.FilePolarity,Positive*%
|
%TF.FilePolarity,Positive*%
|
||||||
%FSLAX46Y46*%
|
%FSLAX46Y46*%
|
||||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||||
G04 Created by KiCad (PCBNEW (6.0.4)) date 2022-05-25 07:35:57*
|
G04 Created by KiCad (PCBNEW (6.0.4)) date 2022-05-25 07:35:57*
|
||||||
%MOMM*%
|
%MOMM*%
|
||||||
%LPD*%
|
%LPD*%
|
||||||
G01*
|
G01*
|
||||||
G04 APERTURE LIST*
|
G04 APERTURE LIST*
|
||||||
G04 Aperture macros list*
|
G04 Aperture macros list*
|
||||||
%AMRoundRect*
|
%AMRoundRect*
|
||||||
0 Rectangle with rounded corners*
|
0 Rectangle with rounded corners*
|
||||||
0 $1 Rounding radius*
|
0 $1 Rounding radius*
|
||||||
0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners*
|
0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners*
|
||||||
0 Add a 4 corners polygon primitive as box body*
|
0 Add a 4 corners polygon primitive as box body*
|
||||||
4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0*
|
4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0*
|
||||||
0 Add four circle primitives for the rounded corners*
|
0 Add four circle primitives for the rounded corners*
|
||||||
1,1,$1+$1,$2,$3*
|
1,1,$1+$1,$2,$3*
|
||||||
1,1,$1+$1,$4,$5*
|
1,1,$1+$1,$4,$5*
|
||||||
1,1,$1+$1,$6,$7*
|
1,1,$1+$1,$6,$7*
|
||||||
1,1,$1+$1,$8,$9*
|
1,1,$1+$1,$8,$9*
|
||||||
0 Add four rect primitives between the rounded corners*
|
0 Add four rect primitives between the rounded corners*
|
||||||
20,1,$1+$1,$2,$3,$4,$5,0*
|
20,1,$1+$1,$2,$3,$4,$5,0*
|
||||||
20,1,$1+$1,$4,$5,$6,$7,0*
|
20,1,$1+$1,$4,$5,$6,$7,0*
|
||||||
20,1,$1+$1,$6,$7,$8,$9,0*
|
20,1,$1+$1,$6,$7,$8,$9,0*
|
||||||
20,1,$1+$1,$8,$9,$2,$3,0*%
|
20,1,$1+$1,$8,$9,$2,$3,0*%
|
||||||
G04 Aperture macros list end*
|
G04 Aperture macros list end*
|
||||||
%ADD10R,2.275000X2.200000*%
|
%ADD10R,2.275000X2.200000*%
|
||||||
%ADD11RoundRect,0.150000X0.587500X0.150000X-0.587500X0.150000X-0.587500X-0.150000X0.587500X-0.150000X0*%
|
%ADD11RoundRect,0.150000X0.587500X0.150000X-0.587500X0.150000X-0.587500X-0.150000X0.587500X-0.150000X0*%
|
||||||
%ADD12R,0.950000X2.800000*%
|
%ADD12R,0.950000X2.800000*%
|
||||||
%ADD13RoundRect,0.100000X-0.100000X-0.200000X0.100000X-0.200000X0.100000X0.200000X-0.100000X0.200000X0*%
|
%ADD13RoundRect,0.100000X-0.100000X-0.200000X0.100000X-0.200000X0.100000X0.200000X-0.100000X0.200000X0*%
|
||||||
%ADD14RoundRect,0.135000X0.185000X-0.135000X0.185000X0.135000X-0.185000X0.135000X-0.185000X-0.135000X0*%
|
%ADD14RoundRect,0.135000X0.185000X-0.135000X0.185000X0.135000X-0.185000X0.135000X-0.185000X-0.135000X0*%
|
||||||
%ADD15RoundRect,0.135000X-0.135000X-0.185000X0.135000X-0.185000X0.135000X0.185000X-0.135000X0.185000X0*%
|
%ADD15RoundRect,0.135000X-0.135000X-0.185000X0.135000X-0.185000X0.135000X0.185000X-0.135000X0.185000X0*%
|
||||||
G04 APERTURE END LIST*
|
G04 APERTURE END LIST*
|
||||||
D10*
|
D10*
|
||||||
%TO.C,Y1*%
|
%TO.C,Y1*%
|
||||||
X114300000Y-88900000D03*
|
X114300000Y-88900000D03*
|
||||||
X109125000Y-88900000D03*
|
X109125000Y-88900000D03*
|
||||||
%TD*%
|
%TD*%
|
||||||
D11*
|
D11*
|
||||||
%TO.C,U3*%
|
%TO.C,U3*%
|
||||||
X122857500Y-100010000D03*
|
X122857500Y-100010000D03*
|
||||||
X122857500Y-98110000D03*
|
X122857500Y-98110000D03*
|
||||||
X120982500Y-99060000D03*
|
X120982500Y-99060000D03*
|
||||||
%TD*%
|
%TD*%
|
||||||
D12*
|
D12*
|
||||||
%TO.C,U2*%
|
%TO.C,U2*%
|
||||||
X124220000Y-88040000D03*
|
X124220000Y-88040000D03*
|
||||||
X122680000Y-88040000D03*
|
X122680000Y-88040000D03*
|
||||||
X121160000Y-88040000D03*
|
X121160000Y-88040000D03*
|
||||||
X119620000Y-88040000D03*
|
X119620000Y-88040000D03*
|
||||||
X119620000Y-94840000D03*
|
X119620000Y-94840000D03*
|
||||||
X121160000Y-94840000D03*
|
X121160000Y-94840000D03*
|
||||||
X122680000Y-94840000D03*
|
X122680000Y-94840000D03*
|
||||||
X124220000Y-94840000D03*
|
X124220000Y-94840000D03*
|
||||||
%TD*%
|
%TD*%
|
||||||
D13*
|
D13*
|
||||||
%TO.C,U1*%
|
%TO.C,U1*%
|
||||||
X110785000Y-95380000D03*
|
X110785000Y-95380000D03*
|
||||||
X111435000Y-95380000D03*
|
X111435000Y-95380000D03*
|
||||||
X112085000Y-95380000D03*
|
X112085000Y-95380000D03*
|
||||||
X112735000Y-95380000D03*
|
X112735000Y-95380000D03*
|
||||||
X112735000Y-92580000D03*
|
X112735000Y-92580000D03*
|
||||||
X112085000Y-92580000D03*
|
X112085000Y-92580000D03*
|
||||||
X111435000Y-92580000D03*
|
X111435000Y-92580000D03*
|
||||||
X110785000Y-92580000D03*
|
X110785000Y-92580000D03*
|
||||||
%TD*%
|
%TD*%
|
||||||
D14*
|
D14*
|
||||||
%TO.C,R2*%
|
%TO.C,R2*%
|
||||||
X99060000Y-102110000D03*
|
X99060000Y-102110000D03*
|
||||||
X99060000Y-101090000D03*
|
X99060000Y-101090000D03*
|
||||||
%TD*%
|
%TD*%
|
||||||
D15*
|
D15*
|
||||||
%TO.C,R1*%
|
%TO.C,R1*%
|
||||||
X101090000Y-63500000D03*
|
X101090000Y-63500000D03*
|
||||||
X102110000Y-63500000D03*
|
X102110000Y-63500000D03*
|
||||||
%TD*%
|
%TD*%
|
||||||
M02*
|
M02*
|
||||||
|
|||||||
@@ -1,493 +1,493 @@
|
|||||||
%TF.GenerationSoftware,KiCad,Pcbnew,(6.0.4)*%
|
%TF.GenerationSoftware,KiCad,Pcbnew,(6.0.4)*%
|
||||||
%TF.CreationDate,2022-05-25T07:35:57+02:00*%
|
%TF.CreationDate,2022-05-25T07:35:57+02:00*%
|
||||||
%TF.ProjectId,Meycad,4d657963-6164-42e6-9b69-6361645f7063,rev?*%
|
%TF.ProjectId,Meycad,4d657963-6164-42e6-9b69-6361645f7063,rev?*%
|
||||||
%TF.SameCoordinates,Original*%
|
%TF.SameCoordinates,Original*%
|
||||||
%TF.FileFunction,Legend,Top*%
|
%TF.FileFunction,Legend,Top*%
|
||||||
%TF.FilePolarity,Positive*%
|
%TF.FilePolarity,Positive*%
|
||||||
%FSLAX46Y46*%
|
%FSLAX46Y46*%
|
||||||
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||||
G04 Created by KiCad (PCBNEW (6.0.4)) date 2022-05-25 07:35:57*
|
G04 Created by KiCad (PCBNEW (6.0.4)) date 2022-05-25 07:35:57*
|
||||||
%MOMM*%
|
%MOMM*%
|
||||||
%LPD*%
|
%LPD*%
|
||||||
G01*
|
G01*
|
||||||
G04 APERTURE LIST*
|
G04 APERTURE LIST*
|
||||||
%ADD10C,0.150000*%
|
%ADD10C,0.150000*%
|
||||||
%ADD11C,0.120000*%
|
%ADD11C,0.120000*%
|
||||||
%ADD12C,0.100000*%
|
%ADD12C,0.100000*%
|
||||||
G04 APERTURE END LIST*
|
G04 APERTURE END LIST*
|
||||||
D10*
|
D10*
|
||||||
%TO.C,REF\u002A\u002A*%
|
%TO.C,REF\u002A\u002A*%
|
||||||
X107886666Y-55672380D02*
|
X107886666Y-55672380D02*
|
||||||
X107553333Y-55196190D01*
|
X107553333Y-55196190D01*
|
||||||
X107315238Y-55672380D02*
|
X107315238Y-55672380D02*
|
||||||
X107315238Y-54672380D01*
|
X107315238Y-54672380D01*
|
||||||
X107696190Y-54672380D01*
|
X107696190Y-54672380D01*
|
||||||
X107791428Y-54720000D01*
|
X107791428Y-54720000D01*
|
||||||
X107839047Y-54767619D01*
|
X107839047Y-54767619D01*
|
||||||
X107886666Y-54862857D01*
|
X107886666Y-54862857D01*
|
||||||
X107886666Y-55005714D01*
|
X107886666Y-55005714D01*
|
||||||
X107839047Y-55100952D01*
|
X107839047Y-55100952D01*
|
||||||
X107791428Y-55148571D01*
|
X107791428Y-55148571D01*
|
||||||
X107696190Y-55196190D01*
|
X107696190Y-55196190D01*
|
||||||
X107315238Y-55196190D01*
|
X107315238Y-55196190D01*
|
||||||
X108315238Y-55148571D02*
|
X108315238Y-55148571D02*
|
||||||
X108648571Y-55148571D01*
|
X108648571Y-55148571D01*
|
||||||
X108791428Y-55672380D02*
|
X108791428Y-55672380D02*
|
||||||
X108315238Y-55672380D01*
|
X108315238Y-55672380D01*
|
||||||
X108315238Y-54672380D01*
|
X108315238Y-54672380D01*
|
||||||
X108791428Y-54672380D01*
|
X108791428Y-54672380D01*
|
||||||
X109553333Y-55148571D02*
|
X109553333Y-55148571D02*
|
||||||
X109220000Y-55148571D01*
|
X109220000Y-55148571D01*
|
||||||
X109220000Y-55672380D02*
|
X109220000Y-55672380D02*
|
||||||
X109220000Y-54672380D01*
|
X109220000Y-54672380D01*
|
||||||
X109696190Y-54672380D01*
|
X109696190Y-54672380D01*
|
||||||
X110220000Y-54672380D02*
|
X110220000Y-54672380D02*
|
||||||
X110220000Y-54910476D01*
|
X110220000Y-54910476D01*
|
||||||
X109981904Y-54815238D02*
|
X109981904Y-54815238D02*
|
||||||
X110220000Y-54910476D01*
|
X110220000Y-54910476D01*
|
||||||
X110458095Y-54815238D01*
|
X110458095Y-54815238D01*
|
||||||
X110077142Y-55100952D02*
|
X110077142Y-55100952D02*
|
||||||
X110220000Y-54910476D01*
|
X110220000Y-54910476D01*
|
||||||
X110362857Y-55100952D01*
|
X110362857Y-55100952D01*
|
||||||
X110981904Y-54672380D02*
|
X110981904Y-54672380D02*
|
||||||
X110981904Y-54910476D01*
|
X110981904Y-54910476D01*
|
||||||
X110743809Y-54815238D02*
|
X110743809Y-54815238D02*
|
||||||
X110981904Y-54910476D01*
|
X110981904Y-54910476D01*
|
||||||
X111220000Y-54815238D01*
|
X111220000Y-54815238D01*
|
||||||
X110839047Y-55100952D02*
|
X110839047Y-55100952D02*
|
||||||
X110981904Y-54910476D01*
|
X110981904Y-54910476D01*
|
||||||
X111124761Y-55100952D01*
|
X111124761Y-55100952D01*
|
||||||
%TO.C,Y1*%
|
%TO.C,Y1*%
|
||||||
X111236309Y-91026190D02*
|
X111236309Y-91026190D02*
|
||||||
X111236309Y-91502380D01*
|
X111236309Y-91502380D01*
|
||||||
X110902976Y-90502380D02*
|
X110902976Y-90502380D02*
|
||||||
X111236309Y-91026190D01*
|
X111236309Y-91026190D01*
|
||||||
X111569642Y-90502380D01*
|
X111569642Y-90502380D01*
|
||||||
X112426785Y-91502380D02*
|
X112426785Y-91502380D02*
|
||||||
X111855357Y-91502380D01*
|
X111855357Y-91502380D01*
|
||||||
X112141071Y-91502380D02*
|
X112141071Y-91502380D02*
|
||||||
X112141071Y-90502380D01*
|
X112141071Y-90502380D01*
|
||||||
X112045833Y-90645238D01*
|
X112045833Y-90645238D01*
|
||||||
X111950595Y-90740476D01*
|
X111950595Y-90740476D01*
|
||||||
X111855357Y-90788095D01*
|
X111855357Y-90788095D01*
|
||||||
%TO.C,U3*%
|
%TO.C,U3*%
|
||||||
X121158095Y-100912380D02*
|
X121158095Y-100912380D02*
|
||||||
X121158095Y-101721904D01*
|
X121158095Y-101721904D01*
|
||||||
X121205714Y-101817142D01*
|
X121205714Y-101817142D01*
|
||||||
X121253333Y-101864761D01*
|
X121253333Y-101864761D01*
|
||||||
X121348571Y-101912380D01*
|
X121348571Y-101912380D01*
|
||||||
X121539047Y-101912380D01*
|
X121539047Y-101912380D01*
|
||||||
X121634285Y-101864761D01*
|
X121634285Y-101864761D01*
|
||||||
X121681904Y-101817142D01*
|
X121681904Y-101817142D01*
|
||||||
X121729523Y-101721904D01*
|
X121729523Y-101721904D01*
|
||||||
X121729523Y-100912380D01*
|
X121729523Y-100912380D01*
|
||||||
X122110476Y-100912380D02*
|
X122110476Y-100912380D02*
|
||||||
X122729523Y-100912380D01*
|
X122729523Y-100912380D01*
|
||||||
X122396190Y-101293333D01*
|
X122396190Y-101293333D01*
|
||||||
X122539047Y-101293333D01*
|
X122539047Y-101293333D01*
|
||||||
X122634285Y-101340952D01*
|
X122634285Y-101340952D01*
|
||||||
X122681904Y-101388571D01*
|
X122681904Y-101388571D01*
|
||||||
X122729523Y-101483809D01*
|
X122729523Y-101483809D01*
|
||||||
X122729523Y-101721904D01*
|
X122729523Y-101721904D01*
|
||||||
X122681904Y-101817142D01*
|
X122681904Y-101817142D01*
|
||||||
X122634285Y-101864761D01*
|
X122634285Y-101864761D01*
|
||||||
X122539047Y-101912380D01*
|
X122539047Y-101912380D01*
|
||||||
X122253333Y-101912380D01*
|
X122253333Y-101912380D01*
|
||||||
X122158095Y-101864761D01*
|
X122158095Y-101864761D01*
|
||||||
X122110476Y-101817142D01*
|
X122110476Y-101817142D01*
|
||||||
%TO.C,U2*%
|
%TO.C,U2*%
|
||||||
X125872380Y-92201904D02*
|
X125872380Y-92201904D02*
|
||||||
X126681904Y-92201904D01*
|
X126681904Y-92201904D01*
|
||||||
X126777142Y-92154285D01*
|
X126777142Y-92154285D01*
|
||||||
X126824761Y-92106666D01*
|
X126824761Y-92106666D01*
|
||||||
X126872380Y-92011428D01*
|
X126872380Y-92011428D01*
|
||||||
X126872380Y-91820952D01*
|
X126872380Y-91820952D01*
|
||||||
X126824761Y-91725714D01*
|
X126824761Y-91725714D01*
|
||||||
X126777142Y-91678095D01*
|
X126777142Y-91678095D01*
|
||||||
X126681904Y-91630476D01*
|
X126681904Y-91630476D01*
|
||||||
X125872380Y-91630476D01*
|
X125872380Y-91630476D01*
|
||||||
X125967619Y-91201904D02*
|
X125967619Y-91201904D02*
|
||||||
X125920000Y-91154285D01*
|
X125920000Y-91154285D01*
|
||||||
X125872380Y-91059047D01*
|
X125872380Y-91059047D01*
|
||||||
X125872380Y-90820952D01*
|
X125872380Y-90820952D01*
|
||||||
X125920000Y-90725714D01*
|
X125920000Y-90725714D01*
|
||||||
X125967619Y-90678095D01*
|
X125967619Y-90678095D01*
|
||||||
X126062857Y-90630476D01*
|
X126062857Y-90630476D01*
|
||||||
X126158095Y-90630476D01*
|
X126158095Y-90630476D01*
|
||||||
X126300952Y-90678095D01*
|
X126300952Y-90678095D01*
|
||||||
X126872380Y-91249523D01*
|
X126872380Y-91249523D01*
|
||||||
X126872380Y-90630476D01*
|
X126872380Y-90630476D01*
|
||||||
%TO.C,U1*%
|
%TO.C,U1*%
|
||||||
X108712380Y-94741904D02*
|
X108712380Y-94741904D02*
|
||||||
X109521904Y-94741904D01*
|
X109521904Y-94741904D01*
|
||||||
X109617142Y-94694285D01*
|
X109617142Y-94694285D01*
|
||||||
X109664761Y-94646666D01*
|
X109664761Y-94646666D01*
|
||||||
X109712380Y-94551428D01*
|
X109712380Y-94551428D01*
|
||||||
X109712380Y-94360952D01*
|
X109712380Y-94360952D01*
|
||||||
X109664761Y-94265714D01*
|
X109664761Y-94265714D01*
|
||||||
X109617142Y-94218095D01*
|
X109617142Y-94218095D01*
|
||||||
X109521904Y-94170476D01*
|
X109521904Y-94170476D01*
|
||||||
X108712380Y-94170476D01*
|
X108712380Y-94170476D01*
|
||||||
X109712380Y-93170476D02*
|
X109712380Y-93170476D02*
|
||||||
X109712380Y-93741904D01*
|
X109712380Y-93741904D01*
|
||||||
X109712380Y-93456190D02*
|
X109712380Y-93456190D02*
|
||||||
X108712380Y-93456190D01*
|
X108712380Y-93456190D01*
|
||||||
X108855238Y-93551428D01*
|
X108855238Y-93551428D01*
|
||||||
X108950476Y-93646666D01*
|
X108950476Y-93646666D01*
|
||||||
X108998095Y-93741904D01*
|
X108998095Y-93741904D01*
|
||||||
%TO.C,R2*%
|
%TO.C,R2*%
|
||||||
X98342380Y-101766666D02*
|
X98342380Y-101766666D02*
|
||||||
X97866190Y-102100000D01*
|
X97866190Y-102100000D01*
|
||||||
X98342380Y-102338095D02*
|
X98342380Y-102338095D02*
|
||||||
X97342380Y-102338095D01*
|
X97342380Y-102338095D01*
|
||||||
X97342380Y-101957142D01*
|
X97342380Y-101957142D01*
|
||||||
X97390000Y-101861904D01*
|
X97390000Y-101861904D01*
|
||||||
X97437619Y-101814285D01*
|
X97437619Y-101814285D01*
|
||||||
X97532857Y-101766666D01*
|
X97532857Y-101766666D01*
|
||||||
X97675714Y-101766666D01*
|
X97675714Y-101766666D01*
|
||||||
X97770952Y-101814285D01*
|
X97770952Y-101814285D01*
|
||||||
X97818571Y-101861904D01*
|
X97818571Y-101861904D01*
|
||||||
X97866190Y-101957142D01*
|
X97866190Y-101957142D01*
|
||||||
X97866190Y-102338095D01*
|
X97866190Y-102338095D01*
|
||||||
X97437619Y-101385714D02*
|
X97437619Y-101385714D02*
|
||||||
X97390000Y-101338095D01*
|
X97390000Y-101338095D01*
|
||||||
X97342380Y-101242857D01*
|
X97342380Y-101242857D01*
|
||||||
X97342380Y-101004761D01*
|
X97342380Y-101004761D01*
|
||||||
X97390000Y-100909523D01*
|
X97390000Y-100909523D01*
|
||||||
X97437619Y-100861904D01*
|
X97437619Y-100861904D01*
|
||||||
X97532857Y-100814285D01*
|
X97532857Y-100814285D01*
|
||||||
X97628095Y-100814285D01*
|
X97628095Y-100814285D01*
|
||||||
X97770952Y-100861904D01*
|
X97770952Y-100861904D01*
|
||||||
X98342380Y-101433333D01*
|
X98342380Y-101433333D01*
|
||||||
X98342380Y-100814285D01*
|
X98342380Y-100814285D01*
|
||||||
%TO.C,R1*%
|
%TO.C,R1*%
|
||||||
X101433333Y-62782380D02*
|
X101433333Y-62782380D02*
|
||||||
X101100000Y-62306190D01*
|
X101100000Y-62306190D01*
|
||||||
X100861904Y-62782380D02*
|
X100861904Y-62782380D02*
|
||||||
X100861904Y-61782380D01*
|
X100861904Y-61782380D01*
|
||||||
X101242857Y-61782380D01*
|
X101242857Y-61782380D01*
|
||||||
X101338095Y-61830000D01*
|
X101338095Y-61830000D01*
|
||||||
X101385714Y-61877619D01*
|
X101385714Y-61877619D01*
|
||||||
X101433333Y-61972857D01*
|
X101433333Y-61972857D01*
|
||||||
X101433333Y-62115714D01*
|
X101433333Y-62115714D01*
|
||||||
X101385714Y-62210952D01*
|
X101385714Y-62210952D01*
|
||||||
X101338095Y-62258571D01*
|
X101338095Y-62258571D01*
|
||||||
X101242857Y-62306190D01*
|
X101242857Y-62306190D01*
|
||||||
X100861904Y-62306190D01*
|
X100861904Y-62306190D01*
|
||||||
X102385714Y-62782380D02*
|
X102385714Y-62782380D02*
|
||||||
X101814285Y-62782380D01*
|
X101814285Y-62782380D01*
|
||||||
X102100000Y-62782380D02*
|
X102100000Y-62782380D02*
|
||||||
X102100000Y-61782380D01*
|
X102100000Y-61782380D01*
|
||||||
X102004761Y-61925238D01*
|
X102004761Y-61925238D01*
|
||||||
X101909523Y-62020476D01*
|
X101909523Y-62020476D01*
|
||||||
X101814285Y-62068095D01*
|
X101814285Y-62068095D01*
|
||||||
%TO.C,J1*%
|
%TO.C,J1*%
|
||||||
X110636666Y-96192380D02*
|
X110636666Y-96192380D02*
|
||||||
X110636666Y-96906666D01*
|
X110636666Y-96906666D01*
|
||||||
X110589047Y-97049523D01*
|
X110589047Y-97049523D01*
|
||||||
X110493809Y-97144761D01*
|
X110493809Y-97144761D01*
|
||||||
X110350952Y-97192380D01*
|
X110350952Y-97192380D01*
|
||||||
X110255714Y-97192380D01*
|
X110255714Y-97192380D01*
|
||||||
X111636666Y-97192380D02*
|
X111636666Y-97192380D02*
|
||||||
X111065238Y-97192380D01*
|
X111065238Y-97192380D01*
|
||||||
X111350952Y-97192380D02*
|
X111350952Y-97192380D02*
|
||||||
X111350952Y-96192380D01*
|
X111350952Y-96192380D01*
|
||||||
X111255714Y-96335238D01*
|
X111255714Y-96335238D01*
|
||||||
X111160476Y-96430476D01*
|
X111160476Y-96430476D01*
|
||||||
X111065238Y-96478095D01*
|
X111065238Y-96478095D01*
|
||||||
%TO.C,A1*%
|
%TO.C,A1*%
|
||||||
X82716666Y-76904285D02*
|
X82716666Y-76904285D02*
|
||||||
X82716666Y-76428095D01*
|
X82716666Y-76428095D01*
|
||||||
X83002380Y-76999523D02*
|
X83002380Y-76999523D02*
|
||||||
X82002380Y-76666190D01*
|
X82002380Y-76666190D01*
|
||||||
X83002380Y-76332857D01*
|
X83002380Y-76332857D01*
|
||||||
X83002380Y-75475714D02*
|
X83002380Y-75475714D02*
|
||||||
X83002380Y-76047142D01*
|
X83002380Y-76047142D01*
|
||||||
X83002380Y-75761428D02*
|
X83002380Y-75761428D02*
|
||||||
X82002380Y-75761428D01*
|
X82002380Y-75761428D01*
|
||||||
X82145238Y-75856666D01*
|
X82145238Y-75856666D01*
|
||||||
X82240476Y-75951904D01*
|
X82240476Y-75951904D01*
|
||||||
X82288095Y-76047142D01*
|
X82288095Y-76047142D01*
|
||||||
%TO.C,C1*%
|
%TO.C,C1*%
|
||||||
X92523333Y-90837142D02*
|
X92523333Y-90837142D02*
|
||||||
X92475714Y-90884761D01*
|
X92475714Y-90884761D01*
|
||||||
X92332857Y-90932380D01*
|
X92332857Y-90932380D01*
|
||||||
X92237619Y-90932380D01*
|
X92237619Y-90932380D01*
|
||||||
X92094761Y-90884761D01*
|
X92094761Y-90884761D01*
|
||||||
X91999523Y-90789523D01*
|
X91999523Y-90789523D01*
|
||||||
X91951904Y-90694285D01*
|
X91951904Y-90694285D01*
|
||||||
X91904285Y-90503809D01*
|
X91904285Y-90503809D01*
|
||||||
X91904285Y-90360952D01*
|
X91904285Y-90360952D01*
|
||||||
X91951904Y-90170476D01*
|
X91951904Y-90170476D01*
|
||||||
X91999523Y-90075238D01*
|
X91999523Y-90075238D01*
|
||||||
X92094761Y-89980000D01*
|
X92094761Y-89980000D01*
|
||||||
X92237619Y-89932380D01*
|
X92237619Y-89932380D01*
|
||||||
X92332857Y-89932380D01*
|
X92332857Y-89932380D01*
|
||||||
X92475714Y-89980000D01*
|
X92475714Y-89980000D01*
|
||||||
X92523333Y-90027619D01*
|
X92523333Y-90027619D01*
|
||||||
X93475714Y-90932380D02*
|
X93475714Y-90932380D02*
|
||||||
X92904285Y-90932380D01*
|
X92904285Y-90932380D01*
|
||||||
X93190000Y-90932380D02*
|
X93190000Y-90932380D02*
|
||||||
X93190000Y-89932380D01*
|
X93190000Y-89932380D01*
|
||||||
X93094761Y-90075238D01*
|
X93094761Y-90075238D01*
|
||||||
X92999523Y-90170476D01*
|
X92999523Y-90170476D01*
|
||||||
X92904285Y-90218095D01*
|
X92904285Y-90218095D01*
|
||||||
%TO.C,JP1*%
|
%TO.C,JP1*%
|
||||||
X95686666Y-100207380D02*
|
X95686666Y-100207380D02*
|
||||||
X95686666Y-100921666D01*
|
X95686666Y-100921666D01*
|
||||||
X95639047Y-101064523D01*
|
X95639047Y-101064523D01*
|
||||||
X95543809Y-101159761D01*
|
X95543809Y-101159761D01*
|
||||||
X95400952Y-101207380D01*
|
X95400952Y-101207380D01*
|
||||||
X95305714Y-101207380D01*
|
X95305714Y-101207380D01*
|
||||||
X96162857Y-101207380D02*
|
X96162857Y-101207380D02*
|
||||||
X96162857Y-100207380D01*
|
X96162857Y-100207380D01*
|
||||||
X96543809Y-100207380D01*
|
X96543809Y-100207380D01*
|
||||||
X96639047Y-100255000D01*
|
X96639047Y-100255000D01*
|
||||||
X96686666Y-100302619D01*
|
X96686666Y-100302619D01*
|
||||||
X96734285Y-100397857D01*
|
X96734285Y-100397857D01*
|
||||||
X96734285Y-100540714D01*
|
X96734285Y-100540714D01*
|
||||||
X96686666Y-100635952D01*
|
X96686666Y-100635952D01*
|
||||||
X96639047Y-100683571D01*
|
X96639047Y-100683571D01*
|
||||||
X96543809Y-100731190D01*
|
X96543809Y-100731190D01*
|
||||||
X96162857Y-100731190D01*
|
X96162857Y-100731190D01*
|
||||||
X97686666Y-101207380D02*
|
X97686666Y-101207380D02*
|
||||||
X97115238Y-101207380D01*
|
X97115238Y-101207380D01*
|
||||||
X97400952Y-101207380D02*
|
X97400952Y-101207380D02*
|
||||||
X97400952Y-100207380D01*
|
X97400952Y-100207380D01*
|
||||||
X97305714Y-100350238D01*
|
X97305714Y-100350238D01*
|
||||||
X97210476Y-100445476D01*
|
X97210476Y-100445476D01*
|
||||||
X97115238Y-100493095D01*
|
X97115238Y-100493095D01*
|
||||||
%TO.C,C2*%
|
%TO.C,C2*%
|
||||||
X95103333Y-85757142D02*
|
X95103333Y-85757142D02*
|
||||||
X95055714Y-85804761D01*
|
X95055714Y-85804761D01*
|
||||||
X94912857Y-85852380D01*
|
X94912857Y-85852380D01*
|
||||||
X94817619Y-85852380D01*
|
X94817619Y-85852380D01*
|
||||||
X94674761Y-85804761D01*
|
X94674761Y-85804761D01*
|
||||||
X94579523Y-85709523D01*
|
X94579523Y-85709523D01*
|
||||||
X94531904Y-85614285D01*
|
X94531904Y-85614285D01*
|
||||||
X94484285Y-85423809D01*
|
X94484285Y-85423809D01*
|
||||||
X94484285Y-85280952D01*
|
X94484285Y-85280952D01*
|
||||||
X94531904Y-85090476D01*
|
X94531904Y-85090476D01*
|
||||||
X94579523Y-84995238D01*
|
X94579523Y-84995238D01*
|
||||||
X94674761Y-84900000D01*
|
X94674761Y-84900000D01*
|
||||||
X94817619Y-84852380D01*
|
X94817619Y-84852380D01*
|
||||||
X94912857Y-84852380D01*
|
X94912857Y-84852380D01*
|
||||||
X95055714Y-84900000D01*
|
X95055714Y-84900000D01*
|
||||||
X95103333Y-84947619D01*
|
X95103333Y-84947619D01*
|
||||||
X95484285Y-84947619D02*
|
X95484285Y-84947619D02*
|
||||||
X95531904Y-84900000D01*
|
X95531904Y-84900000D01*
|
||||||
X95627142Y-84852380D01*
|
X95627142Y-84852380D01*
|
||||||
X95865238Y-84852380D01*
|
X95865238Y-84852380D01*
|
||||||
X95960476Y-84900000D01*
|
X95960476Y-84900000D01*
|
||||||
X96008095Y-84947619D01*
|
X96008095Y-84947619D01*
|
||||||
X96055714Y-85042857D01*
|
X96055714Y-85042857D01*
|
||||||
X96055714Y-85138095D01*
|
X96055714Y-85138095D01*
|
||||||
X96008095Y-85280952D01*
|
X96008095Y-85280952D01*
|
||||||
X95436666Y-85852380D01*
|
X95436666Y-85852380D01*
|
||||||
X96055714Y-85852380D01*
|
X96055714Y-85852380D01*
|
||||||
D11*
|
D11*
|
||||||
%TO.C,Y1*%
|
%TO.C,Y1*%
|
||||||
X112962500Y-90050000D02*
|
X112962500Y-90050000D02*
|
||||||
X110462500Y-90050000D01*
|
X110462500Y-90050000D01*
|
||||||
X112962500Y-87750000D02*
|
X112962500Y-87750000D02*
|
||||||
X110462500Y-87750000D01*
|
X110462500Y-87750000D01*
|
||||||
X115637500Y-90000000D02*
|
X115637500Y-90000000D02*
|
||||||
X115637500Y-87800000D01*
|
X115637500Y-87800000D01*
|
||||||
%TO.C,U3*%
|
%TO.C,U3*%
|
||||||
X121920000Y-100620000D02*
|
X121920000Y-100620000D02*
|
||||||
X121270000Y-100620000D01*
|
X121270000Y-100620000D01*
|
||||||
X121920000Y-97500000D02*
|
X121920000Y-97500000D02*
|
||||||
X121270000Y-97500000D01*
|
X121270000Y-97500000D01*
|
||||||
X121920000Y-100620000D02*
|
X121920000Y-100620000D02*
|
||||||
X123595000Y-100620000D01*
|
X123595000Y-100620000D01*
|
||||||
X121920000Y-97500000D02*
|
X121920000Y-97500000D02*
|
||||||
X122570000Y-97500000D01*
|
X122570000Y-97500000D01*
|
||||||
%TO.C,U2*%
|
%TO.C,U2*%
|
||||||
X124920000Y-86640000D02*
|
X124920000Y-86640000D02*
|
||||||
X124920000Y-89440000D01*
|
X124920000Y-89440000D01*
|
||||||
X118920000Y-93440000D02*
|
X118920000Y-93440000D02*
|
||||||
X118420000Y-93440000D01*
|
X118420000Y-93440000D01*
|
||||||
X124920000Y-89440000D02*
|
X124920000Y-89440000D02*
|
||||||
X125320000Y-89440000D01*
|
X125320000Y-89440000D01*
|
||||||
X118420000Y-93440000D02*
|
X118420000Y-93440000D02*
|
||||||
X118420000Y-89440000D01*
|
X118420000Y-89440000D01*
|
||||||
X125320000Y-93440000D02*
|
X125320000Y-93440000D02*
|
||||||
X124920000Y-93440000D01*
|
X124920000Y-93440000D01*
|
||||||
X125320000Y-89440000D02*
|
X125320000Y-89440000D02*
|
||||||
X125320000Y-93440000D01*
|
X125320000Y-93440000D01*
|
||||||
X118420000Y-89440000D02*
|
X118420000Y-89440000D02*
|
||||||
X118920000Y-89440000D01*
|
X118920000Y-89440000D01*
|
||||||
D12*
|
D12*
|
||||||
%TO.C,U1*%
|
%TO.C,U1*%
|
||||||
X113310000Y-92730000D02*
|
X113310000Y-92730000D02*
|
||||||
X113160000Y-92730000D01*
|
X113160000Y-92730000D01*
|
||||||
X110310000Y-95230000D02*
|
X110310000Y-95230000D02*
|
||||||
X110210000Y-95230000D01*
|
X110210000Y-95230000D01*
|
||||||
X113310000Y-95230000D02*
|
X113310000Y-95230000D02*
|
||||||
X113310000Y-92730000D01*
|
X113310000Y-92730000D01*
|
||||||
X113160000Y-95230000D02*
|
X113160000Y-95230000D02*
|
||||||
X113310000Y-95230000D01*
|
X113310000Y-95230000D01*
|
||||||
X110210000Y-95230000D02*
|
X110210000Y-95230000D02*
|
||||||
X110210000Y-92730000D01*
|
X110210000Y-92730000D01*
|
||||||
X110210000Y-92730000D02*
|
X110210000Y-92730000D02*
|
||||||
X110310000Y-92730000D01*
|
X110310000Y-92730000D01*
|
||||||
X110310000Y-95630000D02*
|
X110310000Y-95630000D02*
|
||||||
X110310000Y-95230000D01*
|
X110310000Y-95230000D01*
|
||||||
D11*
|
D11*
|
||||||
%TO.C,R2*%
|
%TO.C,R2*%
|
||||||
X98680000Y-101753641D02*
|
X98680000Y-101753641D02*
|
||||||
X98680000Y-101446359D01*
|
X98680000Y-101446359D01*
|
||||||
X99440000Y-101753641D02*
|
X99440000Y-101753641D02*
|
||||||
X99440000Y-101446359D01*
|
X99440000Y-101446359D01*
|
||||||
%TO.C,R1*%
|
%TO.C,R1*%
|
||||||
X101446359Y-63120000D02*
|
X101446359Y-63120000D02*
|
||||||
X101753641Y-63120000D01*
|
X101753641Y-63120000D01*
|
||||||
X101446359Y-63880000D02*
|
X101446359Y-63880000D02*
|
||||||
X101753641Y-63880000D01*
|
X101753641Y-63880000D01*
|
||||||
%TO.C,J1*%
|
%TO.C,J1*%
|
||||||
X114400000Y-100900000D02*
|
X114400000Y-100900000D02*
|
||||||
G75*
|
G75*
|
||||||
G03*
|
G03*
|
||||||
X114400000Y-100900000I-1680000J0D01*
|
X114400000Y-100900000I-1680000J0D01*
|
||||||
G01*
|
G01*
|
||||||
X117900000Y-100900000D02*
|
X117900000Y-100900000D02*
|
||||||
G75*
|
G75*
|
||||||
G03*
|
G03*
|
||||||
X117900000Y-100900000I-1680000J0D01*
|
X117900000Y-100900000I-1680000J0D01*
|
||||||
G01*
|
G01*
|
||||||
X110900000Y-100900000D02*
|
X110900000Y-100900000D02*
|
||||||
G75*
|
G75*
|
||||||
G03*
|
G03*
|
||||||
X110900000Y-100900000I-1680000J0D01*
|
X110900000Y-100900000I-1680000J0D01*
|
||||||
G01*
|
G01*
|
||||||
X106586000Y-99459999D02*
|
X106586000Y-99459999D02*
|
||||||
G75*
|
G75*
|
||||||
G03*
|
G03*
|
||||||
X104830106Y-99474642I-866000J-1439999D01*
|
X104830106Y-99474642I-866000J-1439999D01*
|
||||||
G01*
|
G01*
|
||||||
X104279999Y-100034000D02*
|
X104279999Y-100034000D02*
|
||||||
G75*
|
G75*
|
||||||
G03*
|
G03*
|
||||||
X104294642Y-101789894I1439999J-866000D01*
|
X104294642Y-101789894I1439999J-866000D01*
|
||||||
G01*
|
G01*
|
||||||
X107145000Y-101791000D02*
|
X107145000Y-101791000D02*
|
||||||
G75*
|
G75*
|
||||||
G03*
|
G03*
|
||||||
X107145504Y-100009807I-1425003J891000D01*
|
X107145504Y-100009807I-1425003J891000D01*
|
||||||
G01*
|
G01*
|
||||||
X105720000Y-102580000D02*
|
X105720000Y-102580000D02*
|
||||||
G75*
|
G75*
|
||||||
G03*
|
G03*
|
||||||
X106610264Y-102324721I3J1679990D01*
|
X106610264Y-102324721I3J1679990D01*
|
||||||
G01*
|
G01*
|
||||||
X104854000Y-102340000D02*
|
X104854000Y-102340000D02*
|
||||||
G75*
|
G75*
|
||||||
G03*
|
G03*
|
||||||
X105748674Y-102580099I866003J1440014D01*
|
X105748674Y-102580099I866003J1440014D01*
|
||||||
G01*
|
G01*
|
||||||
X108245000Y-102081000D02*
|
X108245000Y-102081000D02*
|
||||||
X108151000Y-102174000D01*
|
X108151000Y-102174000D01*
|
||||||
X108075000Y-101841000D02*
|
X108075000Y-101841000D02*
|
||||||
X107946000Y-101969000D01*
|
X107946000Y-101969000D01*
|
||||||
X115075000Y-101841000D02*
|
X115075000Y-101841000D02*
|
||||||
X114946000Y-101969000D01*
|
X114946000Y-101969000D01*
|
||||||
X103670000Y-105060000D02*
|
X103670000Y-105060000D02*
|
||||||
X103670000Y-105700000D01*
|
X103670000Y-105700000D01*
|
||||||
X110290000Y-99625000D02*
|
X110290000Y-99625000D02*
|
||||||
X110196000Y-99719000D01*
|
X110196000Y-99719000D01*
|
||||||
X103670000Y-105700000D02*
|
X103670000Y-105700000D02*
|
||||||
X104070000Y-105700000D01*
|
X104070000Y-105700000D01*
|
||||||
X118030000Y-97740000D02*
|
X118030000Y-97740000D02*
|
||||||
X118030000Y-105460000D01*
|
X118030000Y-105460000D01*
|
||||||
X103910000Y-103900000D02*
|
X103910000Y-103900000D02*
|
||||||
X118030000Y-103900000D01*
|
X118030000Y-103900000D01*
|
||||||
X115245000Y-102081000D02*
|
X115245000Y-102081000D02*
|
||||||
X115151000Y-102174000D01*
|
X115151000Y-102174000D01*
|
||||||
X111575000Y-101841000D02*
|
X111575000Y-101841000D02*
|
||||||
X111446000Y-101969000D01*
|
X111446000Y-101969000D01*
|
||||||
X103910000Y-97740000D02*
|
X103910000Y-97740000D02*
|
||||||
X118030000Y-97740000D01*
|
X118030000Y-97740000D01*
|
||||||
X113790000Y-99625000D02*
|
X113790000Y-99625000D02*
|
||||||
X113696000Y-99719000D01*
|
X113696000Y-99719000D01*
|
||||||
X103910000Y-105460000D02*
|
X103910000Y-105460000D02*
|
||||||
X118030000Y-105460000D01*
|
X118030000Y-105460000D01*
|
||||||
X111745000Y-102081000D02*
|
X111745000Y-102081000D02*
|
||||||
X111651000Y-102174000D01*
|
X111651000Y-102174000D01*
|
||||||
X117495000Y-99831000D02*
|
X117495000Y-99831000D02*
|
||||||
X117366000Y-99959000D01*
|
X117366000Y-99959000D01*
|
||||||
X110495000Y-99831000D02*
|
X110495000Y-99831000D02*
|
||||||
X110366000Y-99959000D01*
|
X110366000Y-99959000D01*
|
||||||
X113995000Y-99831000D02*
|
X113995000Y-99831000D02*
|
||||||
X113866000Y-99959000D01*
|
X113866000Y-99959000D01*
|
||||||
X117290000Y-99625000D02*
|
X117290000Y-99625000D02*
|
||||||
X117196000Y-99719000D01*
|
X117196000Y-99719000D01*
|
||||||
X103910000Y-105000000D02*
|
X103910000Y-105000000D02*
|
||||||
X118030000Y-105000000D01*
|
X118030000Y-105000000D01*
|
||||||
X103910000Y-97740000D02*
|
X103910000Y-97740000D02*
|
||||||
X103910000Y-105460000D01*
|
X103910000Y-105460000D01*
|
||||||
%TO.C,A1*%
|
%TO.C,A1*%
|
||||||
X83690000Y-85210000D02*
|
X83690000Y-85210000D02*
|
||||||
X86360000Y-85210000D01*
|
X86360000Y-85210000D01*
|
||||||
X127130000Y-67170000D02*
|
X127130000Y-67170000D02*
|
||||||
X83690000Y-67170000D01*
|
X83690000Y-67170000D01*
|
||||||
X124460000Y-69840000D02*
|
X124460000Y-69840000D02*
|
||||||
X124460000Y-67170000D01*
|
X124460000Y-67170000D01*
|
||||||
X88900000Y-82540000D02*
|
X88900000Y-82540000D02*
|
||||||
X86360000Y-82540000D01*
|
X86360000Y-82540000D01*
|
||||||
X86360000Y-82540000D02*
|
X86360000Y-82540000D02*
|
||||||
X86360000Y-85210000D01*
|
X86360000Y-85210000D01*
|
||||||
X124460000Y-82540000D02*
|
X124460000Y-82540000D02*
|
||||||
X124460000Y-85210000D01*
|
X124460000Y-85210000D01*
|
||||||
X127130000Y-85210000D02*
|
X127130000Y-85210000D02*
|
||||||
X127130000Y-67170000D01*
|
X127130000Y-67170000D01*
|
||||||
X88900000Y-82540000D02*
|
X88900000Y-82540000D02*
|
||||||
X124460000Y-82540000D01*
|
X124460000Y-82540000D01*
|
||||||
X83690000Y-67170000D02*
|
X83690000Y-67170000D02*
|
||||||
X83690000Y-85210000D01*
|
X83690000Y-85210000D01*
|
||||||
X88900000Y-82540000D02*
|
X88900000Y-82540000D02*
|
||||||
X88900000Y-85210000D01*
|
X88900000Y-85210000D01*
|
||||||
X88900000Y-85210000D02*
|
X88900000Y-85210000D02*
|
||||||
X127130000Y-85210000D01*
|
X127130000Y-85210000D01*
|
||||||
X86360000Y-69840000D02*
|
X86360000Y-69840000D02*
|
||||||
X86360000Y-67170000D01*
|
X86360000Y-67170000D01*
|
||||||
X86360000Y-69840000D02*
|
X86360000Y-69840000D02*
|
||||||
X124460000Y-69840000D01*
|
X124460000Y-69840000D01*
|
||||||
%TO.C,C1*%
|
%TO.C,C1*%
|
||||||
X90377712Y-92420000D02*
|
X90377712Y-92420000D02*
|
||||||
X90377712Y-92870000D01*
|
X90377712Y-92870000D01*
|
||||||
X90152712Y-92645000D02*
|
X90152712Y-92645000D02*
|
||||||
X90602712Y-92645000D01*
|
X90602712Y-92645000D01*
|
||||||
X90570259Y-95040000D02*
|
X90570259Y-95040000D02*
|
||||||
G75*
|
G75*
|
||||||
G03*
|
G03*
|
||||||
X90570259Y-92920000I2119741J1060000D01*
|
X90570259Y-92920000I2119741J1060000D01*
|
||||||
G01*
|
G01*
|
||||||
%TO.C,JP1*%
|
%TO.C,JP1*%
|
||||||
X97630000Y-98300000D02*
|
X97630000Y-98300000D02*
|
||||||
X97630000Y-97095000D01*
|
X97630000Y-97095000D01*
|
||||||
X95410000Y-98300000D02*
|
X95410000Y-98300000D02*
|
||||||
X95410000Y-97095000D01*
|
X95410000Y-97095000D01*
|
||||||
X97630000Y-97095000D02*
|
X97630000Y-97095000D02*
|
||||||
X96827530Y-97095000D01*
|
X96827530Y-97095000D01*
|
||||||
X97630000Y-98300000D02*
|
X97630000Y-98300000D02*
|
||||||
X97083471Y-98300000D01*
|
X97083471Y-98300000D01*
|
||||||
X97630000Y-99060000D02*
|
X97630000Y-99060000D02*
|
||||||
X97630000Y-99820000D01*
|
X97630000Y-99820000D01*
|
||||||
X95956529Y-98300000D02*
|
X95956529Y-98300000D02*
|
||||||
X95410000Y-98300000D01*
|
X95410000Y-98300000D01*
|
||||||
X96212470Y-97095000D02*
|
X96212470Y-97095000D02*
|
||||||
X95410000Y-97095000D01*
|
X95410000Y-97095000D01*
|
||||||
X97630000Y-99820000D02*
|
X97630000Y-99820000D02*
|
||||||
X96520000Y-99820000D01*
|
X96520000Y-99820000D01*
|
||||||
%TO.C,C2*%
|
%TO.C,C2*%
|
||||||
X92957712Y-87340000D02*
|
X92957712Y-87340000D02*
|
||||||
X92957712Y-87790000D01*
|
X92957712Y-87790000D01*
|
||||||
X92732712Y-87565000D02*
|
X92732712Y-87565000D02*
|
||||||
X93182712Y-87565000D01*
|
X93182712Y-87565000D01*
|
||||||
X93150259Y-89960000D02*
|
X93150259Y-89960000D02*
|
||||||
G75*
|
G75*
|
||||||
G03*
|
G03*
|
||||||
X93150259Y-87840000I2119741J1060000D01*
|
X93150259Y-87840000I2119741J1060000D01*
|
||||||
G01*
|
G01*
|
||||||
%TD*%
|
%TD*%
|
||||||
M02*
|
M02*
|
||||||
|
|||||||
BIN
Meycad-backups/Meycad-2024-09-05_065952.zip
Normal file
BIN
Meycad-backups/Meycad-2024-09-05_065952.zip
Normal file
Binary file not shown.
BIN
Meycad-backups/Meycad-2024-11-10_132148.zip
Normal file
BIN
Meycad-backups/Meycad-2024-11-10_132148.zip
Normal file
Binary file not shown.
BIN
Meycad-backups/Meycad-2025-04-14_062122.zip
Normal file
BIN
Meycad-backups/Meycad-2025-04-14_062122.zip
Normal file
Binary file not shown.
BIN
Meycad-backups/Meycad-2025-06-04_053120.zip
Normal file
BIN
Meycad-backups/Meycad-2025-06-04_053120.zip
Normal file
Binary file not shown.
@@ -1,120 +1,120 @@
|
|||||||
{
|
{
|
||||||
"Header": {
|
"Header": {
|
||||||
"GenerationSoftware": {
|
"GenerationSoftware": {
|
||||||
"Vendor": "KiCad",
|
"Vendor": "KiCad",
|
||||||
"Application": "Pcbnew",
|
"Application": "Pcbnew",
|
||||||
"Version": "(6.0.4)"
|
"Version": "(6.0.4)"
|
||||||
},
|
},
|
||||||
"CreationDate": "2022-05-25T07:35:57+02:00"
|
"CreationDate": "2022-05-25T07:35:57+02:00"
|
||||||
},
|
},
|
||||||
"GeneralSpecs": {
|
"GeneralSpecs": {
|
||||||
"ProjectId": {
|
"ProjectId": {
|
||||||
"Name": "Meycad",
|
"Name": "Meycad",
|
||||||
"GUID": "4d657963-6164-42e6-9b69-6361645f7063",
|
"GUID": "4d657963-6164-42e6-9b69-6361645f7063",
|
||||||
"Revision": "rev?"
|
"Revision": "rev?"
|
||||||
},
|
},
|
||||||
"Size": {
|
"Size": {
|
||||||
"X": 52.1006,
|
"X": 52.1006,
|
||||||
"Y": 50.1
|
"Y": 50.1
|
||||||
},
|
},
|
||||||
"LayerNumber": 2,
|
"LayerNumber": 2,
|
||||||
"BoardThickness": 1.6,
|
"BoardThickness": 1.6,
|
||||||
"Finish": "None"
|
"Finish": "None"
|
||||||
},
|
},
|
||||||
"DesignRules": [
|
"DesignRules": [
|
||||||
{
|
{
|
||||||
"Layers": "Outer",
|
"Layers": "Outer",
|
||||||
"PadToPad": 0.2,
|
"PadToPad": 0.2,
|
||||||
"PadToTrack": 0.2,
|
"PadToTrack": 0.2,
|
||||||
"TrackToTrack": 0.2,
|
"TrackToTrack": 0.2,
|
||||||
"MinLineWidth": 0.25
|
"MinLineWidth": 0.25
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"FilesAttributes": [
|
"FilesAttributes": [
|
||||||
{
|
{
|
||||||
"Path": "Meycad-F_Cu.gbr",
|
"Path": "Meycad-F_Cu.gbr",
|
||||||
"FileFunction": "Copper,L1,Top",
|
"FileFunction": "Copper,L1,Top",
|
||||||
"FilePolarity": "Positive"
|
"FilePolarity": "Positive"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Path": "Meycad-B_Cu.gbr",
|
"Path": "Meycad-B_Cu.gbr",
|
||||||
"FileFunction": "Copper,L2,Bot",
|
"FileFunction": "Copper,L2,Bot",
|
||||||
"FilePolarity": "Positive"
|
"FilePolarity": "Positive"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Path": "Meycad-F_Paste.gbr",
|
"Path": "Meycad-F_Paste.gbr",
|
||||||
"FileFunction": "SolderPaste,Top",
|
"FileFunction": "SolderPaste,Top",
|
||||||
"FilePolarity": "Positive"
|
"FilePolarity": "Positive"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Path": "Meycad-B_Paste.gbr",
|
"Path": "Meycad-B_Paste.gbr",
|
||||||
"FileFunction": "SolderPaste,Bot",
|
"FileFunction": "SolderPaste,Bot",
|
||||||
"FilePolarity": "Positive"
|
"FilePolarity": "Positive"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Path": "Meycad-F_Silkscreen.gbr",
|
"Path": "Meycad-F_Silkscreen.gbr",
|
||||||
"FileFunction": "Legend,Top",
|
"FileFunction": "Legend,Top",
|
||||||
"FilePolarity": "Positive"
|
"FilePolarity": "Positive"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Path": "Meycad-B_Silkscreen.gbr",
|
"Path": "Meycad-B_Silkscreen.gbr",
|
||||||
"FileFunction": "Legend,Bot",
|
"FileFunction": "Legend,Bot",
|
||||||
"FilePolarity": "Positive"
|
"FilePolarity": "Positive"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Path": "Meycad-F_Mask.gbr",
|
"Path": "Meycad-F_Mask.gbr",
|
||||||
"FileFunction": "SolderMask,Top",
|
"FileFunction": "SolderMask,Top",
|
||||||
"FilePolarity": "Negative"
|
"FilePolarity": "Negative"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Path": "Meycad-B_Mask.gbr",
|
"Path": "Meycad-B_Mask.gbr",
|
||||||
"FileFunction": "SolderMask,Bot",
|
"FileFunction": "SolderMask,Bot",
|
||||||
"FilePolarity": "Negative"
|
"FilePolarity": "Negative"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Path": "Meycad-Edge_Cuts.gbr",
|
"Path": "Meycad-Edge_Cuts.gbr",
|
||||||
"FileFunction": "Profile",
|
"FileFunction": "Profile",
|
||||||
"FilePolarity": "Positive"
|
"FilePolarity": "Positive"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"MaterialStackup": [
|
"MaterialStackup": [
|
||||||
{
|
{
|
||||||
"Type": "Legend",
|
"Type": "Legend",
|
||||||
"Name": "Top Silk Screen"
|
"Name": "Top Silk Screen"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Type": "SolderPaste",
|
"Type": "SolderPaste",
|
||||||
"Name": "Top Solder Paste"
|
"Name": "Top Solder Paste"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Type": "SolderMask",
|
"Type": "SolderMask",
|
||||||
"Name": "Top Solder Mask"
|
"Name": "Top Solder Mask"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Type": "Copper",
|
"Type": "Copper",
|
||||||
"Name": "F.Cu"
|
"Name": "F.Cu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Type": "Dielectric",
|
"Type": "Dielectric",
|
||||||
"Material": "FR4",
|
"Material": "FR4",
|
||||||
"Name": "F.Cu/B.Cu",
|
"Name": "F.Cu/B.Cu",
|
||||||
"Notes": "Type: dielectric layer 1 (from F.Cu to B.Cu)"
|
"Notes": "Type: dielectric layer 1 (from F.Cu to B.Cu)"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Type": "Copper",
|
"Type": "Copper",
|
||||||
"Name": "B.Cu"
|
"Name": "B.Cu"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Type": "SolderMask",
|
"Type": "SolderMask",
|
||||||
"Name": "Bottom Solder Mask"
|
"Name": "Bottom Solder Mask"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Type": "SolderPaste",
|
"Type": "SolderPaste",
|
||||||
"Name": "Bottom Solder Paste"
|
"Name": "Bottom Solder Paste"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Type": "Legend",
|
"Type": "Legend",
|
||||||
"Name": "Bottom Silk Screen"
|
"Name": "Bottom Silk Screen"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
3022
Meycad.kicad_pcb
3022
Meycad.kicad_pcb
File diff suppressed because it is too large
Load Diff
150
Meycad.kicad_prl
150
Meycad.kicad_prl
@@ -1,75 +1,75 @@
|
|||||||
{
|
{
|
||||||
"board": {
|
"board": {
|
||||||
"active_layer": 36,
|
"active_layer": 36,
|
||||||
"active_layer_preset": "",
|
"active_layer_preset": "",
|
||||||
"auto_track_width": false,
|
"auto_track_width": false,
|
||||||
"hidden_nets": [],
|
"hidden_nets": [],
|
||||||
"high_contrast_mode": 0,
|
"high_contrast_mode": 0,
|
||||||
"net_color_mode": 1,
|
"net_color_mode": 1,
|
||||||
"opacity": {
|
"opacity": {
|
||||||
"pads": 1.0,
|
"pads": 1.0,
|
||||||
"tracks": 1.0,
|
"tracks": 1.0,
|
||||||
"vias": 1.0,
|
"vias": 1.0,
|
||||||
"zones": 1.0
|
"zones": 1.0
|
||||||
},
|
},
|
||||||
"ratsnest_display_mode": 0,
|
"ratsnest_display_mode": 0,
|
||||||
"selection_filter": {
|
"selection_filter": {
|
||||||
"dimensions": true,
|
"dimensions": true,
|
||||||
"footprints": true,
|
"footprints": true,
|
||||||
"graphics": true,
|
"graphics": true,
|
||||||
"keepouts": true,
|
"keepouts": true,
|
||||||
"lockedItems": false,
|
"lockedItems": false,
|
||||||
"otherItems": true,
|
"otherItems": true,
|
||||||
"pads": true,
|
"pads": true,
|
||||||
"text": true,
|
"text": true,
|
||||||
"tracks": true,
|
"tracks": true,
|
||||||
"vias": true,
|
"vias": true,
|
||||||
"zones": true
|
"zones": true
|
||||||
},
|
},
|
||||||
"visible_items": [
|
"visible_items": [
|
||||||
0,
|
0,
|
||||||
1,
|
1,
|
||||||
2,
|
2,
|
||||||
3,
|
3,
|
||||||
4,
|
4,
|
||||||
5,
|
5,
|
||||||
8,
|
8,
|
||||||
9,
|
9,
|
||||||
10,
|
10,
|
||||||
11,
|
11,
|
||||||
12,
|
12,
|
||||||
13,
|
13,
|
||||||
14,
|
14,
|
||||||
15,
|
15,
|
||||||
16,
|
16,
|
||||||
17,
|
17,
|
||||||
18,
|
18,
|
||||||
19,
|
19,
|
||||||
20,
|
20,
|
||||||
21,
|
21,
|
||||||
22,
|
22,
|
||||||
23,
|
23,
|
||||||
24,
|
24,
|
||||||
25,
|
25,
|
||||||
26,
|
26,
|
||||||
27,
|
27,
|
||||||
28,
|
28,
|
||||||
29,
|
29,
|
||||||
30,
|
30,
|
||||||
32,
|
32,
|
||||||
33,
|
33,
|
||||||
34,
|
34,
|
||||||
35,
|
35,
|
||||||
36
|
36
|
||||||
],
|
],
|
||||||
"visible_layers": "0001030_ffffffff",
|
"visible_layers": "0001030_ffffffff",
|
||||||
"zone_display_mode": 0
|
"zone_display_mode": 0
|
||||||
},
|
},
|
||||||
"meta": {
|
"meta": {
|
||||||
"filename": "Meycad.kicad_prl",
|
"filename": "Meycad.kicad_prl",
|
||||||
"version": 3
|
"version": 3
|
||||||
},
|
},
|
||||||
"project": {
|
"project": {
|
||||||
"files": []
|
"files": []
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
5072
Meycad.kicad_sch
5072
Meycad.kicad_sch
File diff suppressed because it is too large
Load Diff
5396
Meycad.kicad_sch-bak
5396
Meycad.kicad_sch-bak
File diff suppressed because it is too large
Load Diff
@@ -1,13 +1,13 @@
|
|||||||
{
|
{
|
||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
"configurations": [
|
"configurations": [
|
||||||
{
|
{
|
||||||
"type": "java",
|
"type": "java",
|
||||||
"name": "Debug (Attach) - openHAB",
|
"name": "Debug (Attach) - openHAB",
|
||||||
"request": "attach",
|
"request": "attach",
|
||||||
"hostName": "localhost",
|
"hostName": "localhost",
|
||||||
"port": 5005,
|
"port": 5005,
|
||||||
"preLaunchTask": "Build"
|
"preLaunchTask": "Build"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -1,149 +1,149 @@
|
|||||||
{
|
{
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"options": {
|
"options": {
|
||||||
"env": {
|
"env": {
|
||||||
"openhab_home": "C://source//openhab_runtime",
|
"openhab_home": "C://source//openhab_runtime",
|
||||||
"openhab_runtime": "C://source//openhab_runtime//runtime",
|
"openhab_runtime": "C://source//openhab_runtime//runtime",
|
||||||
"openhab_addons": "C://source//openhab_runtime//addons",
|
"openhab_addons": "C://source//openhab_runtime//addons",
|
||||||
"openhab_logs": "C://source//openhab_runtime//userdata/logs",
|
"openhab_logs": "C://source//openhab_runtime//userdata/logs",
|
||||||
"dist" : "org.openhab.binding.meycan-4.0.0-SNAPSHOT.jar"
|
"dist" : "org.openhab.binding.meycan-4.0.0-SNAPSHOT.jar"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"tasks": [
|
"tasks": [
|
||||||
{
|
{
|
||||||
"label": "Start openHAB (Debug)",
|
"label": "Start openHAB (Debug)",
|
||||||
"type": "shell",
|
"type": "shell",
|
||||||
"isBackground": true,
|
"isBackground": true,
|
||||||
"command": "$openhab_home/start.sh debug",
|
"command": "$openhab_home/start.sh debug",
|
||||||
"windows": {
|
"windows": {
|
||||||
"command": "& $env:openhab_home/start.bat debug"
|
"command": "& $env:openhab_home/start.bat debug"
|
||||||
},
|
},
|
||||||
"presentation": {
|
"presentation": {
|
||||||
"reveal": "always",
|
"reveal": "always",
|
||||||
"panel": "new"
|
"panel": "new"
|
||||||
},
|
},
|
||||||
"problemMatcher": []
|
"problemMatcher": []
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "Stop openHAB",
|
"label": "Stop openHAB",
|
||||||
"type": "shell",
|
"type": "shell",
|
||||||
"command": "$openhab_runtime/bin/stop",
|
"command": "$openhab_runtime/bin/stop",
|
||||||
"windows": {
|
"windows": {
|
||||||
"command": "& $env:openhab_runtime/bin/stop.bat"
|
"command": "& $env:openhab_runtime/bin/stop.bat"
|
||||||
},
|
},
|
||||||
"problemMatcher": []
|
"problemMatcher": []
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "mvn Compile (Release)",
|
"label": "mvn Compile (Release)",
|
||||||
"type": "shell",
|
"type": "shell",
|
||||||
"command": "mvn",
|
"command": "mvn",
|
||||||
"args": [
|
"args": [
|
||||||
"clean",
|
"clean",
|
||||||
"install"
|
"install"
|
||||||
],
|
],
|
||||||
"problemMatcher": []
|
"problemMatcher": []
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "mvn Compile (Online)",
|
"label": "mvn Compile (Online)",
|
||||||
"type": "shell",
|
"type": "shell",
|
||||||
"command": "mvn",
|
"command": "mvn",
|
||||||
"args": [
|
"args": [
|
||||||
"clean",
|
"clean",
|
||||||
"install",
|
"install",
|
||||||
"-DskipChecks"
|
"-DskipChecks"
|
||||||
],
|
],
|
||||||
"problemMatcher": []
|
"problemMatcher": []
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "mvn Compile (Offline)",
|
"label": "mvn Compile (Offline)",
|
||||||
"type": "shell",
|
"type": "shell",
|
||||||
"command": "mvn",
|
"command": "mvn",
|
||||||
"args": [
|
"args": [
|
||||||
"-o",
|
"-o",
|
||||||
"clean",
|
"clean",
|
||||||
"install",
|
"install",
|
||||||
"-DskipChecks"
|
"-DskipChecks"
|
||||||
],
|
],
|
||||||
"problemMatcher": []
|
"problemMatcher": []
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "Copy Distribution to Addons",
|
"label": "Copy Distribution to Addons",
|
||||||
"type": "shell",
|
"type": "shell",
|
||||||
"command": "cp",
|
"command": "cp",
|
||||||
"args": [
|
"args": [
|
||||||
"${workspaceFolder}/target/$dist",
|
"${workspaceFolder}/target/$dist",
|
||||||
"$openhab_addons"
|
"$openhab_addons"
|
||||||
],
|
],
|
||||||
"windows": {
|
"windows": {
|
||||||
"command": "copy",
|
"command": "copy",
|
||||||
"args": [
|
"args": [
|
||||||
"${workspaceFolder}/target/$env:dist",
|
"${workspaceFolder}/target/$env:dist",
|
||||||
"$env:openhab_addons"
|
"$env:openhab_addons"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"dependsOn": [
|
"dependsOn": [
|
||||||
"mvn Compile (Offline)"
|
"mvn Compile (Offline)"
|
||||||
],
|
],
|
||||||
"problemMatcher": []
|
"problemMatcher": []
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "Build",
|
"label": "Build",
|
||||||
"dependsOn": [
|
"dependsOn": [
|
||||||
"Copy Distribution to Addons"
|
"Copy Distribution to Addons"
|
||||||
],
|
],
|
||||||
"problemMatcher": []
|
"problemMatcher": []
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "Tail events.log",
|
"label": "Tail events.log",
|
||||||
"type": "shell",
|
"type": "shell",
|
||||||
"command": "tail",
|
"command": "tail",
|
||||||
"args": [
|
"args": [
|
||||||
"-n",
|
"-n",
|
||||||
"50",
|
"50",
|
||||||
"-F",
|
"-F",
|
||||||
"$openhab_logs/events.log"
|
"$openhab_logs/events.log"
|
||||||
],
|
],
|
||||||
"windows": {
|
"windows": {
|
||||||
"command": "Get-Content",
|
"command": "Get-Content",
|
||||||
"args": [
|
"args": [
|
||||||
"-Last",
|
"-Last",
|
||||||
"50",
|
"50",
|
||||||
"-Path",
|
"-Path",
|
||||||
"$env:openhab_logs/events.log",
|
"$env:openhab_logs/events.log",
|
||||||
"-Wait"
|
"-Wait"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"presentation": {
|
"presentation": {
|
||||||
"reveal": "always",
|
"reveal": "always",
|
||||||
"panel": "new"
|
"panel": "new"
|
||||||
},
|
},
|
||||||
"problemMatcher": []
|
"problemMatcher": []
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"label": "Tail openhab.log",
|
"label": "Tail openhab.log",
|
||||||
"type": "shell",
|
"type": "shell",
|
||||||
"command": "tail",
|
"command": "tail",
|
||||||
"args": [
|
"args": [
|
||||||
"-n",
|
"-n",
|
||||||
"50",
|
"50",
|
||||||
"-F",
|
"-F",
|
||||||
"$openhab_logs/openhab.log"
|
"$openhab_logs/openhab.log"
|
||||||
],
|
],
|
||||||
"windows": {
|
"windows": {
|
||||||
"command": "Get-Content",
|
"command": "Get-Content",
|
||||||
"args": [
|
"args": [
|
||||||
"-Last",
|
"-Last",
|
||||||
"50",
|
"50",
|
||||||
"-Path",
|
"-Path",
|
||||||
"$env:openhab_logs/openhab.log",
|
"$env:openhab_logs/openhab.log",
|
||||||
"-Wait"
|
"-Wait"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"presentation": {
|
"presentation": {
|
||||||
"reveal": "always",
|
"reveal": "always",
|
||||||
"panel": "new"
|
"panel": "new"
|
||||||
},
|
},
|
||||||
"problemMatcher": []
|
"problemMatcher": []
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
This content is produced and maintained by the openHAB project.
|
This content is produced and maintained by the openHAB project.
|
||||||
|
|
||||||
* Project home: https://www.openhab.org
|
* Project home: https://www.openhab.org
|
||||||
|
|
||||||
== Declared Project Licenses
|
== Declared Project Licenses
|
||||||
|
|
||||||
This program and the accompanying materials are made available under the terms
|
This program and the accompanying materials are made available under the terms
|
||||||
of the Eclipse Public License 2.0 which is available at
|
of the Eclipse Public License 2.0 which is available at
|
||||||
https://www.eclipse.org/legal/epl-2.0/.
|
https://www.eclipse.org/legal/epl-2.0/.
|
||||||
|
|
||||||
== Source Code
|
== Source Code
|
||||||
|
|
||||||
https://github.com/openhab/openhab-addons
|
https://github.com/openhab/openhab-addons
|
||||||
|
|||||||
@@ -1,94 +1,94 @@
|
|||||||
# MeyCan Binding
|
# MeyCan Binding
|
||||||
|
|
||||||
_Give some details about what this binding is meant for - a protocol, system, specific device._
|
_Give some details about what this binding is meant for - a protocol, system, specific device._
|
||||||
|
|
||||||
_If possible, provide some resources like pictures (only PNG is supported currently), a video, etc. to give an impression of what can be done with this binding._
|
_If possible, provide some resources like pictures (only PNG is supported currently), a video, etc. to give an impression of what can be done with this binding._
|
||||||
_You can place such resources into a `doc` folder next to this README.md._
|
_You can place such resources into a `doc` folder next to this README.md._
|
||||||
|
|
||||||
_Put each sentence in a separate line to improve readability of diffs._
|
_Put each sentence in a separate line to improve readability of diffs._
|
||||||
|
|
||||||
## Supported Things
|
## Supported Things
|
||||||
|
|
||||||
_Please describe the different supported things / devices including their ThingTypeUID within this section._
|
_Please describe the different supported things / devices including their ThingTypeUID within this section._
|
||||||
_Which different types are supported, which models were tested etc.?_
|
_Which different types are supported, which models were tested etc.?_
|
||||||
_Note that it is planned to generate some part of this based on the XML files within ```src/main/resources/OH-INF/thing``` of your binding._
|
_Note that it is planned to generate some part of this based on the XML files within ```src/main/resources/OH-INF/thing``` of your binding._
|
||||||
|
|
||||||
- `bridge`: Short description of the Bridge, if any
|
- `bridge`: Short description of the Bridge, if any
|
||||||
- `sample`: Short description of the Thing with the ThingTypeUID `sample`
|
- `sample`: Short description of the Thing with the ThingTypeUID `sample`
|
||||||
|
|
||||||
## Discovery
|
## Discovery
|
||||||
|
|
||||||
_Describe the available auto-discovery features here._
|
_Describe the available auto-discovery features here._
|
||||||
_Mention for what it works and what needs to be kept in mind when using it._
|
_Mention for what it works and what needs to be kept in mind when using it._
|
||||||
|
|
||||||
## Binding Configuration
|
## Binding Configuration
|
||||||
|
|
||||||
_If your binding requires or supports general configuration settings, please create a folder ```cfg``` and place the configuration file ```<bindingId>.cfg``` inside it._
|
_If your binding requires or supports general configuration settings, please create a folder ```cfg``` and place the configuration file ```<bindingId>.cfg``` inside it._
|
||||||
_In this section, you should link to this file and provide some information about the options._
|
_In this section, you should link to this file and provide some information about the options._
|
||||||
_The file could e.g. look like:_
|
_The file could e.g. look like:_
|
||||||
|
|
||||||
```
|
```
|
||||||
# Configuration for the MeyCan Binding
|
# Configuration for the MeyCan Binding
|
||||||
#
|
#
|
||||||
# Default secret key for the pairing of the MeyCan Thing.
|
# Default secret key for the pairing of the MeyCan Thing.
|
||||||
# It has to be between 10-40 (alphanumeric) characters.
|
# It has to be between 10-40 (alphanumeric) characters.
|
||||||
# This may be changed by the user for security reasons.
|
# This may be changed by the user for security reasons.
|
||||||
secret=openHABSecret
|
secret=openHABSecret
|
||||||
```
|
```
|
||||||
|
|
||||||
_Note that it is planned to generate some part of this based on the information that is available within ```src/main/resources/OH-INF/binding``` of your binding._
|
_Note that it is planned to generate some part of this based on the information that is available within ```src/main/resources/OH-INF/binding``` of your binding._
|
||||||
|
|
||||||
_If your binding does not offer any generic configurations, you can remove this section completely._
|
_If your binding does not offer any generic configurations, you can remove this section completely._
|
||||||
|
|
||||||
## Thing Configuration
|
## Thing Configuration
|
||||||
|
|
||||||
_Describe what is needed to manually configure a thing, either through the UI or via a thing-file._
|
_Describe what is needed to manually configure a thing, either through the UI or via a thing-file._
|
||||||
_This should be mainly about its mandatory and optional configuration parameters._
|
_This should be mainly about its mandatory and optional configuration parameters._
|
||||||
|
|
||||||
_Note that it is planned to generate some part of this based on the XML files within ```src/main/resources/OH-INF/thing``` of your binding._
|
_Note that it is planned to generate some part of this based on the XML files within ```src/main/resources/OH-INF/thing``` of your binding._
|
||||||
|
|
||||||
### `sample` Thing Configuration
|
### `sample` Thing Configuration
|
||||||
|
|
||||||
| Name | Type | Description | Default | Required | Advanced |
|
| Name | Type | Description | Default | Required | Advanced |
|
||||||
|-----------------|---------|---------------------------------------|---------|----------|----------|
|
|-----------------|---------|---------------------------------------|---------|----------|----------|
|
||||||
| hostname | text | Hostname or IP address of the device | N/A | yes | no |
|
| hostname | text | Hostname or IP address of the device | N/A | yes | no |
|
||||||
| password | text | Password to access the device | N/A | yes | no |
|
| password | text | Password to access the device | N/A | yes | no |
|
||||||
| refreshInterval | integer | Interval the device is polled in sec. | 600 | no | yes |
|
| refreshInterval | integer | Interval the device is polled in sec. | 600 | no | yes |
|
||||||
|
|
||||||
## Channels
|
## Channels
|
||||||
|
|
||||||
_Here you should provide information about available channel types, what their meaning is and how they can be used._
|
_Here you should provide information about available channel types, what their meaning is and how they can be used._
|
||||||
|
|
||||||
_Note that it is planned to generate some part of this based on the XML files within ```src/main/resources/OH-INF/thing``` of your binding._
|
_Note that it is planned to generate some part of this based on the XML files within ```src/main/resources/OH-INF/thing``` of your binding._
|
||||||
|
|
||||||
| Channel | Type | Read/Write | Description |
|
| Channel | Type | Read/Write | Description |
|
||||||
|---------|--------|------------|-----------------------------|
|
|---------|--------|------------|-----------------------------|
|
||||||
| control | Switch | RW | This is the control channel |
|
| control | Switch | RW | This is the control channel |
|
||||||
|
|
||||||
## Full Example
|
## Full Example
|
||||||
|
|
||||||
_Provide a full usage example based on textual configuration files._
|
_Provide a full usage example based on textual configuration files._
|
||||||
_*.things, *.items examples are mandatory as textual configuration is well used by many users._
|
_*.things, *.items examples are mandatory as textual configuration is well used by many users._
|
||||||
_*.sitemap examples are optional._
|
_*.sitemap examples are optional._
|
||||||
|
|
||||||
### Thing Configuration
|
### Thing Configuration
|
||||||
|
|
||||||
```java
|
```java
|
||||||
Example thing configuration goes here.
|
Example thing configuration goes here.
|
||||||
```
|
```
|
||||||
### Item Configuration
|
### Item Configuration
|
||||||
|
|
||||||
```java
|
```java
|
||||||
Example item configuration goes here.
|
Example item configuration goes here.
|
||||||
```
|
```
|
||||||
|
|
||||||
### Sitemap Configuration
|
### Sitemap Configuration
|
||||||
|
|
||||||
```perl
|
```perl
|
||||||
Optional Sitemap configuration goes here.
|
Optional Sitemap configuration goes here.
|
||||||
Remove this section, if not needed.
|
Remove this section, if not needed.
|
||||||
```
|
```
|
||||||
|
|
||||||
## Any custom content here!
|
## Any custom content here!
|
||||||
|
|
||||||
_Feel free to add additional sections for whatever you think should also be mentioned about your binding!_
|
_Feel free to add additional sections for whatever you think should also be mentioned about your binding!_
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
|
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>org.openhab.addons.bundles</groupId>
|
<groupId>org.openhab.addons.bundles</groupId>
|
||||||
<artifactId>org.openhab.addons.reactor.bundles</artifactId>
|
<artifactId>org.openhab.addons.reactor.bundles</artifactId>
|
||||||
<version>4.0.0-SNAPSHOT</version>
|
<version>4.0.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<artifactId>org.openhab.binding.meycan</artifactId>
|
<artifactId>org.openhab.binding.meycan</artifactId>
|
||||||
|
|
||||||
<name>openHAB Add-ons :: Bundles :: MeyCan Binding</name>
|
<name>openHAB Add-ons :: Bundles :: MeyCan Binding</name>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<features name="org.openhab.binding.meycan-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.4.0">
|
<features name="org.openhab.binding.meycan-${project.version}" xmlns="http://karaf.apache.org/xmlns/features/v1.4.0">
|
||||||
<repository>mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/features</repository>
|
<repository>mvn:org.openhab.core.features.karaf/org.openhab.core.features.karaf.openhab-core/${ohc.version}/xml/features</repository>
|
||||||
|
|
||||||
<feature name="openhab-binding-meycan" description="MeyCan Binding" version="${project.version}">
|
<feature name="openhab-binding-meycan" description="MeyCan Binding" version="${project.version}">
|
||||||
<feature>openhab-runtime-base</feature>
|
<feature>openhab-runtime-base</feature>
|
||||||
<bundle start-level="80">mvn:org.openhab.addons.bundles/org.openhab.binding.meycan/${project.version}</bundle>
|
<bundle start-level="80">mvn:org.openhab.addons.bundles/org.openhab.binding.meycan/${project.version}</bundle>
|
||||||
</feature>
|
</feature>
|
||||||
</features>
|
</features>
|
||||||
|
|||||||
@@ -1,34 +1,34 @@
|
|||||||
/**
|
/**
|
||||||
* Copyright (c) 2010-2023 Contributors to the openHAB project
|
* Copyright (c) 2010-2023 Contributors to the openHAB project
|
||||||
*
|
*
|
||||||
* See the NOTICE file(s) distributed with this work for additional
|
* See the NOTICE file(s) distributed with this work for additional
|
||||||
* information.
|
* information.
|
||||||
*
|
*
|
||||||
* This program and the accompanying materials are made available under the
|
* This program and the accompanying materials are made available under the
|
||||||
* terms of the Eclipse Public License 2.0 which is available at
|
* terms of the Eclipse Public License 2.0 which is available at
|
||||||
* http://www.eclipse.org/legal/epl-2.0
|
* http://www.eclipse.org/legal/epl-2.0
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: EPL-2.0
|
* SPDX-License-Identifier: EPL-2.0
|
||||||
*/
|
*/
|
||||||
package org.openhab.binding.meycan.internal;
|
package org.openhab.binding.meycan.internal;
|
||||||
|
|
||||||
import org.eclipse.jdt.annotation.NonNullByDefault;
|
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||||
import org.openhab.core.thing.ThingTypeUID;
|
import org.openhab.core.thing.ThingTypeUID;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The {@link MeyCanBindingConstants} class defines common constants, which are
|
* The {@link MeyCanBindingConstants} class defines common constants, which are
|
||||||
* used across the whole binding.
|
* used across the whole binding.
|
||||||
*
|
*
|
||||||
* @author Martin Linkwitz - Initial contribution
|
* @author Martin Linkwitz - Initial contribution
|
||||||
*/
|
*/
|
||||||
@NonNullByDefault
|
@NonNullByDefault
|
||||||
public class MeyCanBindingConstants {
|
public class MeyCanBindingConstants {
|
||||||
|
|
||||||
private static final String BINDING_ID = "meycan";
|
private static final String BINDING_ID = "meycan";
|
||||||
|
|
||||||
// List of all Thing Type UIDs
|
// List of all Thing Type UIDs
|
||||||
public static final ThingTypeUID THING_TYPE_SAMPLE = new ThingTypeUID(BINDING_ID, "sample");
|
public static final ThingTypeUID THING_TYPE_SAMPLE = new ThingTypeUID(BINDING_ID, "sample");
|
||||||
|
|
||||||
// List of all Channel ids
|
// List of all Channel ids
|
||||||
public static final String CHANNEL_1 = "channel1";
|
public static final String CHANNEL_1 = "channel1";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,31 +1,31 @@
|
|||||||
/**
|
/**
|
||||||
* Copyright (c) 2010-2023 Contributors to the openHAB project
|
* Copyright (c) 2010-2023 Contributors to the openHAB project
|
||||||
*
|
*
|
||||||
* See the NOTICE file(s) distributed with this work for additional
|
* See the NOTICE file(s) distributed with this work for additional
|
||||||
* information.
|
* information.
|
||||||
*
|
*
|
||||||
* This program and the accompanying materials are made available under the
|
* This program and the accompanying materials are made available under the
|
||||||
* terms of the Eclipse Public License 2.0 which is available at
|
* terms of the Eclipse Public License 2.0 which is available at
|
||||||
* http://www.eclipse.org/legal/epl-2.0
|
* http://www.eclipse.org/legal/epl-2.0
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: EPL-2.0
|
* SPDX-License-Identifier: EPL-2.0
|
||||||
*/
|
*/
|
||||||
package org.openhab.binding.meycan.internal;
|
package org.openhab.binding.meycan.internal;
|
||||||
|
|
||||||
import org.eclipse.jdt.annotation.NonNullByDefault;
|
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The {@link MeyCanConfiguration} class contains fields mapping thing configuration parameters.
|
* The {@link MeyCanConfiguration} class contains fields mapping thing configuration parameters.
|
||||||
*
|
*
|
||||||
* @author Martin Linkwitz - Initial contribution
|
* @author Martin Linkwitz - Initial contribution
|
||||||
*/
|
*/
|
||||||
@NonNullByDefault
|
@NonNullByDefault
|
||||||
public class MeyCanConfiguration {
|
public class MeyCanConfiguration {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sample configuration parameters. Replace with your own.
|
* Sample configuration parameters. Replace with your own.
|
||||||
*/
|
*/
|
||||||
public String hostname = "";
|
public String hostname = "";
|
||||||
public String password = "";
|
public String password = "";
|
||||||
public int refreshInterval = 600;
|
public int refreshInterval = 600;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,104 +1,104 @@
|
|||||||
/**
|
/**
|
||||||
* Copyright (c) 2010-2023 Contributors to the openHAB project
|
* Copyright (c) 2010-2023 Contributors to the openHAB project
|
||||||
*
|
*
|
||||||
* See the NOTICE file(s) distributed with this work for additional
|
* See the NOTICE file(s) distributed with this work for additional
|
||||||
* information.
|
* information.
|
||||||
*
|
*
|
||||||
* This program and the accompanying materials are made available under the
|
* This program and the accompanying materials are made available under the
|
||||||
* terms of the Eclipse Public License 2.0 which is available at
|
* terms of the Eclipse Public License 2.0 which is available at
|
||||||
* http://www.eclipse.org/legal/epl-2.0
|
* http://www.eclipse.org/legal/epl-2.0
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: EPL-2.0
|
* SPDX-License-Identifier: EPL-2.0
|
||||||
*/
|
*/
|
||||||
package org.openhab.binding.meycan.internal;
|
package org.openhab.binding.meycan.internal;
|
||||||
|
|
||||||
import static org.openhab.binding.meycan.internal.MeyCanBindingConstants.*;
|
import static org.openhab.binding.meycan.internal.MeyCanBindingConstants.*;
|
||||||
|
|
||||||
import org.eclipse.jdt.annotation.NonNullByDefault;
|
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||||
import org.eclipse.jdt.annotation.Nullable;
|
import org.eclipse.jdt.annotation.Nullable;
|
||||||
import org.openhab.core.thing.ChannelUID;
|
import org.openhab.core.thing.ChannelUID;
|
||||||
import org.openhab.core.thing.Thing;
|
import org.openhab.core.thing.Thing;
|
||||||
import org.openhab.core.thing.ThingStatus;
|
import org.openhab.core.thing.ThingStatus;
|
||||||
import org.openhab.core.thing.binding.BaseThingHandler;
|
import org.openhab.core.thing.binding.BaseThingHandler;
|
||||||
import org.openhab.core.types.Command;
|
import org.openhab.core.types.Command;
|
||||||
import org.openhab.core.types.RefreshType;
|
import org.openhab.core.types.RefreshType;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The {@link MeyCanHandler} is responsible for handling commands, which are
|
* The {@link MeyCanHandler} is responsible for handling commands, which are
|
||||||
* sent to one of the channels.
|
* sent to one of the channels.
|
||||||
*
|
*
|
||||||
* @author Martin Linkwitz - Initial contribution
|
* @author Martin Linkwitz - Initial contribution
|
||||||
*/
|
*/
|
||||||
@NonNullByDefault
|
@NonNullByDefault
|
||||||
public class MeyCanHandler extends BaseThingHandler {
|
public class MeyCanHandler extends BaseThingHandler {
|
||||||
|
|
||||||
private final Logger logger = LoggerFactory.getLogger(MeyCanHandler.class);
|
private final Logger logger = LoggerFactory.getLogger(MeyCanHandler.class);
|
||||||
|
|
||||||
private @Nullable MeyCanConfiguration config;
|
private @Nullable MeyCanConfiguration config;
|
||||||
|
|
||||||
public MeyCanHandler(Thing thing) {
|
public MeyCanHandler(Thing thing) {
|
||||||
super(thing);
|
super(thing);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleCommand(ChannelUID channelUID, Command command) {
|
public void handleCommand(ChannelUID channelUID, Command command) {
|
||||||
if (CHANNEL_1.equals(channelUID.getId())) {
|
if (CHANNEL_1.equals(channelUID.getId())) {
|
||||||
if (command instanceof RefreshType) {
|
if (command instanceof RefreshType) {
|
||||||
// TODO: handle data refresh
|
// TODO: handle data refresh
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: handle command
|
// TODO: handle command
|
||||||
|
|
||||||
// Note: if communication with thing fails for some reason,
|
// Note: if communication with thing fails for some reason,
|
||||||
// indicate that by setting the status with detail information:
|
// indicate that by setting the status with detail information:
|
||||||
// updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR,
|
// updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR,
|
||||||
// "Could not control device at IP address x.x.x.x");
|
// "Could not control device at IP address x.x.x.x");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initialize() {
|
public void initialize() {
|
||||||
config = getConfigAs(MeyCanConfiguration.class);
|
config = getConfigAs(MeyCanConfiguration.class);
|
||||||
|
|
||||||
// TODO: Initialize the handler.
|
// TODO: Initialize the handler.
|
||||||
// The framework requires you to return from this method quickly, i.e. any network access must be done in
|
// The framework requires you to return from this method quickly, i.e. any network access must be done in
|
||||||
// the background initialization below.
|
// the background initialization below.
|
||||||
// Also, before leaving this method a thing status from one of ONLINE, OFFLINE or UNKNOWN must be set. This
|
// Also, before leaving this method a thing status from one of ONLINE, OFFLINE or UNKNOWN must be set. This
|
||||||
// might already be the real thing status in case you can decide it directly.
|
// might already be the real thing status in case you can decide it directly.
|
||||||
// In case you can not decide the thing status directly (e.g. for long running connection handshake using WAN
|
// In case you can not decide the thing status directly (e.g. for long running connection handshake using WAN
|
||||||
// access or similar) you should set status UNKNOWN here and then decide the real status asynchronously in the
|
// access or similar) you should set status UNKNOWN here and then decide the real status asynchronously in the
|
||||||
// background.
|
// background.
|
||||||
|
|
||||||
// set the thing status to UNKNOWN temporarily and let the background task decide for the real status.
|
// set the thing status to UNKNOWN temporarily and let the background task decide for the real status.
|
||||||
// the framework is then able to reuse the resources from the thing handler initialization.
|
// the framework is then able to reuse the resources from the thing handler initialization.
|
||||||
// we set this upfront to reliably check status updates in unit tests.
|
// we set this upfront to reliably check status updates in unit tests.
|
||||||
updateStatus(ThingStatus.UNKNOWN);
|
updateStatus(ThingStatus.UNKNOWN);
|
||||||
|
|
||||||
// Example for background initialization:
|
// Example for background initialization:
|
||||||
scheduler.execute(() -> {
|
scheduler.execute(() -> {
|
||||||
boolean thingReachable = true; // <background task with long running initialization here>
|
boolean thingReachable = true; // <background task with long running initialization here>
|
||||||
// when done do:
|
// when done do:
|
||||||
if (thingReachable) {
|
if (thingReachable) {
|
||||||
updateStatus(ThingStatus.ONLINE);
|
updateStatus(ThingStatus.ONLINE);
|
||||||
} else {
|
} else {
|
||||||
updateStatus(ThingStatus.OFFLINE);
|
updateStatus(ThingStatus.OFFLINE);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// These logging types should be primarily used by bindings
|
// These logging types should be primarily used by bindings
|
||||||
// logger.trace("Example trace message");
|
// logger.trace("Example trace message");
|
||||||
// logger.debug("Example debug message");
|
// logger.debug("Example debug message");
|
||||||
// logger.warn("Example warn message");
|
// logger.warn("Example warn message");
|
||||||
//
|
//
|
||||||
// Logging to INFO should be avoided normally.
|
// Logging to INFO should be avoided normally.
|
||||||
// See https://www.openhab.org/docs/developer/guidelines.html#f-logging
|
// See https://www.openhab.org/docs/developer/guidelines.html#f-logging
|
||||||
|
|
||||||
// Note: When initialization can NOT be done set the status with more details for further
|
// Note: When initialization can NOT be done set the status with more details for further
|
||||||
// analysis. See also class ThingStatusDetail for all available status details.
|
// analysis. See also class ThingStatusDetail for all available status details.
|
||||||
// Add a description to give user information to understand why thing does not work as expected. E.g.
|
// Add a description to give user information to understand why thing does not work as expected. E.g.
|
||||||
// updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR,
|
// updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR,
|
||||||
// "Can not access device as username and/or password are invalid");
|
// "Can not access device as username and/or password are invalid");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,55 +1,55 @@
|
|||||||
/**
|
/**
|
||||||
* Copyright (c) 2010-2023 Contributors to the openHAB project
|
* Copyright (c) 2010-2023 Contributors to the openHAB project
|
||||||
*
|
*
|
||||||
* See the NOTICE file(s) distributed with this work for additional
|
* See the NOTICE file(s) distributed with this work for additional
|
||||||
* information.
|
* information.
|
||||||
*
|
*
|
||||||
* This program and the accompanying materials are made available under the
|
* This program and the accompanying materials are made available under the
|
||||||
* terms of the Eclipse Public License 2.0 which is available at
|
* terms of the Eclipse Public License 2.0 which is available at
|
||||||
* http://www.eclipse.org/legal/epl-2.0
|
* http://www.eclipse.org/legal/epl-2.0
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: EPL-2.0
|
* SPDX-License-Identifier: EPL-2.0
|
||||||
*/
|
*/
|
||||||
package org.openhab.binding.meycan.internal;
|
package org.openhab.binding.meycan.internal;
|
||||||
|
|
||||||
import static org.openhab.binding.meycan.internal.MeyCanBindingConstants.*;
|
import static org.openhab.binding.meycan.internal.MeyCanBindingConstants.*;
|
||||||
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import org.eclipse.jdt.annotation.NonNullByDefault;
|
import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||||
import org.eclipse.jdt.annotation.Nullable;
|
import org.eclipse.jdt.annotation.Nullable;
|
||||||
import org.openhab.core.thing.Thing;
|
import org.openhab.core.thing.Thing;
|
||||||
import org.openhab.core.thing.ThingTypeUID;
|
import org.openhab.core.thing.ThingTypeUID;
|
||||||
import org.openhab.core.thing.binding.BaseThingHandlerFactory;
|
import org.openhab.core.thing.binding.BaseThingHandlerFactory;
|
||||||
import org.openhab.core.thing.binding.ThingHandler;
|
import org.openhab.core.thing.binding.ThingHandler;
|
||||||
import org.openhab.core.thing.binding.ThingHandlerFactory;
|
import org.openhab.core.thing.binding.ThingHandlerFactory;
|
||||||
import org.osgi.service.component.annotations.Component;
|
import org.osgi.service.component.annotations.Component;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The {@link MeyCanHandlerFactory} is responsible for creating things and thing
|
* The {@link MeyCanHandlerFactory} is responsible for creating things and thing
|
||||||
* handlers.
|
* handlers.
|
||||||
*
|
*
|
||||||
* @author Martin Linkwitz - Initial contribution
|
* @author Martin Linkwitz - Initial contribution
|
||||||
*/
|
*/
|
||||||
@NonNullByDefault
|
@NonNullByDefault
|
||||||
@Component(configurationPid = "binding.meycan", service = ThingHandlerFactory.class)
|
@Component(configurationPid = "binding.meycan", service = ThingHandlerFactory.class)
|
||||||
public class MeyCanHandlerFactory extends BaseThingHandlerFactory {
|
public class MeyCanHandlerFactory extends BaseThingHandlerFactory {
|
||||||
|
|
||||||
private static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Set.of(THING_TYPE_SAMPLE);
|
private static final Set<ThingTypeUID> SUPPORTED_THING_TYPES_UIDS = Set.of(THING_TYPE_SAMPLE);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean supportsThingType(ThingTypeUID thingTypeUID) {
|
public boolean supportsThingType(ThingTypeUID thingTypeUID) {
|
||||||
return SUPPORTED_THING_TYPES_UIDS.contains(thingTypeUID);
|
return SUPPORTED_THING_TYPES_UIDS.contains(thingTypeUID);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected @Nullable ThingHandler createHandler(Thing thing) {
|
protected @Nullable ThingHandler createHandler(Thing thing) {
|
||||||
ThingTypeUID thingTypeUID = thing.getThingTypeUID();
|
ThingTypeUID thingTypeUID = thing.getThingTypeUID();
|
||||||
|
|
||||||
if (THING_TYPE_SAMPLE.equals(thingTypeUID)) {
|
if (THING_TYPE_SAMPLE.equals(thingTypeUID)) {
|
||||||
return new MeyCanHandler(thing);
|
return new MeyCanHandler(thing);
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<addon:addon id="meycan" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
<addon:addon id="meycan" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xmlns:addon="https://openhab.org/schemas/addon/v1.0.0"
|
xmlns:addon="https://openhab.org/schemas/addon/v1.0.0"
|
||||||
xsi:schemaLocation="https://openhab.org/schemas/addon/v1.0.0 https://openhab.org/schemas/addon-1.0.0.xsd">
|
xsi:schemaLocation="https://openhab.org/schemas/addon/v1.0.0 https://openhab.org/schemas/addon-1.0.0.xsd">
|
||||||
|
|
||||||
<type>binding</type>
|
<type>binding</type>
|
||||||
<name>MeyCan Binding</name>
|
<name>MeyCan Binding</name>
|
||||||
<description>This is the binding for MeyCan.</description>
|
<description>This is the binding for MeyCan.</description>
|
||||||
|
|
||||||
</addon:addon>
|
</addon:addon>
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
# FIXME: please add all English translations to this file so the texts can be translated using Crowdin
|
# FIXME: please add all English translations to this file so the texts can be translated using Crowdin
|
||||||
# FIXME: to generate the content of this file run: mvn i18n:generate-default-translations
|
# FIXME: to generate the content of this file run: mvn i18n:generate-default-translations
|
||||||
# FIXME: see also: https://www.openhab.org/docs/developer/utils/i18n.html
|
# FIXME: see also: https://www.openhab.org/docs/developer/utils/i18n.html
|
||||||
|
|||||||
@@ -1,48 +1,48 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<thing:thing-descriptions bindingId="meycan"
|
<thing:thing-descriptions bindingId="meycan"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
|
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
|
||||||
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
|
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
|
||||||
|
|
||||||
<!-- Sample Thing Type -->
|
<!-- Sample Thing Type -->
|
||||||
<thing-type id="sample">
|
<thing-type id="sample">
|
||||||
<!-- Comment this in for Things which need a Bridge to function.
|
<!-- Comment this in for Things which need a Bridge to function.
|
||||||
<supported-bridge-type-refs>
|
<supported-bridge-type-refs>
|
||||||
<bridge-type-ref id="MeyCanBridge" />
|
<bridge-type-ref id="MeyCanBridge" />
|
||||||
</supported-bridge-type-refs>
|
</supported-bridge-type-refs>
|
||||||
-->
|
-->
|
||||||
|
|
||||||
<label>MeyCan Binding Thing</label>
|
<label>MeyCan Binding Thing</label>
|
||||||
<description>Sample thing for MeyCan Binding</description>
|
<description>Sample thing for MeyCan Binding</description>
|
||||||
|
|
||||||
<channels>
|
<channels>
|
||||||
<channel id="channel1" typeId="sample-channel"/>
|
<channel id="channel1" typeId="sample-channel"/>
|
||||||
</channels>
|
</channels>
|
||||||
|
|
||||||
<config-description>
|
<config-description>
|
||||||
<parameter name="hostname" type="text" required="true">
|
<parameter name="hostname" type="text" required="true">
|
||||||
<context>network-address</context>
|
<context>network-address</context>
|
||||||
<label>Hostname</label>
|
<label>Hostname</label>
|
||||||
<description>Hostname or IP address of the device</description>
|
<description>Hostname or IP address of the device</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="password" type="text" required="true">
|
<parameter name="password" type="text" required="true">
|
||||||
<context>password</context>
|
<context>password</context>
|
||||||
<label>Password</label>
|
<label>Password</label>
|
||||||
<description>Password to access the device</description>
|
<description>Password to access the device</description>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter name="refreshInterval" type="integer" unit="s" min="1">
|
<parameter name="refreshInterval" type="integer" unit="s" min="1">
|
||||||
<label>Refresh Interval</label>
|
<label>Refresh Interval</label>
|
||||||
<description>Interval the device is polled in sec.</description>
|
<description>Interval the device is polled in sec.</description>
|
||||||
<default>600</default>
|
<default>600</default>
|
||||||
<advanced>true</advanced>
|
<advanced>true</advanced>
|
||||||
</parameter>
|
</parameter>
|
||||||
</config-description>
|
</config-description>
|
||||||
</thing-type>
|
</thing-type>
|
||||||
|
|
||||||
<!-- Sample Channel Type -->
|
<!-- Sample Channel Type -->
|
||||||
<channel-type id="sample-channel">
|
<channel-type id="sample-channel">
|
||||||
<item-type>Number:Temperature</item-type>
|
<item-type>Number:Temperature</item-type>
|
||||||
<label>Example Temperature</label><!-- Use uppercase words, except prepositions. 2-3 words, max 25 chars -->
|
<label>Example Temperature</label><!-- Use uppercase words, except prepositions. 2-3 words, max 25 chars -->
|
||||||
<description>Sample channel for MeyCan Binding</description>
|
<description>Sample channel for MeyCan Binding</description>
|
||||||
</channel-type>
|
</channel-type>
|
||||||
</thing:thing-descriptions>
|
</thing:thing-descriptions>
|
||||||
|
|||||||
@@ -1,49 +1,67 @@
|
|||||||
MeyCan: PROTOCOL
|
MeyCan: PROTOCOL
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ArbitartionID:
|
ArbitartionID:
|
||||||
|<-- 13 bits -->| |<-- 16 bits -->|
|
|<-- 13 bits -->| |<-- 16 bits -->|
|
||||||
COMMAND DEVICE_ID
|
COMMAND DEVICE_ID
|
||||||
ABC 0x14 6A
|
ABC 0x14 6A
|
||||||
|
|
||||||
|
|
||||||
COMMAND: The Command or data type transfered. -> 2^11 = 2048 Package-Types
|
COMMAND: The Command or data type transfered. -> 2^11 = 2048 Package-Types
|
||||||
DEVICE_ID: A unique id for the device within the CAN Network (Home) -> 2^18 bit = 65.536 devices allowed
|
DEVICE_ID: A unique id for the device within the CAN Network (Home) -> 2^18 bit = 65.536 devices allowed
|
||||||
|
|
||||||
Packages
|
Packages
|
||||||
---------------------------------
|
---------------------------------
|
||||||
0xF00: HELLO->ADOPT
|
0xF00: HELLO->ADOPT
|
||||||
Payload:
|
Payload:
|
||||||
2 bytes | Byte -> Software-Version (1.0)
|
2 bytes | Byte -> Software-Version (1.0)
|
||||||
2 bytes | Byte -> Hw Version (4.0)
|
2 bytes | Byte -> Hw Version (4.0)
|
||||||
2 bytes | DeviceId -> DeviceId Explicit
|
1 bytes | DeviceTypeId
|
||||||
|
| 1: Switch
|
||||||
0x050: Input Switch Triggered
|
| 2: Switch + Rule
|
||||||
-> Broadcast
|
| 3: UP
|
||||||
---------------------------------
|
|
||||||
Payload:
|
0x050: Input Switch Triggered
|
||||||
1 byte| PinId -> Id of the pin of the local board.
|
-> Broadcast
|
||||||
1 byte| State -> 1 for Switched, 0 for Unswitched
|
---------------------------------
|
||||||
|
Payload:
|
||||||
0x055: Command Set Switch
|
1 byte| PinId -> Id of the pin of the local board.
|
||||||
-> Broadcast
|
1 byte| State -> 1 for Switched, 0 for Unswitched
|
||||||
---------------------------------
|
|
||||||
2 bytes | TargetDeviceId -> The id of the device to set the pin of
|
0x055: Command Set Switch
|
||||||
1 byte | PinId -> Idof the pin of the board
|
-> Broadcast
|
||||||
1 byte | state -> 1 to swtich on, 0 to switch off
|
---------------------------------
|
||||||
|
2 bytes | TargetDeviceId -> The id of the device to set the pin of
|
||||||
|
1 byte | PinId -> Idof the pin of the board
|
||||||
|
1 byte | state -> 1 to swtich on, 0 to switch off
|
||||||
0x010: Request Remote Pin State
|
|
||||||
-> Broadcast
|
|
||||||
---------------------------------
|
|
||||||
2 bytes | TargetDeviceId -> The id of the board to request the remote pin states from. This needs to be a control device (not UP)
|
0x010: Request Remote Pin State
|
||||||
1 byte | 0: Request
|
-> Broadcast
|
||||||
| 1: Response
|
---------------------------------
|
||||||
DAT |
|
2 bytes | TargetDeviceId -> The id of the board to request the remote pin states from. This needs to be a control device (not UP)
|
||||||
-- n Items of format ------------
|
1 byte | 0: Request
|
||||||
* 2 byte: DeviceId
|
| 1: Response
|
||||||
* 1 byte: The State
|
DAT |
|
||||||
|
-- n Items of format ------------
|
||||||
|
* 2 byte: DeviceId
|
||||||
|
* 1 byte: The State
|
||||||
|
|
||||||
|
0x009: Debug
|
||||||
|
-> Debug Package
|
||||||
|
----------------------------------
|
||||||
|
some debug information
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
0xAA AudioStream #1
|
||||||
|
0xAB AudioStream #2
|
||||||
|
0xBA AudioStream #3
|
||||||
|
0xBB AudioStream #4
|
||||||
|
0xAAXX -> XX = Sequence Counter
|
||||||
|
0xY -> Reserve - Flag
|
||||||
|
|
||||||
|
|<-- 4 bits -->| |<-- 24 bits -->|
|
||||||
|
-> 3 Byte / Paket
|
||||||
|
|||||||
BIN
Software/Switch/.MeyRule.cpp.swp
Normal file
BIN
Software/Switch/.MeyRule.cpp.swp
Normal file
Binary file not shown.
12
Software/Switch/.vscode/arduino.json
vendored
12
Software/Switch/.vscode/arduino.json
vendored
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"configuration": "pinout=48pin_standard,eeprom=keep,resetpin=reset,BOD=2v6,clock=internal_8MHz,bootloader=no_bootloader",
|
"configuration": "pinout=48pin_standard,eeprom=keep,resetpin=reset,BOD=2v6,clock=internal_8MHz,bootloader=no_bootloader",
|
||||||
"board": "MegaCoreX:megaavr:809",
|
"board": "MegaCoreX:megaavr:809",
|
||||||
"sketch": "Switch.ino",
|
"sketch": "Switch.ino",
|
||||||
"port": "COM6",
|
"port": "COM6",
|
||||||
"programmer": "jtag2updi"
|
"programmer": "jtag2updi"
|
||||||
}
|
}
|
||||||
1078
Software/Switch/.vscode/c_cpp_properties.json
vendored
1078
Software/Switch/.vscode/c_cpp_properties.json
vendored
File diff suppressed because it is too large
Load Diff
@@ -1,255 +1,232 @@
|
|||||||
#include "MeyCan.h";
|
#include "MeyCan.h";
|
||||||
#include <SPI.h>;
|
#include <SPI.h>;
|
||||||
#include <mcp2515.h>;
|
#include <mcp2515.h>;
|
||||||
|
|
||||||
|
|
||||||
PinState *MeyPin = NULL;
|
PinState *MeyPin = NULL;
|
||||||
CanInterface *CanBusses = NULL;
|
CanInterface *CanBusses = NULL;
|
||||||
uint16_t myDeviceId;
|
uint16_t myDeviceId;
|
||||||
byte _deviceTypeId = 0;
|
byte _deviceTypeId = 0;
|
||||||
byte _majorHardwareVersion = 0;
|
byte _majorHardwareVersion = 0;
|
||||||
byte _minorHardwareVersion = 0;
|
byte _minorHardwareVersion = 0;
|
||||||
|
void (*LocalPinChangedHandler)(can_frame *frame);
|
||||||
void SetupMeyPin(PinState *state)
|
|
||||||
{
|
void SetupMeyPin(PinState *state) {
|
||||||
pinMode(state->pin_id, OUTPUT);
|
pinMode(state->pin_id, OUTPUT);
|
||||||
digitalWrite(state->pin_id, LOW);
|
digitalWrite(state->pin_id, LOW);
|
||||||
state->pin_state = false;
|
state->pin_state = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void InitCanInterface(MCP2515 *interface, can_frame *frame) // can_frame is NULL. Reuse ForEach Method for smaller footprint
|
void InitCanInterface(MCP2515 *interface, can_frame *frame) // can_frame is NULL. Reuse ForEach Method for smaller footprint
|
||||||
{
|
{
|
||||||
interface->reset();
|
interface->reset();
|
||||||
interface->setBitrate(CAN_500KBPS, MCP_8MHZ); //Sets CAN at speed 500KBPS and Clock 8MHz
|
interface->setBitrate(CAN_1000KBPS, MCP_8MHZ); //Sets CAN at speed 500KBPS and Clock 8MHz
|
||||||
interface->setNormalMode();
|
interface->setNormalMode();
|
||||||
SendVersionPackage(interface);
|
SendVersionPackage(interface);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ForEachCanInterface(void (*handle)(MCP2515 *canInterace))
|
void ForEachCanInterface(void (*handle)(MCP2515 *canInterace)) {
|
||||||
{
|
CanBusses->ForEachInterface(handle);
|
||||||
CanBusses->ForEachInterface(handle);
|
}
|
||||||
}
|
|
||||||
|
void SetupMeyCan(byte majorHardwareVersion, byte minorHardwareVersion, byte deviceTypeId) {
|
||||||
void SetupMeyCan(byte majorHardwareVersion, byte minorHardwareVersion, byte deviceTypeId)
|
_majorHardwareVersion = majorHardwareVersion;
|
||||||
{
|
_minorHardwareVersion = minorHardwareVersion;
|
||||||
_majorHardwareVersion = majorHardwareVersion;
|
_deviceTypeId = deviceTypeId;
|
||||||
_minorHardwareVersion = minorHardwareVersion;
|
|
||||||
_deviceTypeId = deviceTypeId;
|
if (MeyPin != NULL)
|
||||||
CalculateMyDeviceId();
|
;
|
||||||
|
MeyPin->ForEach(SetupMeyPin);
|
||||||
if (MeyPin != NULL);
|
|
||||||
MeyPin->ForEach(SetupMeyPin);
|
if (CanBusses != NULL) {
|
||||||
|
CanBusses->ForEach(InitCanInterface, NULL);
|
||||||
if (CanBusses != NULL)
|
}
|
||||||
{
|
}
|
||||||
CanBusses->ForEach(InitCanInterface, NULL);
|
|
||||||
}
|
void AddCanInterface(byte pinId) {
|
||||||
}
|
MCP2515 *newCanInterface = new MCP2515(pinId);
|
||||||
|
CanInterface *canInterface = new CanInterface();
|
||||||
void AddCanInterface(byte pinId)
|
canInterface->interface = newCanInterface;
|
||||||
{
|
|
||||||
MCP2515* newCanInterface = new MCP2515(pinId);
|
if (CanBusses == NULL)
|
||||||
CanInterface* canInterface = new CanInterface();
|
CanBusses = canInterface;
|
||||||
canInterface->interface = newCanInterface;
|
else
|
||||||
|
CanBusses->AddCanInterface(canInterface);
|
||||||
if (CanBusses == NULL)
|
}
|
||||||
CanBusses = canInterface;
|
|
||||||
else
|
void AddLocalPinChangedHandler(void (*localPinChangedHandler)(can_frame *frame)) {
|
||||||
CanBusses->AddCanInterface(canInterface);
|
LocalPinChangedHandler = localPinChangedHandler;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetMeyPin(byte index, byte meyPinId, byte pinId)
|
void SetDevicedId(byte high, byte low) {
|
||||||
{
|
myDeviceId = (high << 8) | low;
|
||||||
PinState* newState = new PinState();
|
}
|
||||||
newState->Init(pinId, (byte) meyPinId);
|
|
||||||
|
void SetMeyPin(byte meyPinId, byte pinId) {
|
||||||
if (MeyPin == NULL)
|
PinState *newState = new PinState();
|
||||||
MeyPin = newState;
|
newState->Init(pinId, (byte)meyPinId);
|
||||||
else
|
|
||||||
MeyPin->AddPinState(newState);
|
if (MeyPin == NULL)
|
||||||
}
|
MeyPin = newState;
|
||||||
|
else
|
||||||
|
MeyPin->AddPinState(newState);
|
||||||
bool CheckPinStatus(PinState * state)
|
}
|
||||||
{
|
|
||||||
if (!state->is_input)
|
|
||||||
return false;
|
bool CheckPinStatus(PinState *state) {
|
||||||
|
if (!state->is_input)
|
||||||
bool newValue = ReadPin(state);
|
return false;
|
||||||
|
|
||||||
|
bool newValue = ReadPin(state);
|
||||||
if (newValue != state->pin_state)
|
|
||||||
{
|
|
||||||
delay(10);
|
if (newValue != state->pin_state) {
|
||||||
newValue = ReadPin(state);
|
delay(10);
|
||||||
if (newValue != state->pin_state)
|
newValue = ReadPin(state);
|
||||||
{
|
if (newValue != state->pin_state) {
|
||||||
state->pin_state = newValue;
|
state->pin_state = newValue;
|
||||||
SendSwitchedTriggeredCanPackage(state->meyPinId, state->pin_state);
|
SendSwitchedTriggeredCanPackage(state->meyPinId, state->pin_state);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CheckMeyPinsTriggered()
|
void CheckMeyPinsTriggered() {
|
||||||
{
|
MeyPin->ForEach(CheckPinStatus);
|
||||||
MeyPin->ForEach(CheckPinStatus);
|
}
|
||||||
}
|
|
||||||
|
bool ReadPin(PinState *state) {
|
||||||
bool ReadPin(PinState * state)
|
return digitalRead(state->pin_id);
|
||||||
{
|
}
|
||||||
if (state->pin_id == PIN_PD2)
|
|
||||||
return digitalReadFast(PIN_PD2);
|
|
||||||
else if (state->pin_id == PIN_PC7)
|
void HandleFrame(can_frame *frame, MCP2515 *source) {
|
||||||
return digitalReadFast(PIN_PC7);
|
CanBusses->ForEach(DoSendCanPkg, frame, source);
|
||||||
else if (state->pin_id == PIN_PD1)
|
HandleTriggerMeypinCanPackage(frame);
|
||||||
return digitalReadFast(PIN_PD1);
|
}
|
||||||
else if (state->pin_id == PIN_PD0)
|
|
||||||
return digitalReadFast(PIN_PD0);
|
void HandleTriggerMeypinCanPackage(can_frame *frame) {
|
||||||
else if (state->pin_id == PIN_PD6)
|
|
||||||
return digitalReadFast(PIN_PD6);
|
|
||||||
else if (state->pin_id == PIN_PD5)
|
if (GetPackageType(frame->can_id) == TRIGGER_SWITCH_CAN_ID) {
|
||||||
return digitalReadFast(PIN_PD5);
|
|
||||||
else if (state->pin_id == PIN_PD4)
|
|
||||||
return digitalReadFast(PIN_PD4);
|
uint16_t adressedDeviceId = ((uint16_t)frame->data[0] << 8) | frame->data[1];
|
||||||
else if (state->pin_id == PIN_PD3)
|
if (adressedDeviceId != myDeviceId) return;
|
||||||
return digitalReadFast(PIN_PD3);
|
|
||||||
else
|
|
||||||
return digitalRead(state->pin_id);
|
byte meyPinId = frame->data[2];
|
||||||
}
|
bool state = frame->data[3] > 0;
|
||||||
|
|
||||||
|
PinState *adressedPin = MeyPin->Find(meyPinId);
|
||||||
void HandleFrame(can_frame *frame, MCP2515 *source)
|
|
||||||
{
|
if (adressedPin != NULL) {
|
||||||
CanBusses->ForEach(DoSendCanPkg, frame, source);
|
if (adressedPin->is_input == true) {
|
||||||
HandleTriggerMeypinCanPackage(frame);
|
pinMode(adressedPin->pin_id, OUTPUT);
|
||||||
}
|
adressedPin->is_input = false;
|
||||||
|
}
|
||||||
void HandleTriggerMeypinCanPackage(can_frame *frame)
|
|
||||||
{
|
bool pinChanged = adressedPin->pin_state != state;
|
||||||
if (GetPackageType(frame->can_id) == TRIGGER_SWITCH_CAN_ID)
|
adressedPin->pin_state = state;
|
||||||
{
|
|
||||||
uint16_t adressedDeviceId = ((uint16_t )frame->data[0] << 8) | frame->data[1] ;
|
if (pinChanged) {
|
||||||
if (adressedDeviceId != myDeviceId) return;
|
digitalWrite(adressedPin->pin_id, state);
|
||||||
|
SendSwitchedTriggeredCanPackage(adressedPin->meyPinId, state);
|
||||||
|
}
|
||||||
byte meyPinId = frame->data[2];
|
}
|
||||||
bool state = frame->data[3] > 0;
|
}
|
||||||
|
}
|
||||||
PinState *adressedPin = MeyPin->Find(meyPinId);
|
|
||||||
|
byte CircularShift(byte b) {
|
||||||
if (adressedPin != NULL)
|
return (b << 1) | (b >> 7 & 1);
|
||||||
{
|
}
|
||||||
if (adressedPin->is_input == true)
|
|
||||||
{
|
uint16_t GetDeviceId(uint32_t canFrameId) {
|
||||||
pinMode(adressedPin->pin_id, OUTPUT);
|
return canFrameId & 0xFFFF;
|
||||||
adressedPin->is_input = false;
|
}
|
||||||
}
|
|
||||||
|
uint16_t GetPackageType(uint32_t canFrameId) {
|
||||||
bool pinChanged = adressedPin->pin_state != state;
|
return (canFrameId / 0x10000) & 0xFFF;
|
||||||
adressedPin->pin_state = state;
|
}
|
||||||
|
|
||||||
if (pinChanged) {
|
|
||||||
digitalWrite(adressedPin->pin_id, state);
|
uint32_t CreateCanId(uint16_t commandId) {
|
||||||
SendSwitchedTriggeredCanPackage(adressedPin->meyPinId, state);
|
return ((((uint32_t)commandId) & 0xFFF) * 0x10000) | myDeviceId | CAN_EFF_FLAG;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
void SendVersionPackage(MCP2515 *interface) {
|
||||||
}
|
can_frame toSend;
|
||||||
}
|
toSend.can_id = CreateCanId(HELP_PACKAGE_CAN_ID);
|
||||||
|
toSend.can_dlc = 5;
|
||||||
byte CircularShift(byte b)
|
|
||||||
{
|
toSend.data[0] = SOFTWARE_VERSION_HIGH;
|
||||||
return (b << 1) | (b >> 7 & 1);
|
toSend.data[1] = SOFTWARE_VERSION_LOW;
|
||||||
}
|
toSend.data[2] = _majorHardwareVersion;
|
||||||
|
toSend.data[3] = _minorHardwareVersion;
|
||||||
uint16_t GetDeviceId(uint32_t canFrameId)
|
toSend.data[4] = _deviceTypeId;
|
||||||
{
|
|
||||||
return canFrameId & 0xFFFF;
|
DoSendCanPkg(interface, &toSend);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t GetPackageType(uint32_t canFrameId)
|
void BroadcastTriggerMeyPinCanPackage(uint16_t targetCanId, byte pinId, byte state) {
|
||||||
{
|
can_frame toSend;
|
||||||
return (canFrameId / 0x10000) & 0xFFF;
|
|
||||||
}
|
toSend.can_id = CreateCanId(TRIGGER_SWITCH_CAN_ID);
|
||||||
|
toSend.can_dlc = 4;
|
||||||
byte GetDeviceIdLow() {
|
toSend.data[0] = (targetCanId & 0xFF00) >> 8;
|
||||||
return (SIGROW.SERNUM0 ^
|
toSend.data[1] = targetCanId & 0xFF;
|
||||||
CircularShift(SIGROW.SERNUM2) << 1 ^
|
toSend.data[2] = pinId;
|
||||||
CircularShift( CircularShift(SIGROW.SERNUM4)) ^
|
toSend.data[3] = state;
|
||||||
CircularShift( CircularShift( CircularShift(SIGROW.SERNUM6))) ^
|
|
||||||
CircularShift( CircularShift( CircularShift( CircularShift(SIGROW.SERNUM8)))));
|
HandleFrame(&toSend, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
byte GetDeviceIdHigh() {
|
void BroadcastDebugPackage(uint8_t length, byte *data) {
|
||||||
return (SIGROW.SERNUM1 ^
|
can_frame toSend;
|
||||||
CircularShift(SIGROW.SERNUM3) << 1 ^
|
|
||||||
CircularShift( CircularShift(SIGROW.SERNUM5)) ^
|
toSend.can_id = CreateCanId(DEBUG_PKG_CAN_ID);
|
||||||
CircularShift( CircularShift( CircularShift(SIGROW.SERNUM7))) ^
|
toSend.can_dlc = length;
|
||||||
CircularShift( CircularShift( CircularShift( CircularShift(SIGROW.SERNUM9)))));
|
for (int i = 0; i < length; i++) {
|
||||||
}
|
toSend.data[i] = data[i];
|
||||||
|
}
|
||||||
uint32_t CreateCanId(uint16_t commandId)
|
|
||||||
{
|
HandleFrame(&toSend, NULL);
|
||||||
return ((((uint32_t)commandId) & 0xFFF) * 0x10000) | myDeviceId | CAN_EFF_FLAG;
|
}
|
||||||
}
|
void BroadcastDebugPackage(byte b0, byte b1) {
|
||||||
|
byte data[2];
|
||||||
void SendVersionPackage(MCP2515 *interface)
|
data[0] = b0;
|
||||||
{
|
data[1] = b1;
|
||||||
can_frame toSend;
|
BroadcastDebugPackage(2, data);
|
||||||
toSend.can_id = CreateCanId(HELP_PACKAGE_CAN_ID);
|
}
|
||||||
toSend.can_dlc = 5;
|
void BroadcastDebugPackage(byte b0, byte b1, byte b2) {
|
||||||
|
byte data[3];
|
||||||
toSend.data[0] = SOFTWARE_VERSION_HIGH;
|
data[0] = b0;
|
||||||
toSend.data[1] = SOFTWARE_VERSION_LOW;
|
data[1] = b1;
|
||||||
toSend.data[2] = _majorHardwareVersion;
|
data[2] = b2;
|
||||||
toSend.data[3] = _minorHardwareVersion;
|
BroadcastDebugPackage(3, data);
|
||||||
toSend.data[4] = _deviceTypeId;
|
}
|
||||||
|
|
||||||
DoSendCanPkg(interface, &toSend);
|
void SendSwitchedTriggeredCanPackage(byte pinId, int state) {
|
||||||
}
|
can_frame toSend;
|
||||||
|
toSend.can_id = CreateCanId(SWITCH_TRIGGERED_CAN_ID);
|
||||||
void BroadcastTriggerMeyPinCanPackage(uint16_t targetCanId, byte pinId, byte state)
|
toSend.can_dlc = 2;
|
||||||
{
|
toSend.data[0] = pinId;
|
||||||
can_frame toSend;
|
toSend.data[1] = state;
|
||||||
|
|
||||||
toSend.can_id = CreateCanId(TRIGGER_SWITCH_CAN_ID);
|
DoSendCanPkg(&toSend);
|
||||||
toSend.can_dlc = 4;
|
if (LocalPinChangedHandler) {
|
||||||
toSend.data[0] = (targetCanId & 0xFF00) >> 8;
|
LocalPinChangedHandler(&toSend);
|
||||||
toSend.data[1] = targetCanId & 0xFF;
|
}
|
||||||
toSend.data[2] = pinId;
|
}
|
||||||
toSend.data[3] = state;
|
|
||||||
|
void DoSendCanPkg(can_frame *frame) {
|
||||||
HandleFrame(&toSend, NULL);
|
if (CanBusses != NULL)
|
||||||
}
|
CanBusses->ForEach(DoSendCanPkg, frame);
|
||||||
|
}
|
||||||
void SendSwitchedTriggeredCanPackage(byte pinId, int state)
|
|
||||||
{
|
void DoSendCanPkg(MCP2515 *interface, can_frame *frame) {
|
||||||
can_frame toSend;
|
byte cnt = 0;
|
||||||
toSend.can_id = CreateCanId(SWITCH_TRIGGERED_CAN_ID);
|
while (interface->sendMessage(frame)) {
|
||||||
toSend.can_dlc = 2;
|
if (++cnt > 10) return;
|
||||||
toSend.data[0] = pinId;
|
}
|
||||||
toSend.data[1] = state;
|
}
|
||||||
|
|
||||||
DoSendCanPkg(&toSend);
|
|
||||||
}
|
|
||||||
|
|
||||||
void DoSendCanPkg(can_frame *frame)
|
|
||||||
{
|
|
||||||
if (CanBusses != NULL)
|
|
||||||
CanBusses->ForEach(DoSendCanPkg, frame);
|
|
||||||
}
|
|
||||||
|
|
||||||
void DoSendCanPkg(MCP2515 *interface, can_frame *frame)
|
|
||||||
{
|
|
||||||
byte cnt = 0;
|
|
||||||
while (interface->sendMessage(frame))
|
|
||||||
{
|
|
||||||
if (++cnt > 10) return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void CalculateMyDeviceId()
|
|
||||||
{
|
|
||||||
myDeviceId = (GetDeviceIdHigh() << 8) | GetDeviceIdLow();
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -1,128 +1,139 @@
|
|||||||
#ifndef MEYCAN_H
|
#ifndef MEYCAN_H
|
||||||
#define MEYCAN_H
|
#define MEYCAN_H
|
||||||
|
|
||||||
#include <SPI.h>
|
#include <SPI.h>
|
||||||
#include <mcp2515.h>
|
#include <mcp2515.h>
|
||||||
|
|
||||||
typedef struct CanInterface
|
typedef struct CanInterface
|
||||||
{
|
{
|
||||||
MCP2515 *interface;
|
MCP2515 *interface;
|
||||||
CanInterface *next = NULL;
|
CanInterface *next = NULL;
|
||||||
|
|
||||||
void ForEachInterface(void (*handle)( MCP2515 *interface))
|
void ForEachInterface(void (*handle)( MCP2515 *interface))
|
||||||
{
|
{
|
||||||
if (this->interface != NULL)
|
if (this->interface != NULL)
|
||||||
handle(this->interface);
|
handle(this->interface);
|
||||||
|
|
||||||
if (this->next != NULL)
|
if (this->next != NULL)
|
||||||
this->next->ForEachInterface(handle);
|
this->next->ForEachInterface(handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ForEach(void (*handle)( MCP2515 *interface, can_frame *frame), can_frame *frame, MCP2515* exclude = NULL)
|
void ForEach(void (*handle)( MCP2515 *interface, can_frame *frame), can_frame *frame, MCP2515* exclude = NULL)
|
||||||
{
|
{
|
||||||
if (this->interface != NULL && this->interface != exclude)
|
if (this->interface != NULL && this->interface != exclude)
|
||||||
handle(this->interface, frame);
|
handle(this->interface, frame);
|
||||||
|
|
||||||
if (this->next != NULL)
|
if (this->next != NULL)
|
||||||
this->next->ForEach(handle, frame, exclude);
|
this->next->ForEach(handle, frame, exclude);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddCanInterface(CanInterface *newCanInterface)
|
void AddCanInterface(CanInterface *newCanInterface)
|
||||||
{
|
{
|
||||||
if (next == NULL)
|
if (next == NULL)
|
||||||
{
|
{
|
||||||
this->next = newCanInterface;
|
this->next = newCanInterface;
|
||||||
newCanInterface->next = NULL;
|
newCanInterface->next = NULL;
|
||||||
} else {
|
} else {
|
||||||
next->AddCanInterface(newCanInterface);
|
next->AddCanInterface(newCanInterface);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct PinState
|
typedef struct PinState
|
||||||
{
|
{
|
||||||
int pin_id;
|
int pin_id;
|
||||||
bool pin_state;
|
bool pin_state;
|
||||||
bool is_input;
|
bool is_input;
|
||||||
byte meyPinId;
|
byte meyPinId;
|
||||||
PinState *next = NULL;
|
PinState *next = NULL;
|
||||||
|
|
||||||
PinState() {}
|
PinState() {}
|
||||||
void Init(int pin_id, byte meyPinId)
|
void Init(int pin_id, byte meyPinId)
|
||||||
{
|
{
|
||||||
this->pin_id = pin_id;
|
this->pin_id = pin_id;
|
||||||
this->pin_state = true;
|
this->pin_state = true;
|
||||||
this->is_input = true;
|
this->is_input = true;
|
||||||
this->meyPinId = meyPinId;
|
this->meyPinId = meyPinId;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AddPinState(PinState *nextPinState)
|
void AddPinState(PinState *nextPinState)
|
||||||
{
|
{
|
||||||
if (next == NULL)
|
if (next == NULL)
|
||||||
{
|
{
|
||||||
this->next = nextPinState;
|
this->next = nextPinState;
|
||||||
nextPinState->next = NULL;
|
nextPinState->next = NULL;
|
||||||
} else {
|
} else {
|
||||||
next->AddPinState(nextPinState);
|
next->AddPinState(nextPinState);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
PinState* Find(byte meyPinId)
|
PinState* Find(byte meyPinId)
|
||||||
{
|
{
|
||||||
if (this->meyPinId == meyPinId)
|
if (this->meyPinId == meyPinId)
|
||||||
return this;
|
return this;
|
||||||
|
|
||||||
if (this->next != NULL)
|
if (this->next != NULL)
|
||||||
return this->next->Find(meyPinId);
|
return this->next->Find(meyPinId);
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ForEach(void (*handle)(PinState *theState))
|
void ForEach(void (*handle)(PinState *theState))
|
||||||
{
|
{
|
||||||
handle(this);
|
handle(this);
|
||||||
if (this->next != NULL)
|
if (this->next != NULL)
|
||||||
this->next->ForEach(handle);
|
this->next->ForEach(handle);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
const byte SOFTWARE_VERSION_HIGH = 5;
|
const byte SOFTWARE_VERSION_HIGH = 5;
|
||||||
const byte SOFTWARE_VERSION_LOW = 0;
|
const byte SOFTWARE_VERSION_LOW = 0;
|
||||||
const byte HARDWARE_VERSION_HIGH = 7;
|
const byte HARDWARE_VERSION_HIGH = 7;
|
||||||
const byte HARDWARE_VERSION_LOW = 0;
|
const byte HARDWARE_VERSION_LOW = 0;
|
||||||
|
|
||||||
const uint16_t HELP_PACKAGE_CAN_ID = 0x0FFFUL;
|
const uint16_t HELP_PACKAGE_CAN_ID = 0x0FFFUL;
|
||||||
const uint16_t SWITCH_TRIGGERED_CAN_ID = 0x0050;
|
const uint16_t SWITCH_TRIGGERED_CAN_ID = 0x0050;
|
||||||
const uint16_t TRIGGER_SWITCH_CAN_ID = 0x0055;
|
const uint16_t TRIGGER_SWITCH_CAN_ID = 0x0055;
|
||||||
|
const uint16_t DEBUG_PKG_CAN_ID = 0x0009;
|
||||||
void AddCanInterface(byte pinId);
|
|
||||||
void SetMeyPin(byte index, byte meyPinId, byte pinId);
|
void SetDevicedId(byte high, byte low);
|
||||||
|
void SetMeyPin(byte meyPinId, byte pinId);
|
||||||
void SetupMeyCan(byte majorHardwareVersion, byte minorHardwareVersion, byte deviceTypeId);
|
|
||||||
|
// we need to put the local change to the rules engine. otherwise local changes on a pin will not come to the rules state.
|
||||||
void ForEachCanInterface(void (*handle)(MCP2515 *canInterace));
|
void AddLocalPinChangedHandler(void (*localPinChangedHandler)(can_frame *frame));
|
||||||
bool ReadPin(PinState *state);
|
|
||||||
bool CheckPinStatus(PinState * state);
|
|
||||||
void CheckMeyPinsTriggered(); /* checks weather a meypin triggered and sends a can pkg is neccessary */
|
void AddCanInterface(byte pinId);
|
||||||
void HandleFrame(can_frame *frame, MCP2515 *source);
|
|
||||||
void HandleTriggerMeypinCanPackage(can_frame *frame);
|
void SetupMeyCan(byte majorHardwareVersion, byte minorHardwareVersion, byte deviceTypeId);
|
||||||
byte CircularShift(byte b);
|
|
||||||
uint16_t GetDeviceId(uint32_t canFrameId);
|
void ForEachCanInterface(void (*handle)(MCP2515 *canInterace));
|
||||||
uint16_t GetPackageType(uint32_t canFrameId);
|
bool ReadPin(PinState *state);
|
||||||
byte GetDeviceIdLow();
|
bool CheckPinStatus(PinState * state);
|
||||||
|
void CheckMeyPinsTriggered(); /* checks weather a meypin triggered and sends a can pkg is neccessary */
|
||||||
byte GetDeviceIdHigh();
|
void HandleFrame(can_frame *frame, MCP2515 *source);
|
||||||
|
void HandleTriggerMeypinCanPackage(can_frame *frame);
|
||||||
uint32_t CreateCanId(uint16_t commandId);
|
byte CircularShift(byte b);
|
||||||
void SendVersionPackage(MCP2515 *interface);
|
uint16_t GetDeviceId(uint32_t canFrameId);
|
||||||
|
uint16_t GetPackageType(uint32_t canFrameId);
|
||||||
void SendSwitchedTriggeredCanPackage(byte pinId, int state);
|
byte GetDeviceIdLow();
|
||||||
void BroadcastTriggerMeyPinCanPackage(uint16_t targetCanId, byte pinId, byte state);
|
|
||||||
|
byte GetDeviceIdHigh();
|
||||||
void DoSendCanPkg(can_frame *frame);
|
|
||||||
void DoSendCanPkg(MCP2515 *interface, can_frame *frame);
|
uint32_t CreateCanId(uint16_t commandId);
|
||||||
|
void SendVersionPackage(MCP2515 *interface);
|
||||||
void CalculateMyDeviceId();
|
|
||||||
|
void SendSwitchedTriggeredCanPackage(byte pinId, int state);
|
||||||
#endif
|
|
||||||
|
|
||||||
|
void BroadcastDebugPackage(byte b0, byte b1);
|
||||||
|
void BroadcastDebugPackage(byte b0, byte b1, byte b2);
|
||||||
|
void BroadcastTriggerMeyPinCanPackage(uint16_t targetCanId, byte pinId, byte state);
|
||||||
|
|
||||||
|
void DoSendCanPkg(can_frame *frame);
|
||||||
|
void DoSendCanPkg(MCP2515 *interface, can_frame *frame);
|
||||||
|
|
||||||
|
void CalculateMyDeviceId();
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|||||||
@@ -1,114 +1,117 @@
|
|||||||
#include "MeyRule.h"
|
#include "MeyRule.h"
|
||||||
#include "MeyCan.h"
|
#include "MeyCan.h"
|
||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
#include <mcp2515.h>;
|
#include <mcp2515.h>;
|
||||||
|
|
||||||
RemotePinInfo remotePinInfo = RemotePinInfo();
|
RemotePinInfo remotePinInfo = RemotePinInfo();
|
||||||
Rule *rules = NULL;
|
Rule *rules = NULL;
|
||||||
|
|
||||||
void PutRule(Rule *rule)
|
void PutRule(Rule *rule) {
|
||||||
{
|
if (rules == NULL)
|
||||||
if (rules == NULL)
|
rules = rule;
|
||||||
rules = rule;
|
else
|
||||||
else
|
rules->AddRule(rule);
|
||||||
rules->AddRule(rule);
|
}
|
||||||
}
|
|
||||||
|
void AddSimple(uint16_t sourceDevId, byte sourceMeyPinId, uint16_t targetDevId, byte targetMeyPinId) {
|
||||||
void AddSimple(uint16_t sourceDevId, byte sourceMeyPinId, uint16_t targetDevId, byte targetMeyPinId)
|
Rule *rule = new Rule();
|
||||||
{
|
|
||||||
Rule *rule = new Rule();
|
rule->sourceDevId = sourceDevId;
|
||||||
|
rule->sourceMeyPinId = sourceMeyPinId;
|
||||||
rule->sourceDevId = sourceDevId;
|
rule->target.devId = targetDevId;
|
||||||
rule->sourceMeyPinId = sourceMeyPinId;
|
rule->target.meyPinId = targetMeyPinId;
|
||||||
rule->targetDevId = targetDevId;
|
rule->target.lastPinState = false;
|
||||||
rule->targetMeyPinId = targetMeyPinId;
|
rule->toggle = false;
|
||||||
rule->toggle = false;
|
rule->inverse = false;
|
||||||
rule->inverse = false;
|
|
||||||
rule->lastPinState = false;
|
PutRule(rule);
|
||||||
|
}
|
||||||
PutRule(rule);
|
|
||||||
}
|
void AddToggle(uint16_t sourceDevId, byte sourceMeyPinId, uint16_t targetDevId, byte targetMeyPinId) {
|
||||||
|
Rule *rule = new Rule();
|
||||||
void AddToggle(uint16_t sourceDevId, byte sourceMeyPinId, uint16_t targetDevId, byte targetMeyPinId)
|
|
||||||
{
|
rule->sourceDevId = sourceDevId;
|
||||||
Rule *rule = new Rule();
|
rule->sourceMeyPinId = sourceMeyPinId;
|
||||||
|
rule->target.devId = targetDevId;
|
||||||
rule->sourceDevId = sourceDevId;
|
rule->target.meyPinId = targetMeyPinId;
|
||||||
rule->sourceMeyPinId = sourceMeyPinId;
|
rule->target.lastPinState = false;
|
||||||
rule->targetDevId = targetDevId;
|
rule->toggle = true;
|
||||||
rule->targetMeyPinId = targetMeyPinId;
|
rule->inverse = false;
|
||||||
rule->toggle = true;
|
|
||||||
rule->inverse = false;
|
PutRule(rule);
|
||||||
rule->lastPinState = false;
|
}
|
||||||
|
|
||||||
PutRule(rule);
|
void AddToggleInverse(uint16_t sourceDevId, byte sourceMeyPinId, uint16_t targetDevId, byte targetMeyPinId) {
|
||||||
}
|
Rule *rule = new Rule();
|
||||||
|
|
||||||
void AddToggleInverse(uint16_t sourceDevId, byte sourceMeyPinId, uint16_t targetDevId, byte targetMeyPinId)
|
rule->sourceDevId = sourceDevId;
|
||||||
{
|
rule->sourceMeyPinId = sourceMeyPinId;
|
||||||
Rule *rule = new Rule();
|
rule->target.devId = targetDevId;
|
||||||
|
rule->target.meyPinId = targetMeyPinId;
|
||||||
rule->sourceDevId = sourceDevId;
|
rule->target.lastPinState = false;
|
||||||
rule->sourceMeyPinId = sourceMeyPinId;
|
rule->toggle = true;
|
||||||
rule->targetDevId = targetDevId;
|
rule->inverse = true;
|
||||||
rule->targetMeyPinId = targetMeyPinId;
|
|
||||||
rule->toggle = true;
|
PutRule(rule);
|
||||||
rule->inverse = true;
|
}
|
||||||
rule->lastPinState = false;
|
|
||||||
|
|
||||||
PutRule(rule);
|
|
||||||
}
|
void CheckRule(uint16_t deviceId, uint8_t dt, uint8_t state, Rule *rule) {
|
||||||
|
|
||||||
|
|
||||||
|
RemotePinInfo *currentRemotePinInfo = remotePinInfo.FindOrAdd(rule->target.devId);
|
||||||
void CheckRule(uint16_t deviceId, uint8_t dt, uint8_t state, Rule *rule)
|
|
||||||
{
|
if (currentRemotePinInfo == NULL) return;
|
||||||
RemotePinInfo *currentRemotePinInfo = remotePinInfo.FindOrAdd(rule->targetDevId);
|
|
||||||
if (currentRemotePinInfo == NULL) return;
|
// check the new state with the last one. Needs to be done, as the UP switch might
|
||||||
|
// send it multiple times like "01 01" "01 01" for a single tip.(antibeat)
|
||||||
// check the new state with the last one. Needs to be done, as the UP switch might
|
bool lastPinState = rule->target.lastPinState;
|
||||||
// send it multiple times like "01 01" "01 01" for a single tip.(antibeat)
|
bool pinState = dt > 0;
|
||||||
bool lastPinState = rule->lastPinState;
|
|
||||||
bool pinState = dt > 0;
|
if (rule->triggeredOnce && lastPinState == pinState) return;
|
||||||
|
|
||||||
if (rule->triggeredOnce && lastPinState == pinState) return;
|
rule->target.lastPinState = pinState;
|
||||||
rule->lastPinState = pinState;
|
rule->triggeredOnce = true;
|
||||||
rule->triggeredOnce = true;
|
|
||||||
|
if (rule->inverse)
|
||||||
if (rule->inverse)
|
pinState = !pinState;
|
||||||
pinState = !pinState;
|
|
||||||
|
if (rule->toggle)
|
||||||
if (rule->toggle)
|
pinState = (currentRemotePinInfo->getPinState(rule->target.meyPinId) ^ true);
|
||||||
pinState = (currentRemotePinInfo->getPinState(rule->targetMeyPinId) ^ true);
|
|
||||||
|
currentRemotePinInfo->setPinState(rule->target.meyPinId, pinState);
|
||||||
BroadcastTriggerMeyPinCanPackage(rule->targetDevId, rule->targetMeyPinId, pinState);
|
BroadcastTriggerMeyPinCanPackage(rule->target.devId, rule->target.meyPinId, pinState);
|
||||||
currentRemotePinInfo->setPinState(rule->targetMeyPinId, pinState);
|
}
|
||||||
}
|
|
||||||
|
void HandleTriggered(can_frame *frame) {
|
||||||
void HandleTriggered(can_frame *frame)
|
if (GetPackageType(frame->can_id) == SWITCH_TRIGGERED_CAN_ID) {
|
||||||
{
|
RemotePinInfo *currentPinState = remotePinInfo.FindOrAdd(GetDeviceId(frame->can_id));
|
||||||
if (GetPackageType(frame->can_id) == SWITCH_TRIGGERED_CAN_ID)
|
|
||||||
{
|
if (currentPinState == NULL) {
|
||||||
RemotePinInfo *currentPinState = remotePinInfo.FindOrAdd(GetDeviceId(frame->can_id) );
|
|
||||||
|
return;
|
||||||
if (currentPinState == NULL)
|
}
|
||||||
return;
|
|
||||||
|
currentPinState->setPinState(frame->data[0], frame->data[1]);
|
||||||
currentPinState->setPinState(frame->data[0], frame->data[1]);
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
void SetLocalPinState(can_frame *frame)
|
||||||
void HandleRules(can_frame *frame)
|
{
|
||||||
{
|
HandleTriggered(frame);
|
||||||
HandleTriggered(frame);
|
}
|
||||||
|
|
||||||
if (rules == NULL) return;
|
void HandleRules(can_frame *frame) {
|
||||||
if (GetPackageType(frame->can_id) == SWITCH_TRIGGERED_CAN_ID)
|
|
||||||
{
|
if (rules != NULL) {
|
||||||
uint16_t deviceId = GetDeviceId(frame->can_id);
|
if (GetPackageType(frame->can_id) == SWITCH_TRIGGERED_CAN_ID) {
|
||||||
uint8_t dt = frame->data[1];
|
uint16_t deviceId = GetDeviceId(frame->can_id);
|
||||||
uint8_t state = frame->data[0];
|
uint8_t dt = frame->data[1];
|
||||||
|
uint8_t state = frame->data[0];
|
||||||
rules->Traverse(deviceId, dt, state, CheckRule);
|
|
||||||
}
|
rules->Traverse(deviceId, dt, state, CheckRule);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
HandleTriggered(frame);
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,113 +1,107 @@
|
|||||||
#ifndef MEYRULE_H
|
#ifndef MEYRULE_H
|
||||||
#define MEYRULE_H
|
#define MEYRULE_H
|
||||||
|
|
||||||
#include <Arduino.h>
|
#include <Arduino.h>
|
||||||
#include <mcp2515.h>;
|
#include <mcp2515.h>;
|
||||||
|
|
||||||
struct Rule
|
struct TargetPin{
|
||||||
{
|
uint16_t devId;
|
||||||
uint16_t sourceDevId;
|
byte meyPinId;
|
||||||
byte sourceMeyPinId;
|
bool lastPinState = false;
|
||||||
uint16_t targetDevId;
|
|
||||||
byte targetMeyPinId;
|
};
|
||||||
bool toggle;
|
|
||||||
bool inverse;
|
struct Rule {
|
||||||
Rule *nextRule = NULL;
|
uint16_t sourceDevId;
|
||||||
bool lastPinState = false;
|
byte sourceMeyPinId;
|
||||||
bool triggeredOnce = false;
|
TargetPin target = TargetPin();
|
||||||
|
bool toggle;
|
||||||
void AddRule(Rule *rule)
|
bool inverse;
|
||||||
{
|
Rule *nextRule = NULL;
|
||||||
if (this->nextRule == NULL)
|
bool triggeredOnce = false;
|
||||||
{
|
|
||||||
this->nextRule = rule;
|
void AddRule(Rule *rule) {
|
||||||
rule->nextRule = NULL;
|
if (this->nextRule == NULL) {
|
||||||
} else {
|
this->nextRule = rule;
|
||||||
this->nextRule->AddRule(rule);
|
rule->nextRule = NULL;
|
||||||
}
|
} else {
|
||||||
}
|
this->nextRule->AddRule(rule);
|
||||||
|
}
|
||||||
void Traverse( uint16_t deviceId, uint8_t dt, uint8_t state, void (*handle)(uint16_t, uint8_t, uint8_t, Rule*))
|
}
|
||||||
{
|
|
||||||
|
void Traverse(uint16_t deviceId, uint8_t dt, uint8_t state, void (*handle)(uint16_t, uint8_t, uint8_t, Rule *)) {
|
||||||
if ( this->sourceDevId == deviceId && this->sourceMeyPinId == state)
|
|
||||||
handle(deviceId, dt, state, this);
|
if (this->sourceDevId == deviceId && this->sourceMeyPinId == state)
|
||||||
|
handle(deviceId, dt, state, this);
|
||||||
if (this->nextRule != NULL)
|
|
||||||
this->nextRule->Traverse(deviceId, dt, state, handle);
|
if (this->nextRule != NULL)
|
||||||
|
this->nextRule->Traverse(deviceId, dt, state, handle);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
typedef struct RemotePinInfo
|
typedef struct RemotePinInfo {
|
||||||
{
|
const byte MAX_REMOTE_PIN_COUNT = 64;
|
||||||
const byte MAX_REMOTE_PIN_COUNT = 64;
|
uint16_t DeviceId = 0; // the id of the device
|
||||||
uint16_t DeviceId = 0; // the id of the device
|
uint8_t pinState = 0; // bitmap of 8 MeyPin states of the device. 0000 0100, MeyPin #3 is HIGH in this example
|
||||||
uint8_t pinState = 0; // bitmap of 8 MeyPin states of the device. 0000 0100, MeyPin #3 is HIGH in this example
|
RemotePinInfo *next = NULL;
|
||||||
RemotePinInfo *next = NULL;
|
|
||||||
|
bool getPinState(byte meyPin) {
|
||||||
bool getPinState(byte meyPin)
|
return (this->pinState >> (meyPin - 1)) & 1;
|
||||||
{
|
}
|
||||||
return (this->pinState >> (meyPin - 1)) & 1;
|
|
||||||
}
|
void setPinState(byte meyPin, bool state) {
|
||||||
|
if (state)
|
||||||
void setPinState(byte meyPin, bool state)
|
this->pinState = this->pinState | (1 << (meyPin - 1)); // 0001 0000
|
||||||
{
|
else
|
||||||
if (state)
|
this->pinState = this->pinState & (~(1 << (meyPin - 1))); // 1110 1111 -> not
|
||||||
this->pinState = this->pinState | (1 << (meyPin - 1)); // 0001 0000
|
}
|
||||||
else
|
|
||||||
this->pinState = this->pinState & (~(1 << (meyPin - 1))); // 1110 1111 -> not
|
|
||||||
}
|
int16_t Count() {
|
||||||
|
if (this->next == NULL) return 1;
|
||||||
|
return this->next->Count() + 1;
|
||||||
int16_t Count()
|
}
|
||||||
{
|
|
||||||
if (this->next == NULL) return 1;
|
RemotePinInfo *FindOrAdd(uint16_t deviceId, byte count = 0) {
|
||||||
return this->next->Count() + 1;
|
if (count > MAX_REMOTE_PIN_COUNT)
|
||||||
}
|
return NULL;
|
||||||
|
|
||||||
RemotePinInfo* FindOrAdd(uint16_t deviceId, byte count = 0)
|
|
||||||
{
|
if (this->DeviceId == 0 && this->pinState == 0) {
|
||||||
if (count > MAX_REMOTE_PIN_COUNT)
|
this->DeviceId = deviceId;
|
||||||
return NULL;
|
this->pinState = 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (this->DeviceId == 0 && this->pinState == 0)
|
if (this->DeviceId == deviceId) {
|
||||||
{
|
//ToggleDebug();
|
||||||
this->DeviceId = deviceId;
|
return this;
|
||||||
this->pinState = 0;
|
}
|
||||||
}
|
|
||||||
|
if (next != NULL) {
|
||||||
if (this->DeviceId == deviceId)
|
return next->FindOrAdd(deviceId, count + 1);
|
||||||
{
|
}
|
||||||
//ToggleDebug();
|
|
||||||
return this;
|
RemotePinInfo *theNext = new RemotePinInfo;
|
||||||
}
|
theNext->DeviceId = deviceId;
|
||||||
|
theNext->pinState = 0;
|
||||||
if (next != NULL)
|
theNext->next = NULL;
|
||||||
{
|
|
||||||
return next->FindOrAdd(deviceId, count + 1);
|
this->next = theNext;
|
||||||
}
|
return this->next;
|
||||||
|
}
|
||||||
RemotePinInfo *theNext = new RemotePinInfo;
|
};
|
||||||
theNext->DeviceId = deviceId;
|
|
||||||
theNext->pinState = 0;
|
extern RemotePinInfo remotePinInfo;
|
||||||
theNext->next = NULL;
|
extern Rule *rules;
|
||||||
|
|
||||||
this->next = theNext;
|
void SetLocalPinState(can_frame *frame);
|
||||||
return this->next;
|
|
||||||
}
|
void AddSimple(uint16_t sourceDevId, byte sourceMeyPinId, uint16_t targetDevId, byte targetMeyPinId);
|
||||||
|
void AddToggle(uint16_t sourceDevId, byte sourceMeyPinId, uint16_t targetDevId, byte targetMeyPinId);
|
||||||
};
|
void AddToggleInverse(uint16_t sourceDevId, byte sourceMeyPinId, uint16_t targetDevId, byte targetMeyPinId);
|
||||||
|
void HandleRules(can_frame *frame);
|
||||||
extern RemotePinInfo remotePinInfo;
|
void PutRule(Rule *rule);
|
||||||
extern Rule *rules;
|
void CheckRule(uint16_t deviceId, uint8_t dt, uint8_t state, Rule *rule);
|
||||||
|
|
||||||
void AddSimple(uint16_t sourceDevId, byte sourceMeyPinId, uint16_t targetDevId, byte targetMeyPinId);
|
#endif
|
||||||
void AddToggle(uint16_t sourceDevId, byte sourceMeyPinId, uint16_t targetDevId, byte targetMeyPinId);
|
|
||||||
void AddToggleInverse(uint16_t sourceDevId, byte sourceMeyPinId, uint16_t targetDevId, byte targetMeyPinId);
|
|
||||||
void HandleRules(can_frame *frame);
|
|
||||||
void PutRule(Rule *rule);
|
|
||||||
void CheckRule(uint16_t deviceId, uint8_t dt, uint8_t state, Rule *rule);
|
|
||||||
#endif
|
|
||||||
|
|||||||
@@ -1,96 +1,117 @@
|
|||||||
#include <SPI.h>;
|
#include <SPI.h>;
|
||||||
#include <mcp2515.h>;
|
#include <mcp2515.h>;
|
||||||
#include "MeyCan.h";
|
#include "MeyCan.h";
|
||||||
#include "MeyRule.h";
|
#include "MeyRule.h";
|
||||||
|
|
||||||
const int16_t SW_FLUR = 0XD238;
|
#define PIN8 8
|
||||||
const int16_t SW_ANBAU = 0x87A9;
|
#define PIN9 9
|
||||||
const int16_t SW_WOHNZIMMER = 0x87CA;
|
|
||||||
|
const int16_t SW_FLUR = 0XD238;
|
||||||
const int16_t UP_WOHNZIMMER_TUER = 0x051F;
|
const int16_t SW_ANBAU = 0x87A9;
|
||||||
const int16_t UP_WOHNZIMMER_TERASSE = 0x05df;
|
const int16_t SW_WOHNZIMMER = 0x87CA;
|
||||||
const int16_t UP_FLUR_EINGANG = 0x0769;
|
const int16_t SW_TERRASSE = 0x618A;
|
||||||
const int16_t UP_BUERO = 0x1177;
|
|
||||||
const int16_t UP_FLUR_BUERO = 0x05A1;
|
|
||||||
const int16_t UP_FLUR_KUECHE = 0x01EF;
|
const int16_t UP_WOHNZIMMER_TUER = 0x051F; // [X X]
|
||||||
const int16_t UP_KINDERZIMMER = 0x0196;
|
const int16_t UP_WOHNZIMMER_TERASSE = 0x05df;
|
||||||
const int16_t UP_FLUR_ELTERN = 0x0632;
|
const int16_t UP_FLUR_EINGANG = 0x0769; // [X]
|
||||||
const int16_t UP_KUECHE_FLUR = 0x07F5;
|
const int16_t UP_BUERO = 0x1177;
|
||||||
const int16_t UP_KUECHE_BAD = 0x0585;
|
const int16_t UP_FLUR_BUERO = 0x05A1; // [X]
|
||||||
|
const int16_t UP_FLUR_KUECHE = 0x01EF;
|
||||||
struct can_frame incomingCanFrame;
|
const int16_t UP_KINDERZIMMER = 0x0196; // [X X]
|
||||||
|
const int16_t UP_FLUR_ELTERN = 0x0632;
|
||||||
void setup() {
|
const int16_t UP_ELTERN = 0x08AE;
|
||||||
SPI.begin();
|
const int16_t UP_KUECHE_FLUR = 0x07F5; // [X]
|
||||||
|
const int16_t UP_KUECHE_BAD = 0x0585; // [X X]
|
||||||
|
const int16_t UP_KUECHE_ARBEITSPLATTE = 0x07A9; // [X X]
|
||||||
// AddToggleInverse(UP_WOHNZIMMER_TUER, 5, SW_WOHNZIMMER, 4); // Lichtschalter Wohnzimmer Licht 1
|
|
||||||
// AddToggleInverse(UP_WOHNZIMMER_TUER, 5, SW_WOHNZIMMER, 3); // Lichtschalter Wohnzimmer Licht 2
|
struct can_frame incomingCanFrame;
|
||||||
// AddToggle(UP_WOHNZIMMER_TERASSE, 1, SW_WOHNZIMMER, 4); // Licht 1 von Terassenschalter
|
|
||||||
// AddToggle(UP_WOHNZIMMER_TERASSE, 1, SW_WOHNZIMMER, 3); // Licht 2 von Terassenschalter
|
/*
|
||||||
//
|
Software matching Hardware of meycan v8.1
|
||||||
// AddToggle(0x0769, 1, SW_WOHNZIMMER, 7); // Eingangstür Flur Licht 2
|
*/
|
||||||
// AddToggle(0x0769, 1, SW_FLUR, 1); //Eingangstür Flur Licht 1
|
void setup() {
|
||||||
//
|
SPI.begin();
|
||||||
// AddToggle(UP_WOHNZIMMER_TUER, 3, SW_WOHNZIMMER, 1); // Licht 1 Wochzimmer Eingangstür
|
|
||||||
// AddToggle(UP_WOHNZIMMER_TUER, 4, SW_WOHNZIMMER, 2); // Licht 2 Wochzimmer Eingangstür
|
|
||||||
//
|
AddToggle(UP_WOHNZIMMER_TUER, 1, SW_WOHNZIMMER, 5);
|
||||||
// AddToggle(0x1177, 1, SW_WOHNZIMMER, 6); // Licht Papa Büro
|
AddToggle(UP_WOHNZIMMER_TUER, 1, SW_WOHNZIMMER, 6);
|
||||||
// AddToggle(0x05A1, 1, SW_WOHNZIMMER, 7); // Flurlicht von Papas Büro
|
AddSimple(UP_WOHNZIMMER_TUER, 2, SW_WOHNZIMMER, 7);
|
||||||
// AddToggle(0x05A1, 1, SW_FLUR, 1); // Flurlicht von Papas Büro
|
AddSimple(UP_WOHNZIMMER_TUER, 3, SW_WOHNZIMMER, 8);
|
||||||
// AddToggle(0x01EF, 1, SW_WOHNZIMMER, 7); // Flurlicht von Papas Büro
|
|
||||||
// AddToggle(0x01EF, 1, SW_FLUR, 1); // Flurlicht von Papas Büro
|
|
||||||
// AddToggle(0x0196, 3, SW_WOHNZIMMER, 7); // Flurlicht von Papas Büro
|
AddToggle(UP_KINDERZIMMER, 3, SW_FLUR, 6);
|
||||||
// AddToggle(0x0196, 3, SW_FLUR, 1); // Flurlicht von Papas Büro
|
AddToggle(UP_KINDERZIMMER, 3, SW_WOHNZIMMER, 2);
|
||||||
// AddToggle(0x0632, 1, SW_FLUR, 5); // Flurlicht von Papas Büro
|
AddToggle(UP_KINDERZIMMER, 2, SW_FLUR, 3);
|
||||||
//
|
AddSimple(UP_KINDERZIMMER, 4, SW_FLUR, 4);
|
||||||
// AddToggle(UP_WOHNZIMMER_TUER, 2, SW_FLUR, 2); // Linus Zimmer hoch aus Wohnzimmer
|
AddSimple(UP_KINDERZIMMER, 1, SW_FLUR, 5);
|
||||||
// AddToggle(UP_WOHNZIMMER_TUER, 1, SW_FLUR, 3); // Linus Zimmer runter hoch aus Wohnzimmer
|
|
||||||
//
|
|
||||||
// AddToggle(0x0769, 2, SW_FLUR, 4); // Linus Zimmer runter hoch aus Wohnzimmer
|
AddToggle(UP_FLUR_EINGANG, 1, SW_FLUR, 1);
|
||||||
//
|
AddToggle(UP_FLUR_EINGANG, 2, SW_FLUR, 6);
|
||||||
//
|
AddToggle(UP_FLUR_EINGANG, 2, SW_WOHNZIMMER, 2);
|
||||||
// AddToggle(UP_KUECHE_FLUR, 1, SW_ANBAU, 2);
|
|
||||||
// AddToggle(UP_KUECHE_FLUR, 2, SW_ANBAU, 3);
|
AddToggle(UP_ELTERN, 1, SW_FLUR, 2);
|
||||||
// AddToggle(UP_KUECHE_BAD, 1, SW_ANBAU, 2);
|
|
||||||
// AddToggle(UP_KUECHE_BAD, 3, SW_ANBAU, 1);
|
AddToggle(UP_BUERO, 1, SW_WOHNZIMMER, 3);
|
||||||
// AddToggle(UP_KUECHE_BAD, 2, SW_ANBAU, 4);
|
|
||||||
|
AddToggle(UP_FLUR_BUERO, 1, SW_FLUR, 6);
|
||||||
|
AddToggle(UP_FLUR_BUERO, 1, SW_WOHNZIMMER, 2);
|
||||||
_PROTECTED_WRITE(CLKCTRL.MCLKCTRLA, CLKCTRL.MCLKCTRLA | 1 << 7);
|
|
||||||
|
AddToggle (UP_WOHNZIMMER_TERASSE, 1, SW_WOHNZIMMER, 7); // Licht 1 von Terassenschalter
|
||||||
delay(10); // a bit delay for mcp2515 to get the clock
|
AddToggle (UP_WOHNZIMMER_TERASSE, 2, SW_WOHNZIMMER, 8); // Licht
|
||||||
|
AddToggle (UP_WOHNZIMMER_TERASSE, 3, SW_TERRASSE, 2); // Pergola
|
||||||
|
|
||||||
SetMeyPin(0, 1, PIN_PC7);
|
/// RULE FOR SWITCH WOHNZIMMER (BOTH) OF TERASSE
|
||||||
SetMeyPin(1, 2, PIN_PC6);
|
// AddSimple (UP_WOHNZIMMER_TERASSE, 3, SW_WOHNZIMMER, 5); // Eingangstür Flur Licht 2
|
||||||
SetMeyPin(2, 3, PIN_PC5);
|
// AddSimple (UP_WOHNZIMMER_TERASSE, 3, SW_WOHNZIMMER, 6); // Eingangstür Flur Licht 2
|
||||||
SetMeyPin(3, 4, PIN_PC4);
|
|
||||||
SetMeyPin(4, 5, PIN_PC3);
|
|
||||||
SetMeyPin(5, 6, PIN_PC2);
|
AddToggle(UP_KUECHE_ARBEITSPLATTE, 1, SW_ANBAU, 2);
|
||||||
SetMeyPin(6, 7, PIN_PC1);
|
|
||||||
SetMeyPin(7, 8, PIN_PC0);
|
AddToggle(UP_KUECHE_FLUR, 1, SW_ANBAU, 3);
|
||||||
|
AddToggle(UP_KUECHE_FLUR, 2, SW_ANBAU, 2);
|
||||||
AddCanInterface(PIN_PA2);
|
AddToggle(UP_KUECHE_BAD, 1, SW_ANBAU, 3);
|
||||||
AddCanInterface(PIN_PA3);
|
AddToggle(UP_KUECHE_BAD, 2, SW_ANBAU, 1);
|
||||||
AddCanInterface(PIN_PB0);
|
AddToggle(UP_KUECHE_BAD, 3, SW_ANBAU, 4);
|
||||||
AddCanInterface(PIN_PB1);
|
|
||||||
|
AddToggle(UP_FLUR_KUECHE, 1, SW_FLUR, 6);
|
||||||
|
AddToggle(UP_FLUR_KUECHE, 1, SW_WOHNZIMMER, 2);
|
||||||
SetupMeyCan(7, 0, 1);
|
|
||||||
}
|
|
||||||
|
SetMeyPin(1, PIN3);
|
||||||
|
SetMeyPin(2, PIN5);
|
||||||
void loop()
|
SetMeyPin(3, PIN7);
|
||||||
{
|
SetMeyPin(4, PIN9);
|
||||||
ForEachCanInterface(CheckCanInterface);
|
SetMeyPin(5, PIN8);
|
||||||
}
|
SetMeyPin(6, PIN6);
|
||||||
|
SetMeyPin(7, PIN4);
|
||||||
void CheckCanInterface(MCP2515 *interface)
|
SetMeyPin(8, PIN2);
|
||||||
{
|
|
||||||
if (interface->readMessage(&incomingCanFrame) == MCP2515::ERROR_OK)
|
SetDevicedId(0x87, 0xCA);
|
||||||
{
|
AddLocalPinChangedHandler(SetLocalPinStateAdapter);
|
||||||
HandleFrame(&incomingCanFrame, interface);
|
|
||||||
HandleRules(&incomingCanFrame);
|
AddCanInterface(PIN_A0);
|
||||||
}
|
AddCanInterface(PIN_A1);
|
||||||
}
|
AddCanInterface(PIN_A2);
|
||||||
|
AddCanInterface(PIN_A3);
|
||||||
|
|
||||||
|
SetupMeyCan(8, 0, 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
ForEachCanInterface(CheckCanInterface);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void SetLocalPinStateAdapter(can_frame *frame)
|
||||||
|
{
|
||||||
|
SetLocalPinState(frame);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CheckCanInterface(MCP2515 *interface) {
|
||||||
|
if (interface->readMessage(&incomingCanFrame) == MCP2515::ERROR_OK) {
|
||||||
|
HandleFrame(&incomingCanFrame, interface);
|
||||||
|
HandleRules(&incomingCanFrame);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,68 +1,68 @@
|
|||||||
Testfälle Meycan Switch
|
Testfälle Meycan Switch
|
||||||
|
|
||||||
PreCons for each:
|
PreCons for each:
|
||||||
GIVEN XX XX is the deviceId of the target device
|
GIVEN XX XX is the deviceId of the target device
|
||||||
GIVEN YY YY is another device id, which is NOT XX XX
|
GIVEN YY YY is another device id, which is NOT XX XX
|
||||||
GIVEN 2nd CAN Debug Device on another CanBus of switch
|
GIVEN 2nd CAN Debug Device on another CanBus of switch
|
||||||
|
|
||||||
1) A MeyPin can be triggered directly (repeat Test for all MeyPins and each CAN Bus Interface specified)
|
1) A MeyPin can be triggered directly (repeat Test for all MeyPins and each CAN Bus Interface specified)
|
||||||
WHEN Send CAN Pkg 00 55 11 11 | XX XX 01 01 -> (MeyPin1 Should switch to on)
|
WHEN Send CAN Pkg 00 55 11 11 | XX XX 01 01 -> (MeyPin1 Should switch to on)
|
||||||
THEN The MeyPin 1 should trigger
|
THEN The MeyPin 1 should trigger
|
||||||
THEN you receive a message 00 50 XX XX | 01 01
|
THEN you receive a message 00 50 XX XX | 01 01
|
||||||
THEN 2nd device should receive 2 messages
|
THEN 2nd device should receive 2 messages
|
||||||
* 00 50 XX XX | 01 01
|
* 00 50 XX XX | 01 01
|
||||||
* 00 55 11 11 | XX XX 01 01
|
* 00 55 11 11 | XX XX 01 01
|
||||||
|
|
||||||
1a) A MeyPin trigger is effecltess, if only set
|
1a) A MeyPin trigger is effecltess, if only set
|
||||||
GIVEN the above testcast
|
GIVEN the above testcast
|
||||||
WHEN Send CAN Pkg 00 55 11 11 | XX XX 01 01
|
WHEN Send CAN Pkg 00 55 11 11 | XX XX 01 01
|
||||||
THEN Nothing changed
|
THEN Nothing changed
|
||||||
THEN you dont receive a message
|
THEN you dont receive a message
|
||||||
THEN 2nd device should receive 00 55 11 11 | XX XX 01 01
|
THEN 2nd device should receive 00 55 11 11 | XX XX 01 01
|
||||||
|
|
||||||
WHEN Send CAN Pkg 00 55 11 11 | XX XX 01 00 -> (MeyPin1 Should switch to off)
|
WHEN Send CAN Pkg 00 55 11 11 | XX XX 01 00 -> (MeyPin1 Should switch to off)
|
||||||
THEN The MeyPin 1 should switch to OFF
|
THEN The MeyPin 1 should switch to OFF
|
||||||
THEN you receive a message 00 50 XX XX | 01 00
|
THEN you receive a message 00 50 XX XX | 01 00
|
||||||
THEN 2nd device should receive 2 messages
|
THEN 2nd device should receive 2 messages
|
||||||
* 00 50 XX XX | 01 00
|
* 00 50 XX XX | 01 00
|
||||||
* 00 55 11 11 | XX XX 01 00
|
* 00 55 11 11 | XX XX 01 00
|
||||||
|
|
||||||
|
|
||||||
2) A MeyPin is not triggered, if the device id dont match
|
2) A MeyPin is not triggered, if the device id dont match
|
||||||
WHEN Send CAN Pkg 00 55 11 11 | YY YY 01 01
|
WHEN Send CAN Pkg 00 55 11 11 | YY YY 01 01
|
||||||
THEN None of the pins of the device triggered
|
THEN None of the pins of the device triggered
|
||||||
THEN you receive no message
|
THEN you receive no message
|
||||||
THEN 2nd device should receive 1 messages
|
THEN 2nd device should receive 1 messages
|
||||||
* 00 55 11 11 | XX XX 01 01
|
* 00 55 11 11 | XX XX 01 01
|
||||||
|
|
||||||
|
|
||||||
3) A MeyPin is not triggered, if the Package Type dont match
|
3) A MeyPin is not triggered, if the Package Type dont match
|
||||||
WHEN Send CAN Pkg 50 00 11 11 | YY YY 01 01
|
WHEN Send CAN Pkg 50 00 11 11 | YY YY 01 01
|
||||||
THEN None of the pins of the device triggered
|
THEN None of the pins of the device triggered
|
||||||
THEN you receive no message
|
THEN you receive no message
|
||||||
THEN 2nd device should receive 1 messages
|
THEN 2nd device should receive 1 messages
|
||||||
* 50 00 11 11 | XX XX 01 01
|
* 50 00 11 11 | XX XX 01 01
|
||||||
|
|
||||||
3) A MeyPin is not triggered, if the MeyPin is above 8 (max pins)
|
3) A MeyPin is not triggered, if the MeyPin is above 8 (max pins)
|
||||||
WHEN Send CAN Pkg 00 55 11 11 | XX XX 09 01
|
WHEN Send CAN Pkg 00 55 11 11 | XX XX 09 01
|
||||||
THEN None of the pins of the device triggered
|
THEN None of the pins of the device triggered
|
||||||
THEN you receive no message
|
THEN you receive no message
|
||||||
THEN 2nd device should receive 1 messages
|
THEN 2nd device should receive 1 messages
|
||||||
* 00 55 11 11 | XX XX 09 01
|
* 00 55 11 11 | XX XX 09 01
|
||||||
THEN you can execute any other testcase, as the switch didnt crash
|
THEN you can execute any other testcase, as the switch didnt crash
|
||||||
|
|
||||||
4) All MeyPins can be activated more than 15 minutes in parallel(Activate each port for at least 15 mins)
|
4) All MeyPins can be activated more than 15 minutes in parallel(Activate each port for at least 15 mins)
|
||||||
GIVE You have a relais connected to each of the ports
|
GIVE You have a relais connected to each of the ports
|
||||||
WHEN Send CAN Pkg 00 55 11 11 | XX XX 01 01 -> (MeyPin1 Should switch to on)
|
WHEN Send CAN Pkg 00 55 11 11 | XX XX 01 01 -> (MeyPin1 Should switch to on)
|
||||||
WHEN Send CAN Pkg 00 55 11 11 | XX XX 02 01 -> (MeyPin2 Should switch to on)
|
WHEN Send CAN Pkg 00 55 11 11 | XX XX 02 01 -> (MeyPin2 Should switch to on)
|
||||||
WHEN Send CAN Pkg 00 55 11 11 | XX XX 03 01 -> (MeyPin3 Should switch to on)
|
WHEN Send CAN Pkg 00 55 11 11 | XX XX 03 01 -> (MeyPin3 Should switch to on)
|
||||||
WHEN Send CAN Pkg 00 55 11 11 | XX XX 04 01 -> (MeyPin4 Should switch to on)
|
WHEN Send CAN Pkg 00 55 11 11 | XX XX 04 01 -> (MeyPin4 Should switch to on)
|
||||||
WHEN Send CAN Pkg 00 55 11 11 | XX XX 05 01 -> (MeyPin5 Should switch to on)
|
WHEN Send CAN Pkg 00 55 11 11 | XX XX 05 01 -> (MeyPin5 Should switch to on)
|
||||||
WHEN Send CAN Pkg 00 55 11 11 | XX XX 06 01 -> (MeyPin6 Should switch to on)
|
WHEN Send CAN Pkg 00 55 11 11 | XX XX 06 01 -> (MeyPin6 Should switch to on)
|
||||||
WHEN Send CAN Pkg 00 55 11 11 | XX XX 07 01 -> (MeyPin7 Should switch to on)
|
WHEN Send CAN Pkg 00 55 11 11 | XX XX 07 01 -> (MeyPin7 Should switch to on)
|
||||||
WHEN Send CAN Pkg 00 55 11 11 | XX XX 08 01 -> (MeyPin8 Should switch to on)
|
WHEN Send CAN Pkg 00 55 11 11 | XX XX 08 01 -> (MeyPin8 Should switch to on)
|
||||||
THEN you should only receive the packages from above.
|
THEN you should only receive the packages from above.
|
||||||
THEN you should NOT receive a VersionPackage
|
THEN you should NOT receive a VersionPackage
|
||||||
WHEN you wait 15 Minutes
|
WHEN you wait 15 Minutes
|
||||||
THEN nothing should be send
|
THEN nothing should be send
|
||||||
THEN the Pins should not trigger
|
THEN the Pins should not trigger
|
||||||
7
Software/Testsender/.vscode/arduino.json
vendored
Normal file
7
Software/Testsender/.vscode/arduino.json
vendored
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"configuration": "pinout=48pin_standard,eeprom=keep,resetpin=reset,BOD=2v6,clock=internal_8MHz,bootloader=no_bootloader",
|
||||||
|
"board": "MegaCoreX:megaavr:809",
|
||||||
|
"sketch": "Switch.ino",
|
||||||
|
"port": "COM6",
|
||||||
|
"programmer": "jtag2updi"
|
||||||
|
}
|
||||||
540
Software/Testsender/.vscode/c_cpp_properties.json
vendored
Normal file
540
Software/Testsender/.vscode/c_cpp_properties.json
vendored
Normal file
@@ -0,0 +1,540 @@
|
|||||||
|
{
|
||||||
|
"version": 4,
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "Arduino",
|
||||||
|
"compilerPath": "C:\\Users\\Martin\\AppData\\Local\\Arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7\\bin\\avr-g++",
|
||||||
|
"compilerArgs": [
|
||||||
|
"-w",
|
||||||
|
"-std=gnu++17",
|
||||||
|
"-fpermissive",
|
||||||
|
"-fno-exceptions",
|
||||||
|
"-ffunction-sections",
|
||||||
|
"-fdata-sections",
|
||||||
|
"-fno-threadsafe-statics",
|
||||||
|
"-Wno-error=narrowing"
|
||||||
|
],
|
||||||
|
"intelliSenseMode": "gcc-x64",
|
||||||
|
"includePath": [
|
||||||
|
"C:\\Users\\Martin\\AppData\\Local\\Arduino15\\packages\\MegaCoreX\\hardware\\megaavr\\1.1.0\\cores\\coreX-corefiles\\api\\deprecated",
|
||||||
|
"C:\\Users\\Martin\\AppData\\Local\\Arduino15\\packages\\MegaCoreX\\hardware\\megaavr\\1.1.0\\cores\\coreX-corefiles",
|
||||||
|
"C:\\Users\\Martin\\AppData\\Local\\Arduino15\\packages\\MegaCoreX\\hardware\\megaavr\\1.1.0\\variants\\48pin-standard",
|
||||||
|
"C:\\Users\\Martin\\AppData\\Local\\Arduino15\\packages\\MegaCoreX\\hardware\\megaavr\\1.1.0\\libraries\\SPI\\src",
|
||||||
|
"C:\\Users\\Martin\\Documents\\Arduino\\libraries\\autowp-mcp2515",
|
||||||
|
"c:\\users\\martin\\appdata\\local\\arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7\\lib\\gcc\\avr\\7.3.0\\include",
|
||||||
|
"c:\\users\\martin\\appdata\\local\\arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7\\lib\\gcc\\avr\\7.3.0\\include-fixed",
|
||||||
|
"c:\\users\\martin\\appdata\\local\\arduino15\\packages\\arduino\\tools\\avr-gcc\\7.3.0-atmel3.6.1-arduino7\\avr\\include"
|
||||||
|
],
|
||||||
|
"forcedInclude": [
|
||||||
|
"C:\\Users\\Martin\\AppData\\Local\\Arduino15\\packages\\MegaCoreX\\hardware\\megaavr\\1.1.0\\cores\\coreX-corefiles\\Arduino.h"
|
||||||
|
],
|
||||||
|
"cStandard": "c11",
|
||||||
|
"cppStandard": "c++17",
|
||||||
|
"defines": [
|
||||||
|
"F_CPU=8000000L",
|
||||||
|
"ARDUINO=10607",
|
||||||
|
"ARDUINO_AVR_ATmega809",
|
||||||
|
"ARDUINO_ARCH_MEGAAVR",
|
||||||
|
"__DBL_MIN_EXP__=(-125)",
|
||||||
|
"__HQ_FBIT__=15",
|
||||||
|
"__cpp_attributes=200809",
|
||||||
|
"__UINT_LEAST16_MAX__=0xffffU",
|
||||||
|
"__ATOMIC_ACQUIRE=2",
|
||||||
|
"__SFRACT_IBIT__=0",
|
||||||
|
"__FLT_MIN__=1.17549435e-38F",
|
||||||
|
"__GCC_IEC_559_COMPLEX=0",
|
||||||
|
"__BUILTIN_AVR_SLEEP=1",
|
||||||
|
"__BUILTIN_AVR_COUNTLSULLK=1",
|
||||||
|
"__cpp_aggregate_nsdmi=201304",
|
||||||
|
"__BUILTIN_AVR_COUNTLSULLR=1",
|
||||||
|
"__UFRACT_MAX__=0XFFFFP-16UR",
|
||||||
|
"__UINT_LEAST8_TYPE__=unsigned char",
|
||||||
|
"__DQ_FBIT__=63",
|
||||||
|
"__INTMAX_C(c)=c ## LL",
|
||||||
|
"__ULFRACT_FBIT__=32",
|
||||||
|
"__SACCUM_EPSILON__=0x1P-7HK",
|
||||||
|
"__CHAR_BIT__=8",
|
||||||
|
"__USQ_IBIT__=0",
|
||||||
|
"__UINT8_MAX__=0xff",
|
||||||
|
"__ACCUM_FBIT__=15",
|
||||||
|
"__WINT_MAX__=0x7fff",
|
||||||
|
"__FLT32_MIN_EXP__=(-125)",
|
||||||
|
"__cpp_static_assert=200410",
|
||||||
|
"__USFRACT_FBIT__=8",
|
||||||
|
"__ORDER_LITTLE_ENDIAN__=1234",
|
||||||
|
"__SIZE_MAX__=0xffffU",
|
||||||
|
"__WCHAR_MAX__=0x7fff",
|
||||||
|
"__LACCUM_IBIT__=32",
|
||||||
|
"__DBL_DENORM_MIN__=double(1.40129846e-45L)",
|
||||||
|
"__GCC_ATOMIC_CHAR_LOCK_FREE=1",
|
||||||
|
"__GCC_IEC_559=0",
|
||||||
|
"__FLT_EVAL_METHOD__=0",
|
||||||
|
"__BUILTIN_AVR_LLKBITS=1",
|
||||||
|
"__cpp_binary_literals=201304",
|
||||||
|
"__LLACCUM_MAX__=0X7FFFFFFFFFFFFFFFP-47LLK",
|
||||||
|
"__GCC_ATOMIC_CHAR32_T_LOCK_FREE=1",
|
||||||
|
"__BUILTIN_AVR_HKBITS=1",
|
||||||
|
"__BUILTIN_AVR_BITSLLK=1",
|
||||||
|
"__FRACT_FBIT__=15",
|
||||||
|
"__BUILTIN_AVR_BITSLLR=1",
|
||||||
|
"__cpp_variadic_templates=200704",
|
||||||
|
"__UINT_FAST64_MAX__=0xffffffffffffffffULL",
|
||||||
|
"__SIG_ATOMIC_TYPE__=char",
|
||||||
|
"__BUILTIN_AVR_UHKBITS=1",
|
||||||
|
"__UACCUM_FBIT__=16",
|
||||||
|
"__DBL_MIN_10_EXP__=(-37)",
|
||||||
|
"__FINITE_MATH_ONLY__=0",
|
||||||
|
"__cpp_variable_templates=201304",
|
||||||
|
"__LFRACT_IBIT__=0",
|
||||||
|
"__GNUC_PATCHLEVEL__=0",
|
||||||
|
"__FLT32_HAS_DENORM__=1",
|
||||||
|
"__LFRACT_MAX__=0X7FFFFFFFP-31LR",
|
||||||
|
"__UINT_FAST8_MAX__=0xff",
|
||||||
|
"__has_include(STR)=__has_include__(STR)",
|
||||||
|
"__DEC64_MAX_EXP__=385",
|
||||||
|
"__INT8_C(c)=c",
|
||||||
|
"__INT_LEAST8_WIDTH__=8",
|
||||||
|
"__UINT_LEAST64_MAX__=0xffffffffffffffffULL",
|
||||||
|
"__SA_FBIT__=15",
|
||||||
|
"__SHRT_MAX__=0x7fff",
|
||||||
|
"__LDBL_MAX__=3.40282347e+38L",
|
||||||
|
"__FRACT_MAX__=0X7FFFP-15R",
|
||||||
|
"__UFRACT_FBIT__=16",
|
||||||
|
"__UFRACT_MIN__=0.0UR",
|
||||||
|
"__UINT_LEAST8_MAX__=0xff",
|
||||||
|
"__GCC_ATOMIC_BOOL_LOCK_FREE=1",
|
||||||
|
"__UINTMAX_TYPE__=long long unsigned int",
|
||||||
|
"__LLFRACT_EPSILON__=0x1P-63LLR",
|
||||||
|
"__BUILTIN_AVR_DELAY_CYCLES=1",
|
||||||
|
"__DEC32_EPSILON__=1E-6DF",
|
||||||
|
"__FLT_EVAL_METHOD_TS_18661_3__=0",
|
||||||
|
"__UINT32_MAX__=0xffffffffUL",
|
||||||
|
"__GXX_EXPERIMENTAL_CXX0X__=1",
|
||||||
|
"__ULFRACT_MAX__=0XFFFFFFFFP-32ULR",
|
||||||
|
"__TA_IBIT__=16",
|
||||||
|
"__LDBL_MAX_EXP__=128",
|
||||||
|
"__WINT_MIN__=(-__WINT_MAX__ - 1)",
|
||||||
|
"__INT_LEAST16_WIDTH__=16",
|
||||||
|
"__ULLFRACT_MIN__=0.0ULLR",
|
||||||
|
"__SCHAR_MAX__=0x7f",
|
||||||
|
"__WCHAR_MIN__=(-__WCHAR_MAX__ - 1)",
|
||||||
|
"__INT64_C(c)=c ## LL",
|
||||||
|
"__DBL_DIG__=6",
|
||||||
|
"__GCC_ATOMIC_POINTER_LOCK_FREE=1",
|
||||||
|
"__AVR_HAVE_SPH__=1",
|
||||||
|
"__LLACCUM_MIN__=(-0X1P15LLK-0X1P15LLK)",
|
||||||
|
"__BUILTIN_AVR_KBITS=1",
|
||||||
|
"__BUILTIN_AVR_ABSK=1",
|
||||||
|
"__BUILTIN_AVR_ABSR=1",
|
||||||
|
"__SIZEOF_INT__=2",
|
||||||
|
"__SIZEOF_POINTER__=2",
|
||||||
|
"__GCC_ATOMIC_CHAR16_T_LOCK_FREE=1",
|
||||||
|
"__USACCUM_IBIT__=8",
|
||||||
|
"__USER_LABEL_PREFIX__",
|
||||||
|
"__STDC_HOSTED__=1",
|
||||||
|
"__LDBL_HAS_INFINITY__=1",
|
||||||
|
"__LFRACT_MIN__=(-0.5LR-0.5LR)",
|
||||||
|
"__HA_IBIT__=8",
|
||||||
|
"__FLT32_DIG__=6",
|
||||||
|
"__TQ_IBIT__=0",
|
||||||
|
"__FLT_EPSILON__=1.19209290e-7F",
|
||||||
|
"__GXX_WEAK__=1",
|
||||||
|
"__SHRT_WIDTH__=16",
|
||||||
|
"__USFRACT_IBIT__=0",
|
||||||
|
"__LDBL_MIN__=1.17549435e-38L",
|
||||||
|
"__FRACT_MIN__=(-0.5R-0.5R)",
|
||||||
|
"__AVR_SFR_OFFSET__=0x20",
|
||||||
|
"__DEC32_MAX__=9.999999E96DF",
|
||||||
|
"__cpp_threadsafe_static_init=200806",
|
||||||
|
"__DA_IBIT__=32",
|
||||||
|
"__INT32_MAX__=0x7fffffffL",
|
||||||
|
"__UQQ_FBIT__=8",
|
||||||
|
"__INT_WIDTH__=16",
|
||||||
|
"__SIZEOF_LONG__=4",
|
||||||
|
"__UACCUM_MAX__=0XFFFFFFFFP-16UK",
|
||||||
|
"__UINT16_C(c)=c ## U",
|
||||||
|
"__PTRDIFF_WIDTH__=16",
|
||||||
|
"__DECIMAL_DIG__=9",
|
||||||
|
"__LFRACT_EPSILON__=0x1P-31LR",
|
||||||
|
"__AVR_2_BYTE_PC__=1",
|
||||||
|
"__ULFRACT_MIN__=0.0ULR",
|
||||||
|
"__INTMAX_WIDTH__=64",
|
||||||
|
"__has_include_next(STR)=__has_include_next__(STR)",
|
||||||
|
"__BUILTIN_AVR_ULLRBITS=1",
|
||||||
|
"__LDBL_HAS_QUIET_NAN__=1",
|
||||||
|
"__ULACCUM_IBIT__=32",
|
||||||
|
"__UACCUM_EPSILON__=0x1P-16UK",
|
||||||
|
"__BUILTIN_AVR_SEI=1",
|
||||||
|
"__GNUC__=7",
|
||||||
|
"__ULLACCUM_MAX__=0XFFFFFFFFFFFFFFFFP-48ULLK",
|
||||||
|
"__cpp_delegating_constructors=200604",
|
||||||
|
"__HQ_IBIT__=0",
|
||||||
|
"__BUILTIN_AVR_SWAP=1",
|
||||||
|
"__FLT_HAS_DENORM__=1",
|
||||||
|
"__SIZEOF_LONG_DOUBLE__=4",
|
||||||
|
"__BIGGEST_ALIGNMENT__=1",
|
||||||
|
"__STDC_UTF_16__=1",
|
||||||
|
"__UINT24_MAX__=16777215UL",
|
||||||
|
"__BUILTIN_AVR_NOP=1",
|
||||||
|
"__GNUC_STDC_INLINE__=1",
|
||||||
|
"__DQ_IBIT__=0",
|
||||||
|
"__FLT32_HAS_INFINITY__=1",
|
||||||
|
"__DBL_MAX__=double(3.40282347e+38L)",
|
||||||
|
"__ULFRACT_IBIT__=0",
|
||||||
|
"__cpp_raw_strings=200710",
|
||||||
|
"__INT_FAST32_MAX__=0x7fffffffL",
|
||||||
|
"__DBL_HAS_INFINITY__=1",
|
||||||
|
"__INT64_MAX__=0x7fffffffffffffffLL",
|
||||||
|
"__ACCUM_IBIT__=16",
|
||||||
|
"__DEC32_MIN_EXP__=(-94)",
|
||||||
|
"__BUILTIN_AVR_UKBITS=1",
|
||||||
|
"__INTPTR_WIDTH__=16",
|
||||||
|
"__BUILTIN_AVR_FMULSU=1",
|
||||||
|
"__LACCUM_MAX__=0X7FFFFFFFFFFFFFFFP-31LK",
|
||||||
|
"__INT_FAST16_TYPE__=int",
|
||||||
|
"__LDBL_HAS_DENORM__=1",
|
||||||
|
"__BUILTIN_AVR_BITSK=1",
|
||||||
|
"__BUILTIN_AVR_BITSR=1",
|
||||||
|
"__cplusplus=201402L",
|
||||||
|
"__cpp_ref_qualifiers=200710",
|
||||||
|
"__DEC128_MAX__=9.999999999999999999999999999999999E6144DL",
|
||||||
|
"__INT_LEAST32_MAX__=0x7fffffffL",
|
||||||
|
"__USING_SJLJ_EXCEPTIONS__=1",
|
||||||
|
"__DEC32_MIN__=1E-95DF",
|
||||||
|
"__ACCUM_MAX__=0X7FFFFFFFP-15K",
|
||||||
|
"__DEPRECATED=1",
|
||||||
|
"__cpp_rvalue_references=200610",
|
||||||
|
"__DBL_MAX_EXP__=128",
|
||||||
|
"__USACCUM_EPSILON__=0x1P-8UHK",
|
||||||
|
"__WCHAR_WIDTH__=16",
|
||||||
|
"__FLT32_MAX__=3.40282347e+38F32",
|
||||||
|
"__DEC128_EPSILON__=1E-33DL",
|
||||||
|
"__SFRACT_MAX__=0X7FP-7HR",
|
||||||
|
"__FRACT_IBIT__=0",
|
||||||
|
"__PTRDIFF_MAX__=0x7fff",
|
||||||
|
"__UACCUM_MIN__=0.0UK",
|
||||||
|
"__UACCUM_IBIT__=16",
|
||||||
|
"__BUILTIN_AVR_NOPS=1",
|
||||||
|
"__BUILTIN_AVR_WDR=1",
|
||||||
|
"__FLT32_HAS_QUIET_NAN__=1",
|
||||||
|
"__GNUG__=7",
|
||||||
|
"__LONG_LONG_MAX__=0x7fffffffffffffffLL",
|
||||||
|
"__SIZEOF_SIZE_T__=2",
|
||||||
|
"__ULACCUM_MAX__=0XFFFFFFFFFFFFFFFFP-32ULK",
|
||||||
|
"__cpp_rvalue_reference=200610",
|
||||||
|
"__cpp_nsdmi=200809",
|
||||||
|
"__SIZEOF_WINT_T__=2",
|
||||||
|
"__LONG_LONG_WIDTH__=64",
|
||||||
|
"__cpp_initializer_lists=200806",
|
||||||
|
"__FLT32_MAX_EXP__=128",
|
||||||
|
"__SA_IBIT__=16",
|
||||||
|
"__ULLACCUM_MIN__=0.0ULLK",
|
||||||
|
"__BUILTIN_AVR_ROUNDUHK=1",
|
||||||
|
"__BUILTIN_AVR_ROUNDUHR=1",
|
||||||
|
"__cpp_hex_float=201603",
|
||||||
|
"__GXX_ABI_VERSION=1011",
|
||||||
|
"__INT24_MAX__=8388607L",
|
||||||
|
"__UTA_FBIT__=48",
|
||||||
|
"__FLT_MIN_EXP__=(-125)",
|
||||||
|
"__USFRACT_MAX__=0XFFP-8UHR",
|
||||||
|
"__UFRACT_IBIT__=0",
|
||||||
|
"__BUILTIN_AVR_ROUNDFX=1",
|
||||||
|
"__BUILTIN_AVR_ROUNDULK=1",
|
||||||
|
"__BUILTIN_AVR_ROUNDULR=1",
|
||||||
|
"__cpp_lambdas=200907",
|
||||||
|
"__BUILTIN_AVR_COUNTLSLLK=1",
|
||||||
|
"__BUILTIN_AVR_COUNTLSLLR=1",
|
||||||
|
"__BUILTIN_AVR_ROUNDHK=1",
|
||||||
|
"__INT_FAST64_TYPE__=long long int",
|
||||||
|
"__BUILTIN_AVR_ROUNDHR=1",
|
||||||
|
"__DBL_MIN__=double(1.17549435e-38L)",
|
||||||
|
"__BUILTIN_AVR_COUNTLSK=1",
|
||||||
|
"__BUILTIN_AVR_ROUNDLK=1",
|
||||||
|
"__BUILTIN_AVR_COUNTLSR=1",
|
||||||
|
"__BUILTIN_AVR_ROUNDLR=1",
|
||||||
|
"__LACCUM_MIN__=(-0X1P31LK-0X1P31LK)",
|
||||||
|
"__ULLACCUM_FBIT__=48",
|
||||||
|
"__BUILTIN_AVR_LKBITS=1",
|
||||||
|
"__ULLFRACT_EPSILON__=0x1P-64ULLR",
|
||||||
|
"__DEC128_MIN__=1E-6143DL",
|
||||||
|
"__REGISTER_PREFIX__",
|
||||||
|
"__UINT16_MAX__=0xffffU",
|
||||||
|
"__DBL_HAS_DENORM__=1",
|
||||||
|
"__BUILTIN_AVR_ULKBITS=1",
|
||||||
|
"__ACCUM_MIN__=(-0X1P15K-0X1P15K)",
|
||||||
|
"__AVR_ARCH__=2",
|
||||||
|
"__SQ_IBIT__=0",
|
||||||
|
"__FLT32_MIN__=1.17549435e-38F32",
|
||||||
|
"__UINT8_TYPE__=unsigned char",
|
||||||
|
"__BUILTIN_AVR_ROUNDUK=1",
|
||||||
|
"__BUILTIN_AVR_ROUNDUR=1",
|
||||||
|
"__UHA_FBIT__=8",
|
||||||
|
"__NO_INLINE__=1",
|
||||||
|
"__SFRACT_MIN__=(-0.5HR-0.5HR)",
|
||||||
|
"__UTQ_FBIT__=128",
|
||||||
|
"__FLT_MANT_DIG__=24",
|
||||||
|
"__LDBL_DECIMAL_DIG__=9",
|
||||||
|
"__VERSION__=\"7.3.0\"",
|
||||||
|
"__UINT64_C(c)=c ## ULL",
|
||||||
|
"__ULLFRACT_FBIT__=64",
|
||||||
|
"__cpp_unicode_characters=200704",
|
||||||
|
"__FRACT_EPSILON__=0x1P-15R",
|
||||||
|
"__ULACCUM_MIN__=0.0ULK",
|
||||||
|
"__UDA_FBIT__=32",
|
||||||
|
"__cpp_decltype_auto=201304",
|
||||||
|
"__LLACCUM_EPSILON__=0x1P-47LLK",
|
||||||
|
"__GCC_ATOMIC_INT_LOCK_FREE=1",
|
||||||
|
"__FLT32_MANT_DIG__=24",
|
||||||
|
"__BUILTIN_AVR_BITSUHK=1",
|
||||||
|
"__BUILTIN_AVR_BITSUHR=1",
|
||||||
|
"__FLOAT_WORD_ORDER__=__ORDER_LITTLE_ENDIAN__",
|
||||||
|
"__USFRACT_MIN__=0.0UHR",
|
||||||
|
"__BUILTIN_AVR_BITSULK=1",
|
||||||
|
"__ULLACCUM_IBIT__=16",
|
||||||
|
"__BUILTIN_AVR_BITSULR=1",
|
||||||
|
"__UQQ_IBIT__=0",
|
||||||
|
"__BUILTIN_AVR_LLRBITS=1",
|
||||||
|
"__SCHAR_WIDTH__=8",
|
||||||
|
"__BUILTIN_AVR_BITSULLK=1",
|
||||||
|
"__BUILTIN_AVR_BITSULLR=1",
|
||||||
|
"__INT32_C(c)=c ## L",
|
||||||
|
"__DEC64_EPSILON__=1E-15DD",
|
||||||
|
"__ORDER_PDP_ENDIAN__=3412",
|
||||||
|
"__DEC128_MIN_EXP__=(-6142)",
|
||||||
|
"__UHQ_FBIT__=16",
|
||||||
|
"__LLACCUM_FBIT__=47",
|
||||||
|
"__FLT32_MAX_10_EXP__=38",
|
||||||
|
"__BUILTIN_AVR_ROUNDULLK=1",
|
||||||
|
"__BUILTIN_AVR_ROUNDULLR=1",
|
||||||
|
"__INT_FAST32_TYPE__=long int",
|
||||||
|
"__BUILTIN_AVR_HRBITS=1",
|
||||||
|
"__UINT_LEAST16_TYPE__=unsigned int",
|
||||||
|
"__BUILTIN_AVR_UHRBITS=1",
|
||||||
|
"__INT16_MAX__=0x7fff",
|
||||||
|
"__SIZE_TYPE__=unsigned int",
|
||||||
|
"__UINT64_MAX__=0xffffffffffffffffULL",
|
||||||
|
"__UDQ_FBIT__=64",
|
||||||
|
"__INT8_TYPE__=signed char",
|
||||||
|
"__cpp_digit_separators=201309",
|
||||||
|
"__ELF__=1",
|
||||||
|
"__ULFRACT_EPSILON__=0x1P-32ULR",
|
||||||
|
"__LLFRACT_FBIT__=63",
|
||||||
|
"__FLT_RADIX__=2",
|
||||||
|
"__INT_LEAST16_TYPE__=int",
|
||||||
|
"__BUILTIN_AVR_ABSFX=1",
|
||||||
|
"__LDBL_EPSILON__=1.19209290e-7L",
|
||||||
|
"__UINTMAX_C(c)=c ## ULL",
|
||||||
|
"__INT24_MIN__=(-__INT24_MAX__-1)",
|
||||||
|
"__SACCUM_MAX__=0X7FFFP-7HK",
|
||||||
|
"__BUILTIN_AVR_ABSHR=1",
|
||||||
|
"__SIG_ATOMIC_MAX__=0x7f",
|
||||||
|
"__GCC_ATOMIC_WCHAR_T_LOCK_FREE=1",
|
||||||
|
"__cpp_sized_deallocation=201309",
|
||||||
|
"__SIZEOF_PTRDIFF_T__=2",
|
||||||
|
"__AVR=1",
|
||||||
|
"__BUILTIN_AVR_ABSLK=1",
|
||||||
|
"__BUILTIN_AVR_ABSLR=1",
|
||||||
|
"__LACCUM_EPSILON__=0x1P-31LK",
|
||||||
|
"__DEC32_SUBNORMAL_MIN__=0.000001E-95DF",
|
||||||
|
"__INT_FAST16_MAX__=0x7fff",
|
||||||
|
"__UINT_FAST32_MAX__=0xffffffffUL",
|
||||||
|
"__UINT_LEAST64_TYPE__=long long unsigned int",
|
||||||
|
"__USACCUM_MAX__=0XFFFFP-8UHK",
|
||||||
|
"__SFRACT_EPSILON__=0x1P-7HR",
|
||||||
|
"__FLT_HAS_QUIET_NAN__=1",
|
||||||
|
"__FLT_MAX_10_EXP__=38",
|
||||||
|
"__LONG_MAX__=0x7fffffffL",
|
||||||
|
"__DEC128_SUBNORMAL_MIN__=0.000000000000000000000000000000001E-6143DL",
|
||||||
|
"__FLT_HAS_INFINITY__=1",
|
||||||
|
"__cpp_unicode_literals=200710",
|
||||||
|
"__USA_FBIT__=16",
|
||||||
|
"__UINT_FAST16_TYPE__=unsigned int",
|
||||||
|
"__DEC64_MAX__=9.999999999999999E384DD",
|
||||||
|
"__INT_FAST32_WIDTH__=32",
|
||||||
|
"__BUILTIN_AVR_RBITS=1",
|
||||||
|
"__CHAR16_TYPE__=unsigned int",
|
||||||
|
"__PRAGMA_REDEFINE_EXTNAME=1",
|
||||||
|
"__SIZE_WIDTH__=16",
|
||||||
|
"__INT_LEAST16_MAX__=0x7fff",
|
||||||
|
"__DEC64_MANT_DIG__=16",
|
||||||
|
"__UINT_LEAST32_MAX__=0xffffffffUL",
|
||||||
|
"__SACCUM_FBIT__=7",
|
||||||
|
"__FLT32_DENORM_MIN__=1.40129846e-45F32",
|
||||||
|
"__GCC_ATOMIC_LONG_LOCK_FREE=1",
|
||||||
|
"__SIG_ATOMIC_WIDTH__=8",
|
||||||
|
"__INT_LEAST64_TYPE__=long long int",
|
||||||
|
"__INT16_TYPE__=int",
|
||||||
|
"__INT_LEAST8_TYPE__=signed char",
|
||||||
|
"__SQ_FBIT__=31",
|
||||||
|
"__DEC32_MAX_EXP__=97",
|
||||||
|
"__INT_FAST8_MAX__=0x7f",
|
||||||
|
"__INTPTR_MAX__=0x7fff",
|
||||||
|
"__QQ_FBIT__=7",
|
||||||
|
"__cpp_range_based_for=200907",
|
||||||
|
"__UTA_IBIT__=16",
|
||||||
|
"__AVR_ERRATA_SKIP__=1",
|
||||||
|
"__FLT32_MIN_10_EXP__=(-37)",
|
||||||
|
"__LDBL_MANT_DIG__=24",
|
||||||
|
"__SFRACT_FBIT__=7",
|
||||||
|
"__SACCUM_MIN__=(-0X1P7HK-0X1P7HK)",
|
||||||
|
"__DBL_HAS_QUIET_NAN__=1",
|
||||||
|
"__SIG_ATOMIC_MIN__=(-__SIG_ATOMIC_MAX__ - 1)",
|
||||||
|
"AVR=1",
|
||||||
|
"__BUILTIN_AVR_FMULS=1",
|
||||||
|
"__cpp_return_type_deduction=201304",
|
||||||
|
"__INTPTR_TYPE__=int",
|
||||||
|
"__UINT16_TYPE__=unsigned int",
|
||||||
|
"__WCHAR_TYPE__=int",
|
||||||
|
"__SIZEOF_FLOAT__=4",
|
||||||
|
"__AVR__=1",
|
||||||
|
"__BUILTIN_AVR_INSERT_BITS=1",
|
||||||
|
"__USQ_FBIT__=32",
|
||||||
|
"__UINTPTR_MAX__=0xffffU",
|
||||||
|
"__INT_FAST64_WIDTH__=64",
|
||||||
|
"__DEC64_MIN_EXP__=(-382)",
|
||||||
|
"__cpp_decltype=200707",
|
||||||
|
"__FLT32_DECIMAL_DIG__=9",
|
||||||
|
"__INT_FAST64_MAX__=0x7fffffffffffffffLL",
|
||||||
|
"__GCC_ATOMIC_TEST_AND_SET_TRUEVAL=1",
|
||||||
|
"__FLT_DIG__=6",
|
||||||
|
"__UINT_FAST64_TYPE__=long long unsigned int",
|
||||||
|
"__BUILTIN_AVR_BITSHK=1",
|
||||||
|
"__BUILTIN_AVR_BITSHR=1",
|
||||||
|
"__INT_MAX__=0x7fff",
|
||||||
|
"__LACCUM_FBIT__=31",
|
||||||
|
"__USACCUM_MIN__=0.0UHK",
|
||||||
|
"__UHA_IBIT__=8",
|
||||||
|
"__INT64_TYPE__=long long int",
|
||||||
|
"__BUILTIN_AVR_BITSLK=1",
|
||||||
|
"__BUILTIN_AVR_BITSLR=1",
|
||||||
|
"__FLT_MAX_EXP__=128",
|
||||||
|
"__UTQ_IBIT__=0",
|
||||||
|
"__DBL_MANT_DIG__=24",
|
||||||
|
"__cpp_inheriting_constructors=201511",
|
||||||
|
"__BUILTIN_AVR_ULLKBITS=1",
|
||||||
|
"__INT_LEAST64_MAX__=0x7fffffffffffffffLL",
|
||||||
|
"__DEC64_MIN__=1E-383DD",
|
||||||
|
"__WINT_TYPE__=int",
|
||||||
|
"__UINT_LEAST32_TYPE__=long unsigned int",
|
||||||
|
"__SIZEOF_SHORT__=2",
|
||||||
|
"__ULLFRACT_IBIT__=0",
|
||||||
|
"__LDBL_MIN_EXP__=(-125)",
|
||||||
|
"__UDA_IBIT__=32",
|
||||||
|
"__WINT_WIDTH__=16",
|
||||||
|
"__INT_LEAST8_MAX__=0x7f",
|
||||||
|
"__LFRACT_FBIT__=31",
|
||||||
|
"__LDBL_MAX_10_EXP__=38",
|
||||||
|
"__ATOMIC_RELAXED=0",
|
||||||
|
"__DBL_EPSILON__=double(1.19209290e-7L)",
|
||||||
|
"__BUILTIN_AVR_BITSUK=1",
|
||||||
|
"__BUILTIN_AVR_BITSUR=1",
|
||||||
|
"__UINT8_C(c)=c",
|
||||||
|
"__INT_LEAST32_TYPE__=long int",
|
||||||
|
"__BUILTIN_AVR_URBITS=1",
|
||||||
|
"__SIZEOF_WCHAR_T__=2",
|
||||||
|
"__LLFRACT_MAX__=0X7FFFFFFFFFFFFFFFP-63LLR",
|
||||||
|
"__TQ_FBIT__=127",
|
||||||
|
"__INT_FAST8_TYPE__=signed char",
|
||||||
|
"__ULLACCUM_EPSILON__=0x1P-48ULLK",
|
||||||
|
"__BUILTIN_AVR_ROUNDK=1",
|
||||||
|
"__BUILTIN_AVR_ROUNDR=1",
|
||||||
|
"__UHQ_IBIT__=0",
|
||||||
|
"__LLACCUM_IBIT__=16",
|
||||||
|
"__FLT32_EPSILON__=1.19209290e-7F32",
|
||||||
|
"__DBL_DECIMAL_DIG__=9",
|
||||||
|
"__STDC_UTF_32__=1",
|
||||||
|
"__INT_FAST8_WIDTH__=8",
|
||||||
|
"__DEC_EVAL_METHOD__=2",
|
||||||
|
"__TA_FBIT__=47",
|
||||||
|
"__UDQ_IBIT__=0",
|
||||||
|
"__ORDER_BIG_ENDIAN__=4321",
|
||||||
|
"__cpp_runtime_arrays=198712",
|
||||||
|
"__WITH_AVRLIBC__=1",
|
||||||
|
"__UINT64_TYPE__=long long unsigned int",
|
||||||
|
"__ACCUM_EPSILON__=0x1P-15K",
|
||||||
|
"__UINT32_C(c)=c ## UL",
|
||||||
|
"__BUILTIN_AVR_COUNTLSUHK=1",
|
||||||
|
"__INTMAX_MAX__=0x7fffffffffffffffLL",
|
||||||
|
"__cpp_alias_templates=200704",
|
||||||
|
"__BUILTIN_AVR_COUNTLSUHR=1",
|
||||||
|
"__BYTE_ORDER__=__ORDER_LITTLE_ENDIAN__",
|
||||||
|
"__FLT_DENORM_MIN__=1.40129846e-45F",
|
||||||
|
"__LLFRACT_IBIT__=0",
|
||||||
|
"__INT8_MAX__=0x7f",
|
||||||
|
"__LONG_WIDTH__=32",
|
||||||
|
"__UINT_FAST32_TYPE__=long unsigned int",
|
||||||
|
"__CHAR32_TYPE__=long unsigned int",
|
||||||
|
"__BUILTIN_AVR_COUNTLSULK=1",
|
||||||
|
"__BUILTIN_AVR_COUNTLSULR=1",
|
||||||
|
"__FLT_MAX__=3.40282347e+38F",
|
||||||
|
"__cpp_constexpr=201304",
|
||||||
|
"__USACCUM_FBIT__=8",
|
||||||
|
"__BUILTIN_AVR_COUNTLSFX=1",
|
||||||
|
"__INT32_TYPE__=long int",
|
||||||
|
"__SIZEOF_DOUBLE__=4",
|
||||||
|
"__FLT_MIN_10_EXP__=(-37)",
|
||||||
|
"__UFRACT_EPSILON__=0x1P-16UR",
|
||||||
|
"__INT_LEAST32_WIDTH__=32",
|
||||||
|
"__BUILTIN_AVR_COUNTLSHK=1",
|
||||||
|
"__BUILTIN_AVR_COUNTLSHR=1",
|
||||||
|
"__INTMAX_TYPE__=long long int",
|
||||||
|
"__BUILTIN_AVR_ABSLLK=1",
|
||||||
|
"__BUILTIN_AVR_ABSLLR=1",
|
||||||
|
"__DEC128_MAX_EXP__=6145",
|
||||||
|
"__AVR_HAVE_16BIT_SP__=1",
|
||||||
|
"__ATOMIC_CONSUME=1",
|
||||||
|
"__GNUC_MINOR__=3",
|
||||||
|
"__INT_FAST16_WIDTH__=16",
|
||||||
|
"__UINTMAX_MAX__=0xffffffffffffffffULL",
|
||||||
|
"__DEC32_MANT_DIG__=7",
|
||||||
|
"__HA_FBIT__=7",
|
||||||
|
"__BUILTIN_AVR_COUNTLSLK=1",
|
||||||
|
"__BUILTIN_AVR_COUNTLSLR=1",
|
||||||
|
"__BUILTIN_AVR_CLI=1",
|
||||||
|
"__DBL_MAX_10_EXP__=38",
|
||||||
|
"__LDBL_DENORM_MIN__=1.40129846e-45L",
|
||||||
|
"__INT16_C(c)=c",
|
||||||
|
"__cpp_generic_lambdas=201304",
|
||||||
|
"__STDC__=1",
|
||||||
|
"__PTRDIFF_TYPE__=int",
|
||||||
|
"__LLFRACT_MIN__=(-0.5LLR-0.5LLR)",
|
||||||
|
"__BUILTIN_AVR_LRBITS=1",
|
||||||
|
"__ATOMIC_SEQ_CST=5",
|
||||||
|
"__DA_FBIT__=31",
|
||||||
|
"__UINT32_TYPE__=long unsigned int",
|
||||||
|
"__BUILTIN_AVR_ROUNDLLK=1",
|
||||||
|
"__UINTPTR_TYPE__=unsigned int",
|
||||||
|
"__BUILTIN_AVR_ROUNDLLR=1",
|
||||||
|
"__USA_IBIT__=16",
|
||||||
|
"__BUILTIN_AVR_ULRBITS=1",
|
||||||
|
"__DEC64_SUBNORMAL_MIN__=0.000000000000001E-383DD",
|
||||||
|
"__DEC128_MANT_DIG__=34",
|
||||||
|
"__LDBL_MIN_10_EXP__=(-37)",
|
||||||
|
"__BUILTIN_AVR_COUNTLSUK=1",
|
||||||
|
"__BUILTIN_AVR_COUNTLSUR=1",
|
||||||
|
"__SIZEOF_LONG_LONG__=8",
|
||||||
|
"__ULACCUM_EPSILON__=0x1P-32ULK",
|
||||||
|
"__cpp_user_defined_literals=200809",
|
||||||
|
"__SACCUM_IBIT__=8",
|
||||||
|
"__GCC_ATOMIC_LLONG_LOCK_FREE=1",
|
||||||
|
"__LDBL_DIG__=6",
|
||||||
|
"__FLT_DECIMAL_DIG__=9",
|
||||||
|
"__UINT_FAST16_MAX__=0xffffU",
|
||||||
|
"__GCC_ATOMIC_SHORT_LOCK_FREE=1",
|
||||||
|
"__BUILTIN_AVR_ABSHK=1",
|
||||||
|
"__BUILTIN_AVR_FLASH_SEGMENT=1",
|
||||||
|
"__INT_LEAST64_WIDTH__=64",
|
||||||
|
"__ULLFRACT_MAX__=0XFFFFFFFFFFFFFFFFP-64ULLR",
|
||||||
|
"__UINT_FAST8_TYPE__=unsigned char",
|
||||||
|
"__USFRACT_EPSILON__=0x1P-8UHR",
|
||||||
|
"__ULACCUM_FBIT__=32",
|
||||||
|
"__QQ_IBIT__=0",
|
||||||
|
"__cpp_init_captures=201304",
|
||||||
|
"__ATOMIC_ACQ_REL=4",
|
||||||
|
"__ATOMIC_RELEASE=3",
|
||||||
|
"__BUILTIN_AVR_FMUL=1",
|
||||||
|
"USBCON"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
52
Software/Testsender/Testsender.ino
Normal file
52
Software/Testsender/Testsender.ino
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
#include <SPI.h>;
|
||||||
|
#include <mcp2515.h>;
|
||||||
|
|
||||||
|
struct can_frame frame;
|
||||||
|
|
||||||
|
MCP2515 mcp2515(10);
|
||||||
|
/*
|
||||||
|
Software matching Hardware of meycan v8.1
|
||||||
|
*/
|
||||||
|
void setup() {
|
||||||
|
SPI.begin();
|
||||||
|
Serial.begin(9600);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
pinMode(PD3, OUTPUT);
|
||||||
|
digitalWrite(PD3, HIGH);
|
||||||
|
delay(1000);
|
||||||
|
digitalWrite(PD3, LOW);
|
||||||
|
delay(2000);
|
||||||
|
|
||||||
|
mcp2515.reset();
|
||||||
|
mcp2515.setBitrate(CAN_1000KBPS, MCP_8MHZ);
|
||||||
|
mcp2515.setNormalMode();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
if (mcp2515.readMessage(&frame) == MCP2515::ERROR_OK) {
|
||||||
|
// frame contains received message
|
||||||
|
|
||||||
|
Serial.print(" Id: ");
|
||||||
|
Serial.print(frame.can_id, HEX);
|
||||||
|
Serial.print(" [");
|
||||||
|
|
||||||
|
for (int i = 0; i < 8; i++) {
|
||||||
|
Serial.print(frame.data[i], HEX);
|
||||||
|
Serial.print(" ");
|
||||||
|
}
|
||||||
|
Serial.println("]");
|
||||||
|
|
||||||
|
digitalWrite(PD3, HIGH);
|
||||||
|
delay(50);
|
||||||
|
digitalWrite(PD3, LOW);
|
||||||
|
delay(50);
|
||||||
|
|
||||||
|
mcp2515.sendMessage(&frame);
|
||||||
|
mcp2515.sendMessage(&frame);
|
||||||
|
mcp2515.sendMessage(&frame);
|
||||||
|
mcp2515.sendMessage(&frame);
|
||||||
|
}
|
||||||
|
}
|
||||||
0
Software/UPSoftware/.codex
Normal file
0
Software/UPSoftware/.codex
Normal file
@@ -1,61 +1,46 @@
|
|||||||
|
#include "HardwareSerial.h"
|
||||||
|
#include <iterator>
|
||||||
|
#include "esp32-hal-gpio.h"
|
||||||
#include "MeyCan.h";
|
#include "MeyCan.h";
|
||||||
#include <SPI.h>;
|
#include "driver/twai.h"
|
||||||
#include <mcp2515.h>;
|
|
||||||
|
|
||||||
|
|
||||||
PinState *MeyPin = NULL;
|
PinState *MeyPin = NULL;
|
||||||
CanInterface *CanBusses = NULL;
|
uint16_t myDeviceId = 0;
|
||||||
uint16_t myDeviceId;
|
byte _deviceTypeId = 0;
|
||||||
|
byte _majorHardwareVersion = 0;
|
||||||
|
byte _minorHardwareVersion = 0;
|
||||||
|
|
||||||
void SetupMeyPin(PinState *state)
|
|
||||||
{
|
|
||||||
pinMode(state->pin_id, OUTPUT);
|
|
||||||
digitalWrite(state->pin_id, LOW);
|
|
||||||
state->pin_state = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
void InitCanInterface(MCP2515 *interface, can_frame *frame) // can_frame is NULL. Reuse ForEach Method for smaller footprint
|
void SetupMeyPin(PinState *state) {
|
||||||
{
|
if (state->is_input) {
|
||||||
interface->reset();
|
pinMode(state->pin_id, INPUT_PULLUP);
|
||||||
interface->setBitrate(CAN_500KBPS, MCP_8MHZ); //Sets CAN at speed 500KBPS and Clock 8MHz
|
state->pin_state = digitalRead(state->pin_id);
|
||||||
interface->setNormalMode();
|
} else {
|
||||||
|
pinMode(state->pin_id, OUTPUT);
|
||||||
SendVersionPackage(interface);
|
digitalWrite(state->pin_id, LOW);
|
||||||
}
|
state->pin_state = true;
|
||||||
|
|
||||||
void ForEachCanInterface(void (*handle)(MCP2515 *canInterace))
|
|
||||||
{
|
|
||||||
CanBusses->ForEach(handle);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SetupMeyCan()
|
|
||||||
{
|
|
||||||
CalculateMyDeviceId();
|
|
||||||
|
|
||||||
if (MeyPin != NULL);
|
|
||||||
MeyPin->ForEach(SetupMeyPin);
|
|
||||||
|
|
||||||
if (CanBusses != NULL)
|
|
||||||
{
|
|
||||||
CanBusses->ForEach(InitCanInterface, NULL);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetCanInterface(byte index, byte pinId)
|
|
||||||
{
|
|
||||||
MCP2515* newCanInterface = new MCP2515(pinId);
|
|
||||||
CanInterface* canInterface = new CanInterface();
|
|
||||||
|
|
||||||
if (CanBusses == NULL)
|
|
||||||
CanBusses = canInterface;
|
void SetupMeyCan(byte majorHardwareVersion, byte minorHardwareVersion, byte deviceTypeId) {
|
||||||
else
|
_majorHardwareVersion = majorHardwareVersion;
|
||||||
CanBusses->AddCanInterface(canInterface);
|
_minorHardwareVersion = minorHardwareVersion;
|
||||||
|
_deviceTypeId = deviceTypeId;
|
||||||
|
|
||||||
|
if (MeyPin != NULL)
|
||||||
|
MeyPin->ForEach(SetupMeyPin);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SetMeyPin(byte index, byte meyPinId, byte pinId)
|
|
||||||
{
|
void SetDevicedId(byte high, byte low) {
|
||||||
PinState* newState = new PinState();
|
myDeviceId = (high << 8) | low;
|
||||||
newState->Init(pinId, (byte) meyPinId);
|
}
|
||||||
|
|
||||||
|
void SetMeyPin(byte meyPinId, byte pinId) {
|
||||||
|
PinState *newState = new PinState();
|
||||||
|
newState->Init(pinId, (byte)meyPinId);
|
||||||
|
|
||||||
if (MeyPin == NULL)
|
if (MeyPin == NULL)
|
||||||
MeyPin = newState;
|
MeyPin = newState;
|
||||||
@@ -64,66 +49,69 @@ void SetMeyPin(byte index, byte meyPinId, byte pinId)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool CheckPinStatus(PinState * state)
|
bool ReadPin(PinState *state) {
|
||||||
{
|
return digitalRead(state->pin_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void SendSwitchedTriggeredCanPackage(byte pinId, int state) {
|
||||||
|
twai_message_t message;
|
||||||
|
message.extd = 1;
|
||||||
|
message.rtr = 0;
|
||||||
|
message.ss = 0;
|
||||||
|
message.self = 0;
|
||||||
|
message.dlc_non_comp = 0;
|
||||||
|
|
||||||
|
message.identifier = CreateCanId(SWITCH_TRIGGERED_CAN_ID);
|
||||||
|
message.data_length_code = 2;
|
||||||
|
message.data[0] = pinId;
|
||||||
|
message.data[1] = state;
|
||||||
|
|
||||||
|
DoSendCanPkg(&message);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CheckPinStatus(PinState *state) {
|
||||||
if (!state->is_input)
|
if (!state->is_input)
|
||||||
return false;
|
return;
|
||||||
|
|
||||||
bool newValue = ReadPin(state);
|
bool newValue = ReadPin(state);
|
||||||
|
|
||||||
|
|
||||||
if (newValue != state->pin_state)
|
if (newValue != state->pin_state) {
|
||||||
{
|
|
||||||
delay(10);
|
delay(10);
|
||||||
newValue = ReadPin(state);
|
newValue = ReadPin(state);
|
||||||
if (newValue != state->pin_state)
|
if (newValue != state->pin_state) {
|
||||||
{
|
|
||||||
state->pin_state = newValue;
|
state->pin_state = newValue;
|
||||||
SendSwitchedTriggeredCanPackage(state->meyPinId, state->pin_state);
|
SendSwitchedTriggeredCanPackage(state->meyPinId, state->pin_state);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CheckMeyPinsTriggered()
|
void CheckMeyPinsTriggered() {
|
||||||
{
|
|
||||||
MeyPin->ForEach(CheckPinStatus);
|
MeyPin->ForEach(CheckPinStatus);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ReadPin(PinState * state)
|
|
||||||
{
|
uint16_t GetDeviceId(uint32_t canFrameId) {
|
||||||
if (state->pin_id == PIN_PD2)
|
return canFrameId & 0xFFFF;
|
||||||
return digitalReadFast(PIN_PD2);
|
|
||||||
else if (state->pin_id == PIN_PC7)
|
|
||||||
return digitalReadFast(PIN_PC7);
|
|
||||||
else if (state->pin_id == PIN_PD1)
|
|
||||||
return digitalReadFast(PIN_PD1);
|
|
||||||
else if (state->pin_id == PIN_PD0)
|
|
||||||
return digitalReadFast(PIN_PD0);
|
|
||||||
else if (state->pin_id == PIN_PD6)
|
|
||||||
return digitalReadFast(PIN_PD6);
|
|
||||||
else if (state->pin_id == PIN_PD5)
|
|
||||||
return digitalReadFast(PIN_PD5);
|
|
||||||
else if (state->pin_id == PIN_PD4)
|
|
||||||
return digitalReadFast(PIN_PD4);
|
|
||||||
else if (state->pin_id == PIN_PD3)
|
|
||||||
return digitalReadFast(PIN_PD3);
|
|
||||||
else
|
|
||||||
return digitalRead(state->pin_id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint16_t GetPackageType(uint32_t canFrameId) {
|
||||||
void HandleFrame(can_frame *frame, MCP2515 *source)
|
return (canFrameId / 0x10000) & 0xFFF;
|
||||||
{
|
|
||||||
CanBusses->ForEach(DoSendCanPkg, frame, source);
|
|
||||||
HandleTriggerMeypinCanPackage(frame);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void HandleTriggerMeypinCanPackage(can_frame *frame)
|
uint32_t CreateCanId(uint16_t commandId) {
|
||||||
{
|
return ((((uint32_t)commandId) & 0xFFF) * 0x10000) | myDeviceId;
|
||||||
if (GetPackageType(frame->can_id) == TRIGGER_SWITCH_CAN_ID)
|
}
|
||||||
{
|
|
||||||
uint16_t adressedDeviceId = ((uint16_t )frame->data[0] << 8) | frame->data[1] ;
|
void HandleTriggerMeypinCanPackage(twai_message_t *frame) {
|
||||||
|
|
||||||
|
|
||||||
|
if (GetPackageType(frame->identifier) == TRIGGER_SWITCH_CAN_ID) {
|
||||||
|
|
||||||
|
|
||||||
|
uint16_t adressedDeviceId = ((uint16_t)frame->data[0] << 8) | frame->data[1];
|
||||||
if (adressedDeviceId != myDeviceId) return;
|
if (adressedDeviceId != myDeviceId) return;
|
||||||
|
|
||||||
|
|
||||||
@@ -132,10 +120,8 @@ void HandleTriggerMeypinCanPackage(can_frame *frame)
|
|||||||
|
|
||||||
PinState *adressedPin = MeyPin->Find(meyPinId);
|
PinState *adressedPin = MeyPin->Find(meyPinId);
|
||||||
|
|
||||||
if (adressedPin != NULL)
|
if (adressedPin != NULL) {
|
||||||
{
|
if (adressedPin->is_input == true) {
|
||||||
if (adressedPin->is_input == true)
|
|
||||||
{
|
|
||||||
pinMode(adressedPin->pin_id, OUTPUT);
|
pinMode(adressedPin->pin_id, OUTPUT);
|
||||||
adressedPin->is_input = false;
|
adressedPin->is_input = false;
|
||||||
}
|
}
|
||||||
@@ -147,104 +133,17 @@ void HandleTriggerMeypinCanPackage(can_frame *frame)
|
|||||||
digitalWrite(adressedPin->pin_id, state);
|
digitalWrite(adressedPin->pin_id, state);
|
||||||
SendSwitchedTriggeredCanPackage(adressedPin->meyPinId, state);
|
SendSwitchedTriggeredCanPackage(adressedPin->meyPinId, state);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
byte CircularShift(byte b)
|
|
||||||
{
|
void HandleFrame(twai_message_t *frame) {
|
||||||
return (b << 1) | (b >> 7 & 1);
|
HandleTriggerMeypinCanPackage(frame);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t GetDeviceId(uint32_t canFrameId)
|
|
||||||
{
|
|
||||||
return canFrameId & 0xFFFF;
|
void DoSendCanPkg(twai_message_t *frame) {
|
||||||
}
|
esp_err_t ret = twai_transmit(frame, pdMS_TO_TICKS(1000));
|
||||||
|
|
||||||
uint16_t GetPackageType(uint32_t canFrameId)
|
|
||||||
{
|
|
||||||
return (canFrameId / 0x10000) & 0xFFF;
|
|
||||||
}
|
|
||||||
|
|
||||||
byte GetDeviceIdLow() {
|
|
||||||
return (SIGROW.SERNUM0 ^
|
|
||||||
CircularShift(SIGROW.SERNUM2) << 1 ^
|
|
||||||
CircularShift( CircularShift(SIGROW.SERNUM4)) ^
|
|
||||||
CircularShift( CircularShift( CircularShift(SIGROW.SERNUM6))) ^
|
|
||||||
CircularShift( CircularShift( CircularShift( CircularShift(SIGROW.SERNUM8)))));
|
|
||||||
}
|
|
||||||
|
|
||||||
byte GetDeviceIdHigh() {
|
|
||||||
return (SIGROW.SERNUM1 ^
|
|
||||||
CircularShift(SIGROW.SERNUM3) << 1 ^
|
|
||||||
CircularShift( CircularShift(SIGROW.SERNUM5)) ^
|
|
||||||
CircularShift( CircularShift( CircularShift(SIGROW.SERNUM7))) ^
|
|
||||||
CircularShift( CircularShift( CircularShift( CircularShift(SIGROW.SERNUM9)))));
|
|
||||||
}
|
|
||||||
|
|
||||||
uint32_t CreateCanId(uint16_t commandId)
|
|
||||||
{
|
|
||||||
return ((((uint32_t)commandId) & 0xFFF) * 0x10000) | myDeviceId | CAN_EFF_FLAG;
|
|
||||||
}
|
|
||||||
|
|
||||||
void SendVersionPackage(MCP2515 *interface)
|
|
||||||
{
|
|
||||||
can_frame toSend;
|
|
||||||
toSend.can_id = CreateCanId(HELP_PACKAGE_CAN_ID);
|
|
||||||
toSend.can_dlc = 6;
|
|
||||||
|
|
||||||
toSend.data[0] = SOFTWARE_VERSION_HIGH;
|
|
||||||
toSend.data[1] = SOFTWARE_VERSION_LOW;
|
|
||||||
toSend.data[2] = HARDWARE_VERSION_HIGH;
|
|
||||||
toSend.data[3] = HARDWARE_VERSION_LOW;
|
|
||||||
toSend.data[4] = (myDeviceId >> 8) & 0xFF;
|
|
||||||
toSend.data[5] = myDeviceId & 0xFF;
|
|
||||||
|
|
||||||
DoSendCanPkg(interface, &toSend);
|
|
||||||
}
|
|
||||||
|
|
||||||
void BroadcastTriggerMeyPinCanPackage(uint16_t targetCanId, byte pinId, byte state)
|
|
||||||
{
|
|
||||||
can_frame toSend;
|
|
||||||
|
|
||||||
toSend.can_id = CreateCanId(TRIGGER_SWITCH_CAN_ID);
|
|
||||||
toSend.can_dlc = 4;
|
|
||||||
toSend.data[0] = (targetCanId & 0xFF00) >> 8;
|
|
||||||
toSend.data[1] = targetCanId & 0xFF;
|
|
||||||
toSend.data[2] = pinId;
|
|
||||||
toSend.data[3] = state;
|
|
||||||
|
|
||||||
HandleFrame(&toSend, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SendSwitchedTriggeredCanPackage(byte pinId, int state)
|
|
||||||
{
|
|
||||||
can_frame toSend;
|
|
||||||
toSend.can_id = CreateCanId(SWITCH_TRIGGERED_CAN_ID);
|
|
||||||
toSend.can_dlc = 2;
|
|
||||||
toSend.data[0] = pinId;
|
|
||||||
toSend.data[1] = state;
|
|
||||||
|
|
||||||
DoSendCanPkg(&toSend);
|
|
||||||
}
|
|
||||||
|
|
||||||
void DoSendCanPkg(can_frame *frame)
|
|
||||||
{
|
|
||||||
if (CanBusses != NULL)
|
|
||||||
CanBusses->ForEach(DoSendCanPkg, frame);
|
|
||||||
}
|
|
||||||
|
|
||||||
void DoSendCanPkg(MCP2515 *interface, can_frame *frame)
|
|
||||||
{
|
|
||||||
byte cnt = 0;
|
|
||||||
while (interface->sendMessage(frame))
|
|
||||||
{
|
|
||||||
if (++cnt > 10) return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void CalculateMyDeviceId()
|
|
||||||
{
|
|
||||||
myDeviceId = (GetDeviceIdHigh() << 8) | GetDeviceIdLow();
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,128 +1,80 @@
|
|||||||
#ifndef MEYCAN_H
|
#ifndef MEYCAN_H
|
||||||
#define MEYCAN_H
|
#define MEYCAN_H
|
||||||
|
|
||||||
#include <SPI.h>
|
#include <Arduino.h>
|
||||||
#include <mcp2515.h>
|
#include <SPI.h>
|
||||||
|
#include "driver/twai.h"
|
||||||
typedef struct CanInterface
|
|
||||||
{
|
typedef struct PinState
|
||||||
MCP2515 *interface;
|
{
|
||||||
CanInterface *next = NULL;
|
int pin_id;
|
||||||
|
bool pin_state;
|
||||||
void ForEach(void (*handle)( MCP2515 *interface))
|
bool is_input;
|
||||||
{
|
byte meyPinId;
|
||||||
if (this->interface != NULL)
|
PinState *next = NULL;
|
||||||
handle(this->interface);
|
|
||||||
|
PinState() {}
|
||||||
if (this->next != NULL)
|
void Init(int pin_id, byte meyPinId)
|
||||||
this->next->ForEach(handle);
|
{
|
||||||
}
|
this->pin_id = pin_id;
|
||||||
|
this->pin_state = true;
|
||||||
void ForEach(void (*handle)( MCP2515 *interface, can_frame *frame), can_frame *frame, MCP2515* exclude = NULL)
|
this->is_input = true;
|
||||||
{
|
this->meyPinId = meyPinId;
|
||||||
if (this->interface != NULL && this->interface != exclude)
|
}
|
||||||
handle(this->interface, frame);
|
|
||||||
|
void AddPinState(PinState *nextPinState)
|
||||||
if (this->next != NULL)
|
{
|
||||||
this->next->ForEach(handle, frame);
|
if (next == NULL)
|
||||||
}
|
{
|
||||||
|
this->next = nextPinState;
|
||||||
void AddCanInterface(CanInterface *newCanInterface)
|
nextPinState->next = NULL;
|
||||||
{
|
} else {
|
||||||
if (next == NULL)
|
next->AddPinState(nextPinState);
|
||||||
{
|
}
|
||||||
this->next = newCanInterface;
|
}
|
||||||
newCanInterface->next = NULL;
|
|
||||||
} else {
|
PinState* Find(byte meyPinId)
|
||||||
next->AddCanInterface(newCanInterface);
|
{
|
||||||
}
|
if (this->meyPinId == meyPinId)
|
||||||
}
|
return this;
|
||||||
};
|
|
||||||
|
if (this->next != NULL)
|
||||||
typedef struct PinState
|
return this->next->Find(meyPinId);
|
||||||
{
|
|
||||||
int pin_id;
|
return NULL;
|
||||||
bool pin_state;
|
}
|
||||||
bool is_input;
|
|
||||||
byte meyPinId;
|
void ForEach(void (*handle)(PinState *theState))
|
||||||
PinState *next = NULL;
|
{
|
||||||
|
handle(this);
|
||||||
PinState() {}
|
if (this->next != NULL)
|
||||||
void Init(int pin_id, byte meyPinId)
|
this->next->ForEach(handle);
|
||||||
{
|
}
|
||||||
this->pin_id = pin_id;
|
};
|
||||||
this->pin_state = true;
|
|
||||||
this->is_input = true;
|
|
||||||
this->meyPinId = meyPinId;
|
const byte SOFTWARE_VERSION_HIGH = 6;
|
||||||
}
|
const byte SOFTWARE_VERSION_LOW = 0;
|
||||||
|
const byte HARDWARE_VERSION_HIGH = 8;
|
||||||
void AddPinState(PinState *nextPinState)
|
const byte HARDWARE_VERSION_LOW = 1;
|
||||||
{
|
|
||||||
if (next == NULL)
|
const uint16_t HELP_PACKAGE_CAN_ID = 0x0FFFUL;
|
||||||
{
|
const uint16_t SWITCH_TRIGGERED_CAN_ID = 0x0050;
|
||||||
this->next = nextPinState;
|
const uint16_t TRIGGER_SWITCH_CAN_ID = 0x0055;
|
||||||
nextPinState->next = NULL;
|
|
||||||
} else {
|
|
||||||
next->AddPinState(nextPinState);
|
|
||||||
}
|
void SetupMeyCan(byte majorHardwareVersion, byte minorHardwareVersion, byte deviceTypeId);
|
||||||
}
|
uint32_t CreateCanId(uint16_t commandId);
|
||||||
|
void SetDevicedId(byte high, byte low);
|
||||||
PinState* Find(byte meyPinId)
|
void SetMeyPin(byte meyPinId, byte pinId);
|
||||||
{
|
uint16_t GetDeviceId(uint32_t canFrameId);
|
||||||
if (this->meyPinId == meyPinId)
|
uint16_t GetPackageType(uint32_t canFrameId);
|
||||||
return this;
|
void SendSwitchedTriggeredCanPackage(byte pinId, int state);
|
||||||
|
|
||||||
if (this->next != NULL)
|
void HandleFrame(twai_message_t *frame);
|
||||||
return this->next->Find(meyPinId);
|
void CheckPinStatus(PinState *state);
|
||||||
|
void CheckMeyPinsTriggered(); /* checks weather a meypin triggered and sends a can pkg is neccessary */
|
||||||
return NULL;
|
|
||||||
}
|
void DoSendCanPkg(twai_message_t *frame) ;
|
||||||
|
#endif
|
||||||
void ForEach(void (*handle)(PinState *theState))
|
|
||||||
{
|
|
||||||
handle(this);
|
|
||||||
if (this->next != NULL)
|
|
||||||
this->next->ForEach(handle);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
const byte SOFTWARE_VERSION_HIGH = 5;
|
|
||||||
const byte SOFTWARE_VERSION_LOW = 0;
|
|
||||||
const byte HARDWARE_VERSION_HIGH = 7;
|
|
||||||
const byte HARDWARE_VERSION_LOW = 0;
|
|
||||||
|
|
||||||
const uint16_t HELP_PACKAGE_CAN_ID = 0x0FFFUL;
|
|
||||||
const uint16_t SWITCH_TRIGGERED_CAN_ID = 0x0050;
|
|
||||||
const uint16_t TRIGGER_SWITCH_CAN_ID = 0x0055;
|
|
||||||
|
|
||||||
void SetCanInterface(byte index, byte pinId);
|
|
||||||
void SetMeyPin(byte index, byte meyPinId, byte pinId);
|
|
||||||
|
|
||||||
void SetupMeyCan();
|
|
||||||
|
|
||||||
void ForEachCanInterface(void (*handle)(MCP2515 *canInterace));
|
|
||||||
bool ReadPin(PinState *state);
|
|
||||||
bool CheckPinStatus(PinState * state);
|
|
||||||
void CheckMeyPinsTriggered(); /* checks weather a meypin triggered and sends a can pkg is neccessary */
|
|
||||||
void HandleFrame(can_frame *frame, MCP2515 *source);
|
|
||||||
void HandleTriggerMeypinCanPackage(can_frame *frame);
|
|
||||||
byte CircularShift(byte b);
|
|
||||||
uint16_t GetDeviceId(uint32_t canFrameId);
|
|
||||||
uint16_t GetPackageType(uint32_t canFrameId);
|
|
||||||
byte GetDeviceIdLow();
|
|
||||||
|
|
||||||
byte GetDeviceIdHigh();
|
|
||||||
|
|
||||||
uint32_t CreateCanId(uint16_t commandId);
|
|
||||||
void SendVersionPackage(MCP2515 *interface);
|
|
||||||
|
|
||||||
void SendSwitchedTriggeredCanPackage(byte pinId, int state);
|
|
||||||
void BroadcastTriggerMeyPinCanPackage(uint16_t targetCanId, byte pinId, byte state);
|
|
||||||
|
|
||||||
void DoSendCanPkg(can_frame *frame);
|
|
||||||
void DoSendCanPkg(MCP2515 *interface, can_frame *frame);
|
|
||||||
|
|
||||||
void CalculateMyDeviceId();
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|||||||
@@ -1,104 +0,0 @@
|
|||||||
#include "MeyRule.h"
|
|
||||||
#include "MeyCan.h"
|
|
||||||
#include <Arduino.h>
|
|
||||||
#include <mcp2515.h>;
|
|
||||||
|
|
||||||
RemotePinInfo remotePinInfo = RemotePinInfo();
|
|
||||||
Rule *rules = NULL;
|
|
||||||
|
|
||||||
void PutRule(Rule *rule)
|
|
||||||
{
|
|
||||||
if (rules == NULL)
|
|
||||||
rules = rule;
|
|
||||||
else
|
|
||||||
rules->AddRule(rule);
|
|
||||||
}
|
|
||||||
|
|
||||||
void AddSimple(uint16_t sourceDevId, byte sourceMeyPinId, uint16_t targetDevId, byte targetMeyPinId)
|
|
||||||
{
|
|
||||||
Rule *rule = new Rule();
|
|
||||||
|
|
||||||
rule->sourceDevId = sourceDevId;
|
|
||||||
rule->sourceMeyPinId = sourceMeyPinId;
|
|
||||||
rule->targetDevId = targetDevId;
|
|
||||||
rule->targetMeyPinId = targetMeyPinId;
|
|
||||||
rule->toggle = false;
|
|
||||||
rule->inverse = false;
|
|
||||||
|
|
||||||
PutRule(rule);
|
|
||||||
}
|
|
||||||
|
|
||||||
void AddToggle(uint16_t sourceDevId, byte sourceMeyPinId, uint16_t targetDevId, byte targetMeyPinId)
|
|
||||||
{
|
|
||||||
Rule *rule = new Rule();
|
|
||||||
|
|
||||||
rule->sourceDevId = sourceDevId;
|
|
||||||
rule->sourceMeyPinId = sourceMeyPinId;
|
|
||||||
rule->targetDevId = targetDevId;
|
|
||||||
rule->targetMeyPinId = targetMeyPinId;
|
|
||||||
rule->toggle = true;
|
|
||||||
rule->inverse = false;
|
|
||||||
|
|
||||||
PutRule(rule);
|
|
||||||
}
|
|
||||||
|
|
||||||
void AddToggleInverse(uint16_t sourceDevId, byte sourceMeyPinId, uint16_t targetDevId, byte targetMeyPinId)
|
|
||||||
{
|
|
||||||
Rule *rule = new Rule();
|
|
||||||
|
|
||||||
rule->sourceDevId = sourceDevId;
|
|
||||||
rule->sourceMeyPinId = sourceMeyPinId;
|
|
||||||
rule->targetDevId = targetDevId;
|
|
||||||
rule->targetMeyPinId = targetMeyPinId;
|
|
||||||
rule->toggle = true;
|
|
||||||
rule->inverse = true;
|
|
||||||
|
|
||||||
PutRule(rule);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void CheckRule(uint16_t deviceId, uint8_t dt, uint8_t state, Rule *rule)
|
|
||||||
{
|
|
||||||
RemotePinInfo *currentPinState = remotePinInfo.FindOrAdd(rule->targetDevId);
|
|
||||||
|
|
||||||
if (currentPinState == NULL) return;
|
|
||||||
|
|
||||||
bool pinState = state > 0;
|
|
||||||
if (rule->inverse)
|
|
||||||
pinState = !pinState;
|
|
||||||
|
|
||||||
if (rule->toggle)
|
|
||||||
pinState = (currentPinState->getPinState(rule->targetMeyPinId) ^ true);
|
|
||||||
|
|
||||||
BroadcastTriggerMeyPinCanPackage(rule->targetDevId, rule->targetMeyPinId, pinState);
|
|
||||||
currentPinState->setPinState(rule->targetMeyPinId, pinState);
|
|
||||||
}
|
|
||||||
|
|
||||||
void HandleTriggered(can_frame *frame)
|
|
||||||
{
|
|
||||||
if (GetPackageType(frame->can_id) == SWITCH_TRIGGERED_CAN_ID)
|
|
||||||
{
|
|
||||||
RemotePinInfo *currentPinState = remotePinInfo.FindOrAdd(GetDeviceId(frame->can_id) );
|
|
||||||
|
|
||||||
if (currentPinState == NULL)
|
|
||||||
return;
|
|
||||||
|
|
||||||
currentPinState->setPinState(frame->data[0], frame->data[1]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void HandleRules(can_frame *frame)
|
|
||||||
{
|
|
||||||
HandleTriggered(frame);
|
|
||||||
|
|
||||||
if (rules == NULL) return;
|
|
||||||
if (GetPackageType(frame->can_id) == SWITCH_TRIGGERED_CAN_ID)
|
|
||||||
{
|
|
||||||
uint16_t deviceId = GetDeviceId(frame->can_id);
|
|
||||||
uint8_t dt = frame->data[1];
|
|
||||||
uint8_t state = frame->data[0];
|
|
||||||
|
|
||||||
rules->Traverse(deviceId, dt, state, CheckRule);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,111 +0,0 @@
|
|||||||
#ifndef MEYRULE_H
|
|
||||||
#define MEYRULE_H
|
|
||||||
|
|
||||||
#include <Arduino.h>
|
|
||||||
#include <mcp2515.h>;
|
|
||||||
|
|
||||||
struct Rule
|
|
||||||
{
|
|
||||||
uint16_t sourceDevId;
|
|
||||||
byte sourceMeyPinId;
|
|
||||||
uint16_t targetDevId;
|
|
||||||
byte targetMeyPinId;
|
|
||||||
bool toggle;
|
|
||||||
bool inverse;
|
|
||||||
Rule *nextRule = NULL;
|
|
||||||
|
|
||||||
void AddRule(Rule *rule)
|
|
||||||
{
|
|
||||||
if (this->nextRule == NULL)
|
|
||||||
{
|
|
||||||
this->nextRule = rule;
|
|
||||||
rule->nextRule = NULL;
|
|
||||||
} else {
|
|
||||||
this->nextRule->AddRule(rule);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void Traverse( uint16_t deviceId, uint8_t dt, uint8_t state, void (*handle)(uint16_t, uint8_t, uint8_t, Rule*))
|
|
||||||
{
|
|
||||||
|
|
||||||
if ( this->sourceDevId == deviceId && this->sourceMeyPinId == state)
|
|
||||||
handle(deviceId, dt, state, this);
|
|
||||||
|
|
||||||
if (this->nextRule != NULL)
|
|
||||||
this->nextRule->Traverse(deviceId, dt, state, handle);
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct RemotePinInfo
|
|
||||||
{
|
|
||||||
const byte MAX_REMOTE_PIN_COUNT = 64;
|
|
||||||
uint16_t DeviceId = 0; // the id of the device
|
|
||||||
uint8_t pinState = 0; // bitmap of 8 MeyPin states of the device. 0000 0100, MeyPin #3 is HIGH in this example
|
|
||||||
RemotePinInfo *next = NULL;
|
|
||||||
|
|
||||||
bool getPinState(byte meyPin)
|
|
||||||
{
|
|
||||||
return (this->pinState >> (meyPin - 1)) & 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void setPinState(byte meyPin, bool state)
|
|
||||||
{
|
|
||||||
if (state)
|
|
||||||
this->pinState = this->pinState | (1 << (meyPin - 1)); // 0001 0000
|
|
||||||
else
|
|
||||||
this->pinState = this->pinState & (~(1 << (meyPin - 1))); // 1110 1111 -> not
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int16_t Count()
|
|
||||||
{
|
|
||||||
if (this->next == NULL) return 1;
|
|
||||||
return this->next->Count() + 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
RemotePinInfo* FindOrAdd(uint16_t deviceId, byte count = 0)
|
|
||||||
{
|
|
||||||
if (count > MAX_REMOTE_PIN_COUNT)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
|
|
||||||
if (this->DeviceId == 0 && this->pinState == 0)
|
|
||||||
{
|
|
||||||
this->DeviceId = deviceId;
|
|
||||||
this->pinState = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this->DeviceId == deviceId)
|
|
||||||
{
|
|
||||||
//ToggleDebug();
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (next != NULL)
|
|
||||||
{
|
|
||||||
return next->FindOrAdd(deviceId, count + 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
RemotePinInfo *theNext = new RemotePinInfo;
|
|
||||||
theNext->DeviceId = deviceId;
|
|
||||||
theNext->pinState = 0;
|
|
||||||
theNext->next = NULL;
|
|
||||||
|
|
||||||
this->next = theNext;
|
|
||||||
return this->next;
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
extern RemotePinInfo remotePinInfo;
|
|
||||||
extern Rule *rules;
|
|
||||||
|
|
||||||
void AddSimple(uint16_t sourceDevId, byte sourceMeyPinId, uint16_t targetDevId, byte targetMeyPinId);
|
|
||||||
void AddToggle(uint16_t sourceDevId, byte sourceMeyPinId, uint16_t targetDevId, byte targetMeyPinId);
|
|
||||||
void AddToggleInverse(uint16_t sourceDevId, byte sourceMeyPinId, uint16_t targetDevId, byte targetMeyPinId);
|
|
||||||
void HandleRules(can_frame *frame);
|
|
||||||
void PutRule(Rule *rule);
|
|
||||||
void CheckRule(uint16_t deviceId, uint8_t dt, uint8_t state, Rule *rule);
|
|
||||||
#endif
|
|
||||||
@@ -1,32 +1,220 @@
|
|||||||
#include <SPI.h>;
|
#include <Arduino.h>
|
||||||
#include <mcp2515.h>;
|
#include <driver/i2s.h>
|
||||||
#include "MeyCan.h";
|
#include "opus.h"
|
||||||
|
#include "opus_data.h"
|
||||||
|
#include "MeyCan.h"
|
||||||
|
|
||||||
|
|
||||||
|
constexpr int RX_PIN = 2; // CAN_TRANCEIVER_RX_PIN
|
||||||
|
constexpr int TX_PIN = 3; // CAN_TRANCEIVER_TX_PIN
|
||||||
|
bool driver_installed = false;
|
||||||
|
|
||||||
|
constexpr i2s_port_t I2S_PORT = I2S_NUM_0; // I2S-Peripherie-Instanz (0 = erster Controller)
|
||||||
|
constexpr int I2S_DIN = 9; // GPIO-Pin für serielle Datenleitug (Data-Out → DAC)
|
||||||
|
constexpr int I2S_BCLK = 10; // GPIO-Pin für Bit-Clock (BCLK)
|
||||||
|
constexpr int I2S_LRC = 20; // GPIO-Pin für Word-Select / Left-Right-Clock
|
||||||
|
constexpr int SAMPLE_RATE = 48000; // Abtastrate in Hz (Opus-Standard: 48 kHz)
|
||||||
|
constexpr int CHANNELS = 1; // Anzahl Audiokanäle (1 = Mono)
|
||||||
|
constexpr int MAX_FRAME = 5760; // Maximale Samples pro Opus-Frame (120 ms @ 48 kHz)
|
||||||
|
float OUTPUT_GAIN = 0.02f; // Lautstärkeskalierung vor I2S-Ausgabe (0.0–1.0)
|
||||||
|
|
||||||
|
static OpusDecoder *dec = nullptr;
|
||||||
|
static int16_t pcm[MAX_FRAME];
|
||||||
|
static int16_t stereo[MAX_FRAME * 2];
|
||||||
|
|
||||||
|
static void i2s_setup() {
|
||||||
|
i2s_config_t cfg = {};
|
||||||
|
cfg.mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_TX);
|
||||||
|
cfg.sample_rate = SAMPLE_RATE;
|
||||||
|
cfg.bits_per_sample = I2S_BITS_PER_SAMPLE_16BIT;
|
||||||
|
cfg.channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT;
|
||||||
|
cfg.communication_format = I2S_COMM_FORMAT_STAND_I2S;
|
||||||
|
cfg.intr_alloc_flags = ESP_INTR_FLAG_LEVEL1;
|
||||||
|
cfg.dma_buf_count = 8;
|
||||||
|
cfg.dma_buf_len = 512;
|
||||||
|
cfg.tx_desc_auto_clear = true;
|
||||||
|
|
||||||
|
i2s_pin_config_t pins = {};
|
||||||
|
pins.bck_io_num = I2S_BCLK;
|
||||||
|
pins.ws_io_num = I2S_LRC;
|
||||||
|
pins.data_out_num = I2S_DIN;
|
||||||
|
pins.data_in_num = I2S_PIN_NO_CHANGE;
|
||||||
|
|
||||||
|
i2s_driver_install(I2S_PORT, &cfg, 0, nullptr);
|
||||||
|
i2s_set_pin(I2S_PORT, &pins);
|
||||||
|
i2s_zero_dma_buffer(I2S_PORT);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void decode_packet(const uint8_t *pkt, size_t len) {
|
||||||
|
int samples = opus_decode(dec, pkt, (opus_int32)len, pcm, MAX_FRAME, 0);
|
||||||
|
if (samples <= 0) return;
|
||||||
|
|
||||||
|
// Mono → Stereo mit Gain
|
||||||
|
for (int i = 0; i < samples; i++) {
|
||||||
|
int16_t s = (int16_t)(pcm[i] * OUTPUT_GAIN);
|
||||||
|
stereo[i * 2] = s;
|
||||||
|
stereo[i * 2 + 1] = s;
|
||||||
|
}
|
||||||
|
|
||||||
|
size_t written;
|
||||||
|
i2s_write(I2S_PORT, stereo, samples * 2 * sizeof(int16_t), &written, portMAX_DELAY);
|
||||||
|
CheckMeyPinsTriggered();
|
||||||
|
}
|
||||||
|
|
||||||
|
void DebugBlink(int d) {
|
||||||
|
pinMode(20, OUTPUT);
|
||||||
|
while (true) {
|
||||||
|
|
||||||
|
digitalWrite(20, HIGH);
|
||||||
|
delay(d);
|
||||||
|
digitalWrite(20, LOW);
|
||||||
|
delay(d);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ConfigureAndSetupMeyCan() {
|
||||||
|
// Initialize configuration structures using macro initializers
|
||||||
|
twai_general_config_t g_config = TWAI_GENERAL_CONFIG_DEFAULT((gpio_num_t)TX_PIN, (gpio_num_t)RX_PIN, TWAI_MODE_NORMAL);
|
||||||
|
twai_timing_config_t t_config = TWAI_TIMING_CONFIG_1MBITS(); //Look in the api-reference for other speed sets.
|
||||||
|
twai_filter_config_t f_config = TWAI_FILTER_CONFIG_ACCEPT_ALL();
|
||||||
|
|
||||||
|
if (twai_driver_install(&g_config, &t_config, &f_config) == ESP_OK) {
|
||||||
|
Serial.println("Driver installed");
|
||||||
|
} else {
|
||||||
|
DebugBlink(100);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
esp_err_t e = twai_start();
|
||||||
|
// Start TWAI driver
|
||||||
|
if (e == ESP_OK) {
|
||||||
|
driver_installed = true;
|
||||||
|
} else {
|
||||||
|
DebugBlink(500);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
SetDevicedId(0x09, 0x09);
|
||||||
|
|
||||||
|
SetMeyPin(1, 5);
|
||||||
|
SetMeyPin(2, 6);
|
||||||
|
SetMeyPin(3, 7);
|
||||||
|
SetMeyPin(4, 8);
|
||||||
|
|
||||||
|
SetupMeyCan(8, 1, 3);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// Ogg-Container-Format:
|
||||||
|
// Der Stream besteht aus aufeinanderfolgenden "Pages" (Seiten).
|
||||||
|
// Jede Page beginnt mit dem 4-Byte-Capture-Pattern "OggS".
|
||||||
|
// Der Page-Header ist immer mindestens 27 Bytes lang:
|
||||||
|
// Byte 0– 3: "OggS" (Capture Pattern)
|
||||||
|
// Byte 4 : Stream-Struktur-Version (immer 0)
|
||||||
|
// Byte 5 : Header-Type-Flag (0=normal, 1=continued, 2=first, 4=last)
|
||||||
|
// Byte 6–13 : Granule Position (Zeitstempel, 8 Bytes)
|
||||||
|
// Byte 14–17 : Stream Serial Number
|
||||||
|
// Byte 18–21 : Page Sequence Number
|
||||||
|
// Byte 22–25 : CRC Checksum
|
||||||
|
// Byte 26 : Anzahl der Segmente (num_segs)
|
||||||
|
// Danach folgt die Segment-Tabelle (num_segs Bytes),
|
||||||
|
// und anschließend die eigentlichen Nutzdaten.
|
||||||
|
//
|
||||||
|
// Ogg-Lacing-Regel für Paketgrenzen:
|
||||||
|
// Jeder Eintrag in der Segment-Tabelle gibt die Größe eines Segments an (0–255).
|
||||||
|
// Ist ein Segment genau 255 Bytes → das Paket geht weiter (nächstes Segment gehört dazu).
|
||||||
|
// Ist ein Segment < 255 Bytes → das Paket endet hier.
|
||||||
|
// So können Pakete größer als 255 Bytes über mehrere Segmente verteilt sein.
|
||||||
|
//
|
||||||
|
// Bei Opus in Ogg sind die ersten zwei Pages immer Metadaten:
|
||||||
|
// Page 0: OpusHead (Samplerate, Kanalanzahl, Preskip …)
|
||||||
|
// Page 1: OpusTags (Künstler, Titel, Encoder …)
|
||||||
|
// Ab Page 2 folgen die eigentlichen Audio-Pakete (je ~20 ms Opus-Frame).
|
||||||
|
static void play_ogg_opus(const uint8_t *buf, size_t buf_len) {
|
||||||
|
size_t pos = 0; // aktuelle Leseposition im Buffer
|
||||||
|
int page_n = 0; // Page-Zähler (0 und 1 sind Header-Pages)
|
||||||
|
|
||||||
|
while (pos + 27 <= buf_len) {
|
||||||
|
|
||||||
|
// --- 1. Capture Pattern "OggS" suchen ---
|
||||||
|
// Falls pos nicht direkt auf eine Page zeigt, byte-weise vorwärts suchen.
|
||||||
|
if (!(buf[pos] == 'O' && buf[pos + 1] == 'g' && buf[pos + 2] == 'g' && buf[pos + 3] == 'S')) {
|
||||||
|
pos++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- 2. Page-Header lesen ---
|
||||||
|
uint8_t num_segs = buf[pos + 26]; // Anzahl Segmente aus Byte 26
|
||||||
|
size_t hdr_end = pos + 27 + num_segs; // Ende des Headers (= Beginn der Nutzdaten)
|
||||||
|
if (hdr_end > buf_len) break;
|
||||||
|
|
||||||
|
// Gesamtgröße der Nutzdaten = Summe aller Segmentlängen
|
||||||
|
size_t data_size = 0;
|
||||||
|
for (int s = 0; s < num_segs; s++) data_size += buf[pos + 27 + s];
|
||||||
|
|
||||||
|
// --- 3. Audio-Pages verarbeiten (Page 0+1 sind Metadaten → überspringen) ---
|
||||||
|
if (page_n >= 2) {
|
||||||
|
size_t pkt_start = hdr_end; // Startposition des aktuellen Pakets
|
||||||
|
size_t pkt_size = 0; // akkumulierte Paketgröße über Segmente
|
||||||
|
|
||||||
|
for (int s = 0; s < num_segs; s++) {
|
||||||
|
uint8_t seg = buf[pos + 27 + s]; // Größe dieses Segments
|
||||||
|
pkt_size += seg;
|
||||||
|
|
||||||
|
if (seg < 255) {
|
||||||
|
// Paketende erreicht → vollständiges Opus-Paket dekodieren und ausgeben
|
||||||
|
decode_packet(buf + pkt_start, pkt_size);
|
||||||
|
pkt_start += pkt_size; // nächstes Paket beginnt direkt dahinter
|
||||||
|
pkt_size = 0;
|
||||||
|
}
|
||||||
|
// seg == 255 → Paket geht im nächsten Segment weiter (Lacing)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// --- 4. Zur nächsten Page springen ---
|
||||||
|
pos = hdr_end + data_size;
|
||||||
|
page_n++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int changeVolume = 0;
|
||||||
|
static void canTaskFunc(void *) {
|
||||||
|
twai_message_t frame;
|
||||||
|
for (;;) {
|
||||||
|
// blockiert ohne CPU-Last; der interne TWAI-Interrupt weckt den Task sobald ein Frame ankommt
|
||||||
|
if (twai_receive(&frame, portMAX_DELAY) == ESP_OK) {
|
||||||
|
HandleFrame(&frame);
|
||||||
|
|
||||||
|
if (changeVolume > 20)
|
||||||
|
changeVolume = 0;
|
||||||
|
|
||||||
|
OUTPUT_GAIN = 0.1f + changeVolume*0.1f;
|
||||||
|
changeVolume++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void setup() {
|
void setup() {
|
||||||
return;
|
Serial.begin(115200);
|
||||||
SPI.begin();
|
i2s_setup();
|
||||||
|
|
||||||
_PROTECTED_WRITE(CLKCTRL.MCLKCTRLA, CLKCTRL.MCLKCTRLA | 1 << 7);
|
// Explicit GND for LED and Input
|
||||||
delay(10); // a bit delay for mcp2515 to get the clock
|
pinMode(21, OUTPUT);
|
||||||
|
digitalWrite(21, LOW);
|
||||||
|
|
||||||
SetMeyPin(0, 1, PIN_PD0);
|
int err;
|
||||||
SetMeyPin(1, 2, PIN_PC7);
|
dec = opus_decoder_create(SAMPLE_RATE, CHANNELS, &err);
|
||||||
SetMeyPin(2, 3, PIN_PD2);
|
if (err != OPUS_OK) {
|
||||||
SetMeyPin(3, 4, PIN_PD1);
|
Serial.printf("opus_decoder_create failed: %d\n", err);
|
||||||
SetMeyPin(4, 5, PIN_PD5);
|
return;
|
||||||
SetMeyPin(5, 6, PIN_PD3);
|
}
|
||||||
SetMeyPin(6, 7, PIN_PD7);
|
Serial.println("Opus playback started");
|
||||||
SetMeyPin(7, 8, PIN_PD6);
|
ConfigureAndSetupMeyCan();
|
||||||
|
|
||||||
delay(20);
|
xTaskCreate(canTaskFunc, "can", 4096, nullptr, 5, nullptr);
|
||||||
|
|
||||||
SetCanInterface(0, PIN_PD4);
|
|
||||||
SetupMeyCan();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
void loop()
|
play_ogg_opus(music_opus, music_opus_len);
|
||||||
{
|
opus_decoder_ctl(dec, OPUS_RESET_STATE);
|
||||||
CheckMeyPinsTriggered();
|
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
Software/UPSoftware/arduino-libhelix-main.zip
Normal file
BIN
Software/UPSoftware/arduino-libhelix-main.zip
Normal file
Binary file not shown.
@@ -0,0 +1,56 @@
|
|||||||
|
#include <Arduino.h>
|
||||||
|
#include <AudioTools.h>
|
||||||
|
#include <AudioTools/AudioCodecs/CodecOpus.h>
|
||||||
|
|
||||||
|
using namespace audio_tools;
|
||||||
|
|
||||||
|
constexpr int I2S_BCLK = 6;
|
||||||
|
constexpr int I2S_LRC = 7;
|
||||||
|
constexpr int I2S_DIN = 5;
|
||||||
|
|
||||||
|
// Keep the test intentionally light so it is realistic for an ESP32-C3.
|
||||||
|
AudioInfo audioInfo(16000, 1, 16);
|
||||||
|
SineWaveGenerator<int16_t> sineWave(10000);
|
||||||
|
GeneratedSoundStream<int16_t> source(sineWave);
|
||||||
|
I2SStream i2s;
|
||||||
|
OpusAudioEncoder opusEncoder;
|
||||||
|
OpusAudioDecoder opusDecoder;
|
||||||
|
EncodedAudioStream decodedAudio(&i2s, &opusDecoder);
|
||||||
|
EncodedAudioStream encodedAudio(&decodedAudio, &opusEncoder);
|
||||||
|
StreamCopy copier(encodedAudio, source);
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
Serial.begin(115200);
|
||||||
|
AudioToolsLogger.begin(Serial, AudioToolsLogLevel::Warning);
|
||||||
|
|
||||||
|
auto i2sConfig = i2s.defaultConfig(TX_MODE);
|
||||||
|
i2sConfig.copyFrom(audioInfo);
|
||||||
|
i2sConfig.pin_bck = I2S_BCLK;
|
||||||
|
i2sConfig.pin_ws = I2S_LRC;
|
||||||
|
i2sConfig.pin_data = I2S_DIN;
|
||||||
|
i2sConfig.buffer_count = 8;
|
||||||
|
i2sConfig.buffer_size = 256;
|
||||||
|
i2s.begin(i2sConfig);
|
||||||
|
|
||||||
|
auto sineConfig = sineWave.defaultConfig();
|
||||||
|
sineConfig.copyFrom(audioInfo);
|
||||||
|
sineWave.begin(sineConfig, N_B4);
|
||||||
|
|
||||||
|
auto &encoderConfig = opusEncoder.config();
|
||||||
|
encoderConfig.copyFrom(audioInfo);
|
||||||
|
encoderConfig.application = OPUS_APPLICATION_RESTRICTED_LOWDELAY;
|
||||||
|
encoderConfig.bitrate = 24000;
|
||||||
|
encoderConfig.complexity = 1;
|
||||||
|
encoderConfig.frame_sizes_ms_x2 = OPUS_FRAMESIZE_20_MS;
|
||||||
|
|
||||||
|
decodedAudio.begin(audioInfo);
|
||||||
|
encodedAudio.begin(audioInfo);
|
||||||
|
|
||||||
|
Serial.println("Opus loopback test started");
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
if (copier.copy() == 0) {
|
||||||
|
delay(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
26
Software/UPSoftware/examples/OpusLoopbackEsp32C3/README.md
Normal file
26
Software/UPSoftware/examples/OpusLoopbackEsp32C3/README.md
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
This sketch is a minimal ESP32-C3 Opus codec smoke test.
|
||||||
|
|
||||||
|
What it does:
|
||||||
|
- Generates a sine wave locally
|
||||||
|
- Encodes it with Opus
|
||||||
|
- Decodes it immediately again
|
||||||
|
- Sends the decoded PCM to I2S
|
||||||
|
|
||||||
|
Why this example:
|
||||||
|
- It tests the raw Opus codec path without Ogg or CAN framing
|
||||||
|
- It is closer to the later Pi -> CAN -> ESP32 decoder path than MP3
|
||||||
|
- It keeps CPU load down by using 16 kHz mono and low encoder complexity
|
||||||
|
|
||||||
|
Expected hardware:
|
||||||
|
- ESP32-C3
|
||||||
|
- I2S DAC / amp on:
|
||||||
|
- BCLK = GPIO 6
|
||||||
|
- LRCK = GPIO 7
|
||||||
|
- DIN = GPIO 5
|
||||||
|
|
||||||
|
Required Arduino libraries:
|
||||||
|
- `arduino-audio-tools`
|
||||||
|
- `arduino-libopus`
|
||||||
|
|
||||||
|
If this sketch runs and outputs a stable sine tone, the basic Opus encode/decode
|
||||||
|
chain is working on the ESP32-C3.
|
||||||
71009
Software/UPSoftware/opus_data.h
Normal file
71009
Software/UPSoftware/opus_data.h
Normal file
File diff suppressed because it is too large
Load Diff
BIN
Software/UPSoftware/positive_sound-short.mp3
Normal file
BIN
Software/UPSoftware/positive_sound-short.mp3
Normal file
Binary file not shown.
53436
Software/UPSoftware/positive_sound_mp3.h
Normal file
53436
Software/UPSoftware/positive_sound_mp3.h
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,29 +1,29 @@
|
|||||||
Solid Edge in STL konvertieren
|
Solid Edge in STL konvertieren
|
||||||
Datum: Montag,Januar 23,2023 06:20
|
Datum: Montag,Januar 23,2023 06:20
|
||||||
Quelldatei:C:\source\DeckelV6.par
|
Quelldatei:C:\source\DeckelV6.par
|
||||||
Ausgangssystem: SOLID EDGE
|
Ausgangssystem: SOLID EDGE
|
||||||
|
|
||||||
Hardware:
|
Hardware:
|
||||||
Prozessor: Intel(R) Core(TM) i7-8559U CPU @ 2.70GHz
|
Prozessor: Intel(R) Core(TM) i7-8559U CPU @ 2.70GHz
|
||||||
Betriebssystem: Windows 10 Professional
|
Betriebssystem: Windows 10 Professional
|
||||||
Installierter Speicher: 15,87 GB
|
Installierter Speicher: 15,87 GB
|
||||||
|
|
||||||
Software-Informationen:
|
Software-Informationen:
|
||||||
Parasolid-Version: 35.0.149
|
Parasolid-Version: 35.0.149
|
||||||
PSBodyshop-Version: 35.0.82
|
PSBodyshop-Version: 35.0.82
|
||||||
Solid Edge-Version: 223.00.00.101 x64
|
Solid Edge-Version: 223.00.00.101 x64
|
||||||
|
|
||||||
STL-Exportoptionen:
|
STL-Exportoptionen:
|
||||||
Ausgabedateiformat:BINARY
|
Ausgabedateiformat:BINARY
|
||||||
Angezeigte Teile exportieren: Aus
|
Angezeigte Teile exportieren: Aus
|
||||||
Strukturoption: Monolithic
|
Strukturoption: Monolithic
|
||||||
Einheiten exportieren:Millimeter
|
Einheiten exportieren:Millimeter
|
||||||
Toleranzwert exportieren:0,001000
|
Toleranzwert exportieren:0,001000
|
||||||
Toleranztyp exportieren:Fine
|
Toleranztyp exportieren:Fine
|
||||||
Flächenplanwinkelwert exportieren:0,523599
|
Flächenplanwinkelwert exportieren:0,523599
|
||||||
|
|
||||||
Konvertierungsfortschritt:
|
Konvertierungsfortschritt:
|
||||||
Phase 1 von 2 - Abrufen der Parasolid-Informationen...
|
Phase 1 von 2 - Abrufen der Parasolid-Informationen...
|
||||||
Anzahl erstellter STL-Dateien : 1
|
Anzahl erstellter STL-Dateien : 1
|
||||||
Konvertierungsvorgang ist abgeschlossen
|
Konvertierungsvorgang ist abgeschlossen
|
||||||
Zum Konvertieren benötigte Zeit:00 : 00 : 00
|
Zum Konvertieren benötigte Zeit:00 : 00 : 00
|
||||||
|
|||||||
@@ -1,25 +1,25 @@
|
|||||||
STL translation to Solid Edge
|
STL translation to Solid Edge
|
||||||
Datum: Dienstag,April 25,2023 09:00
|
Datum: Dienstag,April 25,2023 09:00
|
||||||
Quelldatei:C:\Users\Martin\Documents\MeyCad\Meycad\SolidEdgeCase\GehaeuseV6.stl
|
Quelldatei:C:\Users\Martin\Documents\MeyCad\Meycad\SolidEdgeCase\GehaeuseV6.stl
|
||||||
Autor: Unbekannt
|
Autor: Unbekannt
|
||||||
Organisation: Unbekannt
|
Organisation: Unbekannt
|
||||||
Ausgangssystem: DEX
|
Ausgangssystem: DEX
|
||||||
|
|
||||||
Hardware:
|
Hardware:
|
||||||
Prozessor: Intel(R) Core(TM) i7-8559U CPU @ 2.70GHz
|
Prozessor: Intel(R) Core(TM) i7-8559U CPU @ 2.70GHz
|
||||||
Betriebssystem: Windows 10 Professional
|
Betriebssystem: Windows 10 Professional
|
||||||
Installierter Speicher: 15,87 GB
|
Installierter Speicher: 15,87 GB
|
||||||
|
|
||||||
Software-Informationen:
|
Software-Informationen:
|
||||||
Parasolid-Version: 35.0.149
|
Parasolid-Version: 35.0.149
|
||||||
PSBodyshop-Version: 35.0.82
|
PSBodyshop-Version: 35.0.82
|
||||||
Solid Edge-Version: 223.00.00.101 x64
|
Solid Edge-Version: 223.00.00.101 x64
|
||||||
|
|
||||||
STL Import Options
|
STL Import Options
|
||||||
Vernetzungsfehler reparieren:Aus
|
Vernetzungsfehler reparieren:Aus
|
||||||
Basisformelement erstellen:Ein
|
Basisformelement erstellen:Ein
|
||||||
Protokollierung aktivieren:Ein
|
Protokollierung aktivieren:Ein
|
||||||
|
|
||||||
Konvertierungsfortschritt:
|
Konvertierungsfortschritt:
|
||||||
Konvertierungsvorgang ist abgeschlossen
|
Konvertierungsvorgang ist abgeschlossen
|
||||||
Zum Konvertieren benötigte Zeit:00 : 00 : 02
|
Zum Konvertieren benötigte Zeit:00 : 00 : 02
|
||||||
|
|||||||
@@ -1,29 +1,29 @@
|
|||||||
Solid Edge in STL konvertieren
|
Solid Edge in STL konvertieren
|
||||||
Datum: Montag,Januar 23,2023 06:21
|
Datum: Montag,Januar 23,2023 06:21
|
||||||
Quelldatei:C:\source\GehaeuseV6.par
|
Quelldatei:C:\source\GehaeuseV6.par
|
||||||
Ausgangssystem: SOLID EDGE
|
Ausgangssystem: SOLID EDGE
|
||||||
|
|
||||||
Hardware:
|
Hardware:
|
||||||
Prozessor: Intel(R) Core(TM) i7-8559U CPU @ 2.70GHz
|
Prozessor: Intel(R) Core(TM) i7-8559U CPU @ 2.70GHz
|
||||||
Betriebssystem: Windows 10 Professional
|
Betriebssystem: Windows 10 Professional
|
||||||
Installierter Speicher: 15,87 GB
|
Installierter Speicher: 15,87 GB
|
||||||
|
|
||||||
Software-Informationen:
|
Software-Informationen:
|
||||||
Parasolid-Version: 35.0.149
|
Parasolid-Version: 35.0.149
|
||||||
PSBodyshop-Version: 35.0.82
|
PSBodyshop-Version: 35.0.82
|
||||||
Solid Edge-Version: 223.00.00.101 x64
|
Solid Edge-Version: 223.00.00.101 x64
|
||||||
|
|
||||||
STL-Exportoptionen:
|
STL-Exportoptionen:
|
||||||
Ausgabedateiformat:BINARY
|
Ausgabedateiformat:BINARY
|
||||||
Angezeigte Teile exportieren: Aus
|
Angezeigte Teile exportieren: Aus
|
||||||
Strukturoption: Monolithic
|
Strukturoption: Monolithic
|
||||||
Einheiten exportieren:Millimeter
|
Einheiten exportieren:Millimeter
|
||||||
Toleranzwert exportieren:0,001000
|
Toleranzwert exportieren:0,001000
|
||||||
Toleranztyp exportieren:Fine
|
Toleranztyp exportieren:Fine
|
||||||
Flächenplanwinkelwert exportieren:0,523599
|
Flächenplanwinkelwert exportieren:0,523599
|
||||||
|
|
||||||
Konvertierungsfortschritt:
|
Konvertierungsfortschritt:
|
||||||
Phase 1 von 2 - Abrufen der Parasolid-Informationen...
|
Phase 1 von 2 - Abrufen der Parasolid-Informationen...
|
||||||
Anzahl erstellter STL-Dateien : 1
|
Anzahl erstellter STL-Dateien : 1
|
||||||
Konvertierungsvorgang ist abgeschlossen
|
Konvertierungsvorgang ist abgeschlossen
|
||||||
Zum Konvertieren benötigte Zeit:00 : 00 : 00
|
Zum Konvertieren benötigte Zeit:00 : 00 : 00
|
||||||
|
|||||||
1
Switch V8/Meycad/+.txt
Normal file
1
Switch V8/Meycad/+.txt
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Warnung: Breitenkorrektur eingeschränkt. Für die aktuellen Designregeln muss sich der Breitenkorrekturwert im Bereich [0,00004 mils; 7,87398 mils] befinden.
|
||||||
820
Switch V8/Meycad/Meycad-B_Cu.gbr
Normal file
820
Switch V8/Meycad/Meycad-B_Cu.gbr
Normal file
@@ -0,0 +1,820 @@
|
|||||||
|
%TF.GenerationSoftware,KiCad,Pcbnew,9.0.2*%
|
||||||
|
%TF.CreationDate,2025-07-20T17:27:29+02:00*%
|
||||||
|
%TF.ProjectId,Meycad,4d657963-6164-42e6-9b69-6361645f7063,rev?*%
|
||||||
|
%TF.SameCoordinates,Original*%
|
||||||
|
%TF.FileFunction,Copper,L2,Bot*%
|
||||||
|
%TF.FilePolarity,Positive*%
|
||||||
|
%FSLAX46Y46*%
|
||||||
|
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||||
|
G04 Created by KiCad (PCBNEW 9.0.2) date 2025-07-20 17:27:29*
|
||||||
|
%MOMM*%
|
||||||
|
%LPD*%
|
||||||
|
G01*
|
||||||
|
G04 APERTURE LIST*
|
||||||
|
%TA.AperFunction,ComponentPad*%
|
||||||
|
%ADD10R,1.700000X1.700000*%
|
||||||
|
%TD*%
|
||||||
|
%TA.AperFunction,ComponentPad*%
|
||||||
|
%ADD11C,1.700000*%
|
||||||
|
%TD*%
|
||||||
|
%TA.AperFunction,Conductor*%
|
||||||
|
%ADD12C,0.508000*%
|
||||||
|
%TD*%
|
||||||
|
%TA.AperFunction,Conductor*%
|
||||||
|
%ADD13C,0.635000*%
|
||||||
|
%TD*%
|
||||||
|
G04 APERTURE END LIST*
|
||||||
|
D10*
|
||||||
|
%TO.P,J_Extension1,1,Pin_1*%
|
||||||
|
%TO.N,/E5*%
|
||||||
|
X104140000Y-71120000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J_Extension1,2,Pin_2*%
|
||||||
|
%TO.N,/E6*%
|
||||||
|
X104140000Y-73660000D03*
|
||||||
|
%TO.P,J_Extension1,3,Pin_3*%
|
||||||
|
%TO.N,/E7*%
|
||||||
|
X101600000Y-71120000D03*
|
||||||
|
%TO.P,J_Extension1,4,Pin_4*%
|
||||||
|
%TO.N,/E8*%
|
||||||
|
X101600000Y-73660000D03*
|
||||||
|
%TO.P,J_Extension1,5,Pin_5*%
|
||||||
|
%TO.N,/E4*%
|
||||||
|
X99060000Y-71120000D03*
|
||||||
|
%TO.P,J_Extension1,6,Pin_6*%
|
||||||
|
%TO.N,/E3*%
|
||||||
|
X99060000Y-73660000D03*
|
||||||
|
%TO.P,J_Extension1,7,Pin_7*%
|
||||||
|
%TO.N,/E2*%
|
||||||
|
X96520000Y-71120000D03*
|
||||||
|
%TO.P,J_Extension1,8,Pin_8*%
|
||||||
|
%TO.N,/E1*%
|
||||||
|
X96520000Y-73660000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.P,CAN_4_1,4,Pin_4*%
|
||||||
|
%TO.N,/CAN_24V*%
|
||||||
|
X180340000Y-73660000D03*
|
||||||
|
%TO.P,CAN_4_1,3,Pin_3*%
|
||||||
|
%TO.N,/CAN4_H*%
|
||||||
|
X180340000Y-76200000D03*
|
||||||
|
%TO.P,CAN_4_1,2,Pin_2*%
|
||||||
|
%TO.N,/CAN4_L*%
|
||||||
|
X180340000Y-78740000D03*
|
||||||
|
D10*
|
||||||
|
%TO.P,CAN_4_1,1,Pin_1*%
|
||||||
|
%TO.N,/CAN_GND*%
|
||||||
|
X180340000Y-81280000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.P,J_Front_1_1,1,Pin_1*%
|
||||||
|
%TO.N,/CAN_24V*%
|
||||||
|
X175260000Y-99060000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J_Front_1_1,2,Pin_2*%
|
||||||
|
%TO.N,/CAN_GND*%
|
||||||
|
X175260000Y-96520000D03*
|
||||||
|
%TO.P,J_Front_1_1,3,Pin_3*%
|
||||||
|
X175260000Y-93980000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,J6,1,Pin_1*%
|
||||||
|
%TO.N,/CAN_GND*%
|
||||||
|
X187960000Y-93980000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J6,2,Pin_2*%
|
||||||
|
%TO.N,/CAN3_L*%
|
||||||
|
X187960000Y-91440000D03*
|
||||||
|
%TO.P,J6,3,Pin_3*%
|
||||||
|
%TO.N,/CAN3_H*%
|
||||||
|
X187960000Y-88900000D03*
|
||||||
|
%TO.P,J6,4,Pin_4*%
|
||||||
|
%TO.N,/CAN_24V*%
|
||||||
|
X187960000Y-86360000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.P,Arduino_R1,12,Pin_12*%
|
||||||
|
%TO.N,unconnected-(Arduino_R1-Pin_12-Pad12)*%
|
||||||
|
X107696000Y-111760000D03*
|
||||||
|
%TO.P,Arduino_R1,11,Pin_11*%
|
||||||
|
%TO.N,unconnected-(Arduino_R1-Pin_11-Pad11)*%
|
||||||
|
X107696000Y-109220000D03*
|
||||||
|
%TO.P,Arduino_R1,10,Pin_10*%
|
||||||
|
%TO.N,unconnected-(Arduino_R1-Pin_10-Pad10)*%
|
||||||
|
X107696000Y-106680000D03*
|
||||||
|
%TO.P,Arduino_R1,9,Pin_9*%
|
||||||
|
%TO.N,unconnected-(Arduino_R1-Pin_9-Pad9)*%
|
||||||
|
X107696000Y-104140000D03*
|
||||||
|
%TO.P,Arduino_R1,8,Pin_8*%
|
||||||
|
%TO.N,/E1*%
|
||||||
|
X107696000Y-101600000D03*
|
||||||
|
%TO.P,Arduino_R1,7,Pin_7*%
|
||||||
|
%TO.N,/E2*%
|
||||||
|
X107696000Y-99060000D03*
|
||||||
|
%TO.P,Arduino_R1,6,Pin_6*%
|
||||||
|
%TO.N,/E3*%
|
||||||
|
X107696000Y-96520000D03*
|
||||||
|
%TO.P,Arduino_R1,5,Pin_5*%
|
||||||
|
%TO.N,/E4*%
|
||||||
|
X107696000Y-93980000D03*
|
||||||
|
%TO.P,Arduino_R1,4,Pin_4*%
|
||||||
|
%TO.N,/E8*%
|
||||||
|
X107696000Y-91440000D03*
|
||||||
|
%TO.P,Arduino_R1,3,Pin_3*%
|
||||||
|
%TO.N,/E7*%
|
||||||
|
X107696000Y-88900000D03*
|
||||||
|
%TO.P,Arduino_R1,2,Pin_2*%
|
||||||
|
%TO.N,/E6*%
|
||||||
|
X107696000Y-86360000D03*
|
||||||
|
D10*
|
||||||
|
%TO.P,Arduino_R1,1,Pin_1*%
|
||||||
|
%TO.N,/E5*%
|
||||||
|
X107696000Y-83820000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.P,J2,1,Pin_1*%
|
||||||
|
%TO.N,/CAN_GND*%
|
||||||
|
X180340000Y-119380000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J2,2,Pin_2*%
|
||||||
|
%TO.N,/CAN1_L*%
|
||||||
|
X180340000Y-116840000D03*
|
||||||
|
%TO.P,J2,3,Pin_3*%
|
||||||
|
%TO.N,/CAN1_H*%
|
||||||
|
X180340000Y-114300000D03*
|
||||||
|
%TO.P,J2,4,Pin_4*%
|
||||||
|
%TO.N,/CAN_24V*%
|
||||||
|
X180340000Y-111760000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,J10,1,Pin_1*%
|
||||||
|
%TO.N,/CAN3_L*%
|
||||||
|
X175260000Y-91440000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J10,2,Pin_2*%
|
||||||
|
%TO.N,/CAN3_H*%
|
||||||
|
X175260000Y-88900000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,J_Front_1_3,1,Pin_1*%
|
||||||
|
%TO.N,/CAN_24V*%
|
||||||
|
X175260000Y-86360000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J_Front_1_3,2,Pin_2*%
|
||||||
|
%TO.N,/CAN_GND*%
|
||||||
|
X175260000Y-83820000D03*
|
||||||
|
%TO.P,J_Front_1_3,3,Pin_3*%
|
||||||
|
X175260000Y-81280000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,J_Front_2,1,Pin_1*%
|
||||||
|
%TO.N,/GND*%
|
||||||
|
X167640000Y-93980000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J_Front_2,2,Pin_2*%
|
||||||
|
%TO.N,unconnected-(J_Front_2-Pin_2-Pad2)*%
|
||||||
|
X167640000Y-96520000D03*
|
||||||
|
%TO.P,J_Front_2,3,Pin_3*%
|
||||||
|
%TO.N,/24V*%
|
||||||
|
X167640000Y-99060000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,J4,1,Pin_1*%
|
||||||
|
%TO.N,/CAN_GND*%
|
||||||
|
X180340000Y-93980000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J4,2,Pin_2*%
|
||||||
|
%TO.N,/CAN3_L*%
|
||||||
|
X180340000Y-91440000D03*
|
||||||
|
%TO.P,J4,3,Pin_3*%
|
||||||
|
%TO.N,/CAN3_H*%
|
||||||
|
X180340000Y-88900000D03*
|
||||||
|
%TO.P,J4,4,Pin_4*%
|
||||||
|
%TO.N,/CAN_24V*%
|
||||||
|
X180340000Y-86360000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,J_CAN_2,1,Pin_1*%
|
||||||
|
%TO.N,/5V*%
|
||||||
|
X121920000Y-106680000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J_CAN_2,2,Pin_2*%
|
||||||
|
%TO.N,/GND*%
|
||||||
|
X124460000Y-106680000D03*
|
||||||
|
%TO.P,J_CAN_2,3,Pin_3*%
|
||||||
|
%TO.N,/CS2*%
|
||||||
|
X127000000Y-106680000D03*
|
||||||
|
%TO.P,J_CAN_2,4,Pin_4*%
|
||||||
|
%TO.N,/SO*%
|
||||||
|
X129540000Y-106680000D03*
|
||||||
|
%TO.P,J_CAN_2,5,Pin_5*%
|
||||||
|
%TO.N,/SI*%
|
||||||
|
X132080000Y-106680000D03*
|
||||||
|
%TO.P,J_CAN_2,6,Pin_6*%
|
||||||
|
%TO.N,/SCK*%
|
||||||
|
X134620000Y-106680000D03*
|
||||||
|
%TO.P,J_CAN_2,7,Pin_7*%
|
||||||
|
%TO.N,unconnected-(J_CAN_2-Pin_7-Pad7)*%
|
||||||
|
X137160000Y-106680000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,J_Front_3,1,Pin_1*%
|
||||||
|
%TO.N,/GND*%
|
||||||
|
X167640000Y-106680000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J_Front_3,2,Pin_2*%
|
||||||
|
%TO.N,unconnected-(J_Front_3-Pin_2-Pad2)*%
|
||||||
|
X167640000Y-109220000D03*
|
||||||
|
%TO.P,J_Front_3,3,Pin_3*%
|
||||||
|
%TO.N,/24V*%
|
||||||
|
X167640000Y-111760000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.P,Arduino_L1,12,Pin_12*%
|
||||||
|
%TO.N,/5V*%
|
||||||
|
X92456000Y-111760000D03*
|
||||||
|
%TO.P,Arduino_L1,11,Pin_11*%
|
||||||
|
%TO.N,/GND*%
|
||||||
|
X92456000Y-109220000D03*
|
||||||
|
%TO.P,Arduino_L1,10,Pin_10*%
|
||||||
|
%TO.N,unconnected-(Arduino_L1-Pin_10-Pad10)*%
|
||||||
|
X92456000Y-106680000D03*
|
||||||
|
%TO.P,Arduino_L1,9,Pin_9*%
|
||||||
|
%TO.N,unconnected-(Arduino_L1-Pin_9-Pad9)*%
|
||||||
|
X92456000Y-104140000D03*
|
||||||
|
%TO.P,Arduino_L1,8,Pin_8*%
|
||||||
|
%TO.N,/CS1*%
|
||||||
|
X92456000Y-101600000D03*
|
||||||
|
%TO.P,Arduino_L1,7,Pin_7*%
|
||||||
|
%TO.N,/CS2*%
|
||||||
|
X92456000Y-99060000D03*
|
||||||
|
%TO.P,Arduino_L1,6,Pin_6*%
|
||||||
|
%TO.N,/CS3*%
|
||||||
|
X92456000Y-96520000D03*
|
||||||
|
%TO.P,Arduino_L1,5,Pin_5*%
|
||||||
|
%TO.N,/CS4*%
|
||||||
|
X92456000Y-93980000D03*
|
||||||
|
%TO.P,Arduino_L1,4,Pin_4*%
|
||||||
|
%TO.N,/SO*%
|
||||||
|
X92456000Y-91440000D03*
|
||||||
|
%TO.P,Arduino_L1,3,Pin_3*%
|
||||||
|
%TO.N,/SI*%
|
||||||
|
X92456000Y-88900000D03*
|
||||||
|
%TO.P,Arduino_L1,2,Pin_2*%
|
||||||
|
%TO.N,/SCK*%
|
||||||
|
X92456000Y-86360000D03*
|
||||||
|
D10*
|
||||||
|
%TO.P,Arduino_L1,1,Pin_1*%
|
||||||
|
%TO.N,unconnected-(Arduino_L1-Pin_1-Pad1)*%
|
||||||
|
X92456000Y-83820000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.P,J_CAN_1,1,Pin_1*%
|
||||||
|
%TO.N,/5V*%
|
||||||
|
X121920000Y-119380000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J_CAN_1,2,Pin_2*%
|
||||||
|
%TO.N,/GND*%
|
||||||
|
X124460000Y-119380000D03*
|
||||||
|
%TO.P,J_CAN_1,3,Pin_3*%
|
||||||
|
%TO.N,/CS1*%
|
||||||
|
X127000000Y-119380000D03*
|
||||||
|
%TO.P,J_CAN_1,4,Pin_4*%
|
||||||
|
%TO.N,/SO*%
|
||||||
|
X129540000Y-119380000D03*
|
||||||
|
%TO.P,J_CAN_1,5,Pin_5*%
|
||||||
|
%TO.N,/SI*%
|
||||||
|
X132080000Y-119380000D03*
|
||||||
|
%TO.P,J_CAN_1,6,Pin_6*%
|
||||||
|
%TO.N,/SCK*%
|
||||||
|
X134620000Y-119380000D03*
|
||||||
|
%TO.P,J_CAN_1,7,Pin_7*%
|
||||||
|
%TO.N,unconnected-(J_CAN_1-Pin_7-Pad7)*%
|
||||||
|
X137160000Y-119380000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,J_Front_1_2,1,Pin_1*%
|
||||||
|
%TO.N,/CAN_24V*%
|
||||||
|
X175260000Y-111760000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J_Front_1_2,2,Pin_2*%
|
||||||
|
%TO.N,/CAN_GND*%
|
||||||
|
X175260000Y-109220000D03*
|
||||||
|
%TO.P,J_Front_1_2,3,Pin_3*%
|
||||||
|
X175260000Y-106680000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.P,J_Front_1,3,Pin_3*%
|
||||||
|
%TO.N,/24V*%
|
||||||
|
X167640000Y-86360000D03*
|
||||||
|
%TO.P,J_Front_1,2,Pin_2*%
|
||||||
|
%TO.N,unconnected-(J_Front_1-Pin_2-Pad2)*%
|
||||||
|
X167640000Y-83820000D03*
|
||||||
|
D10*
|
||||||
|
%TO.P,J_Front_1,1,Pin_1*%
|
||||||
|
%TO.N,/GND*%
|
||||||
|
X167640000Y-81280000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.P,J7,1,Pin_1*%
|
||||||
|
%TO.N,/CAN_GND*%
|
||||||
|
X187960000Y-81280000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J7,2,Pin_2*%
|
||||||
|
%TO.N,/CAN4_L*%
|
||||||
|
X187960000Y-78740000D03*
|
||||||
|
%TO.P,J7,3,Pin_3*%
|
||||||
|
%TO.N,/CAN4_H*%
|
||||||
|
X187960000Y-76200000D03*
|
||||||
|
%TO.P,J7,4,Pin_4*%
|
||||||
|
%TO.N,/CAN_24V*%
|
||||||
|
X187960000Y-73660000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,J9,1,Pin_1*%
|
||||||
|
%TO.N,/CAN2_L*%
|
||||||
|
X175260000Y-104140000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J9,2,Pin_2*%
|
||||||
|
%TO.N,/CAN2_H*%
|
||||||
|
X175260000Y-101600000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,JJ_CAN_4,1,Pin_1*%
|
||||||
|
%TO.N,/5V*%
|
||||||
|
X121920000Y-81280000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,JJ_CAN_4,2,Pin_2*%
|
||||||
|
%TO.N,/GND*%
|
||||||
|
X124460000Y-81280000D03*
|
||||||
|
%TO.P,JJ_CAN_4,3,Pin_3*%
|
||||||
|
%TO.N,/CS4*%
|
||||||
|
X127000000Y-81280000D03*
|
||||||
|
%TO.P,JJ_CAN_4,4,Pin_4*%
|
||||||
|
%TO.N,/SO*%
|
||||||
|
X129540000Y-81280000D03*
|
||||||
|
%TO.P,JJ_CAN_4,5,Pin_5*%
|
||||||
|
%TO.N,/SI*%
|
||||||
|
X132080000Y-81280000D03*
|
||||||
|
%TO.P,JJ_CAN_4,6,Pin_6*%
|
||||||
|
%TO.N,/SCK*%
|
||||||
|
X134620000Y-81280000D03*
|
||||||
|
%TO.P,JJ_CAN_4,7,Pin_7*%
|
||||||
|
%TO.N,unconnected-(JJ_CAN_4-Pin_7-Pad7)*%
|
||||||
|
X137160000Y-81280000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,J8,1,Pin_1*%
|
||||||
|
%TO.N,/CAN1_L*%
|
||||||
|
X175260000Y-116840000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J8,2,Pin_2*%
|
||||||
|
%TO.N,/CAN1_H*%
|
||||||
|
X175260000Y-114300000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,CAN_2_1,1,Pin_1*%
|
||||||
|
%TO.N,/CAN_GND*%
|
||||||
|
X180340000Y-106680000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,CAN_2_1,2,Pin_2*%
|
||||||
|
%TO.N,/CAN2_L*%
|
||||||
|
X180340000Y-104140000D03*
|
||||||
|
%TO.P,CAN_2_1,3,Pin_3*%
|
||||||
|
%TO.N,/CAN2_H*%
|
||||||
|
X180340000Y-101600000D03*
|
||||||
|
%TO.P,CAN_2_1,4,Pin_4*%
|
||||||
|
%TO.N,/CAN_24V*%
|
||||||
|
X180340000Y-99060000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,J_CAN_3,1,Pin_1*%
|
||||||
|
%TO.N,/5V*%
|
||||||
|
X121920000Y-93980000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J_CAN_3,2,Pin_2*%
|
||||||
|
%TO.N,/GND*%
|
||||||
|
X124460000Y-93980000D03*
|
||||||
|
%TO.P,J_CAN_3,3,Pin_3*%
|
||||||
|
%TO.N,/CS3*%
|
||||||
|
X127000000Y-93980000D03*
|
||||||
|
%TO.P,J_CAN_3,4,Pin_4*%
|
||||||
|
%TO.N,/SO*%
|
||||||
|
X129540000Y-93980000D03*
|
||||||
|
%TO.P,J_CAN_3,5,Pin_5*%
|
||||||
|
%TO.N,/SI*%
|
||||||
|
X132080000Y-93980000D03*
|
||||||
|
%TO.P,J_CAN_3,6,Pin_6*%
|
||||||
|
%TO.N,/SCK*%
|
||||||
|
X134620000Y-93980000D03*
|
||||||
|
%TO.P,J_CAN_3,7,Pin_7*%
|
||||||
|
%TO.N,unconnected-(J_CAN_3-Pin_7-Pad7)*%
|
||||||
|
X137160000Y-93980000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.P,J1,2,Pin_2*%
|
||||||
|
%TO.N,/24V*%
|
||||||
|
X167640000Y-116750000D03*
|
||||||
|
D10*
|
||||||
|
%TO.P,J1,1,Pin_1*%
|
||||||
|
%TO.N,/GND*%
|
||||||
|
X165100000Y-116750000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.P,J11,1,Pin_1*%
|
||||||
|
%TO.N,/CAN4_L*%
|
||||||
|
X175260000Y-78740000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J11,2,Pin_2*%
|
||||||
|
%TO.N,/CAN4_H*%
|
||||||
|
X175260000Y-76200000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,J_Extension_2,1,Pin_1*%
|
||||||
|
%TO.N,/5V*%
|
||||||
|
X167640000Y-66040000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J_Extension_2,2,Pin_2*%
|
||||||
|
%TO.N,/GND*%
|
||||||
|
X167640000Y-68580000D03*
|
||||||
|
%TO.P,J_Extension_2,3,Pin_3*%
|
||||||
|
%TO.N,/24V*%
|
||||||
|
X167640000Y-71120000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,J5,1,Pin_1*%
|
||||||
|
%TO.N,/CAN_GND*%
|
||||||
|
X187960000Y-106680000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J5,2,Pin_2*%
|
||||||
|
%TO.N,/CAN2_L*%
|
||||||
|
X187960000Y-104140000D03*
|
||||||
|
%TO.P,J5,3,Pin_3*%
|
||||||
|
%TO.N,/CAN2_H*%
|
||||||
|
X187960000Y-101600000D03*
|
||||||
|
%TO.P,J5,4,Pin_4*%
|
||||||
|
%TO.N,/CAN_24V*%
|
||||||
|
X187960000Y-99060000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,J3,1,Pin_1*%
|
||||||
|
%TO.N,/CAN_GND*%
|
||||||
|
X187960000Y-119380000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J3,2,Pin_2*%
|
||||||
|
%TO.N,/CAN1_L*%
|
||||||
|
X187960000Y-116840000D03*
|
||||||
|
%TO.P,J3,3,Pin_3*%
|
||||||
|
%TO.N,/CAN1_H*%
|
||||||
|
X187960000Y-114300000D03*
|
||||||
|
%TO.P,J3,4,Pin_4*%
|
||||||
|
%TO.N,/CAN_24V*%
|
||||||
|
X187960000Y-111760000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,J_Stepdown1,1,Pin_1*%
|
||||||
|
%TO.N,/5V*%
|
||||||
|
X153341400Y-83594200D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J_Stepdown1,2,Pin_2*%
|
||||||
|
%TO.N,/GND*%
|
||||||
|
X153341400Y-86134200D03*
|
||||||
|
%TO.P,J_Stepdown1,3,Pin_3*%
|
||||||
|
%TO.N,/24V*%
|
||||||
|
X153341400Y-88674200D03*
|
||||||
|
%TD*%
|
||||||
|
D12*
|
||||||
|
%TO.N,/CS3*%
|
||||||
|
X100063401Y-83492200D02*
|
||||||
|
X100063400Y-88484165D01*
|
||||||
|
X113251223Y-80846700D02*
|
||||||
|
X102708902Y-80846700D01*
|
||||||
|
X102708902Y-80846700D02*
|
||||||
|
X100063401Y-83492200D01*
|
||||||
|
X117187720Y-84783198D02*
|
||||||
|
X113251223Y-80846700D01*
|
||||||
|
X117190396Y-84783198D02*
|
||||||
|
X117187720Y-84783198D01*
|
||||||
|
X96518400Y-94997600D02*
|
||||||
|
X94996000Y-96520000D01*
|
||||||
|
X117190401Y-84783200D02*
|
||||||
|
X117190396Y-84783198D01*
|
||||||
|
X117481401Y-85074200D02*
|
||||||
|
X117190401Y-84783200D01*
|
||||||
|
X117484078Y-85074200D02*
|
||||||
|
X117481401Y-85074200D01*
|
||||||
|
X118484078Y-86074200D02*
|
||||||
|
X117484078Y-85074200D01*
|
||||||
|
X125317200Y-86074200D02*
|
||||||
|
X118484078Y-86074200D01*
|
||||||
|
X100063400Y-88484165D02*
|
||||||
|
X96518400Y-92029167D01*
|
||||||
|
X127000000Y-87757000D02*
|
||||||
|
X125317200Y-86074200D01*
|
||||||
|
X127000000Y-93980000D02*
|
||||||
|
X127000000Y-87757000D01*
|
||||||
|
X96518400Y-92029167D02*
|
||||||
|
X96518400Y-94997600D01*
|
||||||
|
X94996000Y-96520000D02*
|
||||||
|
X92456000Y-96520000D01*
|
||||||
|
%TO.N,/CS4*%
|
||||||
|
X117484074Y-84074195D02*
|
||||||
|
X117775079Y-84365200D01*
|
||||||
|
X117481395Y-84074195D02*
|
||||||
|
X117484074Y-84074195D01*
|
||||||
|
X118777756Y-85365200D02*
|
||||||
|
X125200800Y-85365200D01*
|
||||||
|
X113544901Y-80137700D02*
|
||||||
|
X117481395Y-84074195D01*
|
||||||
|
X117775079Y-84365200D02*
|
||||||
|
X117777756Y-84365200D01*
|
||||||
|
X102415225Y-80137700D02*
|
||||||
|
X113544901Y-80137700D01*
|
||||||
|
X99354401Y-83198522D02*
|
||||||
|
X102415225Y-80137700D01*
|
||||||
|
X99354400Y-88190487D02*
|
||||||
|
X99354401Y-83198522D01*
|
||||||
|
X95809400Y-92658600D02*
|
||||||
|
X95809400Y-91735489D01*
|
||||||
|
X117777756Y-84365200D02*
|
||||||
|
X118777756Y-85365200D01*
|
||||||
|
X95809400Y-91735489D02*
|
||||||
|
X99354400Y-88190487D01*
|
||||||
|
X94488000Y-93980000D02*
|
||||||
|
X95809400Y-92658600D01*
|
||||||
|
X125200800Y-85365200D02*
|
||||||
|
X127000000Y-83566000D01*
|
||||||
|
X92456000Y-93980000D02*
|
||||||
|
X94488000Y-93980000D01*
|
||||||
|
X127000000Y-83566000D02*
|
||||||
|
X127000000Y-81280000D01*
|
||||||
|
%TO.N,/CS1*%
|
||||||
|
X118772400Y-88367878D02*
|
||||||
|
X118772400Y-110365200D01*
|
||||||
|
X116896722Y-86492200D02*
|
||||||
|
X118772400Y-88367878D01*
|
||||||
|
X103296258Y-82264700D02*
|
||||||
|
X112663869Y-82264700D01*
|
||||||
|
X116600369Y-86201200D02*
|
||||||
|
X116603046Y-86201200D01*
|
||||||
|
X101481400Y-84079557D02*
|
||||||
|
X103296258Y-82264700D01*
|
||||||
|
X116603046Y-86201200D02*
|
||||||
|
X116894050Y-86492200D01*
|
||||||
|
X101481400Y-89071518D02*
|
||||||
|
X101481400Y-84079557D01*
|
||||||
|
X116894050Y-86492200D02*
|
||||||
|
X116896722Y-86492200D01*
|
||||||
|
X97936400Y-92616522D02*
|
||||||
|
X101481400Y-89071518D01*
|
||||||
|
X97936400Y-100691600D02*
|
||||||
|
X97936400Y-92616522D01*
|
||||||
|
X112663869Y-82264700D02*
|
||||||
|
X116600369Y-86201200D01*
|
||||||
|
X97028000Y-101600000D02*
|
||||||
|
X97936400Y-100691600D01*
|
||||||
|
X125790200Y-112074200D02*
|
||||||
|
X127000000Y-113284000D01*
|
||||||
|
X92456000Y-101600000D02*
|
||||||
|
X97028000Y-101600000D01*
|
||||||
|
X118772400Y-110365200D02*
|
||||||
|
X120481401Y-112074200D01*
|
||||||
|
X120481401Y-112074200D02*
|
||||||
|
X125790200Y-112074200D01*
|
||||||
|
X127000000Y-113284000D02*
|
||||||
|
X127000000Y-119380000D01*
|
||||||
|
%TO.N,/CS2*%
|
||||||
|
X112957547Y-81555700D02*
|
||||||
|
X116894045Y-85492198D01*
|
||||||
|
X100772400Y-83785879D02*
|
||||||
|
X103002581Y-81555700D01*
|
||||||
|
X103002581Y-81555700D02*
|
||||||
|
X112957547Y-81555700D01*
|
||||||
|
X100772400Y-88777841D02*
|
||||||
|
X100772400Y-83785879D01*
|
||||||
|
X97227400Y-92322845D02*
|
||||||
|
X100772400Y-88777841D01*
|
||||||
|
X97227400Y-97336600D02*
|
||||||
|
X97227400Y-92322845D01*
|
||||||
|
X116894045Y-85492198D02*
|
||||||
|
X116896719Y-85492198D01*
|
||||||
|
X95504000Y-99060000D02*
|
||||||
|
X97227400Y-97336600D01*
|
||||||
|
X119481400Y-88074201D02*
|
||||||
|
X119481400Y-110071522D01*
|
||||||
|
X127000000Y-110236000D02*
|
||||||
|
X127000000Y-106680000D01*
|
||||||
|
X117190400Y-85783200D02*
|
||||||
|
X119481400Y-88074201D01*
|
||||||
|
X125870800Y-111365200D02*
|
||||||
|
X127000000Y-110236000D01*
|
||||||
|
X117187723Y-85783200D02*
|
||||||
|
X117190400Y-85783200D01*
|
||||||
|
X120775078Y-111365200D02*
|
||||||
|
X125870800Y-111365200D01*
|
||||||
|
X116896719Y-85492198D02*
|
||||||
|
X117187723Y-85783200D01*
|
||||||
|
X92456000Y-99060000D02*
|
||||||
|
X95504000Y-99060000D01*
|
||||||
|
X119481400Y-110071522D02*
|
||||||
|
X120775078Y-111365200D01*
|
||||||
|
%TO.N,/SCK*%
|
||||||
|
X101623992Y-78010700D02*
|
||||||
|
X101937240Y-78010700D01*
|
||||||
|
X101092564Y-78272720D02*
|
||||||
|
X101133284Y-78232000D01*
|
||||||
|
X102211339Y-78010693D02*
|
||||||
|
X102211346Y-78010700D01*
|
||||||
|
X101424088Y-78031000D02*
|
||||||
|
X101603692Y-78031000D01*
|
||||||
|
X101133284Y-78232000D02*
|
||||||
|
X101223088Y-78232000D01*
|
||||||
|
X101937240Y-78010700D02*
|
||||||
|
X102211339Y-78010693D01*
|
||||||
|
X101092564Y-78362522D02*
|
||||||
|
X101092564Y-78272720D01*
|
||||||
|
X101603692Y-78031000D02*
|
||||||
|
X101623992Y-78010700D01*
|
||||||
|
X97227400Y-82227687D02*
|
||||||
|
X101092564Y-78362522D01*
|
||||||
|
X97227400Y-85652600D02*
|
||||||
|
X97227400Y-82227687D01*
|
||||||
|
X134620000Y-78740000D02*
|
||||||
|
X134620000Y-81280000D01*
|
||||||
|
X96520000Y-86360000D02*
|
||||||
|
X97227400Y-85652600D01*
|
||||||
|
X101223088Y-78232000D02*
|
||||||
|
X101424088Y-78031000D01*
|
||||||
|
X92456000Y-86360000D02*
|
||||||
|
X96520000Y-86360000D01*
|
||||||
|
X102211346Y-78010700D02*
|
||||||
|
X133890700Y-78010700D01*
|
||||||
|
X133890700Y-78010700D02*
|
||||||
|
X134620000Y-78740000D01*
|
||||||
|
%TO.N,/SI*%
|
||||||
|
X92456000Y-88900000D02*
|
||||||
|
X96520000Y-88900000D01*
|
||||||
|
X96520000Y-88900000D02*
|
||||||
|
X97936400Y-87483600D01*
|
||||||
|
X101717765Y-78740000D02*
|
||||||
|
X101897370Y-78740000D01*
|
||||||
|
X101897388Y-78739992D02*
|
||||||
|
X101917679Y-78719700D01*
|
||||||
|
X97936400Y-87483600D02*
|
||||||
|
X97936400Y-82521365D01*
|
||||||
|
X97936400Y-82521365D02*
|
||||||
|
X101717765Y-78740000D01*
|
||||||
|
X101917679Y-78719700D02*
|
||||||
|
X130789700Y-78719700D01*
|
||||||
|
X101897370Y-78740000D02*
|
||||||
|
X101897378Y-78739992D01*
|
||||||
|
X101897378Y-78739992D02*
|
||||||
|
X101897388Y-78739992D01*
|
||||||
|
X130789700Y-78719700D02*
|
||||||
|
X132080000Y-80010000D01*
|
||||||
|
X132080000Y-80010000D02*
|
||||||
|
X132080000Y-81280000D01*
|
||||||
|
%TO.N,/SO*%
|
||||||
|
X129540000Y-81280000D02*
|
||||||
|
X127688700Y-79428700D01*
|
||||||
|
X127688700Y-79428700D02*
|
||||||
|
X102211347Y-79428700D01*
|
||||||
|
%TO.N,/GND*%
|
||||||
|
X92456000Y-109220000D02*
|
||||||
|
X94488000Y-109220000D01*
|
||||||
|
X94488000Y-109220000D02*
|
||||||
|
X95504000Y-110236000D01*
|
||||||
|
X95504000Y-110236000D02*
|
||||||
|
X95504000Y-113284000D01*
|
||||||
|
X96520000Y-114300000D02*
|
||||||
|
X121920000Y-114300000D01*
|
||||||
|
X95504000Y-113284000D02*
|
||||||
|
X96520000Y-114300000D01*
|
||||||
|
X121920000Y-114300000D02*
|
||||||
|
X124460000Y-116840000D01*
|
||||||
|
X124460000Y-116840000D02*
|
||||||
|
X124460000Y-119380000D01*
|
||||||
|
%TO.N,/SO*%
|
||||||
|
X98645400Y-87896810D02*
|
||||||
|
X95102210Y-91440000D01*
|
||||||
|
X95102210Y-91440000D02*
|
||||||
|
X92456000Y-91440000D01*
|
||||||
|
%TO.N,/SCK*%
|
||||||
|
X134620000Y-119380000D02*
|
||||||
|
X134620000Y-81280000D01*
|
||||||
|
%TO.N,/SI*%
|
||||||
|
X132080000Y-81280000D02*
|
||||||
|
X132080000Y-119380000D01*
|
||||||
|
%TO.N,/SO*%
|
||||||
|
X129540000Y-119380000D02*
|
||||||
|
X129540000Y-81280000D01*
|
||||||
|
X98645400Y-87896810D02*
|
||||||
|
X98645400Y-82904845D01*
|
||||||
|
X98645400Y-82904845D02*
|
||||||
|
X102058045Y-79492200D01*
|
||||||
|
D13*
|
||||||
|
%TO.N,/GND*%
|
||||||
|
X163941400Y-105621400D02*
|
||||||
|
X165100000Y-106780000D01*
|
||||||
|
X165100000Y-106780000D02*
|
||||||
|
X165100000Y-116750000D01*
|
||||||
|
X163941400Y-84274200D02*
|
||||||
|
X163941400Y-82058600D01*
|
||||||
|
X163941400Y-82058600D02*
|
||||||
|
X164720000Y-81280000D01*
|
||||||
|
X164720000Y-81280000D02*
|
||||||
|
X167640000Y-81280000D01*
|
||||||
|
X162081400Y-86134200D02*
|
||||||
|
X163941400Y-84274200D01*
|
||||||
|
X163941400Y-84274200D02*
|
||||||
|
X163941400Y-84600000D01*
|
||||||
|
%TO.N,/CAN_GND*%
|
||||||
|
X182500000Y-105750000D02*
|
||||||
|
X182500000Y-118750000D01*
|
||||||
|
X182500000Y-118750000D02*
|
||||||
|
X181870000Y-119380000D01*
|
||||||
|
X181870000Y-119380000D02*
|
||||||
|
X180340000Y-119380000D01*
|
||||||
|
X182500000Y-92750000D02*
|
||||||
|
X182500000Y-105750000D01*
|
||||||
|
X182500000Y-105750000D02*
|
||||||
|
X181570000Y-106680000D01*
|
||||||
|
X181570000Y-106680000D02*
|
||||||
|
X180340000Y-106680000D01*
|
||||||
|
X180340000Y-81280000D02*
|
||||||
|
X181530000Y-81280000D01*
|
||||||
|
X181530000Y-81280000D02*
|
||||||
|
X182500000Y-82250000D01*
|
||||||
|
X182500000Y-82250000D02*
|
||||||
|
X182500000Y-92750000D01*
|
||||||
|
X182500000Y-92750000D02*
|
||||||
|
X181270000Y-93980000D01*
|
||||||
|
X181270000Y-93980000D02*
|
||||||
|
X180340000Y-93980000D01*
|
||||||
|
%TO.N,/CAN_24V*%
|
||||||
|
X177750000Y-98000000D02*
|
||||||
|
X177750000Y-111000000D01*
|
||||||
|
X177750000Y-111000000D02*
|
||||||
|
X178510000Y-111760000D01*
|
||||||
|
X178510000Y-111760000D02*
|
||||||
|
X180340000Y-111760000D01*
|
||||||
|
X177750000Y-85750000D02*
|
||||||
|
X177750000Y-98000000D01*
|
||||||
|
X177750000Y-98000000D02*
|
||||||
|
X178810000Y-99060000D01*
|
||||||
|
X178810000Y-99060000D02*
|
||||||
|
X180340000Y-99060000D01*
|
||||||
|
X180340000Y-73660000D02*
|
||||||
|
X178590000Y-73660000D01*
|
||||||
|
X178590000Y-73660000D02*
|
||||||
|
X177750000Y-74500000D01*
|
||||||
|
X177750000Y-74500000D02*
|
||||||
|
X177750000Y-85750000D01*
|
||||||
|
X177750000Y-85750000D02*
|
||||||
|
X178360000Y-86360000D01*
|
||||||
|
X178360000Y-86360000D02*
|
||||||
|
X180340000Y-86360000D01*
|
||||||
|
%TO.N,/GND*%
|
||||||
|
X163941400Y-92941400D02*
|
||||||
|
X164980000Y-93980000D01*
|
||||||
|
X163941400Y-91800000D02*
|
||||||
|
X163941400Y-92941400D01*
|
||||||
|
X162201400Y-86134200D02*
|
||||||
|
X163941400Y-87874200D01*
|
||||||
|
X153341400Y-86134200D02*
|
||||||
|
X162081400Y-86134200D01*
|
||||||
|
X163941400Y-91800000D02*
|
||||||
|
X163941400Y-105621400D01*
|
||||||
|
X163941400Y-87874200D02*
|
||||||
|
X163941400Y-84600000D01*
|
||||||
|
X163941400Y-105621400D02*
|
||||||
|
X165000000Y-106680000D01*
|
||||||
|
X162081400Y-86134200D02*
|
||||||
|
X162201400Y-86134200D01*
|
||||||
|
X164980000Y-93980000D02*
|
||||||
|
X167640000Y-93980000D01*
|
||||||
|
X165000000Y-106680000D02*
|
||||||
|
X167640000Y-106680000D01*
|
||||||
|
X163941400Y-91800000D02*
|
||||||
|
X163941400Y-87874200D01*
|
||||||
|
D12*
|
||||||
|
%TO.N,/E5*%
|
||||||
|
X107421400Y-84134200D02*
|
||||||
|
X107981400Y-84134200D01*
|
||||||
|
%TD*%
|
||||||
|
%TA.AperFunction,Conductor*%
|
||||||
|
%TO.N,/GND*%
|
||||||
|
G36*
|
||||||
|
X163889279Y-84807265D02*
|
||||||
|
G01*
|
||||||
|
X163939802Y-84855526D01*
|
||||||
|
X163956118Y-84909694D01*
|
||||||
|
X164123282Y-87584312D01*
|
||||||
|
X164107817Y-87652449D01*
|
||||||
|
X164057970Y-87701409D01*
|
||||||
|
X163989567Y-87715647D01*
|
||||||
|
X163924324Y-87690643D01*
|
||||||
|
X163919509Y-87686777D01*
|
||||||
|
X163127182Y-87017531D01*
|
||||||
|
X162197722Y-86232452D01*
|
||||||
|
X162159210Y-86174157D01*
|
||||||
|
X162158329Y-86104293D01*
|
||||||
|
X162195359Y-86045043D01*
|
||||||
|
X162201160Y-86040194D01*
|
||||||
|
X163755797Y-84819888D01*
|
||||||
|
X163820684Y-84793980D01*
|
||||||
|
X163889279Y-84807265D01*
|
||||||
|
G37*
|
||||||
|
%TD.AperFunction*%
|
||||||
|
%TD*%
|
||||||
|
M02*
|
||||||
245
Switch V8/Meycad/Meycad-B_Mask.gbr
Normal file
245
Switch V8/Meycad/Meycad-B_Mask.gbr
Normal file
@@ -0,0 +1,245 @@
|
|||||||
|
%TF.GenerationSoftware,KiCad,Pcbnew,9.0.2*%
|
||||||
|
%TF.CreationDate,2025-07-20T17:27:30+02:00*%
|
||||||
|
%TF.ProjectId,Meycad,4d657963-6164-42e6-9b69-6361645f7063,rev?*%
|
||||||
|
%TF.SameCoordinates,Original*%
|
||||||
|
%TF.FileFunction,Soldermask,Bot*%
|
||||||
|
%TF.FilePolarity,Negative*%
|
||||||
|
%FSLAX46Y46*%
|
||||||
|
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||||
|
G04 Created by KiCad (PCBNEW 9.0.2) date 2025-07-20 17:27:30*
|
||||||
|
%MOMM*%
|
||||||
|
%LPD*%
|
||||||
|
G01*
|
||||||
|
G04 APERTURE LIST*
|
||||||
|
%ADD10R,1.700000X1.700000*%
|
||||||
|
%ADD11C,1.700000*%
|
||||||
|
G04 APERTURE END LIST*
|
||||||
|
D10*
|
||||||
|
%TO.C,J_Extension1*%
|
||||||
|
X104140000Y-71120000D03*
|
||||||
|
D11*
|
||||||
|
X104140000Y-73660000D03*
|
||||||
|
X101600000Y-71120000D03*
|
||||||
|
X101600000Y-73660000D03*
|
||||||
|
X99060000Y-71120000D03*
|
||||||
|
X99060000Y-73660000D03*
|
||||||
|
X96520000Y-71120000D03*
|
||||||
|
X96520000Y-73660000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.C,CAN_4_1*%
|
||||||
|
X180340000Y-73660000D03*
|
||||||
|
X180340000Y-76200000D03*
|
||||||
|
X180340000Y-78740000D03*
|
||||||
|
D10*
|
||||||
|
X180340000Y-81280000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.C,J_Front_1_1*%
|
||||||
|
X175260000Y-99060000D03*
|
||||||
|
D11*
|
||||||
|
X175260000Y-96520000D03*
|
||||||
|
X175260000Y-93980000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,J6*%
|
||||||
|
X187960000Y-93980000D03*
|
||||||
|
D11*
|
||||||
|
X187960000Y-91440000D03*
|
||||||
|
X187960000Y-88900000D03*
|
||||||
|
X187960000Y-86360000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.C,Arduino_R1*%
|
||||||
|
X107696000Y-111760000D03*
|
||||||
|
X107696000Y-109220000D03*
|
||||||
|
X107696000Y-106680000D03*
|
||||||
|
X107696000Y-104140000D03*
|
||||||
|
X107696000Y-101600000D03*
|
||||||
|
X107696000Y-99060000D03*
|
||||||
|
X107696000Y-96520000D03*
|
||||||
|
X107696000Y-93980000D03*
|
||||||
|
X107696000Y-91440000D03*
|
||||||
|
X107696000Y-88900000D03*
|
||||||
|
X107696000Y-86360000D03*
|
||||||
|
D10*
|
||||||
|
X107696000Y-83820000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.C,J2*%
|
||||||
|
X180340000Y-119380000D03*
|
||||||
|
D11*
|
||||||
|
X180340000Y-116840000D03*
|
||||||
|
X180340000Y-114300000D03*
|
||||||
|
X180340000Y-111760000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,J10*%
|
||||||
|
X175260000Y-91440000D03*
|
||||||
|
D11*
|
||||||
|
X175260000Y-88900000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,J_Front_1_3*%
|
||||||
|
X175260000Y-86360000D03*
|
||||||
|
D11*
|
||||||
|
X175260000Y-83820000D03*
|
||||||
|
X175260000Y-81280000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,J_Front_2*%
|
||||||
|
X167640000Y-93980000D03*
|
||||||
|
D11*
|
||||||
|
X167640000Y-96520000D03*
|
||||||
|
X167640000Y-99060000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,J4*%
|
||||||
|
X180340000Y-93980000D03*
|
||||||
|
D11*
|
||||||
|
X180340000Y-91440000D03*
|
||||||
|
X180340000Y-88900000D03*
|
||||||
|
X180340000Y-86360000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,J_CAN_2*%
|
||||||
|
X121920000Y-106680000D03*
|
||||||
|
D11*
|
||||||
|
X124460000Y-106680000D03*
|
||||||
|
X127000000Y-106680000D03*
|
||||||
|
X129540000Y-106680000D03*
|
||||||
|
X132080000Y-106680000D03*
|
||||||
|
X134620000Y-106680000D03*
|
||||||
|
X137160000Y-106680000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,J_Front_3*%
|
||||||
|
X167640000Y-106680000D03*
|
||||||
|
D11*
|
||||||
|
X167640000Y-109220000D03*
|
||||||
|
X167640000Y-111760000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.C,Arduino_L1*%
|
||||||
|
X92456000Y-111760000D03*
|
||||||
|
X92456000Y-109220000D03*
|
||||||
|
X92456000Y-106680000D03*
|
||||||
|
X92456000Y-104140000D03*
|
||||||
|
X92456000Y-101600000D03*
|
||||||
|
X92456000Y-99060000D03*
|
||||||
|
X92456000Y-96520000D03*
|
||||||
|
X92456000Y-93980000D03*
|
||||||
|
X92456000Y-91440000D03*
|
||||||
|
X92456000Y-88900000D03*
|
||||||
|
X92456000Y-86360000D03*
|
||||||
|
D10*
|
||||||
|
X92456000Y-83820000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.C,J_CAN_1*%
|
||||||
|
X121920000Y-119380000D03*
|
||||||
|
D11*
|
||||||
|
X124460000Y-119380000D03*
|
||||||
|
X127000000Y-119380000D03*
|
||||||
|
X129540000Y-119380000D03*
|
||||||
|
X132080000Y-119380000D03*
|
||||||
|
X134620000Y-119380000D03*
|
||||||
|
X137160000Y-119380000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,J_Front_1_2*%
|
||||||
|
X175260000Y-111760000D03*
|
||||||
|
D11*
|
||||||
|
X175260000Y-109220000D03*
|
||||||
|
X175260000Y-106680000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.C,J_Front_1*%
|
||||||
|
X167640000Y-86360000D03*
|
||||||
|
X167640000Y-83820000D03*
|
||||||
|
D10*
|
||||||
|
X167640000Y-81280000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.C,J7*%
|
||||||
|
X187960000Y-81280000D03*
|
||||||
|
D11*
|
||||||
|
X187960000Y-78740000D03*
|
||||||
|
X187960000Y-76200000D03*
|
||||||
|
X187960000Y-73660000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,J9*%
|
||||||
|
X175260000Y-104140000D03*
|
||||||
|
D11*
|
||||||
|
X175260000Y-101600000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,JJ_CAN_4*%
|
||||||
|
X121920000Y-81280000D03*
|
||||||
|
D11*
|
||||||
|
X124460000Y-81280000D03*
|
||||||
|
X127000000Y-81280000D03*
|
||||||
|
X129540000Y-81280000D03*
|
||||||
|
X132080000Y-81280000D03*
|
||||||
|
X134620000Y-81280000D03*
|
||||||
|
X137160000Y-81280000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,J8*%
|
||||||
|
X175260000Y-116840000D03*
|
||||||
|
D11*
|
||||||
|
X175260000Y-114300000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,CAN_2_1*%
|
||||||
|
X180340000Y-106680000D03*
|
||||||
|
D11*
|
||||||
|
X180340000Y-104140000D03*
|
||||||
|
X180340000Y-101600000D03*
|
||||||
|
X180340000Y-99060000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,J_CAN_3*%
|
||||||
|
X121920000Y-93980000D03*
|
||||||
|
D11*
|
||||||
|
X124460000Y-93980000D03*
|
||||||
|
X127000000Y-93980000D03*
|
||||||
|
X129540000Y-93980000D03*
|
||||||
|
X132080000Y-93980000D03*
|
||||||
|
X134620000Y-93980000D03*
|
||||||
|
X137160000Y-93980000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.C,J1*%
|
||||||
|
X167640000Y-116750000D03*
|
||||||
|
D10*
|
||||||
|
X165100000Y-116750000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.C,J11*%
|
||||||
|
X175260000Y-78740000D03*
|
||||||
|
D11*
|
||||||
|
X175260000Y-76200000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,J_Extension_2*%
|
||||||
|
X167640000Y-66040000D03*
|
||||||
|
D11*
|
||||||
|
X167640000Y-68580000D03*
|
||||||
|
X167640000Y-71120000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,J5*%
|
||||||
|
X187960000Y-106680000D03*
|
||||||
|
D11*
|
||||||
|
X187960000Y-104140000D03*
|
||||||
|
X187960000Y-101600000D03*
|
||||||
|
X187960000Y-99060000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,J3*%
|
||||||
|
X187960000Y-119380000D03*
|
||||||
|
D11*
|
||||||
|
X187960000Y-116840000D03*
|
||||||
|
X187960000Y-114300000D03*
|
||||||
|
X187960000Y-111760000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,J_Stepdown1*%
|
||||||
|
X153341400Y-83594200D03*
|
||||||
|
D11*
|
||||||
|
X153341400Y-86134200D03*
|
||||||
|
X153341400Y-88674200D03*
|
||||||
|
%TD*%
|
||||||
|
M02*
|
||||||
15
Switch V8/Meycad/Meycad-B_Paste.gbr
Normal file
15
Switch V8/Meycad/Meycad-B_Paste.gbr
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
%TF.GenerationSoftware,KiCad,Pcbnew,9.0.2*%
|
||||||
|
%TF.CreationDate,2025-07-20T17:27:29+02:00*%
|
||||||
|
%TF.ProjectId,Meycad,4d657963-6164-42e6-9b69-6361645f7063,rev?*%
|
||||||
|
%TF.SameCoordinates,Original*%
|
||||||
|
%TF.FileFunction,Paste,Bot*%
|
||||||
|
%TF.FilePolarity,Positive*%
|
||||||
|
%FSLAX46Y46*%
|
||||||
|
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||||
|
G04 Created by KiCad (PCBNEW 9.0.2) date 2025-07-20 17:27:29*
|
||||||
|
%MOMM*%
|
||||||
|
%LPD*%
|
||||||
|
G01*
|
||||||
|
G04 APERTURE LIST*
|
||||||
|
G04 APERTURE END LIST*
|
||||||
|
M02*
|
||||||
15
Switch V8/Meycad/Meycad-B_Silkscreen.gbr
Normal file
15
Switch V8/Meycad/Meycad-B_Silkscreen.gbr
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
%TF.GenerationSoftware,KiCad,Pcbnew,9.0.2*%
|
||||||
|
%TF.CreationDate,2025-07-20T17:27:29+02:00*%
|
||||||
|
%TF.ProjectId,Meycad,4d657963-6164-42e6-9b69-6361645f7063,rev?*%
|
||||||
|
%TF.SameCoordinates,Original*%
|
||||||
|
%TF.FileFunction,Legend,Bot*%
|
||||||
|
%TF.FilePolarity,Positive*%
|
||||||
|
%FSLAX46Y46*%
|
||||||
|
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||||
|
G04 Created by KiCad (PCBNEW 9.0.2) date 2025-07-20 17:27:29*
|
||||||
|
%MOMM*%
|
||||||
|
%LPD*%
|
||||||
|
G01*
|
||||||
|
G04 APERTURE LIST*
|
||||||
|
G04 APERTURE END LIST*
|
||||||
|
M02*
|
||||||
43
Switch V8/Meycad/Meycad-Edge_Cuts.gbr
Normal file
43
Switch V8/Meycad/Meycad-Edge_Cuts.gbr
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
%TF.GenerationSoftware,KiCad,Pcbnew,9.0.2*%
|
||||||
|
%TF.CreationDate,2025-07-20T17:27:30+02:00*%
|
||||||
|
%TF.ProjectId,Meycad,4d657963-6164-42e6-9b69-6361645f7063,rev?*%
|
||||||
|
%TF.SameCoordinates,Original*%
|
||||||
|
%TF.FileFunction,Profile,NP*%
|
||||||
|
%FSLAX46Y46*%
|
||||||
|
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||||
|
G04 Created by KiCad (PCBNEW 9.0.2) date 2025-07-20 17:27:30*
|
||||||
|
%MOMM*%
|
||||||
|
%LPD*%
|
||||||
|
G01*
|
||||||
|
G04 APERTURE LIST*
|
||||||
|
%TA.AperFunction,Profile*%
|
||||||
|
%ADD10C,0.050000*%
|
||||||
|
%TD*%
|
||||||
|
G04 APERTURE END LIST*
|
||||||
|
D10*
|
||||||
|
X171037200Y-57750000D02*
|
||||||
|
X171500000Y-57750000D01*
|
||||||
|
X171500000Y-121250000D01*
|
||||||
|
X171037200Y-121250000D01*
|
||||||
|
X171037200Y-57750000D01*
|
||||||
|
X90116400Y-57574200D02*
|
||||||
|
X190436400Y-57574200D01*
|
||||||
|
X190436400Y-121574200D01*
|
||||||
|
X90116400Y-121574200D01*
|
||||||
|
X90116400Y-57574200D01*
|
||||||
|
X106605200Y-76441200D02*
|
||||||
|
X161000000Y-76441200D01*
|
||||||
|
X161000000Y-77000000D01*
|
||||||
|
X106605200Y-77000000D01*
|
||||||
|
X106605200Y-76441200D01*
|
||||||
|
X165287200Y-76441200D02*
|
||||||
|
X170750000Y-76441200D01*
|
||||||
|
X170750000Y-77000000D01*
|
||||||
|
X165287200Y-77000000D01*
|
||||||
|
X165287200Y-76441200D01*
|
||||||
|
X90250000Y-76352400D02*
|
||||||
|
X93560000Y-76352400D01*
|
||||||
|
X93560000Y-76911200D01*
|
||||||
|
X90250000Y-76911200D01*
|
||||||
|
X90250000Y-76352400D01*
|
||||||
|
M02*
|
||||||
808
Switch V8/Meycad/Meycad-F_Cu.gbr
Normal file
808
Switch V8/Meycad/Meycad-F_Cu.gbr
Normal file
@@ -0,0 +1,808 @@
|
|||||||
|
%TF.GenerationSoftware,KiCad,Pcbnew,9.0.2*%
|
||||||
|
%TF.CreationDate,2025-07-20T17:27:29+02:00*%
|
||||||
|
%TF.ProjectId,Meycad,4d657963-6164-42e6-9b69-6361645f7063,rev?*%
|
||||||
|
%TF.SameCoordinates,Original*%
|
||||||
|
%TF.FileFunction,Copper,L1,Top*%
|
||||||
|
%TF.FilePolarity,Positive*%
|
||||||
|
%FSLAX46Y46*%
|
||||||
|
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||||
|
G04 Created by KiCad (PCBNEW 9.0.2) date 2025-07-20 17:27:29*
|
||||||
|
%MOMM*%
|
||||||
|
%LPD*%
|
||||||
|
G01*
|
||||||
|
G04 APERTURE LIST*
|
||||||
|
%TA.AperFunction,ComponentPad*%
|
||||||
|
%ADD10R,1.700000X1.700000*%
|
||||||
|
%TD*%
|
||||||
|
%TA.AperFunction,ComponentPad*%
|
||||||
|
%ADD11C,1.700000*%
|
||||||
|
%TD*%
|
||||||
|
%TA.AperFunction,Conductor*%
|
||||||
|
%ADD12C,0.635000*%
|
||||||
|
%TD*%
|
||||||
|
%TA.AperFunction,Conductor*%
|
||||||
|
%ADD13C,0.381000*%
|
||||||
|
%TD*%
|
||||||
|
G04 APERTURE END LIST*
|
||||||
|
D10*
|
||||||
|
%TO.P,J_Extension1,1,Pin_1*%
|
||||||
|
%TO.N,/E5*%
|
||||||
|
X104140000Y-71120000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J_Extension1,2,Pin_2*%
|
||||||
|
%TO.N,/E6*%
|
||||||
|
X104140000Y-73660000D03*
|
||||||
|
%TO.P,J_Extension1,3,Pin_3*%
|
||||||
|
%TO.N,/E7*%
|
||||||
|
X101600000Y-71120000D03*
|
||||||
|
%TO.P,J_Extension1,4,Pin_4*%
|
||||||
|
%TO.N,/E8*%
|
||||||
|
X101600000Y-73660000D03*
|
||||||
|
%TO.P,J_Extension1,5,Pin_5*%
|
||||||
|
%TO.N,/E4*%
|
||||||
|
X99060000Y-71120000D03*
|
||||||
|
%TO.P,J_Extension1,6,Pin_6*%
|
||||||
|
%TO.N,/E3*%
|
||||||
|
X99060000Y-73660000D03*
|
||||||
|
%TO.P,J_Extension1,7,Pin_7*%
|
||||||
|
%TO.N,/E2*%
|
||||||
|
X96520000Y-71120000D03*
|
||||||
|
%TO.P,J_Extension1,8,Pin_8*%
|
||||||
|
%TO.N,/E1*%
|
||||||
|
X96520000Y-73660000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.P,CAN_4_1,4,Pin_4*%
|
||||||
|
%TO.N,/CAN_24V*%
|
||||||
|
X180340000Y-73660000D03*
|
||||||
|
%TO.P,CAN_4_1,3,Pin_3*%
|
||||||
|
%TO.N,/CAN4_H*%
|
||||||
|
X180340000Y-76200000D03*
|
||||||
|
%TO.P,CAN_4_1,2,Pin_2*%
|
||||||
|
%TO.N,/CAN4_L*%
|
||||||
|
X180340000Y-78740000D03*
|
||||||
|
D10*
|
||||||
|
%TO.P,CAN_4_1,1,Pin_1*%
|
||||||
|
%TO.N,/CAN_GND*%
|
||||||
|
X180340000Y-81280000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.P,J_Front_1_1,1,Pin_1*%
|
||||||
|
%TO.N,/CAN_24V*%
|
||||||
|
X175260000Y-99060000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J_Front_1_1,2,Pin_2*%
|
||||||
|
%TO.N,/CAN_GND*%
|
||||||
|
X175260000Y-96520000D03*
|
||||||
|
%TO.P,J_Front_1_1,3,Pin_3*%
|
||||||
|
X175260000Y-93980000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,J6,1,Pin_1*%
|
||||||
|
%TO.N,/CAN_GND*%
|
||||||
|
X187960000Y-93980000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J6,2,Pin_2*%
|
||||||
|
%TO.N,/CAN3_L*%
|
||||||
|
X187960000Y-91440000D03*
|
||||||
|
%TO.P,J6,3,Pin_3*%
|
||||||
|
%TO.N,/CAN3_H*%
|
||||||
|
X187960000Y-88900000D03*
|
||||||
|
%TO.P,J6,4,Pin_4*%
|
||||||
|
%TO.N,/CAN_24V*%
|
||||||
|
X187960000Y-86360000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.P,Arduino_R1,12,Pin_12*%
|
||||||
|
%TO.N,unconnected-(Arduino_R1-Pin_12-Pad12)*%
|
||||||
|
X107696000Y-111760000D03*
|
||||||
|
%TO.P,Arduino_R1,11,Pin_11*%
|
||||||
|
%TO.N,unconnected-(Arduino_R1-Pin_11-Pad11)*%
|
||||||
|
X107696000Y-109220000D03*
|
||||||
|
%TO.P,Arduino_R1,10,Pin_10*%
|
||||||
|
%TO.N,unconnected-(Arduino_R1-Pin_10-Pad10)*%
|
||||||
|
X107696000Y-106680000D03*
|
||||||
|
%TO.P,Arduino_R1,9,Pin_9*%
|
||||||
|
%TO.N,unconnected-(Arduino_R1-Pin_9-Pad9)*%
|
||||||
|
X107696000Y-104140000D03*
|
||||||
|
%TO.P,Arduino_R1,8,Pin_8*%
|
||||||
|
%TO.N,/E1*%
|
||||||
|
X107696000Y-101600000D03*
|
||||||
|
%TO.P,Arduino_R1,7,Pin_7*%
|
||||||
|
%TO.N,/E2*%
|
||||||
|
X107696000Y-99060000D03*
|
||||||
|
%TO.P,Arduino_R1,6,Pin_6*%
|
||||||
|
%TO.N,/E3*%
|
||||||
|
X107696000Y-96520000D03*
|
||||||
|
%TO.P,Arduino_R1,5,Pin_5*%
|
||||||
|
%TO.N,/E4*%
|
||||||
|
X107696000Y-93980000D03*
|
||||||
|
%TO.P,Arduino_R1,4,Pin_4*%
|
||||||
|
%TO.N,/E8*%
|
||||||
|
X107696000Y-91440000D03*
|
||||||
|
%TO.P,Arduino_R1,3,Pin_3*%
|
||||||
|
%TO.N,/E7*%
|
||||||
|
X107696000Y-88900000D03*
|
||||||
|
%TO.P,Arduino_R1,2,Pin_2*%
|
||||||
|
%TO.N,/E6*%
|
||||||
|
X107696000Y-86360000D03*
|
||||||
|
D10*
|
||||||
|
%TO.P,Arduino_R1,1,Pin_1*%
|
||||||
|
%TO.N,/E5*%
|
||||||
|
X107696000Y-83820000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.P,J2,1,Pin_1*%
|
||||||
|
%TO.N,/CAN_GND*%
|
||||||
|
X180340000Y-119380000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J2,2,Pin_2*%
|
||||||
|
%TO.N,/CAN1_L*%
|
||||||
|
X180340000Y-116840000D03*
|
||||||
|
%TO.P,J2,3,Pin_3*%
|
||||||
|
%TO.N,/CAN1_H*%
|
||||||
|
X180340000Y-114300000D03*
|
||||||
|
%TO.P,J2,4,Pin_4*%
|
||||||
|
%TO.N,/CAN_24V*%
|
||||||
|
X180340000Y-111760000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,J10,1,Pin_1*%
|
||||||
|
%TO.N,/CAN3_L*%
|
||||||
|
X175260000Y-91440000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J10,2,Pin_2*%
|
||||||
|
%TO.N,/CAN3_H*%
|
||||||
|
X175260000Y-88900000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,J_Front_1_3,1,Pin_1*%
|
||||||
|
%TO.N,/CAN_24V*%
|
||||||
|
X175260000Y-86360000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J_Front_1_3,2,Pin_2*%
|
||||||
|
%TO.N,/CAN_GND*%
|
||||||
|
X175260000Y-83820000D03*
|
||||||
|
%TO.P,J_Front_1_3,3,Pin_3*%
|
||||||
|
X175260000Y-81280000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,J_Front_2,1,Pin_1*%
|
||||||
|
%TO.N,/GND*%
|
||||||
|
X167640000Y-93980000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J_Front_2,2,Pin_2*%
|
||||||
|
%TO.N,unconnected-(J_Front_2-Pin_2-Pad2)*%
|
||||||
|
X167640000Y-96520000D03*
|
||||||
|
%TO.P,J_Front_2,3,Pin_3*%
|
||||||
|
%TO.N,/24V*%
|
||||||
|
X167640000Y-99060000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,J4,1,Pin_1*%
|
||||||
|
%TO.N,/CAN_GND*%
|
||||||
|
X180340000Y-93980000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J4,2,Pin_2*%
|
||||||
|
%TO.N,/CAN3_L*%
|
||||||
|
X180340000Y-91440000D03*
|
||||||
|
%TO.P,J4,3,Pin_3*%
|
||||||
|
%TO.N,/CAN3_H*%
|
||||||
|
X180340000Y-88900000D03*
|
||||||
|
%TO.P,J4,4,Pin_4*%
|
||||||
|
%TO.N,/CAN_24V*%
|
||||||
|
X180340000Y-86360000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,J_CAN_2,1,Pin_1*%
|
||||||
|
%TO.N,/5V*%
|
||||||
|
X121920000Y-106680000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J_CAN_2,2,Pin_2*%
|
||||||
|
%TO.N,/GND*%
|
||||||
|
X124460000Y-106680000D03*
|
||||||
|
%TO.P,J_CAN_2,3,Pin_3*%
|
||||||
|
%TO.N,/CS2*%
|
||||||
|
X127000000Y-106680000D03*
|
||||||
|
%TO.P,J_CAN_2,4,Pin_4*%
|
||||||
|
%TO.N,/SO*%
|
||||||
|
X129540000Y-106680000D03*
|
||||||
|
%TO.P,J_CAN_2,5,Pin_5*%
|
||||||
|
%TO.N,/SI*%
|
||||||
|
X132080000Y-106680000D03*
|
||||||
|
%TO.P,J_CAN_2,6,Pin_6*%
|
||||||
|
%TO.N,/SCK*%
|
||||||
|
X134620000Y-106680000D03*
|
||||||
|
%TO.P,J_CAN_2,7,Pin_7*%
|
||||||
|
%TO.N,unconnected-(J_CAN_2-Pin_7-Pad7)*%
|
||||||
|
X137160000Y-106680000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,J_Front_3,1,Pin_1*%
|
||||||
|
%TO.N,/GND*%
|
||||||
|
X167640000Y-106680000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J_Front_3,2,Pin_2*%
|
||||||
|
%TO.N,unconnected-(J_Front_3-Pin_2-Pad2)*%
|
||||||
|
X167640000Y-109220000D03*
|
||||||
|
%TO.P,J_Front_3,3,Pin_3*%
|
||||||
|
%TO.N,/24V*%
|
||||||
|
X167640000Y-111760000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.P,Arduino_L1,12,Pin_12*%
|
||||||
|
%TO.N,/5V*%
|
||||||
|
X92456000Y-111760000D03*
|
||||||
|
%TO.P,Arduino_L1,11,Pin_11*%
|
||||||
|
%TO.N,/GND*%
|
||||||
|
X92456000Y-109220000D03*
|
||||||
|
%TO.P,Arduino_L1,10,Pin_10*%
|
||||||
|
%TO.N,unconnected-(Arduino_L1-Pin_10-Pad10)*%
|
||||||
|
X92456000Y-106680000D03*
|
||||||
|
%TO.P,Arduino_L1,9,Pin_9*%
|
||||||
|
%TO.N,unconnected-(Arduino_L1-Pin_9-Pad9)*%
|
||||||
|
X92456000Y-104140000D03*
|
||||||
|
%TO.P,Arduino_L1,8,Pin_8*%
|
||||||
|
%TO.N,/CS1*%
|
||||||
|
X92456000Y-101600000D03*
|
||||||
|
%TO.P,Arduino_L1,7,Pin_7*%
|
||||||
|
%TO.N,/CS2*%
|
||||||
|
X92456000Y-99060000D03*
|
||||||
|
%TO.P,Arduino_L1,6,Pin_6*%
|
||||||
|
%TO.N,/CS3*%
|
||||||
|
X92456000Y-96520000D03*
|
||||||
|
%TO.P,Arduino_L1,5,Pin_5*%
|
||||||
|
%TO.N,/CS4*%
|
||||||
|
X92456000Y-93980000D03*
|
||||||
|
%TO.P,Arduino_L1,4,Pin_4*%
|
||||||
|
%TO.N,/SO*%
|
||||||
|
X92456000Y-91440000D03*
|
||||||
|
%TO.P,Arduino_L1,3,Pin_3*%
|
||||||
|
%TO.N,/SI*%
|
||||||
|
X92456000Y-88900000D03*
|
||||||
|
%TO.P,Arduino_L1,2,Pin_2*%
|
||||||
|
%TO.N,/SCK*%
|
||||||
|
X92456000Y-86360000D03*
|
||||||
|
D10*
|
||||||
|
%TO.P,Arduino_L1,1,Pin_1*%
|
||||||
|
%TO.N,unconnected-(Arduino_L1-Pin_1-Pad1)*%
|
||||||
|
X92456000Y-83820000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.P,J_CAN_1,1,Pin_1*%
|
||||||
|
%TO.N,/5V*%
|
||||||
|
X121920000Y-119380000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J_CAN_1,2,Pin_2*%
|
||||||
|
%TO.N,/GND*%
|
||||||
|
X124460000Y-119380000D03*
|
||||||
|
%TO.P,J_CAN_1,3,Pin_3*%
|
||||||
|
%TO.N,/CS1*%
|
||||||
|
X127000000Y-119380000D03*
|
||||||
|
%TO.P,J_CAN_1,4,Pin_4*%
|
||||||
|
%TO.N,/SO*%
|
||||||
|
X129540000Y-119380000D03*
|
||||||
|
%TO.P,J_CAN_1,5,Pin_5*%
|
||||||
|
%TO.N,/SI*%
|
||||||
|
X132080000Y-119380000D03*
|
||||||
|
%TO.P,J_CAN_1,6,Pin_6*%
|
||||||
|
%TO.N,/SCK*%
|
||||||
|
X134620000Y-119380000D03*
|
||||||
|
%TO.P,J_CAN_1,7,Pin_7*%
|
||||||
|
%TO.N,unconnected-(J_CAN_1-Pin_7-Pad7)*%
|
||||||
|
X137160000Y-119380000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,J_Front_1_2,1,Pin_1*%
|
||||||
|
%TO.N,/CAN_24V*%
|
||||||
|
X175260000Y-111760000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J_Front_1_2,2,Pin_2*%
|
||||||
|
%TO.N,/CAN_GND*%
|
||||||
|
X175260000Y-109220000D03*
|
||||||
|
%TO.P,J_Front_1_2,3,Pin_3*%
|
||||||
|
X175260000Y-106680000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.P,J_Front_1,3,Pin_3*%
|
||||||
|
%TO.N,/24V*%
|
||||||
|
X167640000Y-86360000D03*
|
||||||
|
%TO.P,J_Front_1,2,Pin_2*%
|
||||||
|
%TO.N,unconnected-(J_Front_1-Pin_2-Pad2)*%
|
||||||
|
X167640000Y-83820000D03*
|
||||||
|
D10*
|
||||||
|
%TO.P,J_Front_1,1,Pin_1*%
|
||||||
|
%TO.N,/GND*%
|
||||||
|
X167640000Y-81280000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.P,J7,1,Pin_1*%
|
||||||
|
%TO.N,/CAN_GND*%
|
||||||
|
X187960000Y-81280000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J7,2,Pin_2*%
|
||||||
|
%TO.N,/CAN4_L*%
|
||||||
|
X187960000Y-78740000D03*
|
||||||
|
%TO.P,J7,3,Pin_3*%
|
||||||
|
%TO.N,/CAN4_H*%
|
||||||
|
X187960000Y-76200000D03*
|
||||||
|
%TO.P,J7,4,Pin_4*%
|
||||||
|
%TO.N,/CAN_24V*%
|
||||||
|
X187960000Y-73660000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,J9,1,Pin_1*%
|
||||||
|
%TO.N,/CAN2_L*%
|
||||||
|
X175260000Y-104140000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J9,2,Pin_2*%
|
||||||
|
%TO.N,/CAN2_H*%
|
||||||
|
X175260000Y-101600000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,JJ_CAN_4,1,Pin_1*%
|
||||||
|
%TO.N,/5V*%
|
||||||
|
X121920000Y-81280000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,JJ_CAN_4,2,Pin_2*%
|
||||||
|
%TO.N,/GND*%
|
||||||
|
X124460000Y-81280000D03*
|
||||||
|
%TO.P,JJ_CAN_4,3,Pin_3*%
|
||||||
|
%TO.N,/CS4*%
|
||||||
|
X127000000Y-81280000D03*
|
||||||
|
%TO.P,JJ_CAN_4,4,Pin_4*%
|
||||||
|
%TO.N,/SO*%
|
||||||
|
X129540000Y-81280000D03*
|
||||||
|
%TO.P,JJ_CAN_4,5,Pin_5*%
|
||||||
|
%TO.N,/SI*%
|
||||||
|
X132080000Y-81280000D03*
|
||||||
|
%TO.P,JJ_CAN_4,6,Pin_6*%
|
||||||
|
%TO.N,/SCK*%
|
||||||
|
X134620000Y-81280000D03*
|
||||||
|
%TO.P,JJ_CAN_4,7,Pin_7*%
|
||||||
|
%TO.N,unconnected-(JJ_CAN_4-Pin_7-Pad7)*%
|
||||||
|
X137160000Y-81280000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,J8,1,Pin_1*%
|
||||||
|
%TO.N,/CAN1_L*%
|
||||||
|
X175260000Y-116840000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J8,2,Pin_2*%
|
||||||
|
%TO.N,/CAN1_H*%
|
||||||
|
X175260000Y-114300000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,CAN_2_1,1,Pin_1*%
|
||||||
|
%TO.N,/CAN_GND*%
|
||||||
|
X180340000Y-106680000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,CAN_2_1,2,Pin_2*%
|
||||||
|
%TO.N,/CAN2_L*%
|
||||||
|
X180340000Y-104140000D03*
|
||||||
|
%TO.P,CAN_2_1,3,Pin_3*%
|
||||||
|
%TO.N,/CAN2_H*%
|
||||||
|
X180340000Y-101600000D03*
|
||||||
|
%TO.P,CAN_2_1,4,Pin_4*%
|
||||||
|
%TO.N,/CAN_24V*%
|
||||||
|
X180340000Y-99060000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,J_CAN_3,1,Pin_1*%
|
||||||
|
%TO.N,/5V*%
|
||||||
|
X121920000Y-93980000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J_CAN_3,2,Pin_2*%
|
||||||
|
%TO.N,/GND*%
|
||||||
|
X124460000Y-93980000D03*
|
||||||
|
%TO.P,J_CAN_3,3,Pin_3*%
|
||||||
|
%TO.N,/CS3*%
|
||||||
|
X127000000Y-93980000D03*
|
||||||
|
%TO.P,J_CAN_3,4,Pin_4*%
|
||||||
|
%TO.N,/SO*%
|
||||||
|
X129540000Y-93980000D03*
|
||||||
|
%TO.P,J_CAN_3,5,Pin_5*%
|
||||||
|
%TO.N,/SI*%
|
||||||
|
X132080000Y-93980000D03*
|
||||||
|
%TO.P,J_CAN_3,6,Pin_6*%
|
||||||
|
%TO.N,/SCK*%
|
||||||
|
X134620000Y-93980000D03*
|
||||||
|
%TO.P,J_CAN_3,7,Pin_7*%
|
||||||
|
%TO.N,unconnected-(J_CAN_3-Pin_7-Pad7)*%
|
||||||
|
X137160000Y-93980000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.P,J1,2,Pin_2*%
|
||||||
|
%TO.N,/24V*%
|
||||||
|
X167640000Y-116750000D03*
|
||||||
|
D10*
|
||||||
|
%TO.P,J1,1,Pin_1*%
|
||||||
|
%TO.N,/GND*%
|
||||||
|
X165100000Y-116750000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.P,J11,1,Pin_1*%
|
||||||
|
%TO.N,/CAN4_L*%
|
||||||
|
X175260000Y-78740000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J11,2,Pin_2*%
|
||||||
|
%TO.N,/CAN4_H*%
|
||||||
|
X175260000Y-76200000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,J_Extension_2,1,Pin_1*%
|
||||||
|
%TO.N,/5V*%
|
||||||
|
X167640000Y-66040000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J_Extension_2,2,Pin_2*%
|
||||||
|
%TO.N,/GND*%
|
||||||
|
X167640000Y-68580000D03*
|
||||||
|
%TO.P,J_Extension_2,3,Pin_3*%
|
||||||
|
%TO.N,/24V*%
|
||||||
|
X167640000Y-71120000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,J5,1,Pin_1*%
|
||||||
|
%TO.N,/CAN_GND*%
|
||||||
|
X187960000Y-106680000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J5,2,Pin_2*%
|
||||||
|
%TO.N,/CAN2_L*%
|
||||||
|
X187960000Y-104140000D03*
|
||||||
|
%TO.P,J5,3,Pin_3*%
|
||||||
|
%TO.N,/CAN2_H*%
|
||||||
|
X187960000Y-101600000D03*
|
||||||
|
%TO.P,J5,4,Pin_4*%
|
||||||
|
%TO.N,/CAN_24V*%
|
||||||
|
X187960000Y-99060000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,J3,1,Pin_1*%
|
||||||
|
%TO.N,/CAN_GND*%
|
||||||
|
X187960000Y-119380000D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J3,2,Pin_2*%
|
||||||
|
%TO.N,/CAN1_L*%
|
||||||
|
X187960000Y-116840000D03*
|
||||||
|
%TO.P,J3,3,Pin_3*%
|
||||||
|
%TO.N,/CAN1_H*%
|
||||||
|
X187960000Y-114300000D03*
|
||||||
|
%TO.P,J3,4,Pin_4*%
|
||||||
|
%TO.N,/CAN_24V*%
|
||||||
|
X187960000Y-111760000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.P,J_Stepdown1,1,Pin_1*%
|
||||||
|
%TO.N,/5V*%
|
||||||
|
X153341400Y-83594200D03*
|
||||||
|
D11*
|
||||||
|
%TO.P,J_Stepdown1,2,Pin_2*%
|
||||||
|
%TO.N,/GND*%
|
||||||
|
X153341400Y-86134200D03*
|
||||||
|
%TO.P,J_Stepdown1,3,Pin_3*%
|
||||||
|
%TO.N,/24V*%
|
||||||
|
X153341400Y-88674200D03*
|
||||||
|
%TD*%
|
||||||
|
D12*
|
||||||
|
%TO.N,/GND*%
|
||||||
|
X153341400Y-86134200D02*
|
||||||
|
X156881400Y-86134200D01*
|
||||||
|
X156881400Y-86134200D02*
|
||||||
|
X162705400Y-80310200D01*
|
||||||
|
X162705400Y-80310200D02*
|
||||||
|
X162705400Y-69794600D01*
|
||||||
|
X162705400Y-69794600D02*
|
||||||
|
X163920000Y-68580000D01*
|
||||||
|
X163920000Y-68580000D02*
|
||||||
|
X167640000Y-68580000D01*
|
||||||
|
D13*
|
||||||
|
%TO.N,/E5*%
|
||||||
|
X105641400Y-83289400D02*
|
||||||
|
X105641400Y-72621400D01*
|
||||||
|
X105641400Y-72621400D02*
|
||||||
|
X104140000Y-71120000D01*
|
||||||
|
%TO.N,/E7*%
|
||||||
|
X102899900Y-78363484D02*
|
||||||
|
X102899900Y-72419900D01*
|
||||||
|
X102899900Y-72419900D02*
|
||||||
|
X101600000Y-71120000D01*
|
||||||
|
%TO.N,/E4*%
|
||||||
|
X107696000Y-93980000D02*
|
||||||
|
X105156000Y-93980000D01*
|
||||||
|
X105156000Y-93980000D02*
|
||||||
|
X103313400Y-92137400D01*
|
||||||
|
X100301500Y-72361500D02*
|
||||||
|
X99060000Y-71120000D01*
|
||||||
|
X103313400Y-92137400D02*
|
||||||
|
X103313400Y-80423128D01*
|
||||||
|
X103313400Y-80423128D02*
|
||||||
|
X100301500Y-77411228D01*
|
||||||
|
X100301500Y-77411228D02*
|
||||||
|
X100301500Y-72361500D01*
|
||||||
|
%TO.N,/E2*%
|
||||||
|
X97762900Y-76518772D02*
|
||||||
|
X97762900Y-72362900D01*
|
||||||
|
X97762900Y-72362900D02*
|
||||||
|
X96520000Y-71120000D01*
|
||||||
|
%TO.N,/E1*%
|
||||||
|
X107696000Y-101600000D02*
|
||||||
|
X102616000Y-101600000D01*
|
||||||
|
X102616000Y-101600000D02*
|
||||||
|
X101559400Y-100543400D01*
|
||||||
|
X101559400Y-100543400D02*
|
||||||
|
X101559400Y-81138344D01*
|
||||||
|
X101559400Y-81138344D02*
|
||||||
|
X96520000Y-76098944D01*
|
||||||
|
X96520000Y-76098944D02*
|
||||||
|
X96520000Y-73660000D01*
|
||||||
|
D12*
|
||||||
|
%TO.N,/GND*%
|
||||||
|
X124460000Y-88392000D02*
|
||||||
|
X124460000Y-119380000D01*
|
||||||
|
%TO.N,/5V*%
|
||||||
|
X92456000Y-111760000D02*
|
||||||
|
X93980000Y-111760000D01*
|
||||||
|
X93980000Y-111760000D02*
|
||||||
|
X96520000Y-114300000D01*
|
||||||
|
X96520000Y-114300000D02*
|
||||||
|
X117856000Y-114300000D01*
|
||||||
|
X117856000Y-114300000D02*
|
||||||
|
X121920000Y-110236000D01*
|
||||||
|
X121920000Y-110236000D02*
|
||||||
|
X121920000Y-106680000D01*
|
||||||
|
%TO.N,/GND*%
|
||||||
|
X124460000Y-81280000D02*
|
||||||
|
X124460000Y-84328000D01*
|
||||||
|
X126209800Y-86134200D02*
|
||||||
|
X126209800Y-86077800D01*
|
||||||
|
X126209800Y-86077800D02*
|
||||||
|
X124460000Y-84328000D01*
|
||||||
|
%TO.N,/5V*%
|
||||||
|
X121920000Y-81280000D02*
|
||||||
|
X121920000Y-119380000D01*
|
||||||
|
X121920000Y-81280000D02*
|
||||||
|
X121920000Y-80264000D01*
|
||||||
|
X121920000Y-80264000D02*
|
||||||
|
X122936000Y-79248000D01*
|
||||||
|
X122936000Y-79248000D02*
|
||||||
|
X151384000Y-79248000D01*
|
||||||
|
X151384000Y-79248000D02*
|
||||||
|
X153341400Y-81205400D01*
|
||||||
|
X153341400Y-81205400D02*
|
||||||
|
X153341400Y-83594200D01*
|
||||||
|
%TO.N,/GND*%
|
||||||
|
X124460000Y-87884000D02*
|
||||||
|
X124460000Y-88392000D01*
|
||||||
|
X153341400Y-86134200D02*
|
||||||
|
X126209800Y-86134200D01*
|
||||||
|
X126209800Y-86134200D02*
|
||||||
|
X124460000Y-87884000D01*
|
||||||
|
D13*
|
||||||
|
%TO.N,/E2*%
|
||||||
|
X102141400Y-98077400D02*
|
||||||
|
X103124000Y-99060000D01*
|
||||||
|
X102141400Y-80897272D02*
|
||||||
|
X102141400Y-98077400D01*
|
||||||
|
X103124000Y-99060000D02*
|
||||||
|
X107696000Y-99060000D01*
|
||||||
|
%TO.N,/E3*%
|
||||||
|
X102731400Y-95111400D02*
|
||||||
|
X104140000Y-96520000D01*
|
||||||
|
X102731400Y-80664200D02*
|
||||||
|
X102731400Y-95111400D01*
|
||||||
|
X104140000Y-96520000D02*
|
||||||
|
X107696000Y-96520000D01*
|
||||||
|
%TO.N,/E8*%
|
||||||
|
X101601400Y-74114200D02*
|
||||||
|
X101601400Y-77888056D01*
|
||||||
|
X101601400Y-77888056D02*
|
||||||
|
X103895400Y-80182056D01*
|
||||||
|
X103895400Y-80182056D02*
|
||||||
|
X103895400Y-90179400D01*
|
||||||
|
X103895400Y-90179400D02*
|
||||||
|
X105156000Y-91440000D01*
|
||||||
|
X105156000Y-91440000D02*
|
||||||
|
X107696000Y-91440000D01*
|
||||||
|
%TO.N,/E7*%
|
||||||
|
X102899900Y-78363484D02*
|
||||||
|
X104477400Y-79940984D01*
|
||||||
|
X105664000Y-88900000D02*
|
||||||
|
X107696000Y-88900000D01*
|
||||||
|
X104477400Y-79940984D02*
|
||||||
|
X104477400Y-87713400D01*
|
||||||
|
X104477400Y-87713400D02*
|
||||||
|
X105664000Y-88900000D01*
|
||||||
|
%TO.N,/E6*%
|
||||||
|
X104141400Y-74114200D02*
|
||||||
|
X104141400Y-78781912D01*
|
||||||
|
X104141400Y-78781912D02*
|
||||||
|
X105059400Y-79699912D01*
|
||||||
|
X105059400Y-79699912D02*
|
||||||
|
X105059400Y-85247400D01*
|
||||||
|
X105059400Y-85247400D02*
|
||||||
|
X106172000Y-86360000D01*
|
||||||
|
X106172000Y-86360000D02*
|
||||||
|
X107696000Y-86360000D01*
|
||||||
|
%TO.N,/E5*%
|
||||||
|
X105641400Y-83289400D02*
|
||||||
|
X106172000Y-83820000D01*
|
||||||
|
X106172000Y-83820000D02*
|
||||||
|
X107696000Y-83820000D01*
|
||||||
|
D12*
|
||||||
|
%TO.N,/5V*%
|
||||||
|
X162960000Y-66040000D02*
|
||||||
|
X167640000Y-66040000D01*
|
||||||
|
%TO.N,/GND*%
|
||||||
|
X92021400Y-109534200D02*
|
||||||
|
X92481400Y-109534200D01*
|
||||||
|
D13*
|
||||||
|
%TO.N,/E3*%
|
||||||
|
X99061400Y-74114200D02*
|
||||||
|
X99061400Y-76994200D01*
|
||||||
|
X99061400Y-76994200D02*
|
||||||
|
X102731400Y-80664200D01*
|
||||||
|
D12*
|
||||||
|
%TO.N,/24V*%
|
||||||
|
X155541400Y-88674200D02*
|
||||||
|
X161941400Y-88674200D01*
|
||||||
|
X163941400Y-86674200D02*
|
||||||
|
X163941400Y-86658600D01*
|
||||||
|
X163941400Y-97941400D02*
|
||||||
|
X165060000Y-99060000D01*
|
||||||
|
X153341400Y-88674200D02*
|
||||||
|
X155541400Y-88674200D01*
|
||||||
|
X163941400Y-90500000D02*
|
||||||
|
X163941400Y-97600000D01*
|
||||||
|
X163941400Y-98374200D02*
|
||||||
|
X163941400Y-97600000D01*
|
||||||
|
X163941400Y-98374200D02*
|
||||||
|
X163941400Y-110941400D01*
|
||||||
|
X164760000Y-111760000D02*
|
||||||
|
X167640000Y-111760000D01*
|
||||||
|
X163941400Y-110941400D02*
|
||||||
|
X164760000Y-111760000D01*
|
||||||
|
X155541400Y-88674200D02*
|
||||||
|
X155506400Y-88639200D01*
|
||||||
|
X163941400Y-97600000D02*
|
||||||
|
X163941400Y-97941400D01*
|
||||||
|
X165060000Y-99060000D02*
|
||||||
|
X167640000Y-99060000D01*
|
||||||
|
X161941400Y-88674200D02*
|
||||||
|
X163941400Y-86674200D01*
|
||||||
|
D13*
|
||||||
|
%TO.N,/E2*%
|
||||||
|
X97762900Y-76518772D02*
|
||||||
|
X102141400Y-80897272D01*
|
||||||
|
D12*
|
||||||
|
%TO.N,/24V*%
|
||||||
|
X167640000Y-116750000D02*
|
||||||
|
X167640000Y-111760000D01*
|
||||||
|
X162115600Y-88674200D02*
|
||||||
|
X163941400Y-90500000D01*
|
||||||
|
X164240000Y-86360000D02*
|
||||||
|
X163941400Y-86658600D01*
|
||||||
|
%TO.N,/5V*%
|
||||||
|
X161869400Y-79946200D02*
|
||||||
|
X161869400Y-67130600D01*
|
||||||
|
%TO.N,/24V*%
|
||||||
|
X167640000Y-86360000D02*
|
||||||
|
X164240000Y-86360000D01*
|
||||||
|
X155541400Y-88674200D02*
|
||||||
|
X157741400Y-88674200D01*
|
||||||
|
%TO.N,/5V*%
|
||||||
|
X153341400Y-83594200D02*
|
||||||
|
X158221400Y-83594200D01*
|
||||||
|
X161869400Y-67130600D02*
|
||||||
|
X162960000Y-66040000D01*
|
||||||
|
%TO.N,/24V*%
|
||||||
|
X163941400Y-86750000D02*
|
||||||
|
X163941400Y-72308600D01*
|
||||||
|
X163941400Y-72308600D02*
|
||||||
|
X165130000Y-71120000D01*
|
||||||
|
X163941400Y-86674200D02*
|
||||||
|
X163941400Y-86750000D01*
|
||||||
|
X163941400Y-86750000D02*
|
||||||
|
X163941400Y-90500000D01*
|
||||||
|
X165130000Y-71120000D02*
|
||||||
|
X167640000Y-71120000D01*
|
||||||
|
%TO.N,/5V*%
|
||||||
|
X121920000Y-117856000D02*
|
||||||
|
X121920000Y-119380000D01*
|
||||||
|
%TO.N,/24V*%
|
||||||
|
X161941400Y-88674200D02*
|
||||||
|
X162115600Y-88674200D01*
|
||||||
|
%TO.N,/5V*%
|
||||||
|
X158221400Y-83594200D02*
|
||||||
|
X161869400Y-79946200D01*
|
||||||
|
%TO.N,/GND*%
|
||||||
|
X124460000Y-84328000D02*
|
||||||
|
X124460000Y-88392000D01*
|
||||||
|
%TO.N,/CAN_24V*%
|
||||||
|
X180340000Y-73660000D02*
|
||||||
|
X187960000Y-73660000D01*
|
||||||
|
%TO.N,/CAN4_H*%
|
||||||
|
X175260000Y-76200000D02*
|
||||||
|
X187960000Y-76200000D01*
|
||||||
|
%TO.N,/CAN4_L*%
|
||||||
|
X175260000Y-78740000D02*
|
||||||
|
X187960000Y-78740000D01*
|
||||||
|
%TO.N,/CAN_GND*%
|
||||||
|
X180340000Y-119380000D02*
|
||||||
|
X187960000Y-119380000D01*
|
||||||
|
%TO.N,/CAN1_L*%
|
||||||
|
X175260000Y-116840000D02*
|
||||||
|
X187960000Y-116840000D01*
|
||||||
|
%TO.N,/CAN_24V*%
|
||||||
|
X175260000Y-86360000D02*
|
||||||
|
X187960000Y-86360000D01*
|
||||||
|
X175260000Y-111760000D02*
|
||||||
|
X187960000Y-111760000D01*
|
||||||
|
X175260000Y-99060000D02*
|
||||||
|
X187960000Y-99060000D01*
|
||||||
|
%TO.N,/CAN2_L*%
|
||||||
|
X175260000Y-104140000D02*
|
||||||
|
X187960000Y-104140000D01*
|
||||||
|
%TO.N,/CAN2_H*%
|
||||||
|
X175260000Y-101600000D02*
|
||||||
|
X187960000Y-101600000D01*
|
||||||
|
%TO.N,/CAN_GND*%
|
||||||
|
X175260000Y-81280000D02*
|
||||||
|
X175260000Y-83820000D01*
|
||||||
|
X175260000Y-109220000D02*
|
||||||
|
X175260000Y-106680000D01*
|
||||||
|
X175260000Y-106680000D02*
|
||||||
|
X187960000Y-106680000D01*
|
||||||
|
X175260000Y-81280000D02*
|
||||||
|
X187960000Y-81280000D01*
|
||||||
|
X175260000Y-93980000D02*
|
||||||
|
X187960000Y-93980000D01*
|
||||||
|
X175260000Y-93980000D02*
|
||||||
|
X175260000Y-96520000D01*
|
||||||
|
%TO.N,/CAN1_H*%
|
||||||
|
X175260000Y-114300000D02*
|
||||||
|
X187960000Y-114300000D01*
|
||||||
|
%TO.N,/CAN3_L*%
|
||||||
|
X175260000Y-91440000D02*
|
||||||
|
X187960000Y-91440000D01*
|
||||||
|
%TO.N,/CAN3_H*%
|
||||||
|
X175260000Y-88900000D02*
|
||||||
|
X187960000Y-88900000D01*
|
||||||
|
%TD*%
|
||||||
|
%TA.AperFunction,Conductor*%
|
||||||
|
%TO.N,/24V*%
|
||||||
|
G36*
|
||||||
|
X163866780Y-87038880D02*
|
||||||
|
G01*
|
||||||
|
X163920436Y-87083634D01*
|
||||||
|
X163941378Y-87150291D01*
|
||||||
|
X163941400Y-87152624D01*
|
||||||
|
X163941400Y-90195775D01*
|
||||||
|
X163921715Y-90262814D01*
|
||||||
|
X163868911Y-90308569D01*
|
||||||
|
X163799753Y-90318513D01*
|
||||||
|
X163736197Y-90289488D01*
|
||||||
|
X163734494Y-90287985D01*
|
||||||
|
X162043805Y-88766364D01*
|
||||||
|
X162007147Y-88706890D01*
|
||||||
|
X162008461Y-88637033D01*
|
||||||
|
X162043806Y-88582033D01*
|
||||||
|
X163734449Y-87060455D01*
|
||||||
|
X163797447Y-87030240D01*
|
||||||
|
X163866780Y-87038880D01*
|
||||||
|
G37*
|
||||||
|
%TD.AperFunction*%
|
||||||
|
%TD*%
|
||||||
|
%TA.AperFunction,Conductor*%
|
||||||
|
%TO.N,/GND*%
|
||||||
|
G36*
|
||||||
|
X124665203Y-84533649D02*
|
||||||
|
G01*
|
||||||
|
X124671681Y-84539681D01*
|
||||||
|
X126390902Y-86258902D01*
|
||||||
|
X126424387Y-86320225D01*
|
||||||
|
X126419403Y-86389917D01*
|
||||||
|
X126377621Y-86445783D01*
|
||||||
|
X124658400Y-87735200D01*
|
||||||
|
X124592958Y-87759676D01*
|
||||||
|
X124524671Y-87744886D01*
|
||||||
|
X124475222Y-87695525D01*
|
||||||
|
X124460000Y-87636000D01*
|
||||||
|
X124460000Y-84627362D01*
|
||||||
|
X124479685Y-84560323D01*
|
||||||
|
X124532489Y-84514568D01*
|
||||||
|
X124601647Y-84504624D01*
|
||||||
|
X124665203Y-84533649D01*
|
||||||
|
G37*
|
||||||
|
%TD.AperFunction*%
|
||||||
|
%TD*%
|
||||||
|
M02*
|
||||||
245
Switch V8/Meycad/Meycad-F_Mask.gbr
Normal file
245
Switch V8/Meycad/Meycad-F_Mask.gbr
Normal file
@@ -0,0 +1,245 @@
|
|||||||
|
%TF.GenerationSoftware,KiCad,Pcbnew,9.0.2*%
|
||||||
|
%TF.CreationDate,2025-07-20T17:27:30+02:00*%
|
||||||
|
%TF.ProjectId,Meycad,4d657963-6164-42e6-9b69-6361645f7063,rev?*%
|
||||||
|
%TF.SameCoordinates,Original*%
|
||||||
|
%TF.FileFunction,Soldermask,Top*%
|
||||||
|
%TF.FilePolarity,Negative*%
|
||||||
|
%FSLAX46Y46*%
|
||||||
|
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||||
|
G04 Created by KiCad (PCBNEW 9.0.2) date 2025-07-20 17:27:30*
|
||||||
|
%MOMM*%
|
||||||
|
%LPD*%
|
||||||
|
G01*
|
||||||
|
G04 APERTURE LIST*
|
||||||
|
%ADD10R,1.700000X1.700000*%
|
||||||
|
%ADD11C,1.700000*%
|
||||||
|
G04 APERTURE END LIST*
|
||||||
|
D10*
|
||||||
|
%TO.C,J_Extension1*%
|
||||||
|
X104140000Y-71120000D03*
|
||||||
|
D11*
|
||||||
|
X104140000Y-73660000D03*
|
||||||
|
X101600000Y-71120000D03*
|
||||||
|
X101600000Y-73660000D03*
|
||||||
|
X99060000Y-71120000D03*
|
||||||
|
X99060000Y-73660000D03*
|
||||||
|
X96520000Y-71120000D03*
|
||||||
|
X96520000Y-73660000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.C,CAN_4_1*%
|
||||||
|
X180340000Y-73660000D03*
|
||||||
|
X180340000Y-76200000D03*
|
||||||
|
X180340000Y-78740000D03*
|
||||||
|
D10*
|
||||||
|
X180340000Y-81280000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.C,J_Front_1_1*%
|
||||||
|
X175260000Y-99060000D03*
|
||||||
|
D11*
|
||||||
|
X175260000Y-96520000D03*
|
||||||
|
X175260000Y-93980000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,J6*%
|
||||||
|
X187960000Y-93980000D03*
|
||||||
|
D11*
|
||||||
|
X187960000Y-91440000D03*
|
||||||
|
X187960000Y-88900000D03*
|
||||||
|
X187960000Y-86360000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.C,Arduino_R1*%
|
||||||
|
X107696000Y-111760000D03*
|
||||||
|
X107696000Y-109220000D03*
|
||||||
|
X107696000Y-106680000D03*
|
||||||
|
X107696000Y-104140000D03*
|
||||||
|
X107696000Y-101600000D03*
|
||||||
|
X107696000Y-99060000D03*
|
||||||
|
X107696000Y-96520000D03*
|
||||||
|
X107696000Y-93980000D03*
|
||||||
|
X107696000Y-91440000D03*
|
||||||
|
X107696000Y-88900000D03*
|
||||||
|
X107696000Y-86360000D03*
|
||||||
|
D10*
|
||||||
|
X107696000Y-83820000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.C,J2*%
|
||||||
|
X180340000Y-119380000D03*
|
||||||
|
D11*
|
||||||
|
X180340000Y-116840000D03*
|
||||||
|
X180340000Y-114300000D03*
|
||||||
|
X180340000Y-111760000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,J10*%
|
||||||
|
X175260000Y-91440000D03*
|
||||||
|
D11*
|
||||||
|
X175260000Y-88900000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,J_Front_1_3*%
|
||||||
|
X175260000Y-86360000D03*
|
||||||
|
D11*
|
||||||
|
X175260000Y-83820000D03*
|
||||||
|
X175260000Y-81280000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,J_Front_2*%
|
||||||
|
X167640000Y-93980000D03*
|
||||||
|
D11*
|
||||||
|
X167640000Y-96520000D03*
|
||||||
|
X167640000Y-99060000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,J4*%
|
||||||
|
X180340000Y-93980000D03*
|
||||||
|
D11*
|
||||||
|
X180340000Y-91440000D03*
|
||||||
|
X180340000Y-88900000D03*
|
||||||
|
X180340000Y-86360000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,J_CAN_2*%
|
||||||
|
X121920000Y-106680000D03*
|
||||||
|
D11*
|
||||||
|
X124460000Y-106680000D03*
|
||||||
|
X127000000Y-106680000D03*
|
||||||
|
X129540000Y-106680000D03*
|
||||||
|
X132080000Y-106680000D03*
|
||||||
|
X134620000Y-106680000D03*
|
||||||
|
X137160000Y-106680000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,J_Front_3*%
|
||||||
|
X167640000Y-106680000D03*
|
||||||
|
D11*
|
||||||
|
X167640000Y-109220000D03*
|
||||||
|
X167640000Y-111760000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.C,Arduino_L1*%
|
||||||
|
X92456000Y-111760000D03*
|
||||||
|
X92456000Y-109220000D03*
|
||||||
|
X92456000Y-106680000D03*
|
||||||
|
X92456000Y-104140000D03*
|
||||||
|
X92456000Y-101600000D03*
|
||||||
|
X92456000Y-99060000D03*
|
||||||
|
X92456000Y-96520000D03*
|
||||||
|
X92456000Y-93980000D03*
|
||||||
|
X92456000Y-91440000D03*
|
||||||
|
X92456000Y-88900000D03*
|
||||||
|
X92456000Y-86360000D03*
|
||||||
|
D10*
|
||||||
|
X92456000Y-83820000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.C,J_CAN_1*%
|
||||||
|
X121920000Y-119380000D03*
|
||||||
|
D11*
|
||||||
|
X124460000Y-119380000D03*
|
||||||
|
X127000000Y-119380000D03*
|
||||||
|
X129540000Y-119380000D03*
|
||||||
|
X132080000Y-119380000D03*
|
||||||
|
X134620000Y-119380000D03*
|
||||||
|
X137160000Y-119380000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,J_Front_1_2*%
|
||||||
|
X175260000Y-111760000D03*
|
||||||
|
D11*
|
||||||
|
X175260000Y-109220000D03*
|
||||||
|
X175260000Y-106680000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.C,J_Front_1*%
|
||||||
|
X167640000Y-86360000D03*
|
||||||
|
X167640000Y-83820000D03*
|
||||||
|
D10*
|
||||||
|
X167640000Y-81280000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.C,J7*%
|
||||||
|
X187960000Y-81280000D03*
|
||||||
|
D11*
|
||||||
|
X187960000Y-78740000D03*
|
||||||
|
X187960000Y-76200000D03*
|
||||||
|
X187960000Y-73660000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,J9*%
|
||||||
|
X175260000Y-104140000D03*
|
||||||
|
D11*
|
||||||
|
X175260000Y-101600000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,JJ_CAN_4*%
|
||||||
|
X121920000Y-81280000D03*
|
||||||
|
D11*
|
||||||
|
X124460000Y-81280000D03*
|
||||||
|
X127000000Y-81280000D03*
|
||||||
|
X129540000Y-81280000D03*
|
||||||
|
X132080000Y-81280000D03*
|
||||||
|
X134620000Y-81280000D03*
|
||||||
|
X137160000Y-81280000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,J8*%
|
||||||
|
X175260000Y-116840000D03*
|
||||||
|
D11*
|
||||||
|
X175260000Y-114300000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,CAN_2_1*%
|
||||||
|
X180340000Y-106680000D03*
|
||||||
|
D11*
|
||||||
|
X180340000Y-104140000D03*
|
||||||
|
X180340000Y-101600000D03*
|
||||||
|
X180340000Y-99060000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,J_CAN_3*%
|
||||||
|
X121920000Y-93980000D03*
|
||||||
|
D11*
|
||||||
|
X124460000Y-93980000D03*
|
||||||
|
X127000000Y-93980000D03*
|
||||||
|
X129540000Y-93980000D03*
|
||||||
|
X132080000Y-93980000D03*
|
||||||
|
X134620000Y-93980000D03*
|
||||||
|
X137160000Y-93980000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.C,J1*%
|
||||||
|
X167640000Y-116750000D03*
|
||||||
|
D10*
|
||||||
|
X165100000Y-116750000D03*
|
||||||
|
%TD*%
|
||||||
|
%TO.C,J11*%
|
||||||
|
X175260000Y-78740000D03*
|
||||||
|
D11*
|
||||||
|
X175260000Y-76200000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,J_Extension_2*%
|
||||||
|
X167640000Y-66040000D03*
|
||||||
|
D11*
|
||||||
|
X167640000Y-68580000D03*
|
||||||
|
X167640000Y-71120000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,J5*%
|
||||||
|
X187960000Y-106680000D03*
|
||||||
|
D11*
|
||||||
|
X187960000Y-104140000D03*
|
||||||
|
X187960000Y-101600000D03*
|
||||||
|
X187960000Y-99060000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,J3*%
|
||||||
|
X187960000Y-119380000D03*
|
||||||
|
D11*
|
||||||
|
X187960000Y-116840000D03*
|
||||||
|
X187960000Y-114300000D03*
|
||||||
|
X187960000Y-111760000D03*
|
||||||
|
%TD*%
|
||||||
|
D10*
|
||||||
|
%TO.C,J_Stepdown1*%
|
||||||
|
X153341400Y-83594200D03*
|
||||||
|
D11*
|
||||||
|
X153341400Y-86134200D03*
|
||||||
|
X153341400Y-88674200D03*
|
||||||
|
%TD*%
|
||||||
|
M02*
|
||||||
15
Switch V8/Meycad/Meycad-F_Paste.gbr
Normal file
15
Switch V8/Meycad/Meycad-F_Paste.gbr
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
%TF.GenerationSoftware,KiCad,Pcbnew,9.0.2*%
|
||||||
|
%TF.CreationDate,2025-07-20T17:27:29+02:00*%
|
||||||
|
%TF.ProjectId,Meycad,4d657963-6164-42e6-9b69-6361645f7063,rev?*%
|
||||||
|
%TF.SameCoordinates,Original*%
|
||||||
|
%TF.FileFunction,Paste,Top*%
|
||||||
|
%TF.FilePolarity,Positive*%
|
||||||
|
%FSLAX46Y46*%
|
||||||
|
G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
|
||||||
|
G04 Created by KiCad (PCBNEW 9.0.2) date 2025-07-20 17:27:29*
|
||||||
|
%MOMM*%
|
||||||
|
%LPD*%
|
||||||
|
G01*
|
||||||
|
G04 APERTURE LIST*
|
||||||
|
G04 APERTURE END LIST*
|
||||||
|
M02*
|
||||||
1528
Switch V8/Meycad/Meycad-F_Silkscreen.gbr
Normal file
1528
Switch V8/Meycad/Meycad-F_Silkscreen.gbr
Normal file
File diff suppressed because it is too large
Load Diff
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-07-20_170555.zip
Normal file
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-07-20_170555.zip
Normal file
Binary file not shown.
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-07-20_171652.zip
Normal file
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-07-20_171652.zip
Normal file
Binary file not shown.
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-07-20_172413.zip
Normal file
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-07-20_172413.zip
Normal file
Binary file not shown.
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-07-20_173740.zip
Normal file
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-07-20_173740.zip
Normal file
Binary file not shown.
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-07-21_184453.zip
Normal file
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-07-21_184453.zip
Normal file
Binary file not shown.
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-07-21_185148.zip
Normal file
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-07-21_185148.zip
Normal file
Binary file not shown.
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-07-21_185653.zip
Normal file
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-07-21_185653.zip
Normal file
Binary file not shown.
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-07-21_190231.zip
Normal file
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-07-21_190231.zip
Normal file
Binary file not shown.
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-07-21_191507.zip
Normal file
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-07-21_191507.zip
Normal file
Binary file not shown.
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-07-22_140448.zip
Normal file
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-07-22_140448.zip
Normal file
Binary file not shown.
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-07-22_141107.zip
Normal file
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-07-22_141107.zip
Normal file
Binary file not shown.
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-07-22_142817.zip
Normal file
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-07-22_142817.zip
Normal file
Binary file not shown.
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-07-22_163032.zip
Normal file
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-07-22_163032.zip
Normal file
Binary file not shown.
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-07-22_163619.zip
Normal file
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-07-22_163619.zip
Normal file
Binary file not shown.
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-08-03_150113.zip
Normal file
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-08-03_150113.zip
Normal file
Binary file not shown.
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-08-11_193547.zip
Normal file
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-08-11_193547.zip
Normal file
Binary file not shown.
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-08-11_194634.zip
Normal file
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-08-11_194634.zip
Normal file
Binary file not shown.
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-08-11_195245.zip
Normal file
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-08-11_195245.zip
Normal file
Binary file not shown.
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-08-11_195921.zip
Normal file
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-08-11_195921.zip
Normal file
Binary file not shown.
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-08-11_200502.zip
Normal file
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-08-11_200502.zip
Normal file
Binary file not shown.
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-08-12_060341.zip
Normal file
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-08-12_060341.zip
Normal file
Binary file not shown.
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-08-13_053701.zip
Normal file
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-08-13_053701.zip
Normal file
Binary file not shown.
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-08-21_121708.zip
Normal file
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-08-21_121708.zip
Normal file
Binary file not shown.
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-08-23_071120.zip
Normal file
BIN
Switch V8/Meycad/Meycad-backups/Meycad-2025-08-23_071120.zip
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user