Compare commits
35 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0f77ac163a | |||
| 1927449c1d | |||
| 58b63fc8ee | |||
| 5fedbec433 | |||
| 74f9c17461 | |||
| c89a617d9d | |||
| 92299665b6 | |||
| 8bd2cb72d0 | |||
| 4a8e0188b3 | |||
| 4c19d757c6 | |||
| 3d17ba67ff | |||
| 9f249af430 | |||
| 8218c4b9a6 | |||
| bfcf5e150c | |||
| 7957cf4003 | |||
| 171bd19458 | |||
| 21e5f86945 | |||
| c7a0e3b264 | |||
| b297994b6e | |||
| 4dafa0abfb | |||
| c428ee6294 | |||
| 7415e74643 | |||
| ca26f090fa | |||
| 66e276f15e | |||
| 65e5d0d753 | |||
| 3ece894592 | |||
| f0e0781100 | |||
| fe4b57808d | |||
| 60947059e8 | |||
| d2fb6b8411 | |||
| 4d92e0c2a6 | |||
| b57eb2513c | |||
| 3f98a321fc | |||
| 27858948e5 | |||
| e87012cc9c |
@@ -8,5 +8,6 @@ target
|
|||||||
Cargo.lock
|
Cargo.lock
|
||||||
node_modules/
|
node_modules/
|
||||||
rust/src/webserver/bundle.js
|
rust/src/webserver/bundle.js
|
||||||
|
rust/src/webserver/index.html
|
||||||
rust/build/
|
rust/build/
|
||||||
rust/image.bin
|
rust/image.bin
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
battery_board-backups/
|
||||||
|
bom/
|
||||||
|
fp-info-cache
|
||||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,83 @@
|
|||||||
|
{
|
||||||
|
"board": {
|
||||||
|
"active_layer": 36,
|
||||||
|
"active_layer_preset": "",
|
||||||
|
"auto_track_width": false,
|
||||||
|
"hidden_netclasses": [],
|
||||||
|
"hidden_nets": [],
|
||||||
|
"high_contrast_mode": 0,
|
||||||
|
"net_color_mode": 1,
|
||||||
|
"opacity": {
|
||||||
|
"images": 0.6,
|
||||||
|
"pads": 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": [
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
3,
|
||||||
|
4,
|
||||||
|
5,
|
||||||
|
8,
|
||||||
|
9,
|
||||||
|
10,
|
||||||
|
11,
|
||||||
|
12,
|
||||||
|
13,
|
||||||
|
15,
|
||||||
|
16,
|
||||||
|
17,
|
||||||
|
18,
|
||||||
|
19,
|
||||||
|
20,
|
||||||
|
21,
|
||||||
|
22,
|
||||||
|
23,
|
||||||
|
24,
|
||||||
|
25,
|
||||||
|
26,
|
||||||
|
27,
|
||||||
|
28,
|
||||||
|
29,
|
||||||
|
30,
|
||||||
|
32,
|
||||||
|
33,
|
||||||
|
34,
|
||||||
|
35,
|
||||||
|
36,
|
||||||
|
39,
|
||||||
|
40
|
||||||
|
],
|
||||||
|
"visible_layers": "fffffff_ffffffff",
|
||||||
|
"zone_display_mode": 0
|
||||||
|
},
|
||||||
|
"git": {
|
||||||
|
"repo_password": "",
|
||||||
|
"repo_type": "",
|
||||||
|
"repo_username": "",
|
||||||
|
"ssh_key": ""
|
||||||
|
},
|
||||||
|
"meta": {
|
||||||
|
"filename": "battery_board.kicad_prl",
|
||||||
|
"version": 3
|
||||||
|
},
|
||||||
|
"project": {
|
||||||
|
"files": []
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,689 @@
|
|||||||
|
{
|
||||||
|
"board": {
|
||||||
|
"3dviewports": [],
|
||||||
|
"design_settings": {
|
||||||
|
"defaults": {
|
||||||
|
"apply_defaults_to_fp_fields": false,
|
||||||
|
"apply_defaults_to_fp_shapes": false,
|
||||||
|
"apply_defaults_to_fp_text": false,
|
||||||
|
"board_outline_line_width": 0.05,
|
||||||
|
"copper_line_width": 0.2,
|
||||||
|
"copper_text_italic": false,
|
||||||
|
"copper_text_size_h": 1.5,
|
||||||
|
"copper_text_size_v": 1.5,
|
||||||
|
"copper_text_thickness": 0.3,
|
||||||
|
"copper_text_upright": false,
|
||||||
|
"courtyard_line_width": 0.05,
|
||||||
|
"dimension_precision": 4,
|
||||||
|
"dimension_units": 3,
|
||||||
|
"dimensions": {
|
||||||
|
"arrow_length": 1270000,
|
||||||
|
"extension_offset": 500000,
|
||||||
|
"keep_text_aligned": true,
|
||||||
|
"suppress_zeroes": false,
|
||||||
|
"text_position": 0,
|
||||||
|
"units_format": 1
|
||||||
|
},
|
||||||
|
"fab_line_width": 0.1,
|
||||||
|
"fab_text_italic": false,
|
||||||
|
"fab_text_size_h": 1.0,
|
||||||
|
"fab_text_size_v": 1.0,
|
||||||
|
"fab_text_thickness": 0.15,
|
||||||
|
"fab_text_upright": false,
|
||||||
|
"other_line_width": 0.1,
|
||||||
|
"other_text_italic": false,
|
||||||
|
"other_text_size_h": 1.0,
|
||||||
|
"other_text_size_v": 1.0,
|
||||||
|
"other_text_thickness": 0.15,
|
||||||
|
"other_text_upright": false,
|
||||||
|
"pads": {
|
||||||
|
"drill": 0.762,
|
||||||
|
"height": 1.524,
|
||||||
|
"width": 1.524
|
||||||
|
},
|
||||||
|
"silk_line_width": 0.1,
|
||||||
|
"silk_text_italic": false,
|
||||||
|
"silk_text_size_h": 1.0,
|
||||||
|
"silk_text_size_v": 1.0,
|
||||||
|
"silk_text_thickness": 0.1,
|
||||||
|
"silk_text_upright": false,
|
||||||
|
"zones": {
|
||||||
|
"min_clearance": 0.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"diff_pair_dimensions": [
|
||||||
|
{
|
||||||
|
"gap": 0.0,
|
||||||
|
"via_gap": 0.0,
|
||||||
|
"width": 0.0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"drc_exclusions": [
|
||||||
|
"silk_over_copper|180609610|75440001|acdccf16-c559-46ce-9367-ee415ce6455a|00000000-0000-0000-0000-000000000000"
|
||||||
|
],
|
||||||
|
"meta": {
|
||||||
|
"version": 2
|
||||||
|
},
|
||||||
|
"rule_severities": {
|
||||||
|
"annular_width": "error",
|
||||||
|
"clearance": "error",
|
||||||
|
"connection_width": "warning",
|
||||||
|
"copper_edge_clearance": "error",
|
||||||
|
"copper_sliver": "warning",
|
||||||
|
"courtyards_overlap": "error",
|
||||||
|
"diff_pair_gap_out_of_range": "error",
|
||||||
|
"diff_pair_uncoupled_length_too_long": "error",
|
||||||
|
"drill_out_of_range": "error",
|
||||||
|
"duplicate_footprints": "warning",
|
||||||
|
"extra_footprint": "warning",
|
||||||
|
"footprint": "error",
|
||||||
|
"footprint_symbol_mismatch": "warning",
|
||||||
|
"footprint_type_mismatch": "ignore",
|
||||||
|
"hole_clearance": "error",
|
||||||
|
"hole_near_hole": "error",
|
||||||
|
"holes_co_located": "warning",
|
||||||
|
"invalid_outline": "error",
|
||||||
|
"isolated_copper": "warning",
|
||||||
|
"item_on_disabled_layer": "error",
|
||||||
|
"items_not_allowed": "error",
|
||||||
|
"length_out_of_range": "error",
|
||||||
|
"lib_footprint_issues": "warning",
|
||||||
|
"lib_footprint_mismatch": "warning",
|
||||||
|
"malformed_courtyard": "error",
|
||||||
|
"microvia_drill_out_of_range": "error",
|
||||||
|
"missing_courtyard": "ignore",
|
||||||
|
"missing_footprint": "warning",
|
||||||
|
"net_conflict": "warning",
|
||||||
|
"npth_inside_courtyard": "ignore",
|
||||||
|
"padstack": "warning",
|
||||||
|
"pth_inside_courtyard": "ignore",
|
||||||
|
"shorting_items": "error",
|
||||||
|
"silk_edge_clearance": "warning",
|
||||||
|
"silk_over_copper": "warning",
|
||||||
|
"silk_overlap": "warning",
|
||||||
|
"skew_out_of_range": "error",
|
||||||
|
"solder_mask_bridge": "error",
|
||||||
|
"starved_thermal": "error",
|
||||||
|
"text_height": "warning",
|
||||||
|
"text_thickness": "warning",
|
||||||
|
"through_hole_pad_without_hole": "error",
|
||||||
|
"too_many_vias": "error",
|
||||||
|
"track_dangling": "warning",
|
||||||
|
"track_width": "error",
|
||||||
|
"tracks_crossing": "error",
|
||||||
|
"unconnected_items": "error",
|
||||||
|
"unresolved_variable": "error",
|
||||||
|
"via_dangling": "warning",
|
||||||
|
"zones_intersect": "error"
|
||||||
|
},
|
||||||
|
"rules": {
|
||||||
|
"max_error": 0.005,
|
||||||
|
"min_clearance": 0.0,
|
||||||
|
"min_connection": 0.0,
|
||||||
|
"min_copper_edge_clearance": 0.4,
|
||||||
|
"min_hole_clearance": 0.25,
|
||||||
|
"min_hole_to_hole": 0.25,
|
||||||
|
"min_microvia_diameter": 0.2,
|
||||||
|
"min_microvia_drill": 0.1,
|
||||||
|
"min_resolved_spokes": 2,
|
||||||
|
"min_silk_clearance": 0.0,
|
||||||
|
"min_text_height": 0.8,
|
||||||
|
"min_text_thickness": 0.08,
|
||||||
|
"min_through_hole_diameter": 0.3,
|
||||||
|
"min_track_width": 0.0,
|
||||||
|
"min_via_annular_width": 0.1,
|
||||||
|
"min_via_diameter": 0.5,
|
||||||
|
"solder_mask_to_copper_clearance": 0.005,
|
||||||
|
"use_height_for_length_calcs": true
|
||||||
|
},
|
||||||
|
"teardrop_options": [
|
||||||
|
{
|
||||||
|
"td_onpadsmd": true,
|
||||||
|
"td_onroundshapesonly": false,
|
||||||
|
"td_ontrackend": false,
|
||||||
|
"td_onviapad": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"teardrop_parameters": [
|
||||||
|
{
|
||||||
|
"td_allow_use_two_tracks": true,
|
||||||
|
"td_curve_segcount": 0,
|
||||||
|
"td_height_ratio": 1.0,
|
||||||
|
"td_length_ratio": 0.5,
|
||||||
|
"td_maxheight": 2.0,
|
||||||
|
"td_maxlen": 1.0,
|
||||||
|
"td_on_pad_in_zone": false,
|
||||||
|
"td_target_name": "td_round_shape",
|
||||||
|
"td_width_to_size_filter_ratio": 0.9
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"td_allow_use_two_tracks": true,
|
||||||
|
"td_curve_segcount": 0,
|
||||||
|
"td_height_ratio": 1.0,
|
||||||
|
"td_length_ratio": 0.5,
|
||||||
|
"td_maxheight": 2.0,
|
||||||
|
"td_maxlen": 1.0,
|
||||||
|
"td_on_pad_in_zone": false,
|
||||||
|
"td_target_name": "td_rect_shape",
|
||||||
|
"td_width_to_size_filter_ratio": 0.9
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"td_allow_use_two_tracks": true,
|
||||||
|
"td_curve_segcount": 0,
|
||||||
|
"td_height_ratio": 1.0,
|
||||||
|
"td_length_ratio": 0.5,
|
||||||
|
"td_maxheight": 2.0,
|
||||||
|
"td_maxlen": 1.0,
|
||||||
|
"td_on_pad_in_zone": false,
|
||||||
|
"td_target_name": "td_track_end",
|
||||||
|
"td_width_to_size_filter_ratio": 0.9
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"track_widths": [
|
||||||
|
0.0,
|
||||||
|
0.2,
|
||||||
|
0.5,
|
||||||
|
2.0,
|
||||||
|
4.0,
|
||||||
|
5.0,
|
||||||
|
10.0
|
||||||
|
],
|
||||||
|
"tuning_pattern_settings": {
|
||||||
|
"diff_pair_defaults": {
|
||||||
|
"corner_radius_percentage": 80,
|
||||||
|
"corner_style": 1,
|
||||||
|
"max_amplitude": 1.0,
|
||||||
|
"min_amplitude": 0.2,
|
||||||
|
"single_sided": false,
|
||||||
|
"spacing": 1.0
|
||||||
|
},
|
||||||
|
"diff_pair_skew_defaults": {
|
||||||
|
"corner_radius_percentage": 80,
|
||||||
|
"corner_style": 1,
|
||||||
|
"max_amplitude": 1.0,
|
||||||
|
"min_amplitude": 0.2,
|
||||||
|
"single_sided": false,
|
||||||
|
"spacing": 0.6
|
||||||
|
},
|
||||||
|
"single_track_defaults": {
|
||||||
|
"corner_radius_percentage": 80,
|
||||||
|
"corner_style": 1,
|
||||||
|
"max_amplitude": 1.0,
|
||||||
|
"min_amplitude": 0.2,
|
||||||
|
"single_sided": false,
|
||||||
|
"spacing": 0.6
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"via_dimensions": [
|
||||||
|
{
|
||||||
|
"diameter": 0.0,
|
||||||
|
"drill": 0.0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"diameter": 0.5,
|
||||||
|
"drill": 1.5
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"zones_allow_external_fillets": false
|
||||||
|
},
|
||||||
|
"ipc2581": {
|
||||||
|
"dist": "",
|
||||||
|
"distpn": "",
|
||||||
|
"internal_id": "",
|
||||||
|
"mfg": "",
|
||||||
|
"mpn": ""
|
||||||
|
},
|
||||||
|
"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",
|
||||||
|
"conflicting_netclasses": "error",
|
||||||
|
"different_unit_footprint": "error",
|
||||||
|
"different_unit_net": "error",
|
||||||
|
"duplicate_reference": "error",
|
||||||
|
"duplicate_sheet_names": "error",
|
||||||
|
"endpoint_off_grid": "warning",
|
||||||
|
"extra_units": "error",
|
||||||
|
"global_label_dangling": "warning",
|
||||||
|
"hier_label_mismatch": "error",
|
||||||
|
"label_dangling": "error",
|
||||||
|
"lib_symbol_issues": "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",
|
||||||
|
"similar_labels": "warning",
|
||||||
|
"simulation_model_issue": "ignore",
|
||||||
|
"unannotated": "error",
|
||||||
|
"unit_value_mismatch": "error",
|
||||||
|
"unresolved_variable": "error",
|
||||||
|
"wire_dangling": "error"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"libraries": {
|
||||||
|
"pinned_footprint_libs": [],
|
||||||
|
"pinned_symbol_libs": []
|
||||||
|
},
|
||||||
|
"meta": {
|
||||||
|
"filename": "battery_board.kicad_pro",
|
||||||
|
"version": 1
|
||||||
|
},
|
||||||
|
"net_settings": {
|
||||||
|
"classes": [
|
||||||
|
{
|
||||||
|
"bus_width": 12,
|
||||||
|
"clearance": 0.2,
|
||||||
|
"diff_pair_gap": 0.25,
|
||||||
|
"diff_pair_via_gap": 0.25,
|
||||||
|
"diff_pair_width": 0.2,
|
||||||
|
"line_style": 0,
|
||||||
|
"microvia_diameter": 0.3,
|
||||||
|
"microvia_drill": 0.1,
|
||||||
|
"name": "Default",
|
||||||
|
"pcb_color": "rgba(0, 0, 0, 0.000)",
|
||||||
|
"schematic_color": "rgba(0, 0, 0, 0.000)",
|
||||||
|
"track_width": 0.2,
|
||||||
|
"via_diameter": 0.6,
|
||||||
|
"via_drill": 0.3,
|
||||||
|
"wire_width": 6
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"meta": {
|
||||||
|
"version": 3
|
||||||
|
},
|
||||||
|
"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": "",
|
||||||
|
"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": true,
|
||||||
|
"label": "Value",
|
||||||
|
"name": "Value",
|
||||||
|
"show": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group_by": false,
|
||||||
|
"label": "Datasheet",
|
||||||
|
"name": "Datasheet",
|
||||||
|
"show": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group_by": false,
|
||||||
|
"label": "Footprint",
|
||||||
|
"name": "Footprint",
|
||||||
|
"show": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group_by": false,
|
||||||
|
"label": "Qty",
|
||||||
|
"name": "${QUANTITY}",
|
||||||
|
"show": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group_by": true,
|
||||||
|
"label": "DNP",
|
||||||
|
"name": "${DNP}",
|
||||||
|
"show": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group_by": false,
|
||||||
|
"label": "#",
|
||||||
|
"name": "${ITEM_NUMBER}",
|
||||||
|
"show": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group_by": false,
|
||||||
|
"label": "Availability",
|
||||||
|
"name": "Availability",
|
||||||
|
"show": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group_by": false,
|
||||||
|
"label": "Check_prices",
|
||||||
|
"name": "Check_prices",
|
||||||
|
"show": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group_by": false,
|
||||||
|
"label": "Description_1",
|
||||||
|
"name": "Description_1",
|
||||||
|
"show": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group_by": false,
|
||||||
|
"label": "LCSC_PART_NUMBER",
|
||||||
|
"name": "LCSC_PART_NUMBER",
|
||||||
|
"show": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group_by": false,
|
||||||
|
"label": "MF",
|
||||||
|
"name": "MF",
|
||||||
|
"show": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group_by": false,
|
||||||
|
"label": "MP",
|
||||||
|
"name": "MP",
|
||||||
|
"show": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group_by": false,
|
||||||
|
"label": "Package",
|
||||||
|
"name": "Package",
|
||||||
|
"show": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group_by": false,
|
||||||
|
"label": "Price",
|
||||||
|
"name": "Price",
|
||||||
|
"show": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group_by": false,
|
||||||
|
"label": "Purchase-URL",
|
||||||
|
"name": "Purchase-URL",
|
||||||
|
"show": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group_by": false,
|
||||||
|
"label": "SnapEDA_Link",
|
||||||
|
"name": "SnapEDA_Link",
|
||||||
|
"show": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group_by": false,
|
||||||
|
"label": "Description",
|
||||||
|
"name": "Description",
|
||||||
|
"show": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"filter_string": "",
|
||||||
|
"group_symbols": true,
|
||||||
|
"name": "",
|
||||||
|
"sort_asc": true,
|
||||||
|
"sort_field": "Reference"
|
||||||
|
},
|
||||||
|
"connection_grid_size": 50.0,
|
||||||
|
"drawing": {
|
||||||
|
"dashed_lines_dash_length_ratio": 12.0,
|
||||||
|
"dashed_lines_gap_length_ratio": 3.0,
|
||||||
|
"default_line_thickness": 6.0,
|
||||||
|
"default_text_size": 50.0,
|
||||||
|
"field_names": [],
|
||||||
|
"intersheets_ref_own_page": false,
|
||||||
|
"intersheets_ref_prefix": "",
|
||||||
|
"intersheets_ref_short": false,
|
||||||
|
"intersheets_ref_show": false,
|
||||||
|
"intersheets_ref_suffix": "",
|
||||||
|
"junction_size_choice": 3,
|
||||||
|
"label_size_ratio": 0.375,
|
||||||
|
"operating_point_overlay_i_precision": 3,
|
||||||
|
"operating_point_overlay_i_range": "~A",
|
||||||
|
"operating_point_overlay_v_precision": 3,
|
||||||
|
"operating_point_overlay_v_range": "~V",
|
||||||
|
"overbar_offset_ratio": 1.23,
|
||||||
|
"pin_symbol_size": 25.0,
|
||||||
|
"text_offset_ratio": 0.15
|
||||||
|
},
|
||||||
|
"legacy_lib_dir": "",
|
||||||
|
"legacy_lib_list": [],
|
||||||
|
"meta": {
|
||||||
|
"version": 1
|
||||||
|
},
|
||||||
|
"net_format_name": "",
|
||||||
|
"ngspice": {
|
||||||
|
"fix_include_paths": true,
|
||||||
|
"meta": {
|
||||||
|
"version": 0
|
||||||
|
},
|
||||||
|
"model_mode": 4,
|
||||||
|
"workbook_filename": ""
|
||||||
|
},
|
||||||
|
"page_layout_descr_file": "",
|
||||||
|
"plot_directory": "",
|
||||||
|
"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": [
|
||||||
|
[
|
||||||
|
"c27f19cf-4e70-4fd0-869e-d38d3638d9bf",
|
||||||
|
"Root"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"text_variables": {}
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -0,0 +1 @@
|
|||||||
|
{"EXTRA_LAYERS": "", "EXTEND_EDGE_CUT": false, "AUTO TRANSLATE": true, "AUTO FILL": true, "EXCLUDE DNP": false}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
(fp_lib_table
|
||||||
|
(version 7)
|
||||||
|
(lib (name "kicad-stuff")(type "KiCad")(uri "${KIPRJMOD}/kicad-stuff")(options "")(descr ""))
|
||||||
|
)
|
||||||
+337
@@ -0,0 +1,337 @@
|
|||||||
|
(footprint "AMASS_XT30UPB+DATA-M_1x02_P5.0mm_Vertical"
|
||||||
|
(version 20240108)
|
||||||
|
(generator "pcbnew")
|
||||||
|
(generator_version "8.0")
|
||||||
|
(layer "F.Cu")
|
||||||
|
(descr "Connector XT30 Vertical PCB Male, https://www.tme.eu/en/Document/4acc913878197f8c2e30d4b8cdc47230/XT30UPB%20SPEC.pdf")
|
||||||
|
(tags "RC Connector XT30")
|
||||||
|
(property "Reference" "REF**"
|
||||||
|
(at 2.5 -4 0)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "f7510d54-dcb1-4c3b-b842-cd250a98370c")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1 1)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Value" "AMASS_XT30UPB+DATA-M_1x02_P5.0mm_Vertical"
|
||||||
|
(at 2.5 4 0)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(uuid "c5a8a60c-4ea1-4401-a30c-34d36be61c07")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1 1)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Footprint" ""
|
||||||
|
(at 0 0 0)
|
||||||
|
(unlocked yes)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(hide yes)
|
||||||
|
(uuid "8fb27306-c085-4316-b554-4ba9be794054")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Datasheet" ""
|
||||||
|
(at 0 0 0)
|
||||||
|
(unlocked yes)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(hide yes)
|
||||||
|
(uuid "74b71861-05d2-4229-8e81-25952aaaef7e")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Description" ""
|
||||||
|
(at 0 0 0)
|
||||||
|
(unlocked yes)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(hide yes)
|
||||||
|
(uuid "a1d16ecc-7e64-48c4-b772-a9255380960d")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(attr through_hole)
|
||||||
|
(fp_line
|
||||||
|
(start -2.71 -1.41)
|
||||||
|
(end -2.71 1.41)
|
||||||
|
(stroke
|
||||||
|
(width 0.12)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "e96c6ad2-9ca6-4df1-b35b-76e090d7ff4e")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -2.71 -1.41)
|
||||||
|
(end -1.01 -2.71)
|
||||||
|
(stroke
|
||||||
|
(width 0.12)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "0784d204-0a48-4a2b-8085-50e1ff7a1493")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -2.71 1.41)
|
||||||
|
(end -1.01 2.71)
|
||||||
|
(stroke
|
||||||
|
(width 0.12)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "db750970-e424-4a8e-a882-20a90baabffc")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -1.01 -2.71)
|
||||||
|
(end 7.71 -2.71)
|
||||||
|
(stroke
|
||||||
|
(width 0.12)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "9f23420e-db87-438c-a708-676a0616966e")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -1.01 2.71)
|
||||||
|
(end 7.71 2.71)
|
||||||
|
(stroke
|
||||||
|
(width 0.12)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "2ba574e3-9de5-4d7d-9777-e19e6fa702e7")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start 7.71 -2.71)
|
||||||
|
(end 7.71 2.71)
|
||||||
|
(stroke
|
||||||
|
(width 0.12)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "2018cc6b-6115-4763-8b7c-54b60affbda7")
|
||||||
|
)
|
||||||
|
(fp_rect
|
||||||
|
(start -6.3 -2.71)
|
||||||
|
(end 7.71 2.7)
|
||||||
|
(stroke
|
||||||
|
(width 0.1)
|
||||||
|
(type default)
|
||||||
|
)
|
||||||
|
(fill none)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "11aac399-c862-4b67-9828-087abeea5b1b")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -3.1 -1.8)
|
||||||
|
(end -3.1 1.8)
|
||||||
|
(stroke
|
||||||
|
(width 0.05)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.CrtYd")
|
||||||
|
(uuid "06ae69d8-1372-4524-8b1a-27a2f062f1c5")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -3.1 -1.8)
|
||||||
|
(end -1.4 -3.1)
|
||||||
|
(stroke
|
||||||
|
(width 0.05)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.CrtYd")
|
||||||
|
(uuid "ae869a92-c688-4f2b-82ca-0578106a035a")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -3.1 1.8)
|
||||||
|
(end -1.4 3.1)
|
||||||
|
(stroke
|
||||||
|
(width 0.05)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.CrtYd")
|
||||||
|
(uuid "cac6d927-6ba1-4095-825b-f94ee0d7abe9")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -1.4 -3.1)
|
||||||
|
(end 8.1 -3.1)
|
||||||
|
(stroke
|
||||||
|
(width 0.05)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.CrtYd")
|
||||||
|
(uuid "fb4fa373-5492-4717-a9fe-7b69f4c53ba0")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -1.4 3.1)
|
||||||
|
(end 8.1 3.1)
|
||||||
|
(stroke
|
||||||
|
(width 0.05)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.CrtYd")
|
||||||
|
(uuid "70296c77-546d-44a2-b5d3-e6dc58cf713b")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start 8.1 -3.1)
|
||||||
|
(end 8.1 3.1)
|
||||||
|
(stroke
|
||||||
|
(width 0.05)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.CrtYd")
|
||||||
|
(uuid "64764a09-de32-4f35-b54a-17e44810370f")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -2.6 -1.3)
|
||||||
|
(end -2.6 1.3)
|
||||||
|
(stroke
|
||||||
|
(width 0.1)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(uuid "8d7ee7cb-5dda-453f-aa9a-6420c87f1b8e")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -2.6 -1.3)
|
||||||
|
(end -0.9 -2.6)
|
||||||
|
(stroke
|
||||||
|
(width 0.1)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(uuid "2fa3ad90-36bb-4374-95ed-e44e50c7e385")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -2.6 1.3)
|
||||||
|
(end -0.9 2.6)
|
||||||
|
(stroke
|
||||||
|
(width 0.1)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(uuid "2e4f8556-ffc2-4791-91da-e68c3513337e")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -0.9 -2.6)
|
||||||
|
(end 7.6 -2.6)
|
||||||
|
(stroke
|
||||||
|
(width 0.1)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(uuid "cb9cd8af-1997-41db-b9fe-8982960ac6db")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -0.9 2.6)
|
||||||
|
(end 7.6 2.6)
|
||||||
|
(stroke
|
||||||
|
(width 0.1)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(uuid "ea8a6c02-e974-4677-a854-a0891c323245")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start 7.6 -2.6)
|
||||||
|
(end 7.6 2.6)
|
||||||
|
(stroke
|
||||||
|
(width 0.1)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(uuid "c66f305c-0d56-4591-bc02-23252ad20321")
|
||||||
|
)
|
||||||
|
(fp_text user "-"
|
||||||
|
(at -4 0 0)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "c119570a-6846-48dc-9422-0b5665ab2df6")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.5 1.5)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(fp_text user "+"
|
||||||
|
(at 9 0 0)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "d6ab678c-47f7-47e0-869b-ef3b9dbd1ba9")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.5 1.5)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(fp_text user "${REFERENCE}"
|
||||||
|
(at 2.5 0 0)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(uuid "a70efd12-1491-4664-ae98-5b2b7f52a502")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1 1)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pad "1" thru_hole rect
|
||||||
|
(at 0 0)
|
||||||
|
(size 3 3)
|
||||||
|
(drill 1.8)
|
||||||
|
(layers "*.Cu" "*.Mask")
|
||||||
|
(remove_unused_layers no)
|
||||||
|
(uuid "3a0f3b23-814b-4df9-a02c-3d9fed9e23c9")
|
||||||
|
)
|
||||||
|
(pad "2" thru_hole circle
|
||||||
|
(at 5 0)
|
||||||
|
(size 3 3)
|
||||||
|
(drill 1.8)
|
||||||
|
(layers "*.Cu" "*.Mask")
|
||||||
|
(remove_unused_layers no)
|
||||||
|
(uuid "d897d74a-a13b-47cf-9806-eb8a75fe8d08")
|
||||||
|
)
|
||||||
|
(pad "3" thru_hole circle
|
||||||
|
(at -3.9 -1)
|
||||||
|
(size 1.524 1.524)
|
||||||
|
(drill 1)
|
||||||
|
(layers "*.Cu" "*.Mask")
|
||||||
|
(remove_unused_layers no)
|
||||||
|
(uuid "02a8c3fc-d75c-47a4-a907-f9191ff19e2c")
|
||||||
|
)
|
||||||
|
(pad "4" thru_hole circle
|
||||||
|
(at -3.9 1)
|
||||||
|
(size 1.524 1.524)
|
||||||
|
(drill 1)
|
||||||
|
(layers "*.Cu" "*.Mask")
|
||||||
|
(remove_unused_layers no)
|
||||||
|
(uuid "2000b5b8-f7c9-40a8-9010-65c16d2aefce")
|
||||||
|
)
|
||||||
|
(model "${KICAD8_3DMODEL_DIR}/Connector_AMASS.3dshapes/AMASS_XT30UPB-M_1x02_P5.0mm_Vertical.wrl"
|
||||||
|
(offset
|
||||||
|
(xyz 0 0 0)
|
||||||
|
)
|
||||||
|
(scale
|
||||||
|
(xyz 1 1 1)
|
||||||
|
)
|
||||||
|
(rotate
|
||||||
|
(xyz 0 0 0)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
@@ -0,0 +1,158 @@
|
|||||||
|
|
||||||
|
(kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor)
|
||||||
|
(symbol "BQ34Z100PWR-G1" (pin_names (offset 1.016)) (in_bom yes) (on_board yes)
|
||||||
|
(property "Reference" "U" (id 0) (at -12.7 26.4 0.0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom left))
|
||||||
|
)
|
||||||
|
(property "Value" "BQ34Z100PWR-G1" (id 1) (at -12.7 -29.4 0.0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom left))
|
||||||
|
)
|
||||||
|
(property "Footprint" "BQ34Z100PWR-G1:SOP65P640X120-14N" (id 2) (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom) hide)
|
||||||
|
)
|
||||||
|
(property "MF" "Texas Instruments" (id 4) (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Description" "\nMulti-chemistry Impedance Track™ standalone fuel gauge | battery gas gauge\n" (id 5) (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Package" "TSSOP-14 Texas Instruments" (id 6) (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Price" "None" (id 7) (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom) hide)
|
||||||
|
)
|
||||||
|
(property "SnapEDA_Link" "https://www.snapeda.com/parts/BQ34Z100PWR-G1/Texas+Instruments/view-part/?ref=snap" (id 8) (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom) hide)
|
||||||
|
)
|
||||||
|
(property "MP" "BQ34Z100PWR-G1" (id 9) (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Purchase-URL" "https://www.snapeda.com/api/url_track_click_mouser/?unipart_id=327977&manufacturer=Texas Instruments&part_name=BQ34Z100PWR-G1&search_term=None" (id 10) (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Availability" "In Stock" (id 11) (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Check_prices" "https://www.snapeda.com/parts/BQ34Z100PWR-G1/Texas+Instruments/view-part/?ref=eda" (id 12) (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify bottom) hide)
|
||||||
|
)
|
||||||
|
(symbol "BQ34Z100PWR-G1_0_0"
|
||||||
|
(rectangle (start -12.7 -25.4) (end 12.7 25.4)
|
||||||
|
(stroke (width 0.41)) (fill (type background))
|
||||||
|
)
|
||||||
|
(pin input line (at -17.78 22.86 0) (length 5.08)
|
||||||
|
(name "REGIN"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "6"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -17.78 17.78 0) (length 5.08)
|
||||||
|
(name "BAT"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "4"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -17.78 12.7 0) (length 5.08)
|
||||||
|
(name "CE"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "5"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -17.78 7.62 0) (length 5.08)
|
||||||
|
(name "P1"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "3"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -17.78 5.08 0) (length 5.08)
|
||||||
|
(name "P2"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "1"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -17.78 2.54 0) (length 5.08)
|
||||||
|
(name "P3/SDA"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "14"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -17.78 -2.54 0) (length 5.08)
|
||||||
|
(name "REG25"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "7"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -17.78 -7.62 0) (length 5.08)
|
||||||
|
(name "SRN"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "10"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -17.78 -12.7 0) (length 5.08)
|
||||||
|
(name "SRP"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "9"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -17.78 -17.78 0) (length 5.08)
|
||||||
|
(name "VEN"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "2"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 17.78 5.08 180.0) (length 5.08)
|
||||||
|
(name "P4/SCL"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "13"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 17.78 2.54 180.0) (length 5.08)
|
||||||
|
(name "P5/HDQ"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "12"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 17.78 1.77636e-15 180.0) (length 5.08)
|
||||||
|
(name "P6/TS"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "11"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pin power_in line (at 17.78 -20.32 180.0) (length 5.08)
|
||||||
|
(name "VSS"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
(number "8"
|
||||||
|
(effects (font (size 1.016 1.016)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,133 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 13.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="1325px"
|
||||||
|
height="675px" viewBox="0 0 1325 675" enable-background="new 0 0 1325 675" xml:space="preserve">
|
||||||
|
<g id="back">
|
||||||
|
<rect width="1325" height="675"/>
|
||||||
|
</g>
|
||||||
|
<g id="logo">
|
||||||
|
<g>
|
||||||
|
<path fill="#FFFFFF" d="M109.818,477.621H75.827v34.299h33.992v-11.638l12.612,2.614v6.409c0,4.956-0.932,8.331-2.794,10.126
|
||||||
|
c-1.864,1.794-5.409,2.691-10.639,2.691H76.647c-5.264,0-8.818-0.897-10.664-2.691c-1.846-1.795-2.769-5.17-2.769-10.126v-28.558
|
||||||
|
c0-4.922,0.923-8.287,2.769-10.1c1.846-1.812,5.4-2.717,10.664-2.717h32.351c5.229,0,8.775,0.905,10.639,2.717
|
||||||
|
c1.862,1.813,2.794,5.178,2.794,10.1v5.127l-12.612,2V477.621z"/>
|
||||||
|
<path fill="#FFFFFF" d="M148.424,522.123v-54.191h12.612v21.02h39.375v-21.02h12.715v54.191h-12.715v-23.328h-39.375v23.328
|
||||||
|
H148.424z"/>
|
||||||
|
<path fill="#FFFFFF" d="M230.456,522.123l30.659-54.191h12.151l31.069,54.191h-14.15l-6.511-11.844h-34.351l-6.306,11.844H230.456
|
||||||
|
z M254.706,500.487h23.738l-11.689-22.046L254.706,500.487z"/>
|
||||||
|
<path fill="#FFFFFF" d="M318.793,480.748c0-4.922,0.923-8.287,2.769-10.1c1.846-1.812,5.4-2.717,10.664-2.717h39.888
|
||||||
|
c5.263,0,8.818,0.905,10.664,2.717c1.846,1.813,2.769,5.178,2.769,10.1v28.558c0,4.956-0.923,8.331-2.769,10.126
|
||||||
|
c-1.846,1.794-5.401,2.691-10.664,2.691h-39.888c-5.264,0-8.818-0.897-10.664-2.691c-1.846-1.795-2.769-5.17-2.769-10.126V480.748
|
||||||
|
z M331.405,511.92h41.58v-34.299h-41.58V511.92z"/>
|
||||||
|
<path fill="#FFFFFF" d="M459.066,477.416h-35.479v11.639h33.787c5.297,0,8.877,0.905,10.741,2.717
|
||||||
|
c1.863,1.813,2.794,5.178,2.794,10.1v7.435c0,4.922-0.932,8.289-2.794,10.101c-1.863,1.812-5.443,2.717-10.741,2.717h-33.479
|
||||||
|
c-5.298,0-8.878-0.905-10.741-2.717c-1.863-1.812-2.794-5.179-2.794-10.101v-1.487l11.125-2.307v6.408h38.298v-12.355h-33.787
|
||||||
|
c-5.264,0-8.818-0.905-10.664-2.717s-2.769-5.179-2.769-10.101v-5.999c0-4.922,0.923-8.287,2.769-10.1
|
||||||
|
c1.846-1.812,5.4-2.717,10.664-2.717h30.762c5.092,0,8.604,0.871,10.536,2.614c1.931,1.743,2.897,4.837,2.897,9.28v1.127
|
||||||
|
l-11.125,2.615V477.416z"/>
|
||||||
|
<path fill="#FFFFFF" d="M537.714,522.123v-54.191h12.612v54.191H537.714z"/>
|
||||||
|
<path fill="#FFFFFF" d="M577.909,522.123v-54.191h10.203l25.532,32.761l24.968-32.761h10.1v54.191h-11.689v-33.479
|
||||||
|
c0-0.649,0.042-1.47,0.128-2.461c0.084-0.991,0.196-2.103,0.333-3.333c-0.684,1.402-1.282,2.556-1.794,3.461
|
||||||
|
c-0.513,0.906-0.974,1.649-1.384,2.229l-20.354,27.07h-2.512l-20.405-27.172c-0.752-1.025-1.393-1.991-1.923-2.897
|
||||||
|
c-0.53-0.905-0.966-1.785-1.307-2.64c0.103,1.127,0.179,2.152,0.231,3.076c0.051,0.922,0.077,1.812,0.077,2.666v33.479H577.909z"
|
||||||
|
/>
|
||||||
|
<path fill="#FFFFFF" d="M714.748,480.748c0-4.922,0.923-8.287,2.769-10.1c1.846-1.812,5.4-2.717,10.664-2.717h39.888
|
||||||
|
c5.263,0,8.818,0.905,10.664,2.717c1.846,1.813,2.769,5.178,2.769,10.1v28.558c0,4.956-0.923,8.331-2.769,10.126
|
||||||
|
c-1.846,1.794-5.401,2.691-10.664,2.691h-5.845l6.819,13.945h-12.51l-6.102-13.945h-22.251c-5.264,0-8.818-0.897-10.664-2.691
|
||||||
|
c-1.846-1.795-2.769-5.17-2.769-10.126V480.748z M727.36,511.92h18.56l-5.024-11.74l9.126-3.691l7.332,15.432h11.586v-34.299
|
||||||
|
H727.36V511.92z"/>
|
||||||
|
<path fill="#FFFFFF" d="M820.67,467.932v43.988h35.939v-43.988h12.562v41.374c0,4.956-0.923,8.331-2.769,10.126
|
||||||
|
c-1.846,1.794-5.401,2.691-10.664,2.691H821.49c-5.229,0-8.776-0.897-10.639-2.691c-1.863-1.795-2.794-5.17-2.794-10.126v-41.374
|
||||||
|
H820.67z"/>
|
||||||
|
<path fill="#FFFFFF" d="M884.244,522.123l30.659-54.191h12.151l31.068,54.191h-14.15l-6.511-11.844h-34.351l-6.307,11.844H884.244
|
||||||
|
z M908.494,500.487h23.738l-11.689-22.046L908.494,500.487z"/>
|
||||||
|
<path fill="#FFFFFF" d="M975.556,522.123v-54.191h34.863c9.946,0,17.594,2.324,22.943,6.973
|
||||||
|
c5.349,4.648,8.023,11.245,8.023,19.789c0,5.06-1.043,9.613-3.128,13.664c-2.085,4.05-5.023,7.237-8.818,9.562
|
||||||
|
c-2.357,1.47-5.289,2.538-8.792,3.204c-3.504,0.667-7.99,1-13.458,1H975.556z M988.168,511.92h16.304
|
||||||
|
c8.682,0,14.834-1.35,18.457-4.05c3.622-2.699,5.435-7.16,5.435-13.382c0-5.537-1.505-9.731-4.512-12.586
|
||||||
|
c-3.008-2.854-7.452-4.281-13.33-4.281h-22.354V511.92z"/>
|
||||||
|
<path fill="#FFFFFF" d="M1064.509,522.123v-54.191h46.348c4.307,0,7.425,0.829,9.356,2.486c1.931,1.658,2.896,4.332,2.896,8.023
|
||||||
|
v12.715c0,3.658-0.966,6.324-2.896,7.998c-1.932,1.675-5.05,2.512-9.356,2.512h-7.075l25.02,20.457h-18.098l-21.842-20.457
|
||||||
|
h-11.945v20.457H1064.509z M1105.268,477.313h-28.352v15.073h28.352c2.188,0,3.683-0.315,4.486-0.948
|
||||||
|
c0.803-0.632,1.205-1.751,1.205-3.358v-6.512c0-1.571-0.402-2.674-1.205-3.307C1108.95,477.63,1107.455,477.313,1105.268,477.313z
|
||||||
|
"/>
|
||||||
|
<path fill="#FFFFFF" d="M1134.594,522.123l30.659-54.191h12.151l31.068,54.191h-14.15l-6.511-11.844h-34.351l-6.307,11.844
|
||||||
|
H1134.594z M1158.844,500.487h23.738l-11.689-22.046L1158.844,500.487z"/>
|
||||||
|
<path fill="#FFFFFF" d="M1244.003,477.621v44.502h-12.612v-44.502h-24.865v-9.689h62.445v9.689H1244.003z"/>
|
||||||
|
<path fill="#FFFFFF" d="M71.188,626.523l-17.29-44.902h10.79l11.385,30.119l11.937-30.119h7.307l12.149,30.119l10.875-30.119
|
||||||
|
h9.346l-17.332,44.902h-7.052l-12.362-31.053l-12.532,31.053H71.188z"/>
|
||||||
|
<path fill="#FFFFFF" d="M151.73,626.523l-17.29-44.902h10.79l11.385,30.119l11.937-30.119h7.307l12.149,30.119l10.875-30.119
|
||||||
|
h9.346l-17.332,44.902h-7.052l-12.362-31.053l-12.532,31.053H151.73z"/>
|
||||||
|
<path fill="#FFFFFF" d="M232.273,626.523l-17.29-44.902h10.79l11.385,30.119l11.937-30.119h7.307l12.149,30.119l10.875-30.119
|
||||||
|
h9.346l-17.332,44.902h-7.052l-12.362-31.053l-12.532,31.053H232.273z"/>
|
||||||
|
<path fill="#FFFFFF" d="M303.301,613.057h1.572c0.765,0,1.302,0.22,1.614,0.659c0.312,0.439,0.467,1.281,0.467,2.527v7.052
|
||||||
|
c0,1.359-0.17,2.237-0.51,2.634s-1.388,0.595-3.144,0.595h-7.774c-0.765,0-1.303-0.227-1.614-0.68
|
||||||
|
c-0.312-0.453-0.467-1.303-0.467-2.549v-7.052c0-1.331,0.17-2.194,0.51-2.591s1.387-0.596,3.144-0.596H303.301z"/>
|
||||||
|
<path fill="#FFFFFF" d="M363.75,589.65h-28.165v28.42h28.165v-9.644l10.45,2.167v5.31c0,4.106-0.772,6.903-2.315,8.39
|
||||||
|
c-1.544,1.487-4.482,2.23-8.815,2.23h-26.805c-4.361,0-7.307-0.743-8.836-2.23c-1.529-1.486-2.294-4.283-2.294-8.39v-23.661
|
||||||
|
c0-4.078,0.765-6.868,2.294-8.369s4.475-2.252,8.836-2.252h26.805c4.333,0,7.271,0.751,8.815,2.252
|
||||||
|
c1.543,1.501,2.315,4.291,2.315,8.369v4.248l-10.45,1.656V589.65z"/>
|
||||||
|
<path fill="#FFFFFF" d="M433.418,589.65h-28.165v28.42h28.165v-9.644l10.45,2.167v5.31c0,4.106-0.772,6.903-2.315,8.39
|
||||||
|
c-1.544,1.487-4.482,2.23-8.815,2.23h-26.805c-4.361,0-7.307-0.743-8.836-2.23c-1.529-1.486-2.294-4.283-2.294-8.39v-23.661
|
||||||
|
c0-4.078,0.765-6.868,2.294-8.369s4.475-2.252,8.836-2.252h26.805c4.333,0,7.271,0.751,8.815,2.252
|
||||||
|
c1.543,1.501,2.315,4.291,2.315,8.369v4.248l-10.45,1.656V589.65z"/>
|
||||||
|
<path fill="#FFFFFF" d="M503.086,589.65h-28.165v28.42h28.165v-9.644l10.45,2.167v5.31c0,4.106-0.772,6.903-2.315,8.39
|
||||||
|
c-1.544,1.487-4.482,2.23-8.815,2.23h-26.805c-4.361,0-7.307-0.743-8.836-2.23c-1.529-1.486-2.294-4.283-2.294-8.39v-23.661
|
||||||
|
c0-4.078,0.765-6.868,2.294-8.369s4.475-2.252,8.836-2.252h26.805c4.333,0,7.271,0.751,8.815,2.252
|
||||||
|
c1.543,1.501,2.315,4.291,2.315,8.369v4.248l-10.45,1.656V589.65z"/>
|
||||||
|
<path fill="#FFFFFF" d="M527.768,607.832v-8.963h20.263v8.963H527.768z"/>
|
||||||
|
<path fill="#FFFFFF" d="M563.706,626.523v-44.902h8.454l21.155,27.146l20.688-27.146h8.369v44.902h-9.686v-27.74
|
||||||
|
c0-0.537,0.035-1.217,0.106-2.039c0.071-0.82,0.163-1.741,0.276-2.761c-0.567,1.161-1.062,2.117-1.487,2.867
|
||||||
|
c-0.425,0.751-0.807,1.367-1.147,1.849l-16.865,22.43h-2.082l-16.907-22.516c-0.623-0.85-1.154-1.649-1.593-2.399
|
||||||
|
c-0.439-0.75-0.801-1.479-1.083-2.188c0.085,0.936,0.149,1.785,0.191,2.549c0.043,0.766,0.064,1.502,0.064,2.209v27.74H563.706z"
|
||||||
|
/>
|
||||||
|
<path fill="#FFFFFF" d="M635.753,626.523l25.403-44.902h10.068l25.742,44.902h-11.725l-5.395-9.813h-28.462l-5.225,9.813H635.753z
|
||||||
|
M655.846,608.597h19.668l-9.686-18.267L655.846,608.597z"/>
|
||||||
|
<path fill="#FFFFFF" d="M711.326,626.523v-44.902h7.137l31.605,26.466c1.076,0.878,2.024,1.706,2.846,2.485s1.572,1.579,2.252,2.4
|
||||||
|
c-0.17-2.521-0.283-4.305-0.34-5.354c-0.057-1.047-0.085-1.854-0.085-2.421v-23.577h9.388v44.902h-7.137l-32.965-27.74
|
||||||
|
c-0.793-0.707-1.486-1.345-2.081-1.911s-1.147-1.147-1.657-1.741c0.142,1.388,0.248,2.697,0.319,3.929
|
||||||
|
c0.07,1.232,0.106,2.302,0.106,3.208v24.256H711.326z"/>
|
||||||
|
<path fill="#FFFFFF" d="M786.941,626.523v-44.902h7.137l31.605,26.466c1.076,0.878,2.024,1.706,2.846,2.485s1.572,1.579,2.252,2.4
|
||||||
|
c-0.17-2.521-0.283-4.305-0.34-5.354c-0.057-1.047-0.085-1.854-0.085-2.421v-23.577h9.388v44.902h-7.137l-32.965-27.74
|
||||||
|
c-0.793-0.707-1.486-1.345-2.081-1.911s-1.147-1.147-1.657-1.741c0.142,1.388,0.248,2.697,0.319,3.929
|
||||||
|
c0.07,1.232,0.106,2.302,0.106,3.208v24.256H786.941z"/>
|
||||||
|
<path fill="#FFFFFF" d="M862.642,626.523v-44.902h10.45v17.418h32.625v-17.418h10.535v44.902h-10.535v-19.328h-32.625v19.328
|
||||||
|
H862.642z"/>
|
||||||
|
<path fill="#FFFFFF" d="M939.19,626.523v-44.902h45.964v7.646h-35.514v10.025h20.73v7.646h-20.73v11.131h35.938v8.453H939.19z"/>
|
||||||
|
<path fill="#FFFFFF" d="M1004.866,626.523v-44.902h10.45v44.902H1004.866z"/>
|
||||||
|
<path fill="#FFFFFF" d="M1038.17,626.523v-44.902h8.453l21.156,27.146l20.688-27.146h8.369v44.902h-9.686v-27.74
|
||||||
|
c0-0.537,0.035-1.217,0.105-2.039c0.07-0.82,0.163-1.741,0.276-2.761c-0.566,1.161-1.062,2.117-1.487,2.867
|
||||||
|
c-0.424,0.751-0.807,1.367-1.146,1.849l-16.865,22.43h-2.081l-16.907-22.516c-0.623-0.85-1.154-1.649-1.593-2.399
|
||||||
|
c-0.439-0.75-0.801-1.479-1.083-2.188c0.084,0.936,0.148,1.785,0.19,2.549c0.043,0.766,0.063,1.502,0.063,2.209v27.74H1038.17z"/>
|
||||||
|
<path fill="#FFFFFF" d="M1124.83,613.057h1.572c0.764,0,1.302,0.22,1.613,0.659s0.468,1.281,0.468,2.527v7.052
|
||||||
|
c0,1.359-0.17,2.237-0.51,2.634s-1.388,0.595-3.144,0.595h-7.773c-0.766,0-1.304-0.227-1.615-0.68s-0.467-1.303-0.467-2.549
|
||||||
|
v-7.052c0-1.331,0.17-2.194,0.51-2.591s1.388-0.596,3.144-0.596H1124.83z"/>
|
||||||
|
<path fill="#FFFFFF" d="M1147.601,626.523v-44.902h28.887c8.241,0,14.577,1.927,19.01,5.777c4.433,3.853,6.648,9.318,6.648,16.398
|
||||||
|
c0,4.191-0.864,7.965-2.591,11.32c-1.729,3.356-4.164,5.997-7.307,7.923c-1.955,1.218-4.383,2.103-7.286,2.655
|
||||||
|
c-2.903,0.552-6.62,0.828-11.151,0.828H1147.601z M1158.051,618.07h13.509c7.193,0,12.291-1.119,15.293-3.356
|
||||||
|
s4.503-5.933,4.503-11.087c0-4.588-1.246-8.064-3.738-10.43c-2.492-2.364-6.174-3.547-11.045-3.547h-18.521V618.07z"/>
|
||||||
|
<path fill="#FFFFFF" d="M1221.304,626.523v-44.902h45.964v7.646h-35.514v10.025h20.73v7.646h-20.73v11.131h35.938v8.453H1221.304z
|
||||||
|
"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<polygon fill="#FFFFFF" points="1050.25,150.292 1050.25,100.292 1000.25,100.292 1000.25,49.792 799.75,49.792 799.75,100.25
|
||||||
|
749.75,100.25 749.75,349.791 799.75,349.791 799.75,400.292 1000.25,400.292 1000.25,349.791 1050.25,349.791 1050.25,300.292
|
||||||
|
950.25,300.292 950.25,349.791 849.75,349.791 849.75,100.292 950.25,100.292 950.25,150.292 "/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<path fill="#FFFFFF" d="M1100.25,49.792v174.75h175V49.792H1100.25z M1251,124.042h-24.75v25h-50.75v24.75h75.5v25.125h-125.75
|
||||||
|
v-25.125h25.25v-24.75h25v-25h50.75v-25h-75.75v25h-25.25v-25h25.25v-25.25h75.75v25.25H1251V124.042z"/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<polygon fill="#FFFFFF" points="700.25,150.292 700.25,100.292 650.25,100.292 650.25,49.792 449.75,49.792 449.75,100.25
|
||||||
|
399.75,100.25 399.75,349.791 449.75,349.791 449.75,400.292 650.25,400.292 650.25,349.791 700.25,349.791 700.25,300.292
|
||||||
|
600.25,300.292 600.25,349.791 499.75,349.791 499.75,100.292 600.25,100.292 600.25,150.292 "/>
|
||||||
|
</g>
|
||||||
|
<g>
|
||||||
|
<polygon fill="#FFFFFF" points="350.25,150.292 350.25,100.292 300.25,100.292 300.25,49.792 99.75,49.792 99.75,100.25
|
||||||
|
49.75,100.25 49.75,349.791 99.75,349.791 99.75,400.292 300.25,400.292 300.25,349.791 350.25,349.791 350.25,300.292
|
||||||
|
250.25,300.292 250.25,349.791 149.75,349.791 149.75,100.292 250.25,100.292 250.25,150.292 "/>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 12 KiB |
@@ -0,0 +1,9 @@
|
|||||||
|
EESchema-DOCLIB Version 2.0
|
||||||
|
#
|
||||||
|
$CMP CN61CN33
|
||||||
|
D Microprocessor Reset (active-low) Circuit, SOT-23
|
||||||
|
K reset supervisor
|
||||||
|
F http://www.ti.com/lit/ds/symlink/lm809.pdf
|
||||||
|
$ENDCMP
|
||||||
|
#
|
||||||
|
#End Doc Library
|
||||||
@@ -0,0 +1,186 @@
|
|||||||
|
(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
|
||||||
|
(symbol "CN61CN33" (in_bom yes) (on_board yes)
|
||||||
|
(property "Reference" "U" (at 2.54 12.7 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(property "Value" "CN61CN33" (at 5.08 10.16 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(property "Footprint" "Package_TO_SOT_SMD:SOT-23" (at 7.62 2.54 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(property "Datasheet" "http://www.ti.com/lit/ds/symlink/lm809.pdf" (at 7.62 2.54 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(property "ki_keywords" "reset supervisor" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(property "ki_description" "Microprocessor Reset (active-low) Circuit, SOT-23" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(property "ki_fp_filters" "SOT?23*" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(symbol "CN61CN33_0_1"
|
||||||
|
(rectangle (start 5.08 7.62) (end -5.08 -7.62)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type background))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(symbol "CN61CN33_1_1"
|
||||||
|
(pin output line (at 0 -10.16 90) (length 2.54)
|
||||||
|
(name "RESET" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "1" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin power_in line (at 7.62 0 180) (length 2.54)
|
||||||
|
(name "GND" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "2" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin power_in line (at 0 10.16 270) (length 2.54)
|
||||||
|
(name "VCC" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "3" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(symbol "DS2438" (pin_names (offset 1.016)) (in_bom yes) (on_board yes)
|
||||||
|
(property "Reference" "U" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(property "Value" "DS2438" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(property "Footprint" "" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(property "Datasheet" "" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(symbol "DS2438_0_1"
|
||||||
|
(rectangle (start -11.43 -2.54) (end 12.7 -30.48)
|
||||||
|
(stroke (width 0) (type solid))
|
||||||
|
(fill (type background))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(symbol "DS2438_1_1"
|
||||||
|
(pin power_in line (at -13.97 -6.35 0) (length 2.54)
|
||||||
|
(name "GND" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "1" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin unspecified line (at -13.97 -12.7 0) (length 2.54)
|
||||||
|
(name "Vsens+" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "2" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin unspecified line (at -13.97 -19.05 0) (length 2.54)
|
||||||
|
(name "Vsense-" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "3" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin input line (at -13.97 -25.4 0) (length 2.54)
|
||||||
|
(name "Vad" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "4" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin power_in line (at 15.24 -25.4 180) (length 2.54)
|
||||||
|
(name "Vdd" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "5" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin unspecified line (at 15.24 -19.05 180) (length 2.54)
|
||||||
|
(name "NC" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "6" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin unspecified line (at 15.24 -12.7 180) (length 2.54)
|
||||||
|
(name "NC" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "7" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 15.24 -6.35 180) (length 2.54)
|
||||||
|
(name "DQ" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "8" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(symbol "DW01" (pin_names (offset 1.016)) (in_bom yes) (on_board yes)
|
||||||
|
(property "Reference" "IC" (at 21.59 7.62 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||||
|
)
|
||||||
|
(property "Value" "DW01" (at 21.59 5.08 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||||
|
)
|
||||||
|
(property "Footprint" "SOT95P280X135-6N" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Datasheet" "" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "HEIGHT" "1.35mm" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "DESCRIPTION" "ic" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "MANUFACTURER_PART_NUMBER" "DW01" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "MANUFACTURER_NAME" "Slkor" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "ki_locked" "" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(symbol "DW01_0_0"
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 5.08 2.54)
|
||||||
|
(xy 5.08 -7.62)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 5.08 2.54)
|
||||||
|
(xy 20.32 2.54)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 20.32 -7.62)
|
||||||
|
(xy 5.08 -7.62)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 20.32 -7.62)
|
||||||
|
(xy 20.32 2.54)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 0 0 0) (length 5.08)
|
||||||
|
(name "OD" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "1" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 0 -2.54 0) (length 5.08)
|
||||||
|
(name "CSI" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "2" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 0 -5.08 0) (length 5.08)
|
||||||
|
(name "OC" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "3" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 25.4 -5.08 180) (length 5.08)
|
||||||
|
(name "TD" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "4" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 25.4 -2.54 180) (length 5.08)
|
||||||
|
(name "VDD" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "5" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 25.4 0 180) (length 5.08)
|
||||||
|
(name "VSS" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "6" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
EESchema-LIBRARY Version 2.4
|
||||||
|
#encoding utf-8
|
||||||
|
#
|
||||||
|
# CN61CN33
|
||||||
|
#
|
||||||
|
DEF CN61CN33 U 0 20 Y Y 1 F N
|
||||||
|
F0 "U" 100 500 50 H V C CNN
|
||||||
|
F1 "CN61CN33" 200 400 50 H V C CNN
|
||||||
|
F2 "Package_TO_SOT_SMD:SOT-23" 300 100 50 H I C CNN
|
||||||
|
F3 "" 300 100 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
SOT?23*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
S 200 300 -200 -300 0 1 10 f
|
||||||
|
X RESET 1 0 -400 100 U 50 50 1 1 O
|
||||||
|
X GND 2 300 0 100 L 50 50 1 1 W
|
||||||
|
X VCC 3 0 400 100 D 50 50 1 1 W
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# DS2438
|
||||||
|
#
|
||||||
|
DEF DS2438 U 0 40 Y Y 1 F N
|
||||||
|
F0 "U" 0 0 50 H V C CNN
|
||||||
|
F1 "DS2438" 0 0 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
DRAW
|
||||||
|
S -450 -100 500 -1200 0 1 0 f
|
||||||
|
X GND 1 -550 -250 100 R 50 50 1 1 W
|
||||||
|
X Vsens+ 2 -550 -500 100 R 50 50 1 1 U
|
||||||
|
X Vsense- 3 -550 -750 100 R 50 50 1 1 U
|
||||||
|
X Vad 4 -550 -1000 100 R 50 50 1 1 I
|
||||||
|
X Vdd 5 600 -1000 100 L 50 50 1 1 W
|
||||||
|
X NC 6 600 -750 100 L 50 50 1 1 U
|
||||||
|
X NC 7 600 -500 100 L 50 50 1 1 U
|
||||||
|
X DQ 8 600 -250 100 L 50 50 1 1 B
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# DW01
|
||||||
|
#
|
||||||
|
DEF DW01 IC 0 40 Y Y 1 L N
|
||||||
|
F0 "IC" 850 300 50 H V L BNN
|
||||||
|
F1 "DW01" 850 200 50 H V L BNN
|
||||||
|
F2 "SOT95P280X135-6N" 0 0 50 H I L BNN
|
||||||
|
F3 "" 0 0 50 H I L BNN
|
||||||
|
F4 "1.35mm" 0 0 50 H I L BNN "HEIGHT"
|
||||||
|
F5 "ic" 0 0 50 H I L BNN "DESCRIPTION"
|
||||||
|
F6 "DW01" 0 0 50 H I L BNN "MANUFACTURER_PART_NUMBER"
|
||||||
|
F7 "Slkor" 0 0 50 H I L BNN "MANUFACTURER_NAME"
|
||||||
|
DRAW
|
||||||
|
P 2 0 0 10 200 100 200 -300 N
|
||||||
|
P 2 0 0 10 200 100 800 100 N
|
||||||
|
P 2 0 0 10 800 -300 200 -300 N
|
||||||
|
P 2 0 0 10 800 -300 800 100 N
|
||||||
|
X OD 1 0 0 200 R 40 40 0 0 B
|
||||||
|
X CSI 2 0 -100 200 R 40 40 0 0 B
|
||||||
|
X OC 3 0 -200 200 R 40 40 0 0 B
|
||||||
|
X TD 4 1000 -200 200 L 40 40 0 0 B
|
||||||
|
X VDD 5 1000 -100 200 L 40 40 0 0 B
|
||||||
|
X VSS 6 1000 0 200 L 40 40 0 0 B
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
#End Library
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,154 @@
|
|||||||
|
|
||||||
|
(module DPAK457P991X255-3N (layer F.Cu) (tedit 5F5CEF39)
|
||||||
|
(descr "")
|
||||||
|
(fp_text reference REF** (at -2.825 -4.635 0) (layer F.SilkS)
|
||||||
|
(effects (font (size 1.0 1.0) (thickness 0.015)))
|
||||||
|
)
|
||||||
|
(fp_text value DPAK457P991X255-3N (at 5.43 5.365 0) (layer F.Fab)
|
||||||
|
(effects (font (size 1.0 1.0) (thickness 0.015)))
|
||||||
|
)
|
||||||
|
(fp_poly
|
||||||
|
(pts
|
||||||
|
(xy -0.265 -2.555)
|
||||||
|
(xy 0.855 -2.555)
|
||||||
|
(xy 0.855 -1.405)
|
||||||
|
(xy -0.265 -1.405)
|
||||||
|
) (layer F.Paste) (width 0.01)
|
||||||
|
)
|
||||||
|
(fp_poly
|
||||||
|
(pts
|
||||||
|
(xy 1.085 -2.555)
|
||||||
|
(xy 2.205 -2.555)
|
||||||
|
(xy 2.205 -1.405)
|
||||||
|
(xy 1.085 -1.405)
|
||||||
|
) (layer F.Paste) (width 0.01)
|
||||||
|
)
|
||||||
|
(fp_poly
|
||||||
|
(pts
|
||||||
|
(xy 2.435 -2.555)
|
||||||
|
(xy 3.555 -2.555)
|
||||||
|
(xy 3.555 -1.405)
|
||||||
|
(xy 2.435 -1.405)
|
||||||
|
) (layer F.Paste) (width 0.01)
|
||||||
|
)
|
||||||
|
(fp_poly
|
||||||
|
(pts
|
||||||
|
(xy 3.785 -2.555)
|
||||||
|
(xy 4.905 -2.555)
|
||||||
|
(xy 4.905 -1.405)
|
||||||
|
(xy 3.785 -1.405)
|
||||||
|
) (layer F.Paste) (width 0.01)
|
||||||
|
)
|
||||||
|
(fp_poly
|
||||||
|
(pts
|
||||||
|
(xy 3.785 -1.235)
|
||||||
|
(xy 4.905 -1.235)
|
||||||
|
(xy 4.905 -0.085)
|
||||||
|
(xy 3.785 -0.085)
|
||||||
|
) (layer F.Paste) (width 0.01)
|
||||||
|
)
|
||||||
|
(fp_poly
|
||||||
|
(pts
|
||||||
|
(xy 3.785 0.085)
|
||||||
|
(xy 4.905 0.085)
|
||||||
|
(xy 4.905 1.235)
|
||||||
|
(xy 3.785 1.235)
|
||||||
|
) (layer F.Paste) (width 0.01)
|
||||||
|
)
|
||||||
|
(fp_poly
|
||||||
|
(pts
|
||||||
|
(xy 3.785 1.405)
|
||||||
|
(xy 4.905 1.405)
|
||||||
|
(xy 4.905 2.555)
|
||||||
|
(xy 3.785 2.555)
|
||||||
|
) (layer F.Paste) (width 0.01)
|
||||||
|
)
|
||||||
|
(fp_poly
|
||||||
|
(pts
|
||||||
|
(xy 2.435 -1.235)
|
||||||
|
(xy 3.555 -1.235)
|
||||||
|
(xy 3.555 -0.085)
|
||||||
|
(xy 2.435 -0.085)
|
||||||
|
) (layer F.Paste) (width 0.01)
|
||||||
|
)
|
||||||
|
(fp_poly
|
||||||
|
(pts
|
||||||
|
(xy 2.435 0.085)
|
||||||
|
(xy 3.555 0.085)
|
||||||
|
(xy 3.555 1.235)
|
||||||
|
(xy 2.435 1.235)
|
||||||
|
) (layer F.Paste) (width 0.01)
|
||||||
|
)
|
||||||
|
(fp_poly
|
||||||
|
(pts
|
||||||
|
(xy 2.435 1.405)
|
||||||
|
(xy 3.555 1.405)
|
||||||
|
(xy 3.555 2.555)
|
||||||
|
(xy 2.435 2.555)
|
||||||
|
) (layer F.Paste) (width 0.01)
|
||||||
|
)
|
||||||
|
(fp_poly
|
||||||
|
(pts
|
||||||
|
(xy 1.085 -1.235)
|
||||||
|
(xy 2.205 -1.235)
|
||||||
|
(xy 2.205 -0.085)
|
||||||
|
(xy 1.085 -0.085)
|
||||||
|
) (layer F.Paste) (width 0.01)
|
||||||
|
)
|
||||||
|
(fp_poly
|
||||||
|
(pts
|
||||||
|
(xy 1.085 0.085)
|
||||||
|
(xy 2.205 0.085)
|
||||||
|
(xy 2.205 1.235)
|
||||||
|
(xy 1.085 1.235)
|
||||||
|
) (layer F.Paste) (width 0.01)
|
||||||
|
)
|
||||||
|
(fp_poly
|
||||||
|
(pts
|
||||||
|
(xy 1.085 1.405)
|
||||||
|
(xy 2.205 1.405)
|
||||||
|
(xy 2.205 2.555)
|
||||||
|
(xy 1.085 2.555)
|
||||||
|
) (layer F.Paste) (width 0.01)
|
||||||
|
)
|
||||||
|
(fp_poly
|
||||||
|
(pts
|
||||||
|
(xy -0.265 -1.235)
|
||||||
|
(xy 0.855 -1.235)
|
||||||
|
(xy 0.855 -0.085)
|
||||||
|
(xy -0.265 -0.085)
|
||||||
|
) (layer F.Paste) (width 0.01)
|
||||||
|
)
|
||||||
|
(fp_poly
|
||||||
|
(pts
|
||||||
|
(xy -0.265 0.085)
|
||||||
|
(xy 0.855 0.085)
|
||||||
|
(xy 0.855 1.235)
|
||||||
|
(xy -0.265 1.235)
|
||||||
|
) (layer F.Paste) (width 0.01)
|
||||||
|
)
|
||||||
|
(fp_poly
|
||||||
|
(pts
|
||||||
|
(xy -0.265 1.405)
|
||||||
|
(xy 0.855 1.405)
|
||||||
|
(xy 0.855 2.555)
|
||||||
|
(xy -0.265 2.555)
|
||||||
|
) (layer F.Paste) (width 0.01)
|
||||||
|
)
|
||||||
|
(fp_line (start 3.875 -3.365) (end -2.345 -3.365) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -2.345 -3.365) (end -2.345 3.365) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -2.345 3.365) (end 3.875 3.365) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start 3.875 3.365) (end 3.875 -3.365) (layer F.Fab) (width 0.127))
|
||||||
|
(fp_line (start 3.875 -3.365) (end -2.345 -3.365) (layer F.Fab) (width 0.127))
|
||||||
|
(fp_line (start -2.345 -3.365) (end -2.345 3.365) (layer F.Fab) (width 0.127))
|
||||||
|
(fp_line (start -2.345 3.365) (end 3.875 3.365) (layer F.Fab) (width 0.127))
|
||||||
|
(fp_circle (center -6.015 -2.285) (end -5.915 -2.285) (layer F.SilkS) (width 0.2))
|
||||||
|
(fp_circle (center -6.015 -2.285) (end -5.915 -2.285) (layer F.Fab) (width 0.2))
|
||||||
|
(fp_line (start -5.815 -3.615) (end 5.815 -3.615) (layer F.CrtYd) (width 0.05))
|
||||||
|
(fp_line (start 5.815 -3.615) (end 5.815 3.615) (layer F.CrtYd) (width 0.05))
|
||||||
|
(fp_line (start 5.815 3.615) (end -5.815 3.615) (layer F.CrtYd) (width 0.05))
|
||||||
|
(fp_line (start -5.815 3.615) (end -5.815 -3.615) (layer F.CrtYd) (width 0.05))
|
||||||
|
(pad 1 smd rect (at -4.45 -2.285) (size 2.22 0.96) (layers F.Cu F.Mask F.Paste))
|
||||||
|
(pad 3 smd rect (at -4.45 2.285) (size 2.22 0.96) (layers F.Cu F.Mask F.Paste))
|
||||||
|
(pad 4 smd rect (at 2.32 0.0) (size 6.49 5.63) (layers F.Cu F.Mask))
|
||||||
|
)
|
||||||
+101664
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,9 @@
|
|||||||
|
EESchema-DOCLIB Version 2.0
|
||||||
|
#
|
||||||
|
$CMP SR04M-2-HeaderConn_01x04_Female
|
||||||
|
D Generic connector, single row, 01x04, script generated (kicad-library-utils/schlib/autogen/connector/)
|
||||||
|
K connector
|
||||||
|
F ~
|
||||||
|
$ENDCMP
|
||||||
|
#
|
||||||
|
#End Doc Library
|
||||||
@@ -0,0 +1,454 @@
|
|||||||
|
(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
|
||||||
|
(symbol "ESP32-DEVKITC-32D" (pin_names (offset 1.016)) (in_bom yes) (on_board yes)
|
||||||
|
(property "Reference" "U" (at -15.2654 26.0604 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||||
|
)
|
||||||
|
(property "Value" "ESP32-DEVKITC-32D" (at -15.2654 -27.9654 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||||
|
)
|
||||||
|
(property "Footprint" "MODULE_ESP32-DEVKITC-32D" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Datasheet" "4" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Field4" "Espressif Systems" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "ki_locked" "" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(symbol "ESP32-DEVKITC-32D_0_0"
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -15.24 -25.4)
|
||||||
|
(xy -15.24 25.4)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -15.24 25.4)
|
||||||
|
(xy 15.24 25.4)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 15.24 -25.4)
|
||||||
|
(xy -15.24 -25.4)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 15.24 25.4)
|
||||||
|
(xy 15.24 -25.4)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(pin power_in line (at -20.32 22.86 0) (length 5.08)
|
||||||
|
(name "3V3" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "1" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -20.32 0 0) (length 5.08)
|
||||||
|
(name "IO26" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "10" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -20.32 -2.54 0) (length 5.08)
|
||||||
|
(name "IO27" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "11" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -20.32 -5.08 0) (length 5.08)
|
||||||
|
(name "IO14" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "12" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -20.32 -7.62 0) (length 5.08)
|
||||||
|
(name "IO12" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "13" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin power_in line (at -20.32 -10.16 0) (length 5.08)
|
||||||
|
(name "GND1" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "14" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -20.32 -12.7 0) (length 5.08)
|
||||||
|
(name "IO13" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "15" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -20.32 -15.24 0) (length 5.08)
|
||||||
|
(name "SD2" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "16" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -20.32 -17.78 0) (length 5.08)
|
||||||
|
(name "SD3" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "17" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -20.32 -20.32 0) (length 5.08)
|
||||||
|
(name "CMD" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "18" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin power_in line (at -20.32 -22.86 0) (length 5.08)
|
||||||
|
(name "EXT_5V" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "19" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin input line (at -20.32 20.32 0) (length 5.08)
|
||||||
|
(name "EN" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "2" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin power_in line (at 20.32 22.86 180) (length 5.08)
|
||||||
|
(name "GND3" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "20" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 20.32 20.32 180) (length 5.08)
|
||||||
|
(name "IO23" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "21" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 20.32 17.78 180) (length 5.08)
|
||||||
|
(name "IO22" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "22" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin output line (at 20.32 15.24 180) (length 5.08)
|
||||||
|
(name "TXD0" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "23" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin input line (at 20.32 12.7 180) (length 5.08)
|
||||||
|
(name "RXD0" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "24" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 20.32 10.16 180) (length 5.08)
|
||||||
|
(name "IO21" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "25" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin power_in line (at 20.32 7.62 180) (length 5.08)
|
||||||
|
(name "GND2" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "26" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 20.32 5.08 180) (length 5.08)
|
||||||
|
(name "IO19" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "27" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 20.32 2.54 180) (length 5.08)
|
||||||
|
(name "IO18" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "28" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 20.32 0 180) (length 5.08)
|
||||||
|
(name "IO5" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "29" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin input line (at -20.32 17.78 0) (length 5.08)
|
||||||
|
(name "SENSOR_VP" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "3" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 20.32 -2.54 180) (length 5.08)
|
||||||
|
(name "IO17" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "30" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 20.32 -5.08 180) (length 5.08)
|
||||||
|
(name "IO16" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "31" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 20.32 -7.62 180) (length 5.08)
|
||||||
|
(name "IO4" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "32" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 20.32 -10.16 180) (length 5.08)
|
||||||
|
(name "IO0" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "33" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 20.32 -12.7 180) (length 5.08)
|
||||||
|
(name "IO2" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "34" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 20.32 -15.24 180) (length 5.08)
|
||||||
|
(name "IO15" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "35" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 20.32 -17.78 180) (length 5.08)
|
||||||
|
(name "SD1" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "36" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 20.32 -20.32 180) (length 5.08)
|
||||||
|
(name "SD0" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "37" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin input clock (at 20.32 -22.86 180) (length 5.08)
|
||||||
|
(name "CLK" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "38" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin input line (at -20.32 15.24 0) (length 5.08)
|
||||||
|
(name "SENSOR_VN" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "4" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -20.32 12.7 0) (length 5.08)
|
||||||
|
(name "IO34" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "5" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -20.32 10.16 0) (length 5.08)
|
||||||
|
(name "IO35" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "6" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -20.32 7.62 0) (length 5.08)
|
||||||
|
(name "IO32" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "7" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -20.32 5.08 0) (length 5.08)
|
||||||
|
(name "IO33" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "8" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -20.32 2.54 0) (length 5.08)
|
||||||
|
(name "IO25" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "9" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(symbol "SL2300" (pin_names (offset 1.016)) (in_bom yes) (on_board yes)
|
||||||
|
(property "Reference" "Q" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(property "Value" "SL2300" (at 7.62 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(property "Footprint" "" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(property "Datasheet" "" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(symbol "SL2300_1_1"
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -1.016 0)
|
||||||
|
(xy -3.81 0)
|
||||||
|
)
|
||||||
|
(stroke (width 0) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -1.016 1.905)
|
||||||
|
(xy -1.016 -1.905)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -0.508 -1.27)
|
||||||
|
(xy -0.508 -2.286)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -0.508 0.508)
|
||||||
|
(xy -0.508 -0.508)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -0.508 2.286)
|
||||||
|
(xy -0.508 1.27)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 1.27 2.54)
|
||||||
|
(xy 1.27 1.778)
|
||||||
|
)
|
||||||
|
(stroke (width 0) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 1.27 -2.54)
|
||||||
|
(xy 1.27 0)
|
||||||
|
(xy -0.508 0)
|
||||||
|
)
|
||||||
|
(stroke (width 0) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -0.508 -1.778)
|
||||||
|
(xy 2.032 -1.778)
|
||||||
|
(xy 2.032 1.778)
|
||||||
|
(xy -0.508 1.778)
|
||||||
|
)
|
||||||
|
(stroke (width 0) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -0.254 0)
|
||||||
|
(xy 0.762 0.381)
|
||||||
|
(xy 0.762 -0.381)
|
||||||
|
(xy -0.254 0)
|
||||||
|
)
|
||||||
|
(stroke (width 0) (type solid))
|
||||||
|
(fill (type outline))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 1.524 0.508)
|
||||||
|
(xy 1.651 0.381)
|
||||||
|
(xy 2.413 0.381)
|
||||||
|
(xy 2.54 0.254)
|
||||||
|
)
|
||||||
|
(stroke (width 0) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 2.032 0.381)
|
||||||
|
(xy 1.651 -0.254)
|
||||||
|
(xy 2.413 -0.254)
|
||||||
|
(xy 2.032 0.381)
|
||||||
|
)
|
||||||
|
(stroke (width 0) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(circle (center 0.381 0) (radius 2.794)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(circle (center 1.27 -1.778) (radius 0.254)
|
||||||
|
(stroke (width 0) (type solid))
|
||||||
|
(fill (type outline))
|
||||||
|
)
|
||||||
|
(circle (center 1.27 1.778) (radius 0.254)
|
||||||
|
(stroke (width 0) (type solid))
|
||||||
|
(fill (type outline))
|
||||||
|
)
|
||||||
|
(pin input line (at -6.35 0 0) (length 2.54)
|
||||||
|
(name "G" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "1" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin passive line (at 1.27 -5.08 90) (length 2.54)
|
||||||
|
(name "S" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "2" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin passive line (at 1.27 5.08 270) (length 2.54)
|
||||||
|
(name "D" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "3" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(symbol "SR04M-2" (pin_names (offset 1.016)) (in_bom yes) (on_board yes)
|
||||||
|
(property "Reference" "H" (at 6.35 27.94 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(property "Value" "SR04M-2" (at 7.62 -21.59 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(property "Footprint" "" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(property "Datasheet" "" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(symbol "SR04M-2_0_1"
|
||||||
|
(rectangle (start -22.86 26.67) (end 41.91 -20.32)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(symbol "SR04M-2-HeaderConn_01x04_Female" (pin_names (offset 1.016) hide) (in_bom yes) (on_board yes)
|
||||||
|
(property "Reference" "J" (at 0 5.08 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(property "Value" "SR04M-2-HeaderConn_01x04_Female" (at 0 -7.62 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(property "Footprint" "ESP32:SR04M-2PinHeader_1x04_P2.54mm_Vertical" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(property "Datasheet" "~" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(property "ki_keywords" "connector" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(property "ki_description" "Generic connector, single row, 01x04, script generated (kicad-library-utils/schlib/autogen/connector/)" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(property "ki_fp_filters" "Connector*:*_1x??_*" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(symbol "SR04M-2-HeaderConn_01x04_Female_1_1"
|
||||||
|
(arc (start 0 -4.572) (mid -0.5058 -5.08) (end 0 -5.588)
|
||||||
|
(stroke (width 0.1524) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(arc (start 0 -2.032) (mid -0.5058 -2.54) (end 0 -3.048)
|
||||||
|
(stroke (width 0.1524) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -1.27 -5.08)
|
||||||
|
(xy -0.508 -5.08)
|
||||||
|
)
|
||||||
|
(stroke (width 0.1524) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -1.27 -2.54)
|
||||||
|
(xy -0.508 -2.54)
|
||||||
|
)
|
||||||
|
(stroke (width 0.1524) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -1.27 0)
|
||||||
|
(xy -0.508 0)
|
||||||
|
)
|
||||||
|
(stroke (width 0.1524) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -1.27 2.54)
|
||||||
|
(xy -0.508 2.54)
|
||||||
|
)
|
||||||
|
(stroke (width 0.1524) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(arc (start 0 0.508) (mid -0.5058 0) (end 0 -0.508)
|
||||||
|
(stroke (width 0.1524) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(arc (start 0 3.048) (mid -0.5058 2.54) (end 0 2.032)
|
||||||
|
(stroke (width 0.1524) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(pin power_in line (at -5.08 2.54 0) (length 3.81)
|
||||||
|
(name "VCC" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "1" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin input line (at -5.08 0 0) (length 3.81)
|
||||||
|
(name "RX" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "2" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin output line (at -5.08 -2.54 0) (length 3.81)
|
||||||
|
(name "TX" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "3" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin power_in line (at -5.08 -5.08 0) (length 3.81)
|
||||||
|
(name "GND" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "4" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
@@ -0,0 +1,124 @@
|
|||||||
|
EESchema-LIBRARY Version 2.4
|
||||||
|
#encoding utf-8
|
||||||
|
#
|
||||||
|
# ESP32-DEVKITC-32D
|
||||||
|
#
|
||||||
|
DEF ESP32-DEVKITC-32D U 0 40 Y Y 1 L N
|
||||||
|
F0 "U" -601 1026 50 H V L BNN
|
||||||
|
F1 "ESP32-DEVKITC-32D" -601 -1101 50 H V L BNN
|
||||||
|
F2 "MODULE_ESP32-DEVKITC-32D" 0 0 50 H I L BNN
|
||||||
|
F3 "4" 0 0 50 H I L BNN
|
||||||
|
F4 "Espressif Systems" 0 0 50 H I L BNN
|
||||||
|
DRAW
|
||||||
|
P 2 0 0 10 -600 -1000 -600 1000 N
|
||||||
|
P 2 0 0 10 -600 1000 600 1000 N
|
||||||
|
P 2 0 0 10 600 -1000 -600 -1000 N
|
||||||
|
P 2 0 0 10 600 1000 600 -1000 N
|
||||||
|
X 3V3 1 -800 900 200 R 40 40 0 0 W
|
||||||
|
X IO26 10 -800 0 200 R 40 40 0 0 B
|
||||||
|
X IO27 11 -800 -100 200 R 40 40 0 0 B
|
||||||
|
X IO14 12 -800 -200 200 R 40 40 0 0 B
|
||||||
|
X IO12 13 -800 -300 200 R 40 40 0 0 B
|
||||||
|
X GND1 14 -800 -400 200 R 40 40 0 0 W
|
||||||
|
X IO13 15 -800 -500 200 R 40 40 0 0 B
|
||||||
|
X SD2 16 -800 -600 200 R 40 40 0 0 B
|
||||||
|
X SD3 17 -800 -700 200 R 40 40 0 0 B
|
||||||
|
X CMD 18 -800 -800 200 R 40 40 0 0 B
|
||||||
|
X EXT_5V 19 -800 -900 200 R 40 40 0 0 W
|
||||||
|
X EN 2 -800 800 200 R 40 40 0 0 I
|
||||||
|
X GND3 20 800 900 200 L 40 40 0 0 W
|
||||||
|
X IO23 21 800 800 200 L 40 40 0 0 B
|
||||||
|
X IO22 22 800 700 200 L 40 40 0 0 B
|
||||||
|
X TXD0 23 800 600 200 L 40 40 0 0 O
|
||||||
|
X RXD0 24 800 500 200 L 40 40 0 0 I
|
||||||
|
X IO21 25 800 400 200 L 40 40 0 0 B
|
||||||
|
X GND2 26 800 300 200 L 40 40 0 0 W
|
||||||
|
X IO19 27 800 200 200 L 40 40 0 0 B
|
||||||
|
X IO18 28 800 100 200 L 40 40 0 0 B
|
||||||
|
X IO5 29 800 0 200 L 40 40 0 0 B
|
||||||
|
X SENSOR_VP 3 -800 700 200 R 40 40 0 0 I
|
||||||
|
X IO17 30 800 -100 200 L 40 40 0 0 B
|
||||||
|
X IO16 31 800 -200 200 L 40 40 0 0 B
|
||||||
|
X IO4 32 800 -300 200 L 40 40 0 0 B
|
||||||
|
X IO0 33 800 -400 200 L 40 40 0 0 B
|
||||||
|
X IO2 34 800 -500 200 L 40 40 0 0 B
|
||||||
|
X IO15 35 800 -600 200 L 40 40 0 0 B
|
||||||
|
X SD1 36 800 -700 200 L 40 40 0 0 B
|
||||||
|
X SD0 37 800 -800 200 L 40 40 0 0 B
|
||||||
|
X CLK 38 800 -900 200 L 40 40 0 0 I C
|
||||||
|
X SENSOR_VN 4 -800 600 200 R 40 40 0 0 I
|
||||||
|
X IO34 5 -800 500 200 R 40 40 0 0 B
|
||||||
|
X IO35 6 -800 400 200 R 40 40 0 0 B
|
||||||
|
X IO32 7 -800 300 200 R 40 40 0 0 B
|
||||||
|
X IO33 8 -800 200 200 R 40 40 0 0 B
|
||||||
|
X IO25 9 -800 100 200 R 40 40 0 0 B
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# SL2300
|
||||||
|
#
|
||||||
|
DEF SL2300 Q 0 40 Y Y 1 F N
|
||||||
|
F0 "Q" 0 0 50 H V C CNN
|
||||||
|
F1 "SL2300" 300 0 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
DRAW
|
||||||
|
C 15 0 110 1 1 10 N
|
||||||
|
C 50 -70 10 1 1 0 F
|
||||||
|
C 50 70 10 1 1 0 F
|
||||||
|
P 2 1 1 0 -40 0 -150 0 N
|
||||||
|
P 2 1 1 10 -40 75 -40 -75 N
|
||||||
|
P 2 1 1 10 -20 -50 -20 -90 N
|
||||||
|
P 2 1 1 10 -20 20 -20 -20 N
|
||||||
|
P 2 1 1 10 -20 90 -20 50 N
|
||||||
|
P 2 1 1 0 50 100 50 70 N
|
||||||
|
P 3 1 1 0 50 -100 50 0 -20 0 N
|
||||||
|
P 4 1 1 0 -20 -70 80 -70 80 70 -20 70 N
|
||||||
|
P 4 1 1 0 -10 0 30 15 30 -15 -10 0 F
|
||||||
|
P 4 1 1 0 60 20 65 15 95 15 100 10 N
|
||||||
|
P 4 1 1 0 80 15 65 -10 95 -10 80 15 N
|
||||||
|
X G 1 -250 0 100 R 50 50 1 1 I
|
||||||
|
X S 2 50 -200 100 U 50 50 1 1 P
|
||||||
|
X D 3 50 200 100 D 50 50 1 1 P
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# SR04M-2
|
||||||
|
#
|
||||||
|
DEF SR04M-2 H 0 40 Y Y 1 F N
|
||||||
|
F0 "H" 250 1100 50 H V C CNN
|
||||||
|
F1 "SR04M-2" 300 -850 50 H V C CNN
|
||||||
|
F2 "" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
DRAW
|
||||||
|
S -900 1050 1650 -800 0 1 10 N
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# SR04M-2-HeaderConn_01x04_Female
|
||||||
|
#
|
||||||
|
DEF SR04M-2-HeaderConn_01x04_Female J 0 40 Y N 1 F N
|
||||||
|
F0 "J" 0 200 50 H V C CNN
|
||||||
|
F1 "SR04M-2-HeaderConn_01x04_Female" 0 -300 50 H V C CNN
|
||||||
|
F2 "ESP32:SR04M-2PinHeader_1x04_P2.54mm_Vertical" 0 0 50 H I C CNN
|
||||||
|
F3 "" 0 0 50 H I C CNN
|
||||||
|
$FPLIST
|
||||||
|
Connector*:*_1x??_*
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
A 0 -200 20 901 -901 1 1 6 N 0 -180 0 -220
|
||||||
|
A 0 -100 20 901 -901 1 1 6 N 0 -80 0 -120
|
||||||
|
A 0 0 20 901 -901 1 1 6 N 0 20 0 -20
|
||||||
|
A 0 100 20 901 -901 1 1 6 N 0 120 0 80
|
||||||
|
P 2 1 1 6 -50 -200 -20 -200 N
|
||||||
|
P 2 1 1 6 -50 -100 -20 -100 N
|
||||||
|
P 2 1 1 6 -50 0 -20 0 N
|
||||||
|
P 2 1 1 6 -50 100 -20 100 N
|
||||||
|
X VCC 1 -200 100 150 R 50 50 1 1 W
|
||||||
|
X RX 2 -200 0 150 R 50 50 1 1 I
|
||||||
|
X TX 3 -200 -100 150 R 50 50 1 1 O
|
||||||
|
X GND 4 -200 -200 150 R 50 50 1 1 W
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
#End Library
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
(module MODULE_ESP32-DEVKITC-32D (layer F.Cu) (tedit 5F565126)
|
||||||
|
(fp_text reference REF** (at -10.829175 -28.446045) (layer F.SilkS)
|
||||||
|
(effects (font (size 1.000386 1.000386) (thickness 0.015)))
|
||||||
|
)
|
||||||
|
(fp_text value MODULE_ESP32-DEVKITC-32D (at 1.24136 28.294535) (layer F.Fab)
|
||||||
|
(effects (font (size 1.001047 1.001047) (thickness 0.015)))
|
||||||
|
)
|
||||||
|
(fp_circle (center -14.6 -19.9) (end -14.46 -19.9) (layer F.Fab) (width 0.28))
|
||||||
|
(fp_circle (center -14.6 -19.9) (end -14.46 -19.9) (layer F.Fab) (width 0.28))
|
||||||
|
(fp_line (start -14.2 27.5) (end -14.2 -27.4) (layer F.CrtYd) (width 0.05))
|
||||||
|
(fp_line (start 14.2 27.5) (end -14.2 27.5) (layer F.CrtYd) (width 0.05))
|
||||||
|
(fp_line (start 14.2 -27.4) (end 14.2 27.5) (layer F.CrtYd) (width 0.05))
|
||||||
|
(fp_line (start -14.2 -27.4) (end 14.2 -27.4) (layer F.CrtYd) (width 0.05))
|
||||||
|
(fp_line (start 13.95 27.25) (end -13.95 27.25) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start 13.95 -27.15) (end 13.95 27.25) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -13.95 -27.15) (end 13.95 -27.15) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -13.95 27.25) (end -13.95 -27.15) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -13.95 27.25) (end -13.95 -27.15) (layer F.Fab) (width 0.127))
|
||||||
|
(fp_line (start 13.95 27.25) (end -13.95 27.25) (layer F.Fab) (width 0.127))
|
||||||
|
(fp_line (start 13.95 -27.15) (end 13.95 27.25) (layer F.Fab) (width 0.127))
|
||||||
|
(fp_line (start -13.95 -27.15) (end 13.95 -27.15) (layer F.Fab) (width 0.127))
|
||||||
|
(pad 1 thru_hole rect (at -12.7 -19.76) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 2 thru_hole circle (at -12.7 -17.22) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 19 thru_hole circle (at -12.7 25.96) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 3 thru_hole circle (at -12.7 -14.68) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 4 thru_hole circle (at -12.7 -12.14) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 5 thru_hole circle (at -12.7 -9.6) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 6 thru_hole circle (at -12.7 -7.06) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 7 thru_hole circle (at -12.7 -4.52) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 8 thru_hole circle (at -12.7 -1.98) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 9 thru_hole circle (at -12.7 0.56) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 10 thru_hole circle (at -12.7 3.1) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 11 thru_hole circle (at -12.7 5.64) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 12 thru_hole circle (at -12.7 8.18) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 13 thru_hole circle (at -12.7 10.72) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 14 thru_hole circle (at -12.7 13.26) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 15 thru_hole circle (at -12.7 15.8) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 16 thru_hole circle (at -12.7 18.34) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 17 thru_hole circle (at -12.7 20.88) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 18 thru_hole circle (at -12.7 23.42) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 20 thru_hole circle (at 12.7 -19.76) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 21 thru_hole circle (at 12.7 -17.22) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 22 thru_hole circle (at 12.7 -14.68) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 23 thru_hole circle (at 12.7 -12.14) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 24 thru_hole circle (at 12.7 -9.6) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 25 thru_hole circle (at 12.7 -7.06) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 26 thru_hole circle (at 12.7 -4.52) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 27 thru_hole circle (at 12.7 -1.98) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 28 thru_hole circle (at 12.7 0.56) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 29 thru_hole circle (at 12.7 3.1) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 30 thru_hole circle (at 12.7 5.64) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 31 thru_hole circle (at 12.7 8.18) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 32 thru_hole circle (at 12.7 10.72) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 33 thru_hole circle (at 12.7 13.26) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 34 thru_hole circle (at 12.7 15.8) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 35 thru_hole circle (at 12.7 18.34) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 36 thru_hole circle (at 12.7 20.88) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 37 thru_hole circle (at 12.7 23.42) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(pad 38 thru_hole circle (at 12.7 25.96) (size 1.56 1.56) (drill 1.04) (layers *.Cu *.Mask))
|
||||||
|
(model ${KIPRJMOD}/kicad-stuff/ESP32-DEVKITC-32D--3DModel-STEP-56544.STEP
|
||||||
|
(offset (xyz 0 -3 1.5))
|
||||||
|
(scale (xyz 1 1 1))
|
||||||
|
(rotate (xyz -90 0 0))
|
||||||
|
)
|
||||||
|
)
|
||||||
+43
@@ -0,0 +1,43 @@
|
|||||||
|
(module SR04M-2PinHeader_1x04_P2.54mm_Vertical (layer F.Cu) (tedit 5FC1448F)
|
||||||
|
(descr "Through hole straight pin header, 1x04, 2.54mm pitch, single row")
|
||||||
|
(tags "Through hole pin header THT 1x04 2.54mm single row")
|
||||||
|
(fp_text reference REF** (at 0 -2.33) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text value SR04M-2PinHeader_1x04_P2.54mm_Vertical (at 0 9.95) (layer F.Fab)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_line (start 1.8 -1.8) (end -1.8 -1.8) (layer F.CrtYd) (width 0.05))
|
||||||
|
(fp_line (start 1.8 9.4) (end 1.8 -1.8) (layer F.CrtYd) (width 0.05))
|
||||||
|
(fp_line (start -1.8 9.4) (end 1.8 9.4) (layer F.CrtYd) (width 0.05))
|
||||||
|
(fp_line (start -1.8 -1.8) (end -1.8 9.4) (layer F.CrtYd) (width 0.05))
|
||||||
|
(fp_line (start -1.33 -1.33) (end 0 -1.33) (layer F.SilkS) (width 0.12))
|
||||||
|
(fp_line (start -1.33 0) (end -1.33 -1.33) (layer F.SilkS) (width 0.12))
|
||||||
|
(fp_line (start -1.33 1.27) (end 1.33 1.27) (layer F.SilkS) (width 0.12))
|
||||||
|
(fp_line (start 1.33 1.27) (end 1.33 8.95) (layer F.SilkS) (width 0.12))
|
||||||
|
(fp_line (start -1.33 1.27) (end -1.33 8.95) (layer F.SilkS) (width 0.12))
|
||||||
|
(fp_line (start -1.33 8.95) (end 1.33 8.95) (layer F.SilkS) (width 0.12))
|
||||||
|
(fp_line (start -1.27 -0.635) (end -0.635 -1.27) (layer F.Fab) (width 0.1))
|
||||||
|
(fp_line (start -1.27 8.89) (end -1.27 -0.635) (layer F.Fab) (width 0.1))
|
||||||
|
(fp_line (start 1.27 8.89) (end -1.27 8.89) (layer F.Fab) (width 0.1))
|
||||||
|
(fp_line (start 1.27 -1.27) (end 1.27 8.89) (layer F.Fab) (width 0.1))
|
||||||
|
(fp_line (start -0.635 -1.27) (end 1.27 -1.27) (layer F.Fab) (width 0.1))
|
||||||
|
(fp_line (start 0 -17.5) (end 10 -17.5) (layer F.SilkS) (width 0.12))
|
||||||
|
(fp_line (start 10 -17.5) (end 10 23.5) (layer F.SilkS) (width 0.12))
|
||||||
|
(fp_line (start 10 23.5) (end -10 23.5) (layer F.SilkS) (width 0.12))
|
||||||
|
(fp_line (start -10 23.5) (end -10 -17.5) (layer F.SilkS) (width 0.12))
|
||||||
|
(fp_line (start -10 -17.5) (end 0.5 -17.5) (layer F.SilkS) (width 0.12))
|
||||||
|
(fp_poly (pts (xy 8.81 6.27) (xy 3.81 6.27) (xy 3.81 1.27) (xy 8.81 1.27)) (layer F.Fab) (width 0.1))
|
||||||
|
(fp_text user %R (at 0 3.81 90) (layer F.Fab)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(pad 1 thru_hole rect (at 0 0) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask))
|
||||||
|
(pad 2 thru_hole oval (at 0 2.54) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask))
|
||||||
|
(pad 3 thru_hole oval (at 0 5.08) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask))
|
||||||
|
(pad 4 thru_hole oval (at 0 7.62) (size 1.7 1.7) (drill 1) (layers *.Cu *.Mask))
|
||||||
|
(model ${KISYS3DMOD}/Connector_PinHeader_2.54mm.3dshapes/PinHeader_1x04_P2.54mm_Vertical.wrl
|
||||||
|
(at (xyz 0 0 0))
|
||||||
|
(scale (xyz 1 1 1))
|
||||||
|
(rotate (xyz 0 0 0))
|
||||||
|
)
|
||||||
|
)
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
<!DOCTYPE HTML><html lang="en-US"> <head> <meta charset="UTF-8"> <meta http-equiv="refresh" content="0; url=https://www.snapeda.com/about/import/#"> <script type="text/javascript">window.location.href="https://www.snapeda.com/about/import/#" </script> <title>Page Redirection</title> </head> <body> If you are not redirected automatically, follow this <a href="https://www.snapeda.com/about/import/#">link to the import guide</a>. </body></html>
|
||||||
@@ -0,0 +1,74 @@
|
|||||||
|
(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
|
||||||
|
(symbol "LP38690DT-3.3" (pin_names (offset 1.016)) (in_bom yes) (on_board yes)
|
||||||
|
(property "Reference" "U" (at -10.16 5.08 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||||
|
)
|
||||||
|
(property "Value" "LP38690DT-3.3" (at -10.16 -7.62 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||||
|
)
|
||||||
|
(property "Footprint" "DPAK457P991X255-3N" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Datasheet" "IPC-7351B" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Field4" "Texas Instruments" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Field5" "M" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Field6" "2.55mm" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "ki_locked" "" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(symbol "LP38690DT-3.3_0_0"
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -10.16 -5.08)
|
||||||
|
(xy 10.16 -5.08)
|
||||||
|
)
|
||||||
|
(stroke (width 0.1524) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -10.16 5.08)
|
||||||
|
(xy -10.16 -5.08)
|
||||||
|
)
|
||||||
|
(stroke (width 0.1524) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 10.16 -5.08)
|
||||||
|
(xy 10.16 5.08)
|
||||||
|
)
|
||||||
|
(stroke (width 0.1524) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 10.16 5.08)
|
||||||
|
(xy -10.16 5.08)
|
||||||
|
)
|
||||||
|
(stroke (width 0.1524) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(pin output line (at 15.24 2.54 180) (length 5.08)
|
||||||
|
(name "OUT" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "1" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin input line (at -15.24 2.54 0) (length 5.08)
|
||||||
|
(name "IN" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "3" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin power_in line (at 15.24 -2.54 180) (length 5.08)
|
||||||
|
(name "GND" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "4" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
EESchema-LIBRARY Version 2.3
|
||||||
|
#encoding utf-8
|
||||||
|
#(c) SnapEDA 2016 (snapeda.com)
|
||||||
|
#This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License (CC BY-SA) with Design Exception 1.0
|
||||||
|
#
|
||||||
|
# LP38690DT-3.3
|
||||||
|
#
|
||||||
|
DEF LP38690DT-3.3 U 0 40 Y Y 1 L N
|
||||||
|
F0 "U" -400 200 50 H V L BNN
|
||||||
|
F1 "LP38690DT-3.3" -400 -300 50 H V L BNN
|
||||||
|
F2 "DPAK457P991X255-3N" 0 0 50 H I L BNN
|
||||||
|
F3 "IPC-7351B" 0 0 50 H I L BNN
|
||||||
|
F4 "Texas Instruments" 0 0 50 H I L BNN
|
||||||
|
F5 "M" 0 0 50 H I L BNN
|
||||||
|
F6 "2.55mm" 0 0 50 H I L BNN
|
||||||
|
DRAW
|
||||||
|
P 2 0 0 6 -400 200 -400 -200 N
|
||||||
|
P 2 0 0 6 -400 -200 400 -200 N
|
||||||
|
P 2 0 0 6 400 -200 400 200 N
|
||||||
|
P 2 0 0 6 400 200 -400 200 N
|
||||||
|
X IN 3 -600 100 200 R 40 40 0 0 I
|
||||||
|
X OUT 1 600 100 200 L 40 40 0 0 O
|
||||||
|
X GND 4 600 -100 200 L 40 40 0 0 W
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# End Library
|
||||||
+63
@@ -0,0 +1,63 @@
|
|||||||
|
(footprint "R_Shunt_Vishay_WSK2512_6332Metric_T1.19mm" (version 20221018) (generator pcbnew)
|
||||||
|
(layer "F.Cu")
|
||||||
|
(descr "Shunt Resistor SMD 2512 (6332 Metric), 2.6mm thick, Vishay WKS2512, Terminal length (T) 1.19mm, 5 to 200 milli Ohm (http://http://www.vishay.com/docs/30108/wsk.pdf)")
|
||||||
|
(tags "resistor shunt WSK2512")
|
||||||
|
(attr smd)
|
||||||
|
(fp_text reference "REF**" (at 0 -2.65) (layer "F.SilkS")
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
(tstamp e64357ee-67ea-437d-842c-edd4e9b0e817)
|
||||||
|
)
|
||||||
|
(fp_text value "R_Shunt_Vishay_WSK2512_6332Metric_T1.19mm" (at 0 2.65) (layer "F.Fab")
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
(tstamp 6d43eee8-d677-4710-a5b6-ed0a393d7e86)
|
||||||
|
)
|
||||||
|
(fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab")
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
(tstamp 7af73258-6848-4c90-ada6-9916b21e0d54)
|
||||||
|
)
|
||||||
|
(fp_line (start -2.5 1.7) (end 1.67 1.7)
|
||||||
|
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 686b0a9f-f303-4b9c-97bc-13b268071b2a))
|
||||||
|
(fp_line (start -1.67 -1.7) (end 2.53 -1.7)
|
||||||
|
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 8ff3cd0c-2e69-49a7-948e-62e2af1cdeaf))
|
||||||
|
(fp_line (start -4.38 -1.9) (end 4.38 -1.9)
|
||||||
|
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 97453d6f-90a6-4d0b-9533-4b9de0e70d67))
|
||||||
|
(fp_line (start -4.38 1.9) (end -4.38 -1.9)
|
||||||
|
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 8d751a64-d963-4d3e-b652-c6367d221a4c))
|
||||||
|
(fp_line (start 4.38 -1.9) (end 4.38 1.9)
|
||||||
|
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 5fc8cbbe-390d-45f2-b9e2-001b3b36ad53))
|
||||||
|
(fp_line (start 4.38 1.9) (end -4.38 1.9)
|
||||||
|
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 85ea9322-734e-4f57-b7f4-e08d8559c109))
|
||||||
|
(fp_line (start -3.175 -1.59) (end 3.175 -1.59)
|
||||||
|
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp a616017c-8c30-4c24-8988-6ebc65a5a14c))
|
||||||
|
(fp_line (start -3.175 0.32) (end -3.175 -1.59)
|
||||||
|
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 007035a4-df14-4627-b9dd-16c0816e9fc4))
|
||||||
|
(fp_line (start -3.175 0.32) (end -2.795 0.32)
|
||||||
|
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 7a92ebc4-86fb-494b-8925-1512bf4598dd))
|
||||||
|
(fp_line (start -3.175 0.94) (end -3.175 1.59)
|
||||||
|
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 8d1ed9db-8b9e-4c9a-b026-a147d8ba5a89))
|
||||||
|
(fp_line (start -3.175 0.94) (end -2.795 0.94)
|
||||||
|
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 3238b0a3-1bbc-4ecd-9eca-d39a4563f46a))
|
||||||
|
(fp_line (start -2.795 0.94) (end -2.795 0.32)
|
||||||
|
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 56e7214e-7e65-4896-9919-6dfa6ad242a1))
|
||||||
|
(fp_line (start 2.79 -0.94) (end 3.17 -0.94)
|
||||||
|
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp bf2fd8b5-dc07-4d36-93f4-c05d760e4ae8))
|
||||||
|
(fp_line (start 2.79 -0.32) (end 2.79 -0.94)
|
||||||
|
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 2732ea3b-0a68-4014-9f1f-147b192cb827))
|
||||||
|
(fp_line (start 2.79 -0.32) (end 3.17 -0.32)
|
||||||
|
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 7597632e-0fab-4537-9ef5-3d955ee8fe04))
|
||||||
|
(fp_line (start 3.175 -0.94) (end 3.175 -1.59)
|
||||||
|
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp be78e59b-9296-4843-849b-9aeaddf3ec90))
|
||||||
|
(fp_line (start 3.175 -0.32) (end 3.175 1.59)
|
||||||
|
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp f0529fdf-6a96-4afa-ae66-3987676f8cc1))
|
||||||
|
(fp_line (start 3.175 1.59) (end -3.175 1.59)
|
||||||
|
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 5494f1f1-9934-4901-ae11-4f45356840a6))
|
||||||
|
(pad "1" smd roundrect (at -2.985 0.635) (size 2.29 2.03) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.12) (tstamp 7d665233-6376-4fd3-9d23-184556b0630c))
|
||||||
|
(pad "2" smd roundrect (at -3.43 -1.27) (size 1.4 0.76) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.12) (tstamp a060266a-0c38-4364-b2df-6f7cf4c69f0d))
|
||||||
|
(pad "3" smd roundrect (at 3.43 -1.27) (size 1.4 0.76) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.25) (tstamp a1e31646-49e8-4836-bd67-1b6bed652414))
|
||||||
|
(pad "4" smd roundrect (at 2.985 0.635) (size 2.29 2.03) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.12) (tstamp 3f532dd2-fd5a-4fe7-9636-aa84f769e3b2))
|
||||||
|
(model "${KICAD6_3DMODEL_DIR}/Resistor_SMD.3dshapes/R_Shunt_Vishay_WSK2512_6332Metric_T1.19mm.wrl"
|
||||||
|
(offset (xyz 0 0 0))
|
||||||
|
(scale (xyz 1 1 1))
|
||||||
|
(rotate (xyz 0 0 0))
|
||||||
|
)
|
||||||
|
)
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
|
||||||
|
(footprint SOP65P640X120-14N (layer F.Cu) (tedit 65346025)
|
||||||
|
(descr "")
|
||||||
|
(attr smd)
|
||||||
|
(fp_text reference REF** (at -0.595 -3.435 0) (layer F.SilkS)
|
||||||
|
(effects (font (size 1.0 1.0) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text value SOP65P640X120-14N (at 7.025 3.435 0) (layer F.Fab)
|
||||||
|
(effects (font (size 1.0 1.0) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(pad 1 smd roundrect (roundrect_rratio 0.05) (at -2.87 -1.95) (size 1.57 0.41) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 2 smd roundrect (roundrect_rratio 0.05) (at -2.87 -1.3) (size 1.57 0.41) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 3 smd roundrect (roundrect_rratio 0.05) (at -2.87 -0.65) (size 1.57 0.41) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 4 smd roundrect (roundrect_rratio 0.05) (at -2.87 0.0) (size 1.57 0.41) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 5 smd roundrect (roundrect_rratio 0.05) (at -2.87 0.65) (size 1.57 0.41) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 6 smd roundrect (roundrect_rratio 0.05) (at -2.87 1.3) (size 1.57 0.41) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 7 smd roundrect (roundrect_rratio 0.05) (at -2.87 1.95) (size 1.57 0.41) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 8 smd roundrect (roundrect_rratio 0.05) (at 2.87 1.95) (size 1.57 0.41) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 9 smd roundrect (roundrect_rratio 0.05) (at 2.87 1.3) (size 1.57 0.41) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 10 smd roundrect (roundrect_rratio 0.05) (at 2.87 0.65) (size 1.57 0.41) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 11 smd roundrect (roundrect_rratio 0.05) (at 2.87 0.0) (size 1.57 0.41) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 12 smd roundrect (roundrect_rratio 0.05) (at 2.87 -0.65) (size 1.57 0.41) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 13 smd roundrect (roundrect_rratio 0.05) (at 2.87 -1.3) (size 1.57 0.41) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 14 smd roundrect (roundrect_rratio 0.05) (at 2.87 -1.95) (size 1.57 0.41) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(fp_circle (center -4.24 -2.26) (end -4.14 -2.26) (layer F.SilkS) (width 0.2))
|
||||||
|
(fp_circle (center -4.24 -2.26) (end -4.14 -2.26) (layer F.Fab) (width 0.2))
|
||||||
|
(fp_line (start -2.2 -2.5) (end 2.2 -2.5) (layer F.Fab) (width 0.127))
|
||||||
|
(fp_line (start -2.2 2.5) (end 2.2 2.5) (layer F.Fab) (width 0.127))
|
||||||
|
(fp_line (start -2.2 -2.5) (end 2.2 -2.5) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -2.2 2.5) (end 2.2 2.5) (layer F.SilkS) (width 0.127))
|
||||||
|
(fp_line (start -2.2 -2.5) (end -2.2 2.5) (layer F.Fab) (width 0.127))
|
||||||
|
(fp_line (start 2.2 -2.5) (end 2.2 2.5) (layer F.Fab) (width 0.127))
|
||||||
|
(fp_line (start -3.905 -2.75) (end 3.905 -2.75) (layer F.CrtYd) (width 0.05))
|
||||||
|
(fp_line (start -3.905 2.75) (end 3.905 2.75) (layer F.CrtYd) (width 0.05))
|
||||||
|
(fp_line (start -3.905 -2.75) (end -3.905 2.75) (layer F.CrtYd) (width 0.05))
|
||||||
|
(fp_line (start 3.905 -2.75) (end 3.905 2.75) (layer F.CrtYd) (width 0.05))
|
||||||
|
)
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
|
||||||
|
(footprint SSOP10 (layer F.Cu) (tedit 652971AF)
|
||||||
|
(descr "")
|
||||||
|
(attr smd)
|
||||||
|
(fp_text reference REF** (at -3.2004 0.0 900) (layer F.SilkS)
|
||||||
|
(effects (font (size 0.64 0.64) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text value SSOP10 (at 3.1496 -0.4064 900) (layer F.Fab)
|
||||||
|
(effects (font (size 0.64 0.64) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(pad 2 smd rect (at -1.0 2.8) (size 0.6 1.75) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 9 smd rect (at -1.0 -2.8) (size 0.6 1.75) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 1 smd rect (at -2.0 2.8) (size 0.6 1.75) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 3 smd rect (at 0.0 2.8) (size 0.6 1.75) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 4 smd rect (at 1.0 2.8) (size 0.6 1.75) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 10 smd rect (at -2.0 -2.8) (size 0.6 1.75) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 8 smd rect (at 0.0 -2.8) (size 0.6 1.75) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 7 smd rect (at 1.0 -2.8) (size 0.6 1.75) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 5 smd rect (at 2.0 2.8) (size 0.6 1.75) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(pad 6 smd rect (at 2.0 -2.8) (size 0.6 1.75) (layers F.Cu F.Mask F.Paste) (solder_mask_margin 0.102))
|
||||||
|
(fp_line (start 2.527 -1.9) (end 2.527 1.4) (layer F.Fab) (width 0.2032))
|
||||||
|
(fp_line (start 2.527 1.4) (end 2.527 1.9) (layer F.Fab) (width 0.2032))
|
||||||
|
(fp_line (start 2.527 1.9) (end -2.527 1.9) (layer F.Fab) (width 0.2032))
|
||||||
|
(fp_line (start -2.527 1.9) (end -2.527 1.4) (layer F.Fab) (width 0.2032))
|
||||||
|
(fp_line (start -2.527 1.4) (end -2.527 -1.9) (layer F.Fab) (width 0.2032))
|
||||||
|
(fp_line (start -2.527 -1.9) (end 2.527 -1.9) (layer F.Fab) (width 0.2032))
|
||||||
|
(fp_line (start 2.527 1.4) (end -2.527 1.4) (layer F.Fab) (width 0.2032))
|
||||||
|
(fp_line (start -1.905 1.016) (end -1.905 -1.016) (layer F.SilkS) (width 0.3048))
|
||||||
|
)
|
||||||
@@ -0,0 +1,104 @@
|
|||||||
|
(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
|
||||||
|
(symbol "SX1308" (pin_names (offset 1.016)) (in_bom yes) (on_board yes)
|
||||||
|
(property "Reference" "U" (at -17.78 20.32 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||||
|
)
|
||||||
|
(property "Value" "SX1308" (at -17.8054 17.8054 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom))
|
||||||
|
)
|
||||||
|
(property "Footprint" "SOT-23-6" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "Datasheet" "" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) (justify left bottom) hide)
|
||||||
|
)
|
||||||
|
(property "ki_locked" "" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(symbol "SX1308_0_0"
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -17.78 -7.62)
|
||||||
|
(xy -17.78 15.24)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -17.78 15.24)
|
||||||
|
(xy 0 15.24)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -13.7922 0.1778)
|
||||||
|
(xy -11.2522 0.1778)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -11.303 1.6764)
|
||||||
|
(xy -8.763 1.6764)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy -11.2522 0.1778)
|
||||||
|
(xy -11.303 1.6764)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 0 -7.62)
|
||||||
|
(xy -17.78 -7.62)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 0 15.24)
|
||||||
|
(xy 0 -7.62)
|
||||||
|
)
|
||||||
|
(stroke (width 0.254) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(text "ON/OFF" (at -10.8712 -0.0508 0)
|
||||||
|
(effects (font (size 0.8128 0.8128)) (justify left bottom))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 5.08 12.7 180) (length 5.08)
|
||||||
|
(name "SW" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "1" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -22.86 -5.08 0) (length 5.08)
|
||||||
|
(name "GND" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "2" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 5.08 -2.54 180) (length 5.08)
|
||||||
|
(name "FB" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "3" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -22.86 2.54 0) (length 5.08)
|
||||||
|
(name "EN" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "4" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at -22.86 12.7 0) (length 5.08)
|
||||||
|
(name "IN" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "5" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 5.08 5.08 180) (length 5.08)
|
||||||
|
(name "N/C" (effects (font (size 1.016 1.016))))
|
||||||
|
(number "6" (effects (font (size 1.016 1.016))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
EESchema-LIBRARY Version 2.3
|
||||||
|
#encoding utf-8
|
||||||
|
#(c) SnapEDA 2016 (snapeda.com)
|
||||||
|
#This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License (CC BY-SA) with Design Exception 1.0
|
||||||
|
#
|
||||||
|
# SX1308
|
||||||
|
#
|
||||||
|
DEF SX1308 U 0 40 Y Y 1 L N
|
||||||
|
F0 "U" -700 800 50 H V L BNN
|
||||||
|
F1 "SX1308" -701 701 50 H V L BNN
|
||||||
|
F2 "SOT-23-6" 0 0 50 H I L BNN
|
||||||
|
F3 "" 0 0 50 H I L BNN
|
||||||
|
DRAW
|
||||||
|
P 2 0 0 10 -700 600 0 600 N
|
||||||
|
P 2 0 0 10 0 600 0 -300 N
|
||||||
|
P 2 0 0 10 0 -300 -700 -300 N
|
||||||
|
P 2 0 0 10 -700 -300 -700 600 N
|
||||||
|
P 2 0 0 10 -543 7 -443 7 N
|
||||||
|
P 2 0 0 10 -443 7 -445 66 N
|
||||||
|
P 2 0 0 10 -445 66 -345 66 N
|
||||||
|
T 0 -428 -2 32 0 0 0 ON/OFF Normal 0 L B
|
||||||
|
X SW 1 200 500 200 L 40 40 0 0 B
|
||||||
|
X FB 3 200 -100 200 L 40 40 0 0 B
|
||||||
|
X IN 5 -900 500 200 R 40 40 0 0 B
|
||||||
|
X EN 4 -900 100 200 R 40 40 0 0 B
|
||||||
|
X GND 2 -900 -200 200 R 40 40 0 0 B
|
||||||
|
X N/C 6 200 200 200 L 40 40 0 0 B
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
# End Library
|
||||||
@@ -0,0 +1,168 @@
|
|||||||
|
(kicad_symbol_lib (version 20220914) (generator kicad_symbol_editor)
|
||||||
|
(symbol "ds2438az+" (pin_names (offset 0.254)) (in_bom yes) (on_board yes)
|
||||||
|
(property "Reference" "U" (at 30.48 10.16 0)
|
||||||
|
(effects (font (size 1.524 1.524)))
|
||||||
|
)
|
||||||
|
(property "Value" "ds2438az+" (at 30.48 7.62 0)
|
||||||
|
(effects (font (size 1.524 1.524)))
|
||||||
|
)
|
||||||
|
(property "Footprint" "21-0041B_8_MXM" (at 30.48 6.096 0)
|
||||||
|
(effects (font (size 1.524 1.524)) hide)
|
||||||
|
)
|
||||||
|
(property "Datasheet" "" (at 0 0 0)
|
||||||
|
(effects (font (size 1.524 1.524)))
|
||||||
|
)
|
||||||
|
(property "ki_locked" "" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)))
|
||||||
|
)
|
||||||
|
(property "ki_fp_filters" "21-0041B_8_MXM 21-0041B_8_MXM-M 21-0041B_8_MXM-L" (at 0 0 0)
|
||||||
|
(effects (font (size 1.27 1.27)) hide)
|
||||||
|
)
|
||||||
|
(symbol "ds2438az+_1_1"
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 7.112 -7.62)
|
||||||
|
(xy 6.0452 -8.128)
|
||||||
|
)
|
||||||
|
(stroke (width 0.127) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 7.112 -7.62)
|
||||||
|
(xy 6.0452 -7.112)
|
||||||
|
)
|
||||||
|
(stroke (width 0.127) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 7.112 -5.08)
|
||||||
|
(xy 6.0452 -5.588)
|
||||||
|
)
|
||||||
|
(stroke (width 0.127) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 7.112 -5.08)
|
||||||
|
(xy 6.0452 -4.572)
|
||||||
|
)
|
||||||
|
(stroke (width 0.127) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 7.112 -2.54)
|
||||||
|
(xy 6.0452 -3.048)
|
||||||
|
)
|
||||||
|
(stroke (width 0.127) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 7.112 -2.54)
|
||||||
|
(xy 6.0452 -2.032)
|
||||||
|
)
|
||||||
|
(stroke (width 0.127) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 7.62 -12.7)
|
||||||
|
(xy 53.34 -12.7)
|
||||||
|
)
|
||||||
|
(stroke (width 0.127) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 7.62 5.08)
|
||||||
|
(xy 7.62 -12.7)
|
||||||
|
)
|
||||||
|
(stroke (width 0.127) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 53.34 -12.7)
|
||||||
|
(xy 53.34 5.08)
|
||||||
|
)
|
||||||
|
(stroke (width 0.127) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 53.34 5.08)
|
||||||
|
(xy 7.62 5.08)
|
||||||
|
)
|
||||||
|
(stroke (width 0.127) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 53.848 0)
|
||||||
|
(xy 54.9148 -0.508)
|
||||||
|
)
|
||||||
|
(stroke (width 0.127) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 53.848 0)
|
||||||
|
(xy 54.9148 0.508)
|
||||||
|
)
|
||||||
|
(stroke (width 0.127) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 55.4228 -0.508)
|
||||||
|
(xy 56.4642 0)
|
||||||
|
)
|
||||||
|
(stroke (width 0.127) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(polyline
|
||||||
|
(pts
|
||||||
|
(xy 55.4228 0.508)
|
||||||
|
(xy 56.4642 0)
|
||||||
|
)
|
||||||
|
(stroke (width 0.127) (type solid))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(pin power_in line (at 0 0 0) (length 7.62)
|
||||||
|
(name "GND" (effects (font (size 1.4986 1.4986))))
|
||||||
|
(number "1" (effects (font (size 1.4986 1.4986))))
|
||||||
|
)
|
||||||
|
(pin input line (at 0 -2.54 0) (length 7.62)
|
||||||
|
(name "VSENS+" (effects (font (size 1.4986 1.4986))))
|
||||||
|
(number "2" (effects (font (size 1.4986 1.4986))))
|
||||||
|
)
|
||||||
|
(pin input line (at 0 -5.08 0) (length 7.62)
|
||||||
|
(name "VSENS-" (effects (font (size 1.4986 1.4986))))
|
||||||
|
(number "3" (effects (font (size 1.4986 1.4986))))
|
||||||
|
)
|
||||||
|
(pin input line (at 0 -7.62 0) (length 7.62)
|
||||||
|
(name "VAD" (effects (font (size 1.4986 1.4986))))
|
||||||
|
(number "4" (effects (font (size 1.4986 1.4986))))
|
||||||
|
)
|
||||||
|
(pin power_in line (at 60.96 -7.62 180) (length 7.62)
|
||||||
|
(name "VDD" (effects (font (size 1.4986 1.4986))))
|
||||||
|
(number "5" (effects (font (size 1.4986 1.4986))))
|
||||||
|
)
|
||||||
|
(pin no_connect line (at 60.96 -5.08 180) (length 7.62)
|
||||||
|
(name "NC" (effects (font (size 1.4986 1.4986))))
|
||||||
|
(number "6" (effects (font (size 1.4986 1.4986))))
|
||||||
|
)
|
||||||
|
(pin no_connect line (at 60.96 -2.54 180) (length 7.62)
|
||||||
|
(name "NC" (effects (font (size 1.4986 1.4986))))
|
||||||
|
(number "7" (effects (font (size 1.4986 1.4986))))
|
||||||
|
)
|
||||||
|
(pin bidirectional line (at 60.96 0 180) (length 7.62)
|
||||||
|
(name "DQ" (effects (font (size 1.4986 1.4986))))
|
||||||
|
(number "8" (effects (font (size 1.4986 1.4986))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
EESchema-LIBRARY Version 2.3 Date: 21-02-2013 11:13:20
|
||||||
|
#encoding utf-8
|
||||||
|
#
|
||||||
|
# ds2438az+
|
||||||
|
#
|
||||||
|
DEF ds2438az+ U 0 10 Y Y 1 L N
|
||||||
|
F0 "U" 1200 400 60 H V C CNN
|
||||||
|
F1 "ds2438az+" 1200 300 60 H V C CNN
|
||||||
|
F2 "21-0041B_8_MXM" 1200 240 60 H I C CNN
|
||||||
|
F3 "~" 0 0 60 H V C CNN
|
||||||
|
$FPLIST
|
||||||
|
21-0041B_8_MXM
|
||||||
|
21-0041B_8_MXM-M
|
||||||
|
21-0041B_8_MXM-L
|
||||||
|
$ENDFPLIST
|
||||||
|
DRAW
|
||||||
|
X GND 1 0 0 300 R 59 59 1 1 W
|
||||||
|
X VSENS+ 2 0 -100 300 R 59 59 1 1 I
|
||||||
|
X VSENS- 3 0 -200 300 R 59 59 1 1 I
|
||||||
|
X VAD 4 0 -300 300 R 59 59 1 1 I
|
||||||
|
X VDD 5 2400 -300 300 L 59 59 1 1 W
|
||||||
|
X NC 6 2400 -200 300 L 59 59 1 1 N
|
||||||
|
X NC 7 2400 -100 300 L 59 59 1 1 N
|
||||||
|
X DQ 8 2400 0 300 L 59 59 1 1 B
|
||||||
|
P 2 1 1 5 280 -100 238 -80 N
|
||||||
|
P 2 1 1 5 280 -100 238 -120 N
|
||||||
|
P 2 1 1 5 280 -200 238 -180 N
|
||||||
|
P 2 1 1 5 280 -200 238 -220 N
|
||||||
|
P 2 1 1 5 280 -300 238 -280 N
|
||||||
|
P 2 1 1 5 280 -300 238 -320 N
|
||||||
|
P 2 1 1 5 2120 0 2162 20 N
|
||||||
|
P 2 1 1 5 2120 0 2162 -20 N
|
||||||
|
P 2 1 1 5 2182 20 2223 0 N
|
||||||
|
P 2 1 1 5 2182 -20 2223 0 N
|
||||||
|
P 2 1 1 5 300 200 300 -500 N
|
||||||
|
P 2 1 1 5 300 -500 2100 -500 N
|
||||||
|
P 2 1 1 5 2100 -500 2100 200 N
|
||||||
|
P 2 1 1 5 2100 200 300 200 N
|
||||||
|
ENDDRAW
|
||||||
|
ENDDEF
|
||||||
|
#
|
||||||
|
#End Library
|
||||||
+25767
File diff suppressed because it is too large
Load Diff
+141
File diff suppressed because one or more lines are too long
@@ -0,0 +1,111 @@
|
|||||||
|
(kicad_symbol_lib
|
||||||
|
(version 20211014)
|
||||||
|
(generator https://github.com/uPesy/easyeda2kicad.py)
|
||||||
|
(symbol "UX-144S-ACP5"
|
||||||
|
(in_bom yes)
|
||||||
|
(on_board yes)
|
||||||
|
(property
|
||||||
|
"Reference"
|
||||||
|
"USB"
|
||||||
|
(id 0)
|
||||||
|
(at 0 11.43 0)
|
||||||
|
(effects (font (size 1.27 1.27) ) )
|
||||||
|
)
|
||||||
|
(property
|
||||||
|
"Value"
|
||||||
|
"UX-144S-ACP5"
|
||||||
|
(id 1)
|
||||||
|
(at 0 -8.89 0)
|
||||||
|
(effects (font (size 1.27 1.27) ) )
|
||||||
|
)
|
||||||
|
(property
|
||||||
|
"Footprint"
|
||||||
|
"easyeda2kicad:MINI-USB-SMD_UX-144S-ACP5"
|
||||||
|
(id 2)
|
||||||
|
(at 0 -11.43 0)
|
||||||
|
(effects (font (size 1.27 1.27) ) hide)
|
||||||
|
)
|
||||||
|
(property
|
||||||
|
"Datasheet"
|
||||||
|
"https://lcsc.com/product-detail/USB-Connectors_XUNPU-UX-144S-ACP5_C720611.html"
|
||||||
|
(id 3)
|
||||||
|
(at 0 -13.97 0)
|
||||||
|
(effects (font (size 1.27 1.27) ) hide)
|
||||||
|
)
|
||||||
|
(property
|
||||||
|
"LCSC Part"
|
||||||
|
"C720611"
|
||||||
|
(id 5)
|
||||||
|
(at 0 -16.51 0)
|
||||||
|
(effects (font (size 1.27 1.27) ) hide)
|
||||||
|
)
|
||||||
|
(symbol "UX-144S-ACP5_0_1"
|
||||||
|
(rectangle
|
||||||
|
(start -7.62 8.89)
|
||||||
|
(end 7.62 -6.35)
|
||||||
|
(stroke (width 0) (type default) (color 0 0 0 0))
|
||||||
|
(fill (type background))
|
||||||
|
)
|
||||||
|
(circle
|
||||||
|
(center -6.35 7.62)
|
||||||
|
(radius 0.38)
|
||||||
|
(stroke (width 0) (type default) (color 0 0 0 0))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(pin unspecified line
|
||||||
|
(at 10.16 5.08 180)
|
||||||
|
(length 2.54)
|
||||||
|
(name "GND" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "9" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin unspecified line
|
||||||
|
(at 10.16 2.54 180)
|
||||||
|
(length 2.54)
|
||||||
|
(name "GND" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "8" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin unspecified line
|
||||||
|
(at 10.16 -0.00 180)
|
||||||
|
(length 2.54)
|
||||||
|
(name "GND" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "7" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin unspecified line
|
||||||
|
(at 10.16 -2.54 180)
|
||||||
|
(length 2.54)
|
||||||
|
(name "GND" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "6" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin unspecified line
|
||||||
|
(at -10.16 -3.81 0)
|
||||||
|
(length 2.54)
|
||||||
|
(name "GND" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "5" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin unspecified line
|
||||||
|
(at -10.16 -1.27 0)
|
||||||
|
(length 2.54)
|
||||||
|
(name "ID" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "4" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin unspecified line
|
||||||
|
(at -10.16 1.27 0)
|
||||||
|
(length 2.54)
|
||||||
|
(name "D+" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "3" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin unspecified line
|
||||||
|
(at -10.16 3.81 0)
|
||||||
|
(length 2.54)
|
||||||
|
(name "D-" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "2" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin unspecified line
|
||||||
|
(at -10.16 6.35 0)
|
||||||
|
(length 2.54)
|
||||||
|
(name "VBUS" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "1" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
+256
@@ -0,0 +1,256 @@
|
|||||||
|
(footprint "MINI-USB-SMD_UX-144S-ACP5"
|
||||||
|
(version 20240108)
|
||||||
|
(generator "pcbnew")
|
||||||
|
(generator_version "8.0")
|
||||||
|
(layer "F.Cu")
|
||||||
|
(property "Reference" "REF**"
|
||||||
|
(at 0 -6.85 0)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "e22138c6-3cb3-4e3c-ba92-a1710585cb5a")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1 1)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Value" "MINI-USB-SMD_UX-144S-ACP5"
|
||||||
|
(at 0 6.85 0)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(uuid "858a2627-e471-4bfb-9d6c-fd1b80f75161")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1 1)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Footprint" ""
|
||||||
|
(at 0 0 0)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(hide yes)
|
||||||
|
(uuid "e47c3973-5f77-49a7-9761-9ae10304f142")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Datasheet" ""
|
||||||
|
(at 0 0 0)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(hide yes)
|
||||||
|
(uuid "26eeaf8e-5561-47b5-8bd4-deeb0ff6028a")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Description" ""
|
||||||
|
(at 0 0 0)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(hide yes)
|
||||||
|
(uuid "df698dc1-8038-47dd-b09b-19d65b3be886")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(attr smd)
|
||||||
|
(fp_line
|
||||||
|
(start -4.7 1.67)
|
||||||
|
(end -4.7 -1.47)
|
||||||
|
(stroke
|
||||||
|
(width 0.25)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "03440d98-e390-4a02-b4b0-b92205207476")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -4.7 5.84)
|
||||||
|
(end -4.7 4.03)
|
||||||
|
(stroke
|
||||||
|
(width 0.25)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "dba5fb97-b84e-4a41-85a6-f4fdb2339977")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -4.7 5.84)
|
||||||
|
(end 4.7 5.84)
|
||||||
|
(stroke
|
||||||
|
(width 0.25)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "e9634972-07de-4463-b72c-20fdc7e82f51")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -2.08 -3.56)
|
||||||
|
(end -3.22 -3.56)
|
||||||
|
(stroke
|
||||||
|
(width 0.25)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "dc5e02c5-dbda-406e-be24-d4fd6d4d39b2")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start 3.22 -3.56)
|
||||||
|
(end 2.08 -3.56)
|
||||||
|
(stroke
|
||||||
|
(width 0.25)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "e1775f8a-42ad-41b1-8e07-5553a0c1f786")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start 4.7 1.67)
|
||||||
|
(end 4.7 -1.47)
|
||||||
|
(stroke
|
||||||
|
(width 0.25)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "b21655b3-f4bd-4a22-9260-c998017c187d")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start 4.7 5.84)
|
||||||
|
(end 4.7 4.03)
|
||||||
|
(stroke
|
||||||
|
(width 0.25)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "b8716775-fa34-44c7-9a12-b008ee829381")
|
||||||
|
)
|
||||||
|
(fp_circle
|
||||||
|
(center -2.2 -0.1)
|
||||||
|
(end -2.01 -0.1)
|
||||||
|
(stroke
|
||||||
|
(width 0.38)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(fill none)
|
||||||
|
(layer "Cmts.User")
|
||||||
|
(uuid "de63054b-d560-446e-acd5-3d574530415b")
|
||||||
|
)
|
||||||
|
(fp_circle
|
||||||
|
(center 2.2 -0.1)
|
||||||
|
(end 2.39 -0.1)
|
||||||
|
(stroke
|
||||||
|
(width 0.38)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(fill none)
|
||||||
|
(layer "Cmts.User")
|
||||||
|
(uuid "81ac27ac-99bd-4e20-acf0-7bd310da8d42")
|
||||||
|
)
|
||||||
|
(fp_circle
|
||||||
|
(center -4.67 -3.46)
|
||||||
|
(end -4.64 -3.46)
|
||||||
|
(stroke
|
||||||
|
(width 0.06)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(fill none)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(uuid "fd695e98-9e3b-4a37-8976-4cf48758b0bb")
|
||||||
|
)
|
||||||
|
(fp_text user "${REFERENCE}"
|
||||||
|
(at 0 0 0)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(uuid "ebb3e71d-8b4f-4e74-a06c-fa75e65fb5ea")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1 1)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pad "" smd circle
|
||||||
|
(at -2.2 -0.1)
|
||||||
|
(size 1 1)
|
||||||
|
(layers "F.Paste")
|
||||||
|
(uuid "bd4630f6-b596-42aa-a67b-d92affdad121")
|
||||||
|
)
|
||||||
|
(pad "" smd circle
|
||||||
|
(at 2.2 -0.1)
|
||||||
|
(size 1 1)
|
||||||
|
(layers "F.Paste")
|
||||||
|
(uuid "5600899a-4eef-439b-b910-bd9b182b3af5")
|
||||||
|
)
|
||||||
|
(pad "1" smd rect
|
||||||
|
(at -1.6 -2.85)
|
||||||
|
(size 0.5 1.7)
|
||||||
|
(layers "F.Cu" "F.Paste" "F.Mask")
|
||||||
|
(uuid "335fc2d7-32d6-4034-8537-3e4ecdbb698e")
|
||||||
|
)
|
||||||
|
(pad "2" smd rect
|
||||||
|
(at -0.8 -2.85)
|
||||||
|
(size 0.5 1.7)
|
||||||
|
(layers "F.Cu" "F.Paste" "F.Mask")
|
||||||
|
(uuid "ad9d26c5-067e-4461-a7de-8849dc9b3d7a")
|
||||||
|
)
|
||||||
|
(pad "3" smd rect
|
||||||
|
(at 0 -2.85)
|
||||||
|
(size 0.5 1.7)
|
||||||
|
(layers "F.Cu" "F.Paste" "F.Mask")
|
||||||
|
(uuid "07c2e01e-14f9-40a4-a86a-be138db1f386")
|
||||||
|
)
|
||||||
|
(pad "4" smd rect
|
||||||
|
(at 0.8 -2.85)
|
||||||
|
(size 0.5 1.7)
|
||||||
|
(layers "F.Cu" "F.Paste" "F.Mask")
|
||||||
|
(uuid "d6db4c4a-622f-481f-9577-0021a75fe066")
|
||||||
|
)
|
||||||
|
(pad "5" smd rect
|
||||||
|
(at 1.6 -2.85)
|
||||||
|
(size 0.5 1.7)
|
||||||
|
(layers "F.Cu" "F.Paste" "F.Mask")
|
||||||
|
(uuid "775ff58f-f278-4d45-878f-eb1e67ee5746")
|
||||||
|
)
|
||||||
|
(pad "6" smd rect
|
||||||
|
(at -4.17 -2.65)
|
||||||
|
(size 1.45 1.9)
|
||||||
|
(layers "F.Cu" "F.Paste" "F.Mask")
|
||||||
|
(uuid "b5e05f8a-9ee3-4e04-b21c-09af79a7cad4")
|
||||||
|
)
|
||||||
|
(pad "7" smd rect
|
||||||
|
(at -4.17 2.85)
|
||||||
|
(size 1.45 1.9)
|
||||||
|
(layers "F.Cu" "F.Paste" "F.Mask")
|
||||||
|
(uuid "3fd2e9c6-b2e3-46a8-9255-7cd472742419")
|
||||||
|
)
|
||||||
|
(pad "8" smd rect
|
||||||
|
(at 4.17 2.85)
|
||||||
|
(size 1.45 1.9)
|
||||||
|
(layers "F.Cu" "F.Paste" "F.Mask")
|
||||||
|
(uuid "1d175ab4-356e-4f51-b58d-b305fd7c0af9")
|
||||||
|
)
|
||||||
|
(pad "9" smd rect
|
||||||
|
(at 4.17 -2.65)
|
||||||
|
(size 1.45 1.9)
|
||||||
|
(layers "F.Cu" "F.Paste" "F.Mask")
|
||||||
|
(uuid "875b3383-2651-4a80-aa85-613ada3fbbba")
|
||||||
|
)
|
||||||
|
(model "${KIPRJMOD}/kicad-stuff/easyeda2kicad.3dshapes/MINI-USB-SMD_UX-144S-ACP5.step"
|
||||||
|
(offset
|
||||||
|
(xyz 0 -1.25 2)
|
||||||
|
)
|
||||||
|
(scale
|
||||||
|
(xyz 1 1 1)
|
||||||
|
)
|
||||||
|
(rotate
|
||||||
|
(xyz 0 0 0)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
# For PCBs designed using KiCAD: http://www.kicad-pcb.org/
|
||||||
|
|
||||||
|
# Temporary files
|
||||||
|
*.000
|
||||||
|
*.bak
|
||||||
|
*.bck
|
||||||
|
*.kicad_pcb-bak
|
||||||
|
|
||||||
|
# Netlist files (exported from Eeschema)
|
||||||
|
*.net
|
||||||
|
|
||||||
|
# Autorouter files (exported from Pcbnew)
|
||||||
|
.dsn
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
The MIT License (MIT)
|
||||||
|
|
||||||
|
Copyright (c) 2016 kubabu
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
# misc_footprints
|
||||||
|
Library of KiCad footprints with various parts
|
||||||
|
==============================================
|
||||||
|
Modules:
|
||||||
|
* TP4056 Li-Ion cell charger module with BMS: DW01 + 8205S for protection
|
||||||
|
* XL6009 DC-DC step-up (boost) voltage converter
|
||||||
|
* MT3608 DC-DC step-up (boost) voltage converter
|
||||||
|
* MP1584 DC-DC step-down (buck) voltage converter
|
||||||
|
|
||||||
|
Parts:
|
||||||
|
* 18650 one-cell casket
|
||||||
|
* Nokia N95 battery connector
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
|
dir_path = None
|
||||||
|
|
||||||
|
# Gerber files generated by Kicad are content- compatible with those
|
||||||
|
# made in EAGLE but naming convention is different, which can be problematic
|
||||||
|
# Renaming GERBERS to EAGLE convention eg. enables OSHPark to parse them
|
||||||
|
|
||||||
|
# Remember to megre PTH and NPTH drillings to one .drl file
|
||||||
|
|
||||||
|
EAGLE_counterparts = {
|
||||||
|
"-F.Cu.gbr": ".GTL", # Top Layer
|
||||||
|
"-B.Cu.gbr": ".GBL", # Bottom Layer
|
||||||
|
"-F.Mask.gbr": ".GTS", # Top Soldermask
|
||||||
|
"-B.Mask.gbr": ".GBS", # Bottom Soldermask
|
||||||
|
"-F.SilkS.gbr": ".GTO", # Top Silkscreen
|
||||||
|
"-B.SilkS.gbr": ".GBO", # Bottom Silkscreen
|
||||||
|
# "": ".G2L",
|
||||||
|
# "": ".G3L",
|
||||||
|
"-Edge.Cuts.gbr": ".GKO", # Board Outline
|
||||||
|
".drl": ".XLN" # Drills
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def eaglize_file(filename):
|
||||||
|
for k_format in EAGLE_counterparts.keys():
|
||||||
|
if filename.endswith(k_format):
|
||||||
|
k = filename.rfind(k_format)
|
||||||
|
new_filename = filename[:k] + EAGLE_counterparts[k_format]
|
||||||
|
os.rename(filename, new_filename)
|
||||||
|
return new_filename
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
try:
|
||||||
|
dir_path = sys.argv[1]
|
||||||
|
except IndexError:
|
||||||
|
dir_path = '.'
|
||||||
|
|
||||||
|
for root, dirs, files in os.walk(dir_path):
|
||||||
|
for file_name in files:
|
||||||
|
eaglize_file(file_name)
|
||||||
+37
@@ -0,0 +1,37 @@
|
|||||||
|
(module 16850_cell_casket (layer F.Cu) (tedit 55D20D10)
|
||||||
|
(fp_text reference REF** (at 38.7 -6.45) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text value 16850_cell_casket (at 19.812 -11.684) (layer F.Fab)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_line (start 49.5 -3) (end 44.5 0) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 49.5 -3) (end 55.5 0) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 76.5 -3.5) (end 76.5 3.5) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 76.5 3.5) (end 1.5 3.5) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 1.5 3.5) (end 1.5 -3.5) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 1.5 -3.5) (end 76.5 -3.5) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 55.5 0) (end 49.5 3) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 49.5 3) (end 44.5 0) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_text user BLM (at 49.9 0.1) (layer F.SilkS)
|
||||||
|
(effects (font (size 3 2) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text user 18650 (at 27.5 0) (layer F.SilkS)
|
||||||
|
(effects (font (size 2 2) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_line (start 60.5 0) (end 62.5 0) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_circle (center 61.5 0) (end 63 -0.5) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 18 -1) (end 18 1) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 17 0) (end 19 0) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_circle (center 18 0) (end 19 -1) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_circle (center 67 0) (end 67 -2) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_circle (center 11 0) (end 11 -2) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_circle (center 67 0) (end 66.8 -1.5) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_circle (center 11 0) (end 10.8 -1.5) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 0 10.45) (end 0 -10.45) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 78 10.45) (end 0 10.45) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 78 -10.45) (end 78 10.45) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 0 -10.45) (end 78 -10.45) (layer F.SilkS) (width 0.15))
|
||||||
|
(pad 2 thru_hole rect (at 77.474 0) (size 1.524 1.524) (drill 0.762) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
(pad 1 thru_hole rect (at 0.504 0) (size 1.524 1.524) (drill 0.762) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
)
|
||||||
+48
@@ -0,0 +1,48 @@
|
|||||||
|
(module 4056E_LiIon_loader (layer F.Cu) (tedit 569E29C6)
|
||||||
|
(fp_text reference M1 (at -1.266 1.13) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text value 4056E_Loader_prot (at 0.66 -3.46) (layer F.Fab)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_line (start -13.29 8.5) (end 12.7 8.5) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -13.3 -8.5) (end 12.7 -8.5) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -13.77 3.36) (end -13.77 -3.19) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_text user microUSB (at -9.438 0.086 180) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_line (start -13.756 3.388) (end -13.248 3.388) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -13.248 3.388) (end -12.994 2.88) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -12.994 2.88) (end -12.74 2.88) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -13.756 -3.216) (end -13.248 -3.216) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -13.248 -3.216) (end -12.994 -2.708) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -12.994 -2.708) (end -8.168 -2.708) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -8.168 -2.708) (end -8.168 2.88) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -8.168 2.88) (end -12.74 2.88) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_text user B- (at 10.674 1.29) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text user B+ (at 10.674 -2.012) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text user OUT- (at 7.19 6.556) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text user OUT+ (at 6.87 -6.348) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text user IN- (at -6.9 6.76) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text user IN+ (at -7.43 -6.13) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_line (start -13.296 8.5) (end -13.296 -8.5) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 12.706 -8.5) (end 12.706 8.5) (layer F.SilkS) (width 0.15))
|
||||||
|
(pad 1 thru_hole rect (at -11 -6.5) (size 3 3) (drill 1.25) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
(pad 2 thru_hole rect (at -11 6.5) (size 3 3) (drill 1.25) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
(pad 6 thru_hole rect (at 11 7) (size 2.5 2.5) (drill 1.25) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
(pad 5 thru_hole rect (at 11 -7) (size 2.5 2.5) (drill 1.25) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
(pad 3 thru_hole rect (at 11 -3.75) (size 2.5 2.5) (drill 1.25) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
(pad 4 thru_hole rect (at 11 3.75) (size 2.5 2.5) (drill 1.25) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
)
|
||||||
+48
@@ -0,0 +1,48 @@
|
|||||||
|
(module 4056E_LiIon_loader_SMT (layer F.Cu) (tedit 569E2953)
|
||||||
|
(fp_text reference M1 (at -1.266 1.13) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text value 4056E_Loader_prot (at 0.66 -3.46) (layer F.Fab)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_line (start -13.29 8.5) (end 12.7 8.5) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -13.3 -8.5) (end 12.7 -8.5) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -13.87 3.26) (end -13.87 -3.29) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_text user microUSB (at -9.538 -0.014 180) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_line (start -13.856 3.288) (end -13.348 3.288) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -13.348 3.288) (end -13.094 2.78) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -13.094 2.78) (end -12.84 2.78) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -13.856 -3.316) (end -13.348 -3.316) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -13.348 -3.316) (end -13.094 -2.808) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -13.094 -2.808) (end -8.268 -2.808) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -8.268 -2.808) (end -8.268 2.78) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -8.268 2.78) (end -12.84 2.78) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_text user B- (at 10.674 1.29) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text user B+ (at 10.674 -2.012) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text user OUT- (at 7.19 6.556) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text user OUT+ (at 6.87 -6.348) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text user IN- (at -6.9 6.76) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text user IN+ (at -7.43 -6.13) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_line (start -13.296 8.5) (end -13.296 -8.5) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 12.706 -8.5) (end 12.706 8.5) (layer F.SilkS) (width 0.15))
|
||||||
|
(pad 1 smd rect (at -11 -6.75) (size 3 3) (layers F.Cu F.Paste F.Mask))
|
||||||
|
(pad 2 smd rect (at -11 6.75) (size 3 3) (layers F.Cu F.Paste F.Mask))
|
||||||
|
(pad 6 smd rect (at 11 7) (size 3 2.5) (layers F.Cu F.Paste F.Mask))
|
||||||
|
(pad 5 smd rect (at 11 -7) (size 3 2.5) (layers F.Cu F.Paste F.Mask))
|
||||||
|
(pad 3 smd rect (at 11 -3.75) (size 3 2.5) (layers F.Cu F.Paste F.Mask))
|
||||||
|
(pad 4 smd rect (at 11 3.75) (size 3 2.5) (layers F.Cu F.Paste F.Mask))
|
||||||
|
)
|
||||||
+48
@@ -0,0 +1,48 @@
|
|||||||
|
(module 4056E_LiIon_loader_prot (layer F.Cu) (tedit 55D73003)
|
||||||
|
(fp_text reference M1 (at -1.266 1.13) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text value 4056E_Loader_prot (at 0.66 -3.46) (layer F.Fab)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_line (start -13.29 8.27) (end 12.7 8.27) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -13.3 -8.88) (end 12.7 -8.87) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -13.87 2.96) (end -13.87 -3.59) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_text user microUSB (at -9.538 -0.314 180) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_line (start -13.856 2.988) (end -13.348 2.988) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -13.348 2.988) (end -13.094 2.48) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -13.094 2.48) (end -12.84 2.48) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -13.856 -3.616) (end -13.348 -3.616) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -13.348 -3.616) (end -13.094 -3.108) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -13.094 -3.108) (end -8.268 -3.108) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -8.268 -3.108) (end -8.268 2.48) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -8.268 2.48) (end -12.84 2.48) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_text user B- (at 10.674 1.29) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text user B+ (at 10.674 -2.012) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text user OUT- (at 7.19 6.556) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text user OUT+ (at 6.87 -6.348) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text user IN- (at -6.9 6.76) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text user IN+ (at -7.43 -6.13) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_line (start -13.296 8.275) (end -13.296 -8.87) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 12.706 -8.87) (end 12.706 8.275) (layer F.SilkS) (width 0.15))
|
||||||
|
(pad 1 thru_hole rect (at -10.76 -6.51) (size 2.1 2.1) (drill 1) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
(pad 2 thru_hole rect (at -10.76 6.37) (size 2.1 2.1) (drill 1) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
(pad 6 thru_hole rect (at 10.7 6.37) (size 2.1 2.1) (drill 1.2) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
(pad 5 thru_hole rect (at 10.7 -6.33) (size 2.1 2.1) (drill 1.2) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
(pad 3 thru_hole rect (at 10.7 -3.79) (size 2.1 2.1) (drill 1.2) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
(pad 4 thru_hole rect (at 10.7 3.83) (size 2.1 2.1) (drill 0.762) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
)
|
||||||
+51
@@ -0,0 +1,51 @@
|
|||||||
|
(module BatteryHolder_Keystone_1042_1x18650 (layer F.Cu) (tedit 5F8201AB)
|
||||||
|
(descr "Battery holder for 18650 cylindrical cells http://www.keyelco.com/product.cfm/product_id/918")
|
||||||
|
(tags "18650 Keystone 1042 Li-ion")
|
||||||
|
(attr smd)
|
||||||
|
(fp_text reference REF** (at 0 -11.5) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text value BatteryHolder_Keystone_1042_1x18650 (at 0 11.3) (layer F.Fab)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_line (start -42.5 -4.75) (end -42.5 -7.25) (layer F.SilkS) (width 0.12))
|
||||||
|
(fp_line (start -43.75 -6) (end -41.25 -6) (layer F.SilkS) (width 0.12))
|
||||||
|
(fp_line (start -39.03 3.68) (end -43.5 3.68) (layer F.CrtYd) (width 0.05))
|
||||||
|
(fp_line (start -43.5 3.68) (end -43.5 -3.68) (layer F.CrtYd) (width 0.05))
|
||||||
|
(fp_line (start -43.5 -3.68) (end -39.03 -3.68) (layer F.CrtYd) (width 0.05))
|
||||||
|
(fp_line (start 43.5 -3.68) (end 39.03 -3.68) (layer F.CrtYd) (width 0.05))
|
||||||
|
(fp_line (start 39.03 3.68) (end 43.5 3.68) (layer F.CrtYd) (width 0.05))
|
||||||
|
(fp_line (start -39.03 -10.83) (end -39.03 -3.68) (layer F.CrtYd) (width 0.05))
|
||||||
|
(fp_line (start -39.03 10.83) (end -39.03 3.68) (layer F.CrtYd) (width 0.05))
|
||||||
|
(fp_line (start 39.03 -10.83) (end 39.03 -3.68) (layer F.CrtYd) (width 0.05))
|
||||||
|
(fp_line (start -39.03 -10.83) (end 39.03 -10.83) (layer F.CrtYd) (width 0.05))
|
||||||
|
(fp_line (start -39.03 10.83) (end 39.03 10.83) (layer F.CrtYd) (width 0.05))
|
||||||
|
(fp_line (start 38.53 -10.33) (end 38.53 10.33) (layer F.Fab) (width 0.1))
|
||||||
|
(fp_line (start -33.3675 -10.33) (end 38.53 -10.33) (layer F.Fab) (width 0.1))
|
||||||
|
(fp_line (start 43.75 -6) (end 41.25 -6) (layer F.SilkS) (width 0.12))
|
||||||
|
(fp_line (start -38.53 -5.1675) (end -38.53 10.33) (layer F.Fab) (width 0.1))
|
||||||
|
(fp_line (start -38.53 10.33) (end 38.53 10.33) (layer F.Fab) (width 0.1))
|
||||||
|
(fp_line (start 38.64 -3.44) (end 38.64 -10.42) (layer F.SilkS) (width 0.12))
|
||||||
|
(fp_line (start 38.64 -10.44) (end -38.64 -10.44) (layer F.SilkS) (width 0.12))
|
||||||
|
(fp_line (start -38.64 -10.44) (end -38.64 -3.44) (layer F.SilkS) (width 0.12))
|
||||||
|
(fp_line (start 38.64 3.44) (end 38.64 10.44) (layer F.SilkS) (width 0.12))
|
||||||
|
(fp_line (start 38.64 10.44) (end -38.64 10.44) (layer F.SilkS) (width 0.12))
|
||||||
|
(fp_line (start -38.64 10.44) (end -38.64 3.44) (layer F.SilkS) (width 0.12))
|
||||||
|
(fp_text user %R (at 0 0) (layer F.Fab)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_line (start 39.03 10.83) (end 39.03 3.68) (layer F.CrtYd) (width 0.05))
|
||||||
|
(fp_line (start 43.5 3.68) (end 43.5 -3.68) (layer F.CrtYd) (width 0.05))
|
||||||
|
(fp_line (start -38.64 -3.44) (end -43 -3.44) (layer F.SilkS) (width 0.12))
|
||||||
|
(fp_line (start -33.3675 -10.33) (end -38.53 -5.1675) (layer F.Fab) (width 0.1))
|
||||||
|
(pad "" np_thru_hole circle (at -35.93 -8) (size 2.39 2.39) (drill 2.39) (layers *.Cu *.Mask))
|
||||||
|
(pad "" np_thru_hole circle (at -27.6 8) (size 3.45 3.45) (drill 3.45) (layers *.Cu *.Mask))
|
||||||
|
(pad "" np_thru_hole circle (at 27.6 -8) (size 3.45 3.45) (drill 3.45) (layers *.Cu *.Mask))
|
||||||
|
(pad 2 thru_hole rect (at 39.33 0) (size 7.34 6.35) (drill 2) (layers *.Cu *.Mask))
|
||||||
|
(pad 1 thru_hole rect (at -39.33 0) (size 7.34 6.35) (drill 2) (layers *.Cu *.Mask))
|
||||||
|
(model ${KISYS3DMOD}/Battery.3dshapes/BatteryHolder_Keystone_1042_1x18650.wrl
|
||||||
|
(at (xyz 0 0 0))
|
||||||
|
(scale (xyz 1 1 1))
|
||||||
|
(rotate (xyz 0 0 0))
|
||||||
|
)
|
||||||
|
)
|
||||||
+89
@@ -0,0 +1,89 @@
|
|||||||
|
(module MP1584_buck_module (layer F.Cu) (tedit 55D1F7A1)
|
||||||
|
(fp_text reference REF** (at 5.08 0.762) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text value MP1584_buck_module (at 0.635 9.144) (layer F.Fab)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_line (start 3.302 4.318) (end 1.016 6.096) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -6.096 4.318) (end 3.302 4.318) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 3.302 4.318) (end 1.016 2.54) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -1.524 -1.778) (end -1.016 -1.778) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -1.016 -1.778) (end -1.016 2.286) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -1.016 2.286) (end -1.524 2.286) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -1.524 2.286) (end -1.524 2.794) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -1.524 2.794) (end -1.778 2.794) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -1.778 2.794) (end -1.778 2.286) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -1.778 2.286) (end -2.794 2.286) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -2.794 2.286) (end -2.794 2.794) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -2.794 2.794) (end -3.048 2.794) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -3.048 2.794) (end -3.048 2.286) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -3.048 2.286) (end -4.064 2.286) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -4.064 2.286) (end -4.064 2.794) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -4.064 2.794) (end -4.318 2.794) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -4.318 2.794) (end -4.318 2.286) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -4.318 2.286) (end -5.334 2.286) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -5.334 2.286) (end -5.334 2.794) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -5.334 2.794) (end -5.588 2.794) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -5.588 2.794) (end -5.588 2.286) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -5.588 2.286) (end -6.096 2.286) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -6.096 2.286) (end -6.096 2.032) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -2.794 -1.778) (end -1.778 -1.778) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -4.064 -1.778) (end -3.048 -1.778) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -5.334 -1.778) (end -4.318 -1.778) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -1.778 -1.778) (end -1.778 -2.286) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -1.778 -2.286) (end -1.524 -2.286) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -3.048 -1.778) (end -3.048 -2.286) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -3.048 -2.286) (end -2.794 -2.286) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -4.318 -1.778) (end -4.318 -2.286) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -4.318 -2.286) (end -4.064 -2.286) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -6.096 2.032) (end -6.096 -1.778) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -6.096 -1.778) (end -5.842 -1.778) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -5.842 -1.778) (end -5.588 -1.778) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -5.588 -1.778) (end -5.588 -2.286) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -5.588 -2.286) (end -5.334 -2.286) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -1.524 -1.778) (end -1.524 -2.286) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -2.794 -2.286) (end -2.794 -1.778) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -4.064 -1.778) (end -4.064 -2.286) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -5.334 -1.778) (end -5.334 -2.286) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 10.033 0.508) (end 8.509 0.508) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 8.509 0.508) (end 9.271 0.508) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 9.271 0.508) (end 9.271 2.286) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 9.271 -2.286) (end 9.271 -0.508) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 9.271 -0.508) (end 8.509 -0.508) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 8.509 -0.508) (end 10.033 -0.508) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -2.159 -7.62) (end -2.159 -5.334) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -4.191 -7.62) (end -4.191 -5.334) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -4.191 -5.334) (end -2.159 -6.604) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -2.159 -6.604) (end -4.191 -7.62) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 6.223 -6.604) (end 1.397 -6.604) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 1.397 -6.604) (end 1.397 -0.508) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 1.397 -0.508) (end 6.985 -0.508) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 6.985 -0.508) (end 6.985 -6.604) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 6.985 -6.604) (end 6.223 -6.604) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 6.223 -7.62) (end 7.239 -7.62) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_circle (center 6.731 -7.62) (end 7.239 -7.874) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 6.731 7.112) (end 6.731 8.128) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 6.223 7.62) (end 7.239 7.62) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_circle (center 6.731 7.62) (end 7.239 7.874) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 7.493 8.382) (end 7.493 2.286) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 7.493 2.286) (end 11.049 2.286) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 11.049 -2.286) (end 7.493 -2.286) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 7.493 -2.286) (end 7.493 -8.382) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -11.049 2.286) (end -7.493 2.286) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -7.493 2.286) (end -7.493 8.382) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -7.493 -8.382) (end -7.493 -2.286) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -7.493 -2.286) (end -11.049 -2.286) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -11.049 -8.382) (end 11.049 -8.382) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 11.049 -8.382) (end 11.049 8.382) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 11.049 8.382) (end -11.049 8.382) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -11.049 8.382) (end -11.049 -8.382) (layer F.SilkS) (width 0.15))
|
||||||
|
(pad 2 thru_hole circle (at -9.271 -6.604) (size 1.524 1.524) (drill 0.7) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
(pad 1 thru_hole rect (at -9.271 6.604) (size 1.524 1.524) (drill 0.7) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
(pad 3 thru_hole circle (at 9.271 -6.604) (size 1.524 1.524) (drill 0.7) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
(pad 4 thru_hole rect (at 9.271 6.604) (size 1.524 1.524) (drill 0.7) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
(pad 3 thru_hole rect (at 9.271 -4.064) (size 1.524 1.524) (drill 0.7) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
(pad 2 thru_hole rect (at -9.271 -4.064) (size 1.524 1.524) (drill 0.7) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
(pad 1 thru_hole circle (at -9.271 4.064) (size 1.524 1.524) (drill 0.7) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
(pad 4 thru_hole circle (at 9.271 4.064) (size 1.524 1.524) (drill 0.7) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
)
|
||||||
+36
@@ -0,0 +1,36 @@
|
|||||||
|
(module MT3608_module (layer F.Cu) (tedit 569D6CFB)
|
||||||
|
(fp_text reference M2 (at 0.25 6 180) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text value DC_DC_boost_module (at 0 -1 180) (layer F.Fab)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text user VOUT- (at -16 6.5) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text user VIN+ (at 14 -6.5) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text user VIN- (at 14 6.5) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text user VOUT+ (at -16 -6.5) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_line (start -8 -7) (end -8 -4) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -4.5 -7) (end -4.5 -4) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -4.5 -4) (end -8 -5.5) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -8 -5.5) (end -4.5 -7) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_arc (start -17 -6) (end -19.5 -6) (angle 90) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_arc (start 14 -6) (end 14 -8.5) (angle 90) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_arc (start 14 6) (end 16.5 6) (angle 90) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_arc (start -17 6) (end -17 8.5) (angle 90) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -17 8.5) (end 14 8.5) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 14 -8.5) (end -17 -8.5) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 16.5 6) (end 16.5 -6) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -19.5 -6) (end -19.5 6) (layer F.SilkS) (width 0.15))
|
||||||
|
(pad 1 thru_hole rect (at 14 -3.2 180) (size 5 3.5) (drill 1.25) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
(pad 2 thru_hole rect (at 14 3.25 180) (size 5 3.5) (drill 1.25) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
(pad 3 thru_hole rect (at -17 3.25 180) (size 5 3.5) (drill 1.25) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
(pad 4 thru_hole rect (at -17 -3.25 180) (size 5 3.5) (drill 1.25) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
)
|
||||||
+39
@@ -0,0 +1,39 @@
|
|||||||
|
(module MT3608_module_SMT (layer F.Cu) (tedit 569D6C5F)
|
||||||
|
(fp_text reference M2 (at 0.25 6 180) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text value DC_DC_boost_module (at 0 -1 180) (layer F.Fab)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text user VOUT- (at -16 6.5) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text user VIN+ (at 14 -6.5) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text user VIN- (at 14 6.5) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text user VOUT+ (at -16 -6.5) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_line (start -8 -7) (end -8 -4) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -4.5 -7) (end -4.5 -4) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -4.5 -4) (end -8 -5.5) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -8 -5.5) (end -4.5 -7) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_arc (start -17 -6) (end -19.5 -6) (angle 90) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_arc (start 14 -6) (end 14 -8.5) (angle 90) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_arc (start 14 6) (end 16.5 6) (angle 90) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_arc (start -17 6) (end -17 8.5) (angle 90) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -17 8.5) (end 14 8.5) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 14 -8.5) (end -17 -8.5) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 16.5 6) (end 16.5 -6) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -19.5 -6) (end -19.5 6) (layer F.SilkS) (width 0.15))
|
||||||
|
(pad "" thru_hole circle (at -7.75 5) (size 2.1 2.1) (drill 2) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
(pad "" thru_hole circle (at -5.5 2.5) (size 2.1 2.1) (drill 2) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
(pad "" thru_hole circle (at -10.5 2.5) (size 2.1 2.1) (drill 2) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
(pad 1 smd rect (at 14 -3.2 180) (size 5 3.5) (layers F.Cu F.Paste F.Mask))
|
||||||
|
(pad 2 smd rect (at 14 3.25 180) (size 5 3.5) (layers F.Cu F.Paste F.Mask))
|
||||||
|
(pad 3 smd rect (at -17 3.25 180) (size 5 3.5) (layers F.Cu F.Paste F.Mask))
|
||||||
|
(pad 4 smd rect (at -17 -3.25 180) (size 5 3.5) (layers F.Cu F.Paste F.Mask))
|
||||||
|
)
|
||||||
+14
@@ -0,0 +1,14 @@
|
|||||||
|
(module N95_battery_connector (layer F.Cu) (tedit 569FD4EC)
|
||||||
|
(fp_text reference CON** (at -0.5 6) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text value N95_battery_connector (at 0.5 -6) (layer F.Fab)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_line (start 2.5 -4.5) (end -3 -4.5) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -3 -4.5) (end -3 4.5) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -3 4.5) (end 2.5 4.5) (layer F.SilkS) (width 0.15))
|
||||||
|
(pad 2 smd rect (at 0 0) (size 5.5 1.5) (layers F.Cu F.Paste F.Mask))
|
||||||
|
(pad 3 smd rect (at 0 -3.5) (size 5.5 1.5) (layers F.Cu F.Paste F.Mask))
|
||||||
|
(pad 1 smd rect (at 0 3.5) (size 5.5 1.5) (layers F.Cu F.Paste F.Mask))
|
||||||
|
)
|
||||||
+21
@@ -0,0 +1,21 @@
|
|||||||
|
|
||||||
|
(module SOT-23-6 (layer F.Cu) (tedit 5FBEB024)
|
||||||
|
(descr "")
|
||||||
|
(fp_text reference REF** (at 0.0762369 -0.0794385 900) (layer F.SilkS)
|
||||||
|
(effects (font (size 0.600290551181 0.600290551181) (thickness 0.015)))
|
||||||
|
)
|
||||||
|
(fp_text value SOT-23-6 (at 0 0) (layer F.Fab)
|
||||||
|
(effects (font (size 0.787401574803 0.787401574803) (thickness 0.015)))
|
||||||
|
)
|
||||||
|
(fp_line (start 0.7 -1.5) (end 0.7 1.5) (layer F.SilkS) (width 0.1524))
|
||||||
|
(fp_line (start 0.7 1.5) (end -0.7 1.5) (layer F.SilkS) (width 0.1524))
|
||||||
|
(fp_line (start -0.7 1.5) (end -0.7 -1.5) (layer F.SilkS) (width 0.1524))
|
||||||
|
(fp_line (start -0.7 -1.5) (end 0.7 -1.5) (layer F.SilkS) (width 0.1524))
|
||||||
|
(fp_circle (center -1.2 -1.7) (end -0.9764 -1.7) (layer F.SilkS) (width 0.1524))
|
||||||
|
(pad 2 smd rect (at -1.35 0.0) (size 1.0 0.55) (layers F.Cu F.Mask F.Paste))
|
||||||
|
(pad 1 smd rect (at -1.35 -0.95) (size 1.0 0.55) (layers F.Cu F.Mask F.Paste))
|
||||||
|
(pad 3 smd rect (at -1.35 0.95) (size 1.0 0.55) (layers F.Cu F.Mask F.Paste))
|
||||||
|
(pad 4 smd rect (at 1.35 0.95) (size 1.0 0.55) (layers F.Cu F.Mask F.Paste))
|
||||||
|
(pad 6 smd rect (at 1.35 -0.95) (size 1.0 0.55) (layers F.Cu F.Mask F.Paste))
|
||||||
|
(pad 5 smd rect (at 1.35 0.0) (size 1.0 0.55) (layers F.Cu F.Mask F.Paste))
|
||||||
|
)
|
||||||
+30
@@ -0,0 +1,30 @@
|
|||||||
|
|
||||||
|
(module SOT95P280X135-6N (layer F.Cu) (tedit 5FAC25EE)
|
||||||
|
(descr "<b>SOT2-23-6</b><br>")
|
||||||
|
(fp_text reference REF** (at 0.0 0.0 0) (layer F.SilkS)
|
||||||
|
(effects (font (size 1.0 1.0) (thickness 0.015)))
|
||||||
|
)
|
||||||
|
(fp_text value SOT95P280X135-6N (at 0.0 0.0 0) (layer F.Fab)
|
||||||
|
(effects (font (size 1.0 1.0) (thickness 0.015)))
|
||||||
|
)
|
||||||
|
(fp_line (start -2.125 -1.835) (end 2.125 -1.835) (layer F.Fab) (width 0.05))
|
||||||
|
(fp_line (start 2.125 -1.835) (end 2.125 1.835) (layer F.Fab) (width 0.05))
|
||||||
|
(fp_line (start 2.125 1.835) (end -2.125 1.835) (layer F.Fab) (width 0.05))
|
||||||
|
(fp_line (start -2.125 1.835) (end -2.125 -1.835) (layer F.Fab) (width 0.05))
|
||||||
|
(fp_line (start -0.8 -1.46) (end 0.8 -1.46) (layer F.Fab) (width 0.1))
|
||||||
|
(fp_line (start 0.8 -1.46) (end 0.8 1.46) (layer F.Fab) (width 0.1))
|
||||||
|
(fp_line (start 0.8 1.46) (end -0.8 1.46) (layer F.Fab) (width 0.1))
|
||||||
|
(fp_line (start -0.8 1.46) (end -0.8 -1.46) (layer F.Fab) (width 0.1))
|
||||||
|
(fp_line (start -0.8 -0.51) (end 0.15 -1.46) (layer F.Fab) (width 0.1))
|
||||||
|
(fp_line (start -0.275 -1.46) (end 0.275 -1.46) (layer F.SilkS) (width 0.2))
|
||||||
|
(fp_line (start 0.275 -1.46) (end 0.275 1.46) (layer F.SilkS) (width 0.2))
|
||||||
|
(fp_line (start 0.275 1.46) (end -0.275 1.46) (layer F.SilkS) (width 0.2))
|
||||||
|
(fp_line (start -0.275 1.46) (end -0.275 -1.46) (layer F.SilkS) (width 0.2))
|
||||||
|
(fp_line (start -1.875 -1.6) (end -0.625 -1.6) (layer F.SilkS) (width 0.2))
|
||||||
|
(pad 1 smd rect (at -1.25 -0.95) (size 1.25 0.6) (layers F.Cu F.Mask F.Paste))
|
||||||
|
(pad 2 smd rect (at -1.25 0.0) (size 1.25 0.6) (layers F.Cu F.Mask F.Paste))
|
||||||
|
(pad 3 smd rect (at -1.25 0.95) (size 1.25 0.6) (layers F.Cu F.Mask F.Paste))
|
||||||
|
(pad 4 smd rect (at 1.25 0.95) (size 1.25 0.6) (layers F.Cu F.Mask F.Paste))
|
||||||
|
(pad 5 smd rect (at 1.25 0.0) (size 1.25 0.6) (layers F.Cu F.Mask F.Paste))
|
||||||
|
(pad 6 smd rect (at 1.25 -0.95) (size 1.25 0.6) (layers F.Cu F.Mask F.Paste))
|
||||||
|
)
|
||||||
+55
@@ -0,0 +1,55 @@
|
|||||||
|
(module XL6009_module (layer F.Cu) (tedit 56419D18)
|
||||||
|
(fp_text reference M2 (at -38.375 -16.125) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text value DC_DC_boost_module (at -22.9 -7.075) (layer F.Fab)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_circle (center -6.604 -2.54) (end -5.842 -0.508) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_circle (center -6.604 -2.54) (end -6.604 -1.016) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_circle (center -36.576 -18.542) (end -37.084 -20.574) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_circle (center -36.576 -18.542) (end -36.576 -20.066) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -11.176 -19.05) (end -11.176 -14.986) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -15.24 -19.05) (end -15.24 -14.986) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -15.24 -14.986) (end -11.176 -17.018) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -11.176 -17.018) (end -15.24 -19.05) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -30.988 -17.526) (end -29.972 -18.542) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_circle (center -30.48 -18.034) (end -29.972 -18.542) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -31.496 -19.558) (end -31.496 -16.002) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -31.496 -16.002) (end -30.988 -16.002) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -30.988 -16.002) (end -30.988 -16.51) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -30.988 -16.51) (end -22.86 -16.51) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -22.86 -16.51) (end -22.86 -16.002) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -22.86 -16.002) (end -22.352 -16.002) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -22.352 -16.002) (end -22.352 -19.558) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -22.352 -19.558) (end -31.496 -19.558) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -41.148 -7.874) (end -35.052 -7.874) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -35.052 -7.874) (end -35.052 -12.446) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -35.052 -12.446) (end -36.576 -13.97) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -36.576 -13.97) (end -39.624 -13.97) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -39.624 -13.97) (end -41.148 -12.446) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -41.148 -12.446) (end -41.148 -7.874) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -0.508 -12.446) (end -0.508 -6.858) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -0.508 -6.858) (end -7.62 -6.858) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -7.62 -6.858) (end -7.62 -12.446) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -7.62 -12.446) (end -5.588 -13.97) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -5.588 -13.97) (end -2.54 -13.97) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -2.54 -13.97) (end -0.508 -12.446) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -30.988 -0.762) (end -33.02 -0.762) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -33.02 -0.762) (end -34.036 -0.762) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -34.036 -0.762) (end -34.036 -11.938) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -34.036 -11.938) (end -22.86 -11.938) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -22.86 -11.938) (end -22.86 -10.414) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -22.86 -10.922) (end -22.86 -0.762) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -22.86 -0.762) (end -30.988 -0.762) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_circle (center -38.1 -10.922) (end -35.56 -12.446) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_circle (center -4.064 -10.414) (end -1.016 -11.938) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 0 0) (end -43.18 0) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -43.18 0) (end -43.18 -21.082) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 0 0) (end 0 -21.082) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -43.18 -21.082) (end 0 -21.082) (layer F.SilkS) (width 0.15))
|
||||||
|
(pad 1 thru_hole rect (at -41.3258 -19.1516) (size 1.524 1.524) (drill 1) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
(pad 2 thru_hole rect (at -41.3258 -1.9812) (size 1.524 1.524) (drill 1) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
(pad 3 thru_hole rect (at -1.8542 -1.9812) (size 1.524 1.524) (drill 1) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
(pad 4 thru_hole rect (at -1.8542 -19.1262) (size 1.524 1.524) (drill 1) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
)
|
||||||
+58
@@ -0,0 +1,58 @@
|
|||||||
|
(module XL6009_module_SMT (layer F.Cu) (tedit 569E2A66)
|
||||||
|
(fp_text reference M2 (at -38.375 -16.125) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_text value DC_DC_boost_module (at -22.9 -7.075) (layer F.Fab)
|
||||||
|
(effects (font (size 1 1) (thickness 0.15)))
|
||||||
|
)
|
||||||
|
(fp_circle (center -6.604 -2.54) (end -5.842 -0.508) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_circle (center -6.604 -2.54) (end -6.604 -1.016) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_circle (center -36.576 -18.542) (end -37.084 -20.574) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_circle (center -36.576 -18.542) (end -36.576 -20.066) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -11.176 -19.05) (end -11.176 -14.986) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -15.24 -19.05) (end -15.24 -14.986) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -15.24 -14.986) (end -11.176 -17.018) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -11.176 -17.018) (end -15.24 -19.05) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -30.988 -17.526) (end -29.972 -18.542) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_circle (center -30.48 -18.034) (end -29.972 -18.542) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -31.496 -19.558) (end -31.496 -16.002) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -31.496 -16.002) (end -30.988 -16.002) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -30.988 -16.002) (end -30.988 -16.51) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -30.988 -16.51) (end -22.86 -16.51) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -22.86 -16.51) (end -22.86 -16.002) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -22.86 -16.002) (end -22.352 -16.002) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -22.352 -16.002) (end -22.352 -19.558) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -22.352 -19.558) (end -31.496 -19.558) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -41.148 -7.874) (end -35.052 -7.874) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -35.052 -7.874) (end -35.052 -12.446) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -35.052 -12.446) (end -36.576 -13.97) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -36.576 -13.97) (end -39.624 -13.97) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -39.624 -13.97) (end -41.148 -12.446) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -41.148 -12.446) (end -41.148 -7.874) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -0.508 -12.446) (end -0.508 -6.858) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -0.508 -6.858) (end -7.62 -6.858) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -7.62 -6.858) (end -7.62 -12.446) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -7.62 -12.446) (end -5.588 -13.97) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -5.588 -13.97) (end -2.54 -13.97) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -2.54 -13.97) (end -0.508 -12.446) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -30.988 -0.762) (end -33.02 -0.762) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -33.02 -0.762) (end -34.036 -0.762) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -34.036 -0.762) (end -34.036 -11.938) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -34.036 -11.938) (end -22.86 -11.938) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -22.86 -11.938) (end -22.86 -10.414) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -22.86 -10.922) (end -22.86 -0.762) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -22.86 -0.762) (end -30.988 -0.762) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_circle (center -38.1 -10.922) (end -35.56 -12.446) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_circle (center -4.064 -10.414) (end -1.016 -11.938) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 0 0) (end -43.18 0) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -43.18 0) (end -43.18 -21.082) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start 0 0) (end 0 -21.082) (layer F.SilkS) (width 0.15))
|
||||||
|
(fp_line (start -43.18 -21.082) (end 0 -21.082) (layer F.SilkS) (width 0.15))
|
||||||
|
(pad "" thru_hole circle (at -25.2 -18) (size 1.5 1.5) (drill 1.25) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
(pad "" thru_hole circle (at -27.8 -18) (size 1.5 1.5) (drill 1.25) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
(pad 1 smd rect (at -41.3258 -19.1516) (size 3.8 4) (layers F.Cu F.Paste F.Mask))
|
||||||
|
(pad 2 smd rect (at -41.3258 -1.9812) (size 3.8 4) (layers F.Cu F.Paste F.Mask))
|
||||||
|
(pad 3 smd rect (at -1.8542 -1.9812) (size 3.8 4) (layers F.Cu F.Paste F.Mask))
|
||||||
|
(pad 4 smd rect (at -1.8542 -19.1262) (size 3.8 4) (layers F.Cu F.Paste F.Mask))
|
||||||
|
(pad "" thru_hole circle (at -30.3 -18) (size 1.5 1.5) (drill 1.25) (layers *.Cu *.Mask F.SilkS))
|
||||||
|
)
|
||||||
+94
@@ -0,0 +1,94 @@
|
|||||||
|
(module 21-0041B_8_MXM (layer F.Cu)
|
||||||
|
(fp_text reference REF** (at 0 0) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness .15)))
|
||||||
|
)
|
||||||
|
(fp_text value 21-0041B_8_MXM (at 0 0) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness .15)))
|
||||||
|
)
|
||||||
|
(fp_text user "Copyright 2016 Accelerated Designs. All rights reserved." (at 0 0) (layer Cmts.User)
|
||||||
|
(effects (font (size .127 .127) (thickness .002)))
|
||||||
|
)
|
||||||
|
(fp_text user "*" (at -2.97815 -3.5814) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness .15)))
|
||||||
|
)
|
||||||
|
(fp_text user "*" (at -1.6129 -2.4257) (layer F.Fab)
|
||||||
|
(effects (font (size 1 1) (thickness .15)))
|
||||||
|
)
|
||||||
|
(fp_text user "0.05in/1.27mm" (at -5.77215 -1.27) (layer Dwgs.User)
|
||||||
|
(effects (font (size 1 1) (thickness .15)))
|
||||||
|
)
|
||||||
|
(fp_text user "0.021in/0.533mm" (at 5.77215 -1.905) (layer Dwgs.User)
|
||||||
|
(effects (font (size 1 1) (thickness .15)))
|
||||||
|
)
|
||||||
|
(fp_text user "0.214in/5.448mm" (at 0 -4.9149) (layer Dwgs.User)
|
||||||
|
(effects (font (size 1 1) (thickness .15)))
|
||||||
|
)
|
||||||
|
(fp_text user "0.058in/1.46mm" (at -2.72415 4.9149) (layer Dwgs.User)
|
||||||
|
(effects (font (size 1 1) (thickness .15)))
|
||||||
|
)
|
||||||
|
(fp_text user "*" (at -2.97815 -3.5814) (layer F.SilkS)
|
||||||
|
(effects (font (size 1 1) (thickness .15)))
|
||||||
|
)
|
||||||
|
(fp_text user "*" (at -1.6129 -2.4257) (layer F.Fab)
|
||||||
|
(effects (font (size 1 1) (thickness .15)))
|
||||||
|
)
|
||||||
|
(fp_line (start -1.9939 -1.6637) (end -1.9939 -2.1463) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start -1.9939 -2.1463) (end -3.0988 -2.1463) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start -3.0988 -2.1463) (end -3.0988 -1.6637) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start -3.0988 -1.6637) (end -1.9939 -1.6637) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start -1.9939 -.3937) (end -1.9939 -.8763) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start -1.9939 -.8763) (end -3.0988 -.8763) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start -3.0988 -.8763) (end -3.0988 -.3937) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start -3.0988 -.3937) (end -1.9939 -.3937) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start -1.9939 .8763) (end -1.9939 .3937) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start -1.9939 .3937) (end -3.0988 .3937) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start -3.0988 .3937) (end -3.0988 .8763) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start -3.0988 .8763) (end -1.9939 .8763) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start -1.9939 2.1463) (end -1.9939 1.6637) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start -1.9939 1.6637) (end -3.0988 1.6637) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start -3.0988 1.6637) (end -3.0988 2.1463) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start -3.0988 2.1463) (end -1.9939 2.1463) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start 1.9939 1.6637) (end 1.9939 2.1463) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start 1.9939 2.1463) (end 3.0988 2.1463) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start 3.0988 2.1463) (end 3.0988 1.6637) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start 3.0988 1.6637) (end 1.9939 1.6637) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start 1.9939 .3937) (end 1.9939 .8763) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start 1.9939 .8763) (end 3.0988 .8763) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start 3.0988 .8763) (end 3.0988 .3937) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start 3.0988 .3937) (end 1.9939 .3937) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start 1.9939 -.8763) (end 1.9939 -.3937) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start 1.9939 -.3937) (end 3.0988 -.3937) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start 3.0988 -.3937) (end 3.0988 -.8763) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start 3.0988 -.8763) (end 1.9939 -.8763) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start 1.9939 -2.1463) (end 1.9939 -1.6637) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start 1.9939 -1.6637) (end 3.0988 -1.6637) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start 3.0988 -1.6637) (end 3.0988 -2.1463) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start 3.0988 -2.1463) (end 1.9939 -2.1463) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start -2.1209 2.6289) (end 2.1209 2.6289) (layer F.SilkS) (width .1524))
|
||||||
|
(fp_line (start 2.1209 -2.6289) (end -2.1209 -2.6289) (layer F.SilkS) (width .1524))
|
||||||
|
(fp_line (start -1.9939 2.5019) (end 1.9939 2.5019) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start 1.9939 2.5019) (end 1.9939 -2.5019) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start 1.9939 -2.5019) (end -1.9939 -2.5019) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start -1.9939 -2.5019) (end -1.9939 2.5019) (layer F.Fab) (width .1524))
|
||||||
|
(fp_line (start -3.7084 2.4257) (end -3.7084 -2.4257) (layer F.CrtYd) (width .1524))
|
||||||
|
(fp_line (start -3.7084 -2.4257) (end -2.2479 -2.4257) (layer F.CrtYd) (width .1524))
|
||||||
|
(fp_line (start -2.2479 -2.4257) (end -2.2479 -2.7559) (layer F.CrtYd) (width .1524))
|
||||||
|
(fp_line (start -2.2479 -2.7559) (end 2.2479 -2.7559) (layer F.CrtYd) (width .1524))
|
||||||
|
(fp_line (start 2.2479 -2.7559) (end 2.2479 -2.4257) (layer F.CrtYd) (width .1524))
|
||||||
|
(fp_line (start 2.2479 -2.4257) (end 3.7084 -2.4257) (layer F.CrtYd) (width .1524))
|
||||||
|
(fp_line (start 3.7084 -2.4257) (end 3.7084 2.4257) (layer F.CrtYd) (width .1524))
|
||||||
|
(fp_line (start 3.7084 2.4257) (end 2.2479 2.4257) (layer F.CrtYd) (width .1524))
|
||||||
|
(fp_line (start 2.2479 2.4257) (end 2.2479 2.7559) (layer F.CrtYd) (width .1524))
|
||||||
|
(fp_line (start 2.2479 2.7559) (end -2.2479 2.7559) (layer F.CrtYd) (width .1524))
|
||||||
|
(fp_line (start -2.2479 2.7559) (end -2.2479 2.4257) (layer F.CrtYd) (width .1524))
|
||||||
|
(fp_line (start -2.2479 2.4257) (end -3.7084 2.4257) (layer F.CrtYd) (width .1524))
|
||||||
|
(fp_arc (start 0 -2.5019) (end .3048 -2.5019) (angle 180)(layer F.Fab) (width .1524))
|
||||||
|
(pad 1 smd rect (at -2.72415 -1.905) (size 1.4605 .5334) (layers F.Cu F.Paste F.Mask))
|
||||||
|
(pad 2 smd rect (at -2.72415 -.635) (size 1.4605 .5334) (layers F.Cu F.Paste F.Mask))
|
||||||
|
(pad 3 smd rect (at -2.72415 .635) (size 1.4605 .5334) (layers F.Cu F.Paste F.Mask))
|
||||||
|
(pad 4 smd rect (at -2.72415 1.905) (size 1.4605 .5334) (layers F.Cu F.Paste F.Mask))
|
||||||
|
(pad 5 smd rect (at 2.72415 1.905) (size 1.4605 .5334) (layers F.Cu F.Paste F.Mask))
|
||||||
|
(pad 6 smd rect (at 2.72415 .635) (size 1.4605 .5334) (layers F.Cu F.Paste F.Mask))
|
||||||
|
(pad 7 smd rect (at 2.72415 -.635) (size 1.4605 .5334) (layers F.Cu F.Paste F.Mask))
|
||||||
|
(pad 8 smd rect (at 2.72415 -1.905) (size 1.4605 .5334) (layers F.Cu F.Paste F.Mask))
|
||||||
|
)
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
(sym_lib_table
|
||||||
|
(version 7)
|
||||||
|
(lib (name "easyeda2kicad")(type "KiCad")(uri "${KIPRJMOD}/kicad-stuff/easyeda2kicad.kicad_sym")(options "")(descr ""))
|
||||||
|
(lib (name "BQ34Z100PWR-G1")(type "KiCad")(uri "${KIPRJMOD}/kicad-stuff/BQ34Z100PWR-G1.kicad_sym")(options "")(descr ""))
|
||||||
|
(lib (name "ESP32-DEVKITC-32D")(type "KiCad")(uri "${KIPRJMOD}/kicad-stuff/ESP32/ESP32-DEVKITC-32D.kicad_sym")(options "")(descr ""))
|
||||||
|
)
|
||||||
+30707
-31750
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"board": {
|
"board": {
|
||||||
"active_layer": 36,
|
"active_layer": 0,
|
||||||
"active_layer_preset": "",
|
"active_layer_preset": "",
|
||||||
"auto_track_width": false,
|
"auto_track_width": false,
|
||||||
"hidden_netclasses": [],
|
"hidden_netclasses": [],
|
||||||
@@ -68,7 +68,7 @@
|
|||||||
39,
|
39,
|
||||||
40
|
40
|
||||||
],
|
],
|
||||||
"visible_layers": "ffc7055_fffffff8",
|
"visible_layers": "ffc35ba_ffffffff",
|
||||||
"zone_display_mode": 1
|
"zone_display_mode": 1
|
||||||
},
|
},
|
||||||
"git": {
|
"git": {
|
||||||
|
|||||||
@@ -58,32 +58,14 @@
|
|||||||
"width": 0.0
|
"width": 0.0
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"drc_exclusions": [
|
"drc_exclusions": [],
|
||||||
"footprint_symbol_mismatch|177050000|59025000|a624af3d-bffa-4ff7-9554-e16d3c677f69|00000000-0000-0000-0000-000000000000",
|
|
||||||
"footprint_symbol_mismatch|237580000|53970000|c9d8d35b-26b7-4992-9d25-be9130d57b1a|00000000-0000-0000-0000-000000000000",
|
|
||||||
"footprint_symbol_mismatch|256580000|49370000|b33af7ef-63da-4a51-8d8a-183cadd974de|00000000-0000-0000-0000-000000000000",
|
|
||||||
"net_conflict|177050000|59025000|09cad967-1882-4dd3-8900-445282e228e5|00000000-0000-0000-0000-000000000000",
|
|
||||||
"net_conflict|177050000|59025000|20ab85c0-b3f3-4826-a86d-065fee01e11f|00000000-0000-0000-0000-000000000000",
|
|
||||||
"net_conflict|177050000|59025000|3da9717d-9800-42f9-97d1-56d23bf085aa|00000000-0000-0000-0000-000000000000",
|
|
||||||
"net_conflict|177050000|59025000|444aab2b-3a9b-444e-b60c-b5b5ff830942|00000000-0000-0000-0000-000000000000",
|
|
||||||
"net_conflict|177050000|59025000|6b067fd3-d374-4937-8779-958994d9163b|00000000-0000-0000-0000-000000000000",
|
|
||||||
"net_conflict|177050000|59025000|9839c562-7672-4ea8-a74d-bea83ae26677|00000000-0000-0000-0000-000000000000",
|
|
||||||
"net_conflict|177050000|59025000|9ce2df19-edf4-40d2-8e85-8c33008b8df0|00000000-0000-0000-0000-000000000000",
|
|
||||||
"net_conflict|177050000|59025000|a8ab716a-cd1e-4842-ad8e-3d6d1db9770b|00000000-0000-0000-0000-000000000000",
|
|
||||||
"net_conflict|177050000|59025000|aaf09ae3-4ace-49d7-a050-44cb4c93d63b|00000000-0000-0000-0000-000000000000",
|
|
||||||
"net_conflict|177050000|59025000|af55e8a2-ba8d-462e-807f-99ca5906f801|00000000-0000-0000-0000-000000000000",
|
|
||||||
"net_conflict|177050000|59025000|c36efd78-869f-40e7-86fc-97e5ed683fec|00000000-0000-0000-0000-000000000000",
|
|
||||||
"net_conflict|177050000|59025000|d668fda0-e4be-4e1f-95b8-8cd59a67cb21|00000000-0000-0000-0000-000000000000",
|
|
||||||
"net_conflict|177050000|59025000|d99401c6-2b75-46f7-8616-cdd7755709ee|00000000-0000-0000-0000-000000000000",
|
|
||||||
"net_conflict|177050000|59025000|f1fd5816-e8bd-4ba6-9d53-54b58d25e2dc|00000000-0000-0000-0000-000000000000"
|
|
||||||
],
|
|
||||||
"meta": {
|
"meta": {
|
||||||
"filename": "board_design_settings.json",
|
"filename": "board_design_settings.json",
|
||||||
"version": 2
|
"version": 2
|
||||||
},
|
},
|
||||||
"rule_severities": {
|
"rule_severities": {
|
||||||
"annular_width": "ignore",
|
"annular_width": "ignore",
|
||||||
"clearance": "error",
|
"clearance": "warning",
|
||||||
"connection_width": "warning",
|
"connection_width": "warning",
|
||||||
"copper_edge_clearance": "error",
|
"copper_edge_clearance": "error",
|
||||||
"copper_sliver": "warning",
|
"copper_sliver": "warning",
|
||||||
@@ -98,6 +80,7 @@
|
|||||||
"footprint_type_mismatch": "ignore",
|
"footprint_type_mismatch": "ignore",
|
||||||
"hole_clearance": "error",
|
"hole_clearance": "error",
|
||||||
"hole_near_hole": "error",
|
"hole_near_hole": "error",
|
||||||
|
"holes_co_located": "warning",
|
||||||
"invalid_outline": "error",
|
"invalid_outline": "error",
|
||||||
"isolated_copper": "warning",
|
"isolated_copper": "warning",
|
||||||
"item_on_disabled_layer": "error",
|
"item_on_disabled_layer": "error",
|
||||||
@@ -463,8 +446,8 @@
|
|||||||
"no_connect_dangling": "warning",
|
"no_connect_dangling": "warning",
|
||||||
"pin_not_connected": "error",
|
"pin_not_connected": "error",
|
||||||
"pin_not_driven": "error",
|
"pin_not_driven": "error",
|
||||||
"pin_to_pin": "error",
|
"pin_to_pin": "ignore",
|
||||||
"power_pin_not_driven": "error",
|
"power_pin_not_driven": "ignore",
|
||||||
"similar_labels": "warning",
|
"similar_labels": "warning",
|
||||||
"simulation_model_issue": "ignore",
|
"simulation_model_issue": "ignore",
|
||||||
"unannotated": "error",
|
"unannotated": "error",
|
||||||
@@ -1069,6 +1052,7 @@
|
|||||||
},
|
},
|
||||||
"schematic": {
|
"schematic": {
|
||||||
"annotate_start_num": 0,
|
"annotate_start_num": 0,
|
||||||
|
"bom_export_filename": "",
|
||||||
"bom_fmt_presets": [],
|
"bom_fmt_presets": [],
|
||||||
"bom_fmt_settings": {
|
"bom_fmt_settings": {
|
||||||
"field_delimiter": ",",
|
"field_delimiter": ",",
|
||||||
@@ -1238,13 +1222,19 @@
|
|||||||
"label": "Description",
|
"label": "Description",
|
||||||
"name": "Description",
|
"name": "Description",
|
||||||
"show": false
|
"show": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"group_by": false,
|
||||||
|
"label": "LCSC Part",
|
||||||
|
"name": "LCSC Part",
|
||||||
|
"show": false
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"filter_string": "",
|
"filter_string": "",
|
||||||
"group_symbols": true,
|
"group_symbols": true,
|
||||||
"name": "",
|
"name": "",
|
||||||
"sort_asc": true,
|
"sort_asc": true,
|
||||||
"sort_field": "LCSC_PART_NUMBER"
|
"sort_field": "Value"
|
||||||
},
|
},
|
||||||
"connection_grid_size": 50.0,
|
"connection_grid_size": 50.0,
|
||||||
"drawing": {
|
"drawing": {
|
||||||
@@ -1280,7 +1270,7 @@
|
|||||||
"meta": {
|
"meta": {
|
||||||
"version": 0
|
"version": 0
|
||||||
},
|
},
|
||||||
"model_mode": 0,
|
"model_mode": 4,
|
||||||
"workbook_filename": ""
|
"workbook_filename": ""
|
||||||
},
|
},
|
||||||
"page_layout_descr_file": "",
|
"page_layout_descr_file": "",
|
||||||
|
|||||||
+6862
-7071
File diff suppressed because it is too large
Load Diff
+173
-66
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@@ -5,4 +5,5 @@
|
|||||||
(lib (name "kicad-stuff")(type "KiCad")(uri "${KIPRJMOD}/kicad-stuff")(options "")(descr ""))
|
(lib (name "kicad-stuff")(type "KiCad")(uri "${KIPRJMOD}/kicad-stuff")(options "")(descr ""))
|
||||||
(lib (name "board")(type "KiCad")(uri "${KIPRJMOD}/")(options "")(descr ""))
|
(lib (name "board")(type "KiCad")(uri "${KIPRJMOD}/")(options "")(descr ""))
|
||||||
(lib (name "esp32c6")(type "KiCad")(uri "${KIPRJMOD}/esp32c6")(options "")(descr ""))
|
(lib (name "esp32c6")(type "KiCad")(uri "${KIPRJMOD}/esp32c6")(options "")(descr ""))
|
||||||
|
(lib (name "easyeda2kicad")(type "KiCad")(uri "${KIPRJMOD}/kicad-stuff/easyeda2kicad.pretty")(options "")(descr ""))
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -0,0 +1,337 @@
|
|||||||
|
(footprint "AMASS_XT30UPB+DATA-M_1x02_P5.0mm_Vertical"
|
||||||
|
(version 20240108)
|
||||||
|
(generator "pcbnew")
|
||||||
|
(generator_version "8.0")
|
||||||
|
(layer "F.Cu")
|
||||||
|
(descr "Connector XT30 Vertical PCB Male, https://www.tme.eu/en/Document/4acc913878197f8c2e30d4b8cdc47230/XT30UPB%20SPEC.pdf")
|
||||||
|
(tags "RC Connector XT30")
|
||||||
|
(property "Reference" "REF**"
|
||||||
|
(at 2.5 -4 0)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "f7510d54-dcb1-4c3b-b842-cd250a98370c")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1 1)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Value" "AMASS_XT30UPB+DATA-M_1x02_P5.0mm_Vertical"
|
||||||
|
(at 2.5 4 0)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(uuid "c5a8a60c-4ea1-4401-a30c-34d36be61c07")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1 1)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Footprint" ""
|
||||||
|
(at 0 0 0)
|
||||||
|
(unlocked yes)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(hide yes)
|
||||||
|
(uuid "8fb27306-c085-4316-b554-4ba9be794054")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Datasheet" ""
|
||||||
|
(at 0 0 0)
|
||||||
|
(unlocked yes)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(hide yes)
|
||||||
|
(uuid "74b71861-05d2-4229-8e81-25952aaaef7e")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Description" ""
|
||||||
|
(at 0 0 0)
|
||||||
|
(unlocked yes)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(hide yes)
|
||||||
|
(uuid "a1d16ecc-7e64-48c4-b772-a9255380960d")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(attr through_hole)
|
||||||
|
(fp_line
|
||||||
|
(start -2.71 -1.41)
|
||||||
|
(end -2.71 1.41)
|
||||||
|
(stroke
|
||||||
|
(width 0.12)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "e96c6ad2-9ca6-4df1-b35b-76e090d7ff4e")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -2.71 -1.41)
|
||||||
|
(end -1.01 -2.71)
|
||||||
|
(stroke
|
||||||
|
(width 0.12)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "0784d204-0a48-4a2b-8085-50e1ff7a1493")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -2.71 1.41)
|
||||||
|
(end -1.01 2.71)
|
||||||
|
(stroke
|
||||||
|
(width 0.12)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "db750970-e424-4a8e-a882-20a90baabffc")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -1.01 -2.71)
|
||||||
|
(end 7.71 -2.71)
|
||||||
|
(stroke
|
||||||
|
(width 0.12)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "9f23420e-db87-438c-a708-676a0616966e")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -1.01 2.71)
|
||||||
|
(end 7.71 2.71)
|
||||||
|
(stroke
|
||||||
|
(width 0.12)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "2ba574e3-9de5-4d7d-9777-e19e6fa702e7")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start 7.71 -2.71)
|
||||||
|
(end 7.71 2.71)
|
||||||
|
(stroke
|
||||||
|
(width 0.12)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "2018cc6b-6115-4763-8b7c-54b60affbda7")
|
||||||
|
)
|
||||||
|
(fp_rect
|
||||||
|
(start -6.3 -2.71)
|
||||||
|
(end 7.71 2.7)
|
||||||
|
(stroke
|
||||||
|
(width 0.1)
|
||||||
|
(type default)
|
||||||
|
)
|
||||||
|
(fill none)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "11aac399-c862-4b67-9828-087abeea5b1b")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -3.1 -1.8)
|
||||||
|
(end -3.1 1.8)
|
||||||
|
(stroke
|
||||||
|
(width 0.05)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.CrtYd")
|
||||||
|
(uuid "06ae69d8-1372-4524-8b1a-27a2f062f1c5")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -3.1 -1.8)
|
||||||
|
(end -1.4 -3.1)
|
||||||
|
(stroke
|
||||||
|
(width 0.05)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.CrtYd")
|
||||||
|
(uuid "ae869a92-c688-4f2b-82ca-0578106a035a")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -3.1 1.8)
|
||||||
|
(end -1.4 3.1)
|
||||||
|
(stroke
|
||||||
|
(width 0.05)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.CrtYd")
|
||||||
|
(uuid "cac6d927-6ba1-4095-825b-f94ee0d7abe9")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -1.4 -3.1)
|
||||||
|
(end 8.1 -3.1)
|
||||||
|
(stroke
|
||||||
|
(width 0.05)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.CrtYd")
|
||||||
|
(uuid "fb4fa373-5492-4717-a9fe-7b69f4c53ba0")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -1.4 3.1)
|
||||||
|
(end 8.1 3.1)
|
||||||
|
(stroke
|
||||||
|
(width 0.05)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.CrtYd")
|
||||||
|
(uuid "70296c77-546d-44a2-b5d3-e6dc58cf713b")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start 8.1 -3.1)
|
||||||
|
(end 8.1 3.1)
|
||||||
|
(stroke
|
||||||
|
(width 0.05)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.CrtYd")
|
||||||
|
(uuid "64764a09-de32-4f35-b54a-17e44810370f")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -2.6 -1.3)
|
||||||
|
(end -2.6 1.3)
|
||||||
|
(stroke
|
||||||
|
(width 0.1)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(uuid "8d7ee7cb-5dda-453f-aa9a-6420c87f1b8e")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -2.6 -1.3)
|
||||||
|
(end -0.9 -2.6)
|
||||||
|
(stroke
|
||||||
|
(width 0.1)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(uuid "2fa3ad90-36bb-4374-95ed-e44e50c7e385")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -2.6 1.3)
|
||||||
|
(end -0.9 2.6)
|
||||||
|
(stroke
|
||||||
|
(width 0.1)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(uuid "2e4f8556-ffc2-4791-91da-e68c3513337e")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -0.9 -2.6)
|
||||||
|
(end 7.6 -2.6)
|
||||||
|
(stroke
|
||||||
|
(width 0.1)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(uuid "cb9cd8af-1997-41db-b9fe-8982960ac6db")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -0.9 2.6)
|
||||||
|
(end 7.6 2.6)
|
||||||
|
(stroke
|
||||||
|
(width 0.1)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(uuid "ea8a6c02-e974-4677-a854-a0891c323245")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start 7.6 -2.6)
|
||||||
|
(end 7.6 2.6)
|
||||||
|
(stroke
|
||||||
|
(width 0.1)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(uuid "c66f305c-0d56-4591-bc02-23252ad20321")
|
||||||
|
)
|
||||||
|
(fp_text user "-"
|
||||||
|
(at -4 0 0)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "c119570a-6846-48dc-9422-0b5665ab2df6")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.5 1.5)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(fp_text user "+"
|
||||||
|
(at 9 0 0)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "d6ab678c-47f7-47e0-869b-ef3b9dbd1ba9")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.5 1.5)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(fp_text user "${REFERENCE}"
|
||||||
|
(at 2.5 0 0)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(uuid "a70efd12-1491-4664-ae98-5b2b7f52a502")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1 1)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pad "1" thru_hole rect
|
||||||
|
(at 0 0)
|
||||||
|
(size 3 3)
|
||||||
|
(drill 1.8)
|
||||||
|
(layers "*.Cu" "*.Mask")
|
||||||
|
(remove_unused_layers no)
|
||||||
|
(uuid "3a0f3b23-814b-4df9-a02c-3d9fed9e23c9")
|
||||||
|
)
|
||||||
|
(pad "2" thru_hole circle
|
||||||
|
(at 5 0)
|
||||||
|
(size 3 3)
|
||||||
|
(drill 1.8)
|
||||||
|
(layers "*.Cu" "*.Mask")
|
||||||
|
(remove_unused_layers no)
|
||||||
|
(uuid "d897d74a-a13b-47cf-9806-eb8a75fe8d08")
|
||||||
|
)
|
||||||
|
(pad "3" thru_hole circle
|
||||||
|
(at -3.9 -1)
|
||||||
|
(size 1.524 1.524)
|
||||||
|
(drill 1)
|
||||||
|
(layers "*.Cu" "*.Mask")
|
||||||
|
(remove_unused_layers no)
|
||||||
|
(uuid "02a8c3fc-d75c-47a4-a907-f9191ff19e2c")
|
||||||
|
)
|
||||||
|
(pad "4" thru_hole circle
|
||||||
|
(at -3.9 1)
|
||||||
|
(size 1.524 1.524)
|
||||||
|
(drill 1)
|
||||||
|
(layers "*.Cu" "*.Mask")
|
||||||
|
(remove_unused_layers no)
|
||||||
|
(uuid "2000b5b8-f7c9-40a8-9010-65c16d2aefce")
|
||||||
|
)
|
||||||
|
(model "${KICAD8_3DMODEL_DIR}/Connector_AMASS.3dshapes/AMASS_XT30UPB-M_1x02_P5.0mm_Vertical.wrl"
|
||||||
|
(offset
|
||||||
|
(xyz 0 0 0)
|
||||||
|
)
|
||||||
|
(scale
|
||||||
|
(xyz 1 1 1)
|
||||||
|
)
|
||||||
|
(rotate
|
||||||
|
(xyz 0 0 0)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -0,0 +1,111 @@
|
|||||||
|
(kicad_symbol_lib
|
||||||
|
(version 20211014)
|
||||||
|
(generator https://github.com/uPesy/easyeda2kicad.py)
|
||||||
|
(symbol "UX-144S-ACP5"
|
||||||
|
(in_bom yes)
|
||||||
|
(on_board yes)
|
||||||
|
(property
|
||||||
|
"Reference"
|
||||||
|
"USB"
|
||||||
|
(id 0)
|
||||||
|
(at 0 11.43 0)
|
||||||
|
(effects (font (size 1.27 1.27) ) )
|
||||||
|
)
|
||||||
|
(property
|
||||||
|
"Value"
|
||||||
|
"UX-144S-ACP5"
|
||||||
|
(id 1)
|
||||||
|
(at 0 -8.89 0)
|
||||||
|
(effects (font (size 1.27 1.27) ) )
|
||||||
|
)
|
||||||
|
(property
|
||||||
|
"Footprint"
|
||||||
|
"easyeda2kicad:MINI-USB-SMD_UX-144S-ACP5"
|
||||||
|
(id 2)
|
||||||
|
(at 0 -11.43 0)
|
||||||
|
(effects (font (size 1.27 1.27) ) hide)
|
||||||
|
)
|
||||||
|
(property
|
||||||
|
"Datasheet"
|
||||||
|
"https://lcsc.com/product-detail/USB-Connectors_XUNPU-UX-144S-ACP5_C720611.html"
|
||||||
|
(id 3)
|
||||||
|
(at 0 -13.97 0)
|
||||||
|
(effects (font (size 1.27 1.27) ) hide)
|
||||||
|
)
|
||||||
|
(property
|
||||||
|
"LCSC Part"
|
||||||
|
"C720611"
|
||||||
|
(id 5)
|
||||||
|
(at 0 -16.51 0)
|
||||||
|
(effects (font (size 1.27 1.27) ) hide)
|
||||||
|
)
|
||||||
|
(symbol "UX-144S-ACP5_0_1"
|
||||||
|
(rectangle
|
||||||
|
(start -7.62 8.89)
|
||||||
|
(end 7.62 -6.35)
|
||||||
|
(stroke (width 0) (type default) (color 0 0 0 0))
|
||||||
|
(fill (type background))
|
||||||
|
)
|
||||||
|
(circle
|
||||||
|
(center -6.35 7.62)
|
||||||
|
(radius 0.38)
|
||||||
|
(stroke (width 0) (type default) (color 0 0 0 0))
|
||||||
|
(fill (type none))
|
||||||
|
)
|
||||||
|
(pin unspecified line
|
||||||
|
(at 10.16 5.08 180)
|
||||||
|
(length 2.54)
|
||||||
|
(name "GND" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "9" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin unspecified line
|
||||||
|
(at 10.16 2.54 180)
|
||||||
|
(length 2.54)
|
||||||
|
(name "GND" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "8" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin unspecified line
|
||||||
|
(at 10.16 -0.00 180)
|
||||||
|
(length 2.54)
|
||||||
|
(name "GND" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "7" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin unspecified line
|
||||||
|
(at 10.16 -2.54 180)
|
||||||
|
(length 2.54)
|
||||||
|
(name "GND" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "6" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin unspecified line
|
||||||
|
(at -10.16 -3.81 0)
|
||||||
|
(length 2.54)
|
||||||
|
(name "GND" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "5" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin unspecified line
|
||||||
|
(at -10.16 -1.27 0)
|
||||||
|
(length 2.54)
|
||||||
|
(name "ID" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "4" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin unspecified line
|
||||||
|
(at -10.16 1.27 0)
|
||||||
|
(length 2.54)
|
||||||
|
(name "D+" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "3" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin unspecified line
|
||||||
|
(at -10.16 3.81 0)
|
||||||
|
(length 2.54)
|
||||||
|
(name "D-" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "2" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
(pin unspecified line
|
||||||
|
(at -10.16 6.35 0)
|
||||||
|
(length 2.54)
|
||||||
|
(name "VBUS" (effects (font (size 1.27 1.27))))
|
||||||
|
(number "1" (effects (font (size 1.27 1.27))))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
@@ -0,0 +1,256 @@
|
|||||||
|
(footprint "MINI-USB-SMD_UX-144S-ACP5"
|
||||||
|
(version 20240108)
|
||||||
|
(generator "pcbnew")
|
||||||
|
(generator_version "8.0")
|
||||||
|
(layer "F.Cu")
|
||||||
|
(property "Reference" "REF**"
|
||||||
|
(at 0 -6.85 0)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "e22138c6-3cb3-4e3c-ba92-a1710585cb5a")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1 1)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Value" "MINI-USB-SMD_UX-144S-ACP5"
|
||||||
|
(at 0 6.85 0)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(uuid "858a2627-e471-4bfb-9d6c-fd1b80f75161")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1 1)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Footprint" ""
|
||||||
|
(at 0 0 0)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(hide yes)
|
||||||
|
(uuid "e47c3973-5f77-49a7-9761-9ae10304f142")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Datasheet" ""
|
||||||
|
(at 0 0 0)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(hide yes)
|
||||||
|
(uuid "26eeaf8e-5561-47b5-8bd4-deeb0ff6028a")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(property "Description" ""
|
||||||
|
(at 0 0 0)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(hide yes)
|
||||||
|
(uuid "df698dc1-8038-47dd-b09b-19d65b3be886")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1.27 1.27)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(attr smd)
|
||||||
|
(fp_line
|
||||||
|
(start -4.7 1.67)
|
||||||
|
(end -4.7 -1.47)
|
||||||
|
(stroke
|
||||||
|
(width 0.25)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "03440d98-e390-4a02-b4b0-b92205207476")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -4.7 5.84)
|
||||||
|
(end -4.7 4.03)
|
||||||
|
(stroke
|
||||||
|
(width 0.25)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "dba5fb97-b84e-4a41-85a6-f4fdb2339977")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -4.7 5.84)
|
||||||
|
(end 4.7 5.84)
|
||||||
|
(stroke
|
||||||
|
(width 0.25)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "e9634972-07de-4463-b72c-20fdc7e82f51")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start -2.08 -3.56)
|
||||||
|
(end -3.22 -3.56)
|
||||||
|
(stroke
|
||||||
|
(width 0.25)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "dc5e02c5-dbda-406e-be24-d4fd6d4d39b2")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start 3.22 -3.56)
|
||||||
|
(end 2.08 -3.56)
|
||||||
|
(stroke
|
||||||
|
(width 0.25)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "e1775f8a-42ad-41b1-8e07-5553a0c1f786")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start 4.7 1.67)
|
||||||
|
(end 4.7 -1.47)
|
||||||
|
(stroke
|
||||||
|
(width 0.25)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "b21655b3-f4bd-4a22-9260-c998017c187d")
|
||||||
|
)
|
||||||
|
(fp_line
|
||||||
|
(start 4.7 5.84)
|
||||||
|
(end 4.7 4.03)
|
||||||
|
(stroke
|
||||||
|
(width 0.25)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(layer "F.SilkS")
|
||||||
|
(uuid "b8716775-fa34-44c7-9a12-b008ee829381")
|
||||||
|
)
|
||||||
|
(fp_circle
|
||||||
|
(center -2.2 -0.1)
|
||||||
|
(end -2.01 -0.1)
|
||||||
|
(stroke
|
||||||
|
(width 0.38)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(fill none)
|
||||||
|
(layer "Cmts.User")
|
||||||
|
(uuid "de63054b-d560-446e-acd5-3d574530415b")
|
||||||
|
)
|
||||||
|
(fp_circle
|
||||||
|
(center 2.2 -0.1)
|
||||||
|
(end 2.39 -0.1)
|
||||||
|
(stroke
|
||||||
|
(width 0.38)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(fill none)
|
||||||
|
(layer "Cmts.User")
|
||||||
|
(uuid "81ac27ac-99bd-4e20-acf0-7bd310da8d42")
|
||||||
|
)
|
||||||
|
(fp_circle
|
||||||
|
(center -4.67 -3.46)
|
||||||
|
(end -4.64 -3.46)
|
||||||
|
(stroke
|
||||||
|
(width 0.06)
|
||||||
|
(type solid)
|
||||||
|
)
|
||||||
|
(fill none)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(uuid "fd695e98-9e3b-4a37-8976-4cf48758b0bb")
|
||||||
|
)
|
||||||
|
(fp_text user "${REFERENCE}"
|
||||||
|
(at 0 0 0)
|
||||||
|
(layer "F.Fab")
|
||||||
|
(uuid "ebb3e71d-8b4f-4e74-a06c-fa75e65fb5ea")
|
||||||
|
(effects
|
||||||
|
(font
|
||||||
|
(size 1 1)
|
||||||
|
(thickness 0.15)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
(pad "" smd circle
|
||||||
|
(at -2.2 -0.1)
|
||||||
|
(size 1 1)
|
||||||
|
(layers "F.Paste")
|
||||||
|
(uuid "bd4630f6-b596-42aa-a67b-d92affdad121")
|
||||||
|
)
|
||||||
|
(pad "" smd circle
|
||||||
|
(at 2.2 -0.1)
|
||||||
|
(size 1 1)
|
||||||
|
(layers "F.Paste")
|
||||||
|
(uuid "5600899a-4eef-439b-b910-bd9b182b3af5")
|
||||||
|
)
|
||||||
|
(pad "1" smd rect
|
||||||
|
(at -1.6 -2.85)
|
||||||
|
(size 0.5 1.7)
|
||||||
|
(layers "F.Cu" "F.Paste" "F.Mask")
|
||||||
|
(uuid "335fc2d7-32d6-4034-8537-3e4ecdbb698e")
|
||||||
|
)
|
||||||
|
(pad "2" smd rect
|
||||||
|
(at -0.8 -2.85)
|
||||||
|
(size 0.5 1.7)
|
||||||
|
(layers "F.Cu" "F.Paste" "F.Mask")
|
||||||
|
(uuid "ad9d26c5-067e-4461-a7de-8849dc9b3d7a")
|
||||||
|
)
|
||||||
|
(pad "3" smd rect
|
||||||
|
(at 0 -2.85)
|
||||||
|
(size 0.5 1.7)
|
||||||
|
(layers "F.Cu" "F.Paste" "F.Mask")
|
||||||
|
(uuid "07c2e01e-14f9-40a4-a86a-be138db1f386")
|
||||||
|
)
|
||||||
|
(pad "4" smd rect
|
||||||
|
(at 0.8 -2.85)
|
||||||
|
(size 0.5 1.7)
|
||||||
|
(layers "F.Cu" "F.Paste" "F.Mask")
|
||||||
|
(uuid "d6db4c4a-622f-481f-9577-0021a75fe066")
|
||||||
|
)
|
||||||
|
(pad "5" smd rect
|
||||||
|
(at 1.6 -2.85)
|
||||||
|
(size 0.5 1.7)
|
||||||
|
(layers "F.Cu" "F.Paste" "F.Mask")
|
||||||
|
(uuid "775ff58f-f278-4d45-878f-eb1e67ee5746")
|
||||||
|
)
|
||||||
|
(pad "6" smd rect
|
||||||
|
(at -4.17 -2.65)
|
||||||
|
(size 1.45 1.9)
|
||||||
|
(layers "F.Cu" "F.Paste" "F.Mask")
|
||||||
|
(uuid "b5e05f8a-9ee3-4e04-b21c-09af79a7cad4")
|
||||||
|
)
|
||||||
|
(pad "7" smd rect
|
||||||
|
(at -4.17 2.85)
|
||||||
|
(size 1.45 1.9)
|
||||||
|
(layers "F.Cu" "F.Paste" "F.Mask")
|
||||||
|
(uuid "3fd2e9c6-b2e3-46a8-9255-7cd472742419")
|
||||||
|
)
|
||||||
|
(pad "8" smd rect
|
||||||
|
(at 4.17 2.85)
|
||||||
|
(size 1.45 1.9)
|
||||||
|
(layers "F.Cu" "F.Paste" "F.Mask")
|
||||||
|
(uuid "1d175ab4-356e-4f51-b58d-b305fd7c0af9")
|
||||||
|
)
|
||||||
|
(pad "9" smd rect
|
||||||
|
(at 4.17 -2.65)
|
||||||
|
(size 1.45 1.9)
|
||||||
|
(layers "F.Cu" "F.Paste" "F.Mask")
|
||||||
|
(uuid "875b3383-2651-4a80-aa85-613ada3fbbba")
|
||||||
|
)
|
||||||
|
(model "${KIPRJMOD}/kicad-stuff/easyeda2kicad.3dshapes/MINI-USB-SMD_UX-144S-ACP5.step"
|
||||||
|
(offset
|
||||||
|
(xyz 0 -1.25 2)
|
||||||
|
)
|
||||||
|
(scale
|
||||||
|
(xyz 1 1 1)
|
||||||
|
)
|
||||||
|
(rotate
|
||||||
|
(xyz 0 0 0)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@@ -9,4 +9,5 @@
|
|||||||
(lib (name "CN3795")(type "KiCad")(uri "${KIPRJMOD}/CN3795.kicad_sym")(options "")(descr ""))
|
(lib (name "CN3795")(type "KiCad")(uri "${KIPRJMOD}/CN3795.kicad_sym")(options "")(descr ""))
|
||||||
(lib (name "BQ34Z100PWR-G1")(type "KiCad")(uri "${KIPRJMOD}/kicad-stuff/BQ34Z100PWR-G1.kicad_sym")(options "")(descr ""))
|
(lib (name "BQ34Z100PWR-G1")(type "KiCad")(uri "${KIPRJMOD}/kicad-stuff/BQ34Z100PWR-G1.kicad_sym")(options "")(descr ""))
|
||||||
(lib (name "ESP32-C6-WROOM-1-N8")(type "KiCad")(uri "${KIPRJMOD}/esp32c6/ESP32-C6-WROOM-1-N8.kicad_sym")(options "")(descr ""))
|
(lib (name "ESP32-C6-WROOM-1-N8")(type "KiCad")(uri "${KIPRJMOD}/esp32c6/ESP32-C6-WROOM-1-N8.kicad_sym")(options "")(descr ""))
|
||||||
|
(lib (name "easyeda2kicad")(type "KiCad")(uri "${KIPRJMOD}/kicad-stuff/easyeda2kicad.kicad_sym")(options "")(descr ""))
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -4,11 +4,14 @@ target = "riscv32imac-esp-espidf"
|
|||||||
|
|
||||||
[target.riscv32imac-esp-espidf]
|
[target.riscv32imac-esp-espidf]
|
||||||
linker = "ldproxy"
|
linker = "ldproxy"
|
||||||
# runner = "espflash flash --monitor --partition-table partitions.csv -b no-reset" # Select this runner for espflash v2.x.x
|
#runner = "espflash flash --monitor --baud 921600 --partition-table partitions.csv -b no-reset" # Select this runner in case of usb ttl
|
||||||
# runner = "espflash flash --monitor --baud 921600 --partition-table partitions.csv -b no-reset" # Select this runner for espflash v2.x.x
|
runner = "espflash flash --monitor --baud 921600 --partition-table partitions.csv" # Select this runner for espflash v2.x.x
|
||||||
# runner = espflash erase-parts otadata
|
#runner = "cargo runner"
|
||||||
|
|
||||||
|
|
||||||
|
#runner = "espflash flash --monitor --partition-table partitions.csv -b no-reset" # create upgrade image file for webupload
|
||||||
|
# runner = espflash erase-parts otadata //ensure flash is clean
|
||||||
|
|
||||||
runner = "cargo runner"
|
|
||||||
rustflags = [ "--cfg", "espidf_time64"] # Extending time_t for ESP IDF 5: https://github.com/esp-rs/rust/issues/110
|
rustflags = [ "--cfg", "espidf_time64"] # Extending time_t for ESP IDF 5: https://github.com/esp-rs/rust/issues/110
|
||||||
|
|
||||||
[unstable]
|
[unstable]
|
||||||
|
|||||||
+37
-24
@@ -8,7 +8,7 @@ rust-version = "1.71"
|
|||||||
|
|
||||||
[profile.dev]
|
[profile.dev]
|
||||||
# Explicitly disable LTO which the Xtensa codegen backend has issues
|
# Explicitly disable LTO which the Xtensa codegen backend has issues
|
||||||
lto = false
|
lto = true
|
||||||
strip = false
|
strip = false
|
||||||
debug = true
|
debug = true
|
||||||
overflow-checks = true
|
overflow-checks = true
|
||||||
@@ -37,7 +37,6 @@ partition_table = "partitions.csv"
|
|||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["std", "embassy", "esp-idf-svc/native"]
|
default = ["std", "embassy", "esp-idf-svc/native"]
|
||||||
|
|
||||||
pio = ["esp-idf-svc/pio"]
|
pio = ["esp-idf-svc/pio"]
|
||||||
std = ["alloc", "esp-idf-svc/binstart", "esp-idf-svc/std"]
|
std = ["alloc", "esp-idf-svc/binstart", "esp-idf-svc/std"]
|
||||||
alloc = ["esp-idf-svc/alloc"]
|
alloc = ["esp-idf-svc/alloc"]
|
||||||
@@ -46,37 +45,51 @@ experimental = ["esp-idf-svc/experimental"]
|
|||||||
embassy = ["esp-idf-svc/embassy-sync", "esp-idf-svc/critical-section", "esp-idf-svc/embassy-time-driver"]
|
embassy = ["esp-idf-svc/embassy-sync", "esp-idf-svc/critical-section", "esp-idf-svc/embassy-time-driver"]
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
log = { version = "0.4", default-features = false }
|
#ESP stuff
|
||||||
serde = { version = "1.0.192", features = ["derive"] }
|
embedded-svc = { version = "0.28.0", features = ["experimental"] }
|
||||||
average = { version = "0.14.1" , features = ["std"] }
|
esp-idf-hal = "0.44.1"
|
||||||
#esp32 = "0.28.0"
|
esp-idf-sys = { version = "0.35.0", features = ["binstart", "native"] }
|
||||||
bit_field = "0.10.2"
|
esp-idf-svc = { version = "0.49.1", default-features = false }
|
||||||
|
embedded-hal = "1.0.0"
|
||||||
|
heapless = { version = "0.8", features = ["serde"] }
|
||||||
|
embedded-hal-bus = { version = "0.2.0", features = ["std"] }
|
||||||
|
|
||||||
|
#Hardware additional driver
|
||||||
ds18b20 = "0.1.1"
|
ds18b20 = "0.1.1"
|
||||||
embedded-svc = { version = "0.27.0", features = ["experimental"] }
|
bq34z100 = { version = "0.3.0", features = ["flashstream"] }
|
||||||
esp-idf-hal = "0.43.0"
|
one-wire-bus = "0.1.1"
|
||||||
esp-idf-sys = { version = "0.34.0", features = ["binstart", "native"] }
|
ds323x = "0.5.1"
|
||||||
esp-idf-svc = { version = "0.48.0", default-features = false }
|
|
||||||
esp_idf_build = "0.1.3"
|
#pure code dependencies
|
||||||
|
log = { version = "0.4", default-features = false }
|
||||||
|
once_cell = "1.19.0"
|
||||||
|
anyhow = { version = "1.0.75", features = ["std", "backtrace"] }
|
||||||
|
average = { version = "0.14.1" , features = ["std"] }
|
||||||
|
bit_field = "0.10.2"
|
||||||
|
strum = { version = "0.26.1", features = ["derive"] }
|
||||||
|
measurements = "0.11.0"
|
||||||
|
schemars = "0.8.16"
|
||||||
|
|
||||||
|
#json
|
||||||
|
serde = { version = "1.0.192", features = ["derive"] }
|
||||||
|
serde_json = "1.0.108"
|
||||||
|
|
||||||
|
#timezone
|
||||||
chrono = { version = "0.4.23", default-features = false , features = ["iana-time-zone" , "alloc"] }
|
chrono = { version = "0.4.23", default-features = false , features = ["iana-time-zone" , "alloc"] }
|
||||||
chrono-tz = {version="0.8.0", default-features = false , features = [ "filter-by-regex" ]}
|
chrono-tz = {version="0.8.0", default-features = false , features = [ "filter-by-regex" ]}
|
||||||
embedded-hal = "1.0.0"
|
eeprom24x = "0.7.2"
|
||||||
one-wire-bus = "0.1.1"
|
url = "2.5.3"
|
||||||
anyhow = { version = "1.0.75", features = ["std", "backtrace"] }
|
|
||||||
schemars = "0.8.16"
|
|
||||||
heapless = { version = "0.8", features = ["serde"] }
|
|
||||||
serde_json = "1.0.108"
|
|
||||||
strum = { version = "0.26.1", features = ["derive"] }
|
|
||||||
once_cell = "1.19.0"
|
|
||||||
measurements = "0.11.0"
|
|
||||||
bq34z100 = "0.2.1"
|
|
||||||
|
|
||||||
[patch.crates-io]
|
[patch.crates-io]
|
||||||
#esp-idf-hal = { git = "https://github.com/esp-rs/esp-idf-hal.git" }
|
#esp-idf-hal = { git = "https://github.com/esp-rs/esp-idf-hal.git" }
|
||||||
esp-idf-hal = { git = "https://github.com/empirephoenix/esp-idf-hal.git" }
|
#esp-idf-hal = { git = "https://github.com/empirephoenix/esp-idf-hal.git" }
|
||||||
#esp-idf-sys = { git = "https://github.com/empirephoenix/esp-idf-sys.git" }
|
#esp-idf-sys = { git = "https://github.com/empirephoenix/esp-idf-sys.git" }
|
||||||
#esp-idf-sys = { git = "https://github.com/esp-rs/esp-idf-sys.git" }
|
#esp-idf-sys = { git = "https://github.com/esp-rs/esp-idf-sys.git" }
|
||||||
#esp-idf-svc = { git = "https://github.com/esp-rs/esp-idf-svc.git" }
|
#esp-idf-svc = { git = "https://github.com/esp-rs/esp-idf-svc.git" }
|
||||||
|
ds323x = { git = "https://github.com/empirephoenix/ds323x-rs.git" }
|
||||||
|
#bq34z100 = { path = "../../bq34z100_rust" }
|
||||||
|
|
||||||
[build-dependencies]
|
[build-dependencies]
|
||||||
embuild = "0.31.3"
|
embuild = "0.32.0"
|
||||||
vergen = { version = "8.2.6", features = ["build", "git", "gitcl"] }
|
vergen = { version = "8.2.6", features = ["build", "git", "gitcl"] }
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,197 @@
|
|||||||
|
;--------------------------------------------------------
|
||||||
|
;Verify Existing Firmware Version
|
||||||
|
;--------------------------------------------------------
|
||||||
|
W: AA 00 01 00
|
||||||
|
C: AA 00 01 00
|
||||||
|
W: AA 00 02 00
|
||||||
|
C: AA 00 02 00
|
||||||
|
;--------------------------------------------------------
|
||||||
|
;Unseal device
|
||||||
|
;--------------------------------------------------------
|
||||||
|
W: AA 00 14 04
|
||||||
|
W: AA 00 72 36
|
||||||
|
W: AA 00 FF FF
|
||||||
|
W: AA 00 FF FF
|
||||||
|
X: 1000
|
||||||
|
;--------------------------------------------------------
|
||||||
|
;Go To ROM Mode
|
||||||
|
;--------------------------------------------------------
|
||||||
|
W: AA 00 00 0F
|
||||||
|
X: 1000
|
||||||
|
;--------------------------------------------------------
|
||||||
|
;Data Block
|
||||||
|
;--------------------------------------------------------
|
||||||
|
W: 16 00 03 00 00
|
||||||
|
W: 16 64 03 00
|
||||||
|
X: 20
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 02 00 00 00 EA FF 33 FA FA 33 B5 FB 33 95 FE 33 AD FE 33 FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F FF FF 3F 02 02 3F 58 CB 33 C3 A0 08 1F 00 00 00 00 00 FF AA 0E FB A7 0E FF A6 0E FF A1 0E FF A0 0E FE A3 0E 54 A2 0E DE FF 3A 67 FF 3A E2 FF 33 FF AF 0E
|
||||||
|
W: 16 64 3D 38
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 02 01 00 00 01 4F 03 3F 11 0C D9 FF 30 E0 FF 35 2F 10 0C E0 FF 35 FF FF 23 E3 AF 04 E2 BF 04 D1 FF 36 E2 A0 04 E3 A1 04 00 C7 02 01 C6 02 E5 AF 04 E3 BF 01 E4 AF 04 E2 BF 01 FF AC 0E E1 1C 04 8A FF 31 E2 A0 04 E3 A1 04 02 AB 18 7F 2B 0E FF 1B 0E BF FF 32 FC FA 0E FB AF 0C 02 2B 18 FF 1B 0E 98 FF 36
|
||||||
|
W: 16 64 AE 2C
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 05
|
||||||
|
W: 16 64 05 00
|
||||||
|
X: 170
|
||||||
|
C: 16 66 00
|
||||||
|
C: 16 04 0A 91 AF DC
|
||||||
|
W: 16 00 0C 00 00 00 83 DE
|
||||||
|
W: 16 64 6D 01
|
||||||
|
X: 400
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 00 00 00 7F 71 20 5C 94 08 98 C0 FB 50 00 00 00 00 13 88 51 F6 C9 F4 14 52 09 21 32 6D 00 00 00 00 D0 7E
|
||||||
|
W: 16 64 D1 0A
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 01 00 00 17 DF 00 00 17 F3 00 00 3A 36 FD 91 00 25 30 01 00 EF 05 11 05 01 00 00 10 01 00 3C 00 50 3C 00
|
||||||
|
W: 16 64 43 06
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 02 00 00 64 3C 00 20 03 E8 00 00 04 10 68 FE D5 FB 95 00 02 00 14 03 E8 01 00 01 F4 00 1E 00 3C 0E 10 00
|
||||||
|
W: 16 64 05 08
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 03 00 00 0A 46 05 32 01 0F 01 F4 00 64 46 50 0A 0E D8 0E 99 01 90 00 64 19 00 01 00 14 00 01 00 14 03 23
|
||||||
|
W: 16 64 88 05
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 04 00 00 07 08 25 5A 32 0F 64 60 00 A0 0B B8 00 C8 28 01 F4 00 00 00 00 00 00 00 00 00 00 43 80 04 00 00
|
||||||
|
W: 16 64 B0 05
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 05 00 00 0F 00 2A 04 0A 7D 00 00 01 0A FE 76 E7 54 00 28 03 E8 02 01 2C F0 00 01 07 10 63 10 48 10 2D 10
|
||||||
|
W: 16 64 DF 06
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 06 00 00 15 0F FC 0F E6 0F D0 0F BC 0F A8 0F 96 0F 84 0F 74 0F 65 0F 56 0F 45 0F 30 0F 1C 0F 09 0E F9 0E
|
||||||
|
W: 16 64 05 09
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 07 00 00 EF 0E E6 0E DF 0E D8 0E D3 0E CF 0E CB 0E CA 0E C9 0E C7 0E C2 0E B8 0E AC 0E 9A 0E 85 0E 7B 0E
|
||||||
|
W: 16 64 04 0D
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 08 00 00 75 0E 56 0E 30 0D AB 0A 69 FF 2B FF 41 FF 56 FF 61 FF 67 FF 3B FF 16 FF 21 FF 21 FE EB FE B5 FE
|
||||||
|
W: 16 64 02 12
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 09 00 00 7F FE 5E FE 7F FE E8 00 02 00 9A 00 2E FF E2 FF CD FF B7 FF A1 FF 77 FF 36 FE DA FE 62 FC F3 FA
|
||||||
|
W: 16 64 EA 15
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 0A 00 00 B3 F8 ED F7 7C F7 3B F7 B2 F7 FC F8 32 F8 F7 F9 F0 F9 B0 F9 18 EC 9D 4D C0 FF 65 FF AC FF 98 FF
|
||||||
|
W: 16 64 E4 18
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 0B 00 00 75 FF BB FF 82 FF 93 FF BB FF D5 FF E4 FF CE FF AD 00 80 FF 73 00 00 FF 16 FE EC FE ED FE DC FE
|
||||||
|
W: 16 64 F5 17
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 0C 00 00 F3 FF 09 FE F7 FE AC FE 9E FE C6 FE DA FE DC FE 8E FF 75 00 00 00 00 01 C2 00 32 FF CE 02 26 64
|
||||||
|
W: 16 64 10 13
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 0D 00 00 7B 20 00 00 60 7E 00 00 00 00 64 00 19 00 64 28 63 5F 64 62 00 64 00 1E 00 B4 00 64 00 F0 00 FA
|
||||||
|
W: 16 64 A5 07
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 0E 00 00 11 10 10 68 41 D9 AF 37 00 00 00 01 00 14 00 00 0A F0 00 0A 05 00 32 01 C2 14 14 00 00 3C 00 4B
|
||||||
|
W: 16 64 73 05
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 0F 00 00 00 28 00 3C 3C 01 90 36 72 04 14 FF FF FF FF 01 23 45 67 89 AB CD EF FE DC BA 98 76 54 32 10 04
|
||||||
|
W: 16 64 02 0E
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 10 00 00 01 2C 00 C8 00 00 00 00 00 A0 00 AF 00 00 0A 64 01 00 3C 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
W: 16 64 09 03
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
W: 16 64 1B 00
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 12 00 00 02 26 02 01 F4 02 58 02 02 26 0E 00 00 00 00 00 00 00 00 00 00 00 00 01 00 DC 84 E5 5F 00 00 0E
|
||||||
|
W: 16 64 80 04
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 13 00 00 10 00 00 00 01 00 00 03 84 64 03 E8 15 18 FE 70 10 68 10 68 10 04 0A 32 1E 00 0A 2D 37 01 01 01
|
||||||
|
W: 16 64 6E 05
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 14 00 00 0B 62 71 33 34 7A 31 30 30 2D 47 31 0B 54 65 78 61 73 20 49 6E 73 74 2E 04 4C 49 4F 4E 00 96 00
|
||||||
|
W: 16 64 DB 08
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 15 00 00 AF 00 4B 00 64 0A F0 02 0B 54 10 CC 02 10 68 64 01 03 05 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
W: 16 64 9B 04
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 16 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
W: 16 64 13 0D
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 17 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
W: 16 64 01 20
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 18 00 00 FF 55 00 69 00 64 00 71 00 8F 00 62 00 61 00 6C 00 59 00 56 00 55 00 57 00 5A 00 6E 02 87 05 DC
|
||||||
|
W: 16 64 FF 07
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
W: 16 64 23 00
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 1A 00 00 FF FF 00 69 00 64 00 71 00 8F 00 62 00 61 00 6C 00 59 00 56 00 55 00 57 00 5A 00 6E 02 87 05 DC
|
||||||
|
W: 16 64 AB 08
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 1B 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|
||||||
|
W: 16 64 25 00
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 1C 00 00 64 3C 00 20 03 E8 00 00 04 10 68 FE D5 FB 95 00 02 00 14 03 E8 01 00 01 F4 00 1E 00 3C 0E 10 00
|
||||||
|
W: 16 64 1F 08
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 1D 00 00 0A 46 05 32 01 0F 01 F4 00 64 46 50 0A 0E D8 0E 99 01 90 00 64 19 00 01 00 14 00 01 00 14 03 23
|
||||||
|
W: 16 64 A2 05
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 1E 00 00 FF FF FF FF 00 00 00 01 FF FF FF FD FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
W: 16 64 0B 1C
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 0A 1F 00 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
|
||||||
|
W: 16 64 09 20
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 08
|
||||||
|
W: 16 64 08 00
|
||||||
|
X: 2
|
||||||
|
C: 16 66 00
|
||||||
|
C: 16 04 5B 67
|
||||||
|
W: 16 00 05
|
||||||
|
W: 16 64 05 00
|
||||||
|
X: 170
|
||||||
|
C: 16 66 00
|
||||||
|
C: 16 04 0A 91 AF DC
|
||||||
|
W: 16 00 01 00 00 05 54 54 15
|
||||||
|
W: 16 64 C3 00
|
||||||
|
X: 20
|
||||||
|
C: 16 66 00
|
||||||
|
W: 16 00 05
|
||||||
|
W: 16 64 05 00
|
||||||
|
X: 170
|
||||||
|
C: 16 66 00
|
||||||
|
C: 16 04 5F E5 84 DC
|
||||||
|
;--------------------------------------------------------
|
||||||
|
;Execute Flash Code
|
||||||
|
;--------------------------------------------------------
|
||||||
|
W: 16 00 0F
|
||||||
|
W: 16 64 0F 00
|
||||||
|
X: 4000
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,5 @@
|
|||||||
# Rust often needs a bit of an extra main task stack size compared to C (the default is 3K)
|
# Rust often needs a bit of an extra main task stack size compared to C (the default is 3K)
|
||||||
CONFIG_ESP_MAIN_TASK_STACK_SIZE=25000
|
CONFIG_ESP_MAIN_TASK_STACK_SIZE=50000
|
||||||
|
|
||||||
# Use this to set FreeRTOS kernel tick frequency to 1000 Hz (100 Hz by default).
|
# Use this to set FreeRTOS kernel tick frequency to 1000 Hz (100 Hz by default).
|
||||||
# This allows to use 1 ms granuality for thread sleeps (10 ms by default).
|
# This allows to use 1 ms granuality for thread sleeps (10 ms by default).
|
||||||
|
|||||||
+67
-52
@@ -1,58 +1,77 @@
|
|||||||
use std::{fmt, str::FromStr};
|
use std::str::FromStr;
|
||||||
|
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
use crate::PLANT_COUNT;
|
use crate::PLANT_COUNT;
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
|
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
|
||||||
pub struct Config {
|
pub struct NetworkConfig {
|
||||||
pub mqtt_url: heapless::String<128>,
|
pub ap_ssid: heapless::String<32>,
|
||||||
pub base_topic: heapless::String<64>,
|
pub ssid: Option<heapless::String<32>>,
|
||||||
pub max_consecutive_pump_count: u8,
|
pub password: Option<heapless::String<64>>,
|
||||||
|
pub mqtt_url: Option<heapless::String<128>>,
|
||||||
|
pub base_topic: Option<heapless::String<64>>,
|
||||||
|
}
|
||||||
|
impl Default for NetworkConfig {
|
||||||
|
fn default() -> Self {
|
||||||
|
Self {
|
||||||
|
ap_ssid: heapless::String::from_str("PlantCtrl Init").unwrap(),
|
||||||
|
ssid: None,
|
||||||
|
password: None,
|
||||||
|
mqtt_url: None,
|
||||||
|
base_topic: None,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub tank_allow_pumping_if_sensor_error: bool,
|
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
|
||||||
|
pub struct NightLampConfig {
|
||||||
|
pub night_lamp_hour_start: u8,
|
||||||
|
pub night_lamp_hour_end: u8,
|
||||||
|
pub night_lamp_only_when_dark: bool,
|
||||||
|
}
|
||||||
|
impl Default for NightLampConfig {
|
||||||
|
fn default() -> Self {
|
||||||
|
Self {
|
||||||
|
night_lamp_hour_start: 19,
|
||||||
|
night_lamp_hour_end: 2,
|
||||||
|
night_lamp_only_when_dark: true,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
|
||||||
|
pub struct TankConfig {
|
||||||
pub tank_sensor_enabled: bool,
|
pub tank_sensor_enabled: bool,
|
||||||
|
pub tank_allow_pumping_if_sensor_error: bool,
|
||||||
pub tank_useable_ml: u32,
|
pub tank_useable_ml: u32,
|
||||||
pub tank_warn_percent: u8,
|
pub tank_warn_percent: u8,
|
||||||
pub tank_empty_percent: u8,
|
pub tank_empty_percent: u8,
|
||||||
pub tank_full_percent: u8,
|
pub tank_full_percent: u8,
|
||||||
|
|
||||||
pub night_lamp_hour_start: u8,
|
|
||||||
pub night_lamp_hour_end: u8,
|
|
||||||
pub night_lamp_only_when_dark: bool,
|
|
||||||
|
|
||||||
pub plants: [Plant; PLANT_COUNT],
|
|
||||||
}
|
}
|
||||||
|
impl Default for TankConfig {
|
||||||
impl Default for Config {
|
|
||||||
fn default() -> Self {
|
fn default() -> Self {
|
||||||
Self {
|
Self {
|
||||||
base_topic: heapless::String::from_str("plant/one").unwrap(),
|
tank_sensor_enabled: false,
|
||||||
mqtt_url: heapless::String::from_str("mqtt://192.168.1.1:1883").unwrap(),
|
|
||||||
tank_allow_pumping_if_sensor_error: true,
|
tank_allow_pumping_if_sensor_error: true,
|
||||||
tank_sensor_enabled: true,
|
tank_useable_ml: 50000,
|
||||||
tank_warn_percent: 50,
|
tank_warn_percent: 40,
|
||||||
night_lamp_hour_start: 21,
|
tank_empty_percent: 5,
|
||||||
night_lamp_hour_end: 2,
|
tank_full_percent: 95,
|
||||||
night_lamp_only_when_dark: true,
|
|
||||||
plants: [Plant::default(); PLANT_COUNT],
|
|
||||||
max_consecutive_pump_count: 15,
|
|
||||||
tank_useable_ml: 5000,
|
|
||||||
tank_empty_percent: 0_u8,
|
|
||||||
tank_full_percent: 100_u8,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#[derive(Serialize, Deserialize, Copy, Clone, Debug, PartialEq)]
|
|
||||||
pub enum Mode {
|
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Default)]
|
||||||
OFF,
|
pub struct PlantControllerConfig {
|
||||||
TargetMoisture,
|
pub network: NetworkConfig,
|
||||||
TimerOnly,
|
pub tank: TankConfig,
|
||||||
TimerAndDeadzone,
|
pub night_lamp: NightLampConfig,
|
||||||
|
pub plants: [PlantConfig; PLANT_COUNT],
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize, Copy, Clone, Debug, PartialEq)]
|
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
|
||||||
pub struct Plant {
|
pub struct PlantConfig {
|
||||||
pub mode: Mode,
|
pub mode: Mode,
|
||||||
pub target_moisture: u8,
|
pub target_moisture: u8,
|
||||||
pub pump_time_s: u16,
|
pub pump_time_s: u16,
|
||||||
@@ -60,31 +79,27 @@ pub struct Plant {
|
|||||||
pub pump_hour_start: u8,
|
pub pump_hour_start: u8,
|
||||||
pub pump_hour_end: u8,
|
pub pump_hour_end: u8,
|
||||||
pub sensor_b: bool,
|
pub sensor_b: bool,
|
||||||
pub sensor_p: bool,
|
pub max_consecutive_pump_count: u8,
|
||||||
}
|
}
|
||||||
impl Default for Plant {
|
impl Default for PlantConfig {
|
||||||
fn default() -> Self {
|
fn default() -> Self {
|
||||||
Self {
|
Self {
|
||||||
target_moisture: 40,
|
|
||||||
pump_time_s: 60,
|
|
||||||
pump_cooldown_min: 60,
|
|
||||||
pump_hour_start: 8,
|
|
||||||
pump_hour_end: 20,
|
|
||||||
mode: Mode::OFF,
|
mode: Mode::OFF,
|
||||||
|
target_moisture: 40,
|
||||||
|
pump_time_s: 30,
|
||||||
|
pump_cooldown_min: 60,
|
||||||
|
pump_hour_start: 9,
|
||||||
|
pump_hour_end: 20,
|
||||||
sensor_b: false,
|
sensor_b: false,
|
||||||
sensor_p: false,
|
max_consecutive_pump_count: 10,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize, Debug)]
|
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
|
||||||
pub struct WifiConfig {
|
pub enum Mode {
|
||||||
pub ssid: heapless::String<32>,
|
OFF,
|
||||||
pub password: Option<heapless::String<64>>,
|
TargetMoisture,
|
||||||
}
|
TimerOnly,
|
||||||
|
TimerAndDeadzone,
|
||||||
impl fmt::Display for WifiConfig {
|
|
||||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
|
||||||
write!(f, "({}, ****)", self.ssid)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
+660
-867
File diff suppressed because it is too large
Load Diff
+686
-397
File diff suppressed because it is too large
Load Diff
+2050
File diff suppressed because it is too large
Load Diff
@@ -1,95 +0,0 @@
|
|||||||
<html>
|
|
||||||
<body>
|
|
||||||
<input type="button" id="test" value="Test">
|
|
||||||
<h2>Current Firmware</h2>
|
|
||||||
<div>
|
|
||||||
<div id="firmware_buildtime">Buildtime loading</div>
|
|
||||||
<div id="firmware_githash">Build githash loading</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<h2>firmeware OTA v3</h2>
|
|
||||||
|
|
||||||
<form id="upload_form" method="post">
|
|
||||||
<input type="file" name="file1" id="file1"><br>
|
|
||||||
<progress id="progressBar" value="0" max="100" style="width:300px;"></progress>
|
|
||||||
<h3 id="status"></h3>
|
|
||||||
<h3 id="answer"></h3>
|
|
||||||
<p id="loaded_n_total"></p>
|
|
||||||
</form>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h2>config</h2>
|
|
||||||
|
|
||||||
<div id="configform">
|
|
||||||
<h3>Mqtt:</h3>
|
|
||||||
<div>
|
|
||||||
<input type="text" id="mqtt_url">
|
|
||||||
MQTT Url
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<input type="text" id="base_topic">
|
|
||||||
Base Topic
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<h3>Tank:</h3>
|
|
||||||
<div>
|
|
||||||
<input type="checkbox" id="tank_sensor_enabled">
|
|
||||||
Enable Tank Sensor
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<input type="checkbox" id="tank_allow_pumping_if_sensor_error">
|
|
||||||
Allow Pumping if Sensor Error
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<input type="number" min="2" max="500000" id="tank_useable_ml">
|
|
||||||
Tank Size mL
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<input type="number" min="1" max="500000" id="tank_warn_percent">
|
|
||||||
Tank Warn Percent (mapped in relation to empty and full)
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<input type="number" min="0" max="100" id="tank_empty_percent">
|
|
||||||
Tank Empty Percent (% max move)
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<input type="number" min="0" max="100" id="tank_full_percent">
|
|
||||||
Tank Full Percent (% max move)
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<h3>Light:</h3>
|
|
||||||
<div>
|
|
||||||
Start
|
|
||||||
<select type="time" id="night_lamp_time_start">
|
|
||||||
</select>
|
|
||||||
Stop
|
|
||||||
<select type="time" id="night_lamp_time_end">
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<input type="checkbox" id="night_lamp_only_when_dark">
|
|
||||||
Light only when dark
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<h3>Plants:</h3>
|
|
||||||
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<input type="number" min="2" max="100" id="max_consecutive_pump_count">
|
|
||||||
Max consecutive pump count:
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="plants"></div>
|
|
||||||
</div>
|
|
||||||
<button id="submit">Submit</button>
|
|
||||||
<div id="submit_status"></div>
|
|
||||||
<br>
|
|
||||||
<textarea id="json" cols=50 rows=10></textarea>
|
|
||||||
<script src="bundle.js"></script>
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
<html>
|
|
||||||
<body>
|
|
||||||
<input type="button" id="test" value="Test">
|
|
||||||
<h2>Current Firmware</h2>
|
|
||||||
<div>
|
|
||||||
<div id="firmware_buildtime">Buildtime loading</div>
|
|
||||||
<div id="firmware_githash">Build githash loading</div>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<h2>firmeware OTA v3</h2>
|
|
||||||
<form id="upload_form" method="post">
|
|
||||||
<input type="file" name="file1" id="file1"><br>
|
|
||||||
<progress id="progressBar" value="0" max="100" style="width:300px;"></progress>
|
|
||||||
<h3 id="status"></h3>
|
|
||||||
<h3 id="answer"></h3>
|
|
||||||
<p id="loaded_n_total"></p>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div>
|
|
||||||
<h2>WIFI</h2>
|
|
||||||
<input type="button" id="scan" value="Scan">
|
|
||||||
<br>
|
|
||||||
<label for="ssid">SSID:</label>
|
|
||||||
<input type="text" id="ssid" list="ssidlist">
|
|
||||||
<datalist id="ssidlist">
|
|
||||||
<option value="Not scanned yet">
|
|
||||||
</datalist>
|
|
||||||
<label for="ssid">Password:</label>
|
|
||||||
<input type="text" id="password">
|
|
||||||
<input type="button" id="save" value="Save & Restart">
|
|
||||||
<div id="wifistatus"></div>
|
|
||||||
<br>
|
|
||||||
</div>
|
|
||||||
<script src="bundle.js"></script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
+495
-226
@@ -5,17 +5,21 @@ use std::{
|
|||||||
sync::{atomic::AtomicBool, Arc},
|
sync::{atomic::AtomicBool, Arc},
|
||||||
};
|
};
|
||||||
|
|
||||||
use crate::{espota::OtaUpdate, BOARD_ACCESS};
|
use esp_idf_svc::io::BufRead;
|
||||||
|
use crate::{
|
||||||
|
espota::OtaUpdate, get_version, map_range_moisture, plant_hal::FileInfo, BOARD_ACCESS,
|
||||||
|
};
|
||||||
|
use anyhow::bail;
|
||||||
|
use chrono::DateTime;
|
||||||
use core::result::Result::Ok;
|
use core::result::Result::Ok;
|
||||||
use embedded_svc::http::Method;
|
use embedded_svc::http::Method;
|
||||||
use esp_idf_svc::http::server::{Configuration, EspHttpServer};
|
use esp_idf_hal::delay::Delay;
|
||||||
|
use esp_idf_svc::http::server::{Configuration, EspHttpConnection, EspHttpServer, Request};
|
||||||
use heapless::String;
|
use heapless::String;
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
use url::Url;
|
||||||
|
|
||||||
use crate::{
|
use crate::config::PlantControllerConfig;
|
||||||
config::{Config, WifiConfig},
|
|
||||||
plant_hal::PlantCtrlBoardInteraction,
|
|
||||||
};
|
|
||||||
|
|
||||||
#[derive(Serialize, Debug)]
|
#[derive(Serialize, Debug)]
|
||||||
struct SSIDList<'a> {
|
struct SSIDList<'a> {
|
||||||
@@ -23,9 +27,25 @@ struct SSIDList<'a> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Serialize, Debug)]
|
#[derive(Serialize, Debug)]
|
||||||
struct VersionInfo<'a> {
|
struct FileList {
|
||||||
git_hash: &'a str,
|
file: Vec<FileInfo>,
|
||||||
build_time: &'a str,
|
}
|
||||||
|
|
||||||
|
#[derive(Serialize, Debug)]
|
||||||
|
struct LoadData<'a> {
|
||||||
|
rtc: &'a str,
|
||||||
|
native: &'a str,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Serialize, Debug)]
|
||||||
|
struct Moistures {
|
||||||
|
moisture_a: Vec<u8>,
|
||||||
|
moisture_b: Vec<u8>,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Deserialize, Debug)]
|
||||||
|
struct SetTime<'a> {
|
||||||
|
time: &'a str,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
|
#[derive(Serialize, Deserialize, Clone, Debug, PartialEq)]
|
||||||
@@ -33,260 +53,509 @@ pub struct TestPump {
|
|||||||
pump: usize,
|
pump: usize,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn httpd_initial(reboot_now: Arc<AtomicBool>) -> Box<EspHttpServer<'static>> {
|
fn write_time(
|
||||||
let mut server = shared();
|
request: &mut Request<&mut EspHttpConnection>,
|
||||||
server
|
) -> Result<Option<std::string::String>, anyhow::Error> {
|
||||||
.fn_handler("/", Method::Get, move |request| {
|
let mut buf = [0_u8; 3072];
|
||||||
let mut response = request.into_ok_response()?;
|
let read = request.read(&mut buf)?;
|
||||||
response.write(include_bytes!("initial_config.html"))?;
|
let actual_data = &buf[0..read];
|
||||||
anyhow::Ok(())
|
println!("Raw data {}", from_utf8(actual_data)?);
|
||||||
})
|
let time: SetTime = serde_json::from_slice(actual_data)?;
|
||||||
.unwrap();
|
let parsed = DateTime::parse_from_rfc3339(time.time).map_err(|err| anyhow::anyhow!(err))?;
|
||||||
|
let mut board = BOARD_ACCESS.lock().unwrap();
|
||||||
server
|
board.set_rtc_time(&parsed.to_utc())?;
|
||||||
.fn_handler("/wifiscan", Method::Post, move |request| {
|
anyhow::Ok(None)
|
||||||
let mut response = request.into_ok_response()?;
|
|
||||||
let mut board = BOARD_ACCESS.lock().unwrap();
|
|
||||||
match board.wifi_scan() {
|
|
||||||
Err(error) => {
|
|
||||||
response.write(format!("Error scanning wifi: {}", error).as_bytes())?;
|
|
||||||
}
|
|
||||||
Ok(scan_result) => {
|
|
||||||
let mut ssids: Vec<&String<32>> = Vec::new();
|
|
||||||
scan_result.iter().for_each(|s| ssids.push(&s.ssid));
|
|
||||||
let ssid_json = serde_json::to_string(&SSIDList { ssids })?;
|
|
||||||
println!("Sending ssid list {}", &ssid_json);
|
|
||||||
response.write(ssid_json.as_bytes())?;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
anyhow::Ok(())
|
|
||||||
})
|
|
||||||
.unwrap();
|
|
||||||
|
|
||||||
server
|
|
||||||
.fn_handler("/wifisave", Method::Post, move |mut request| {
|
|
||||||
let mut buf = [0_u8; 2048];
|
|
||||||
let read = request.read(&mut buf);
|
|
||||||
if read.is_err() {
|
|
||||||
let error_text = read.unwrap_err().to_string();
|
|
||||||
println!("Could not parse wificonfig {}", error_text);
|
|
||||||
request
|
|
||||||
.into_status_response(500)?
|
|
||||||
.write(error_text.as_bytes())?;
|
|
||||||
return anyhow::Ok(());
|
|
||||||
}
|
|
||||||
let actual_data = &buf[0..read.unwrap()];
|
|
||||||
println!("raw {:?}", actual_data);
|
|
||||||
println!("Raw data {}", from_utf8(actual_data).unwrap());
|
|
||||||
let wifi_config: Result<WifiConfig, serde_json::Error> =
|
|
||||||
serde_json::from_slice(actual_data);
|
|
||||||
if wifi_config.is_err() {
|
|
||||||
let error_text = wifi_config.unwrap_err().to_string();
|
|
||||||
println!("Could not parse wificonfig {}", error_text);
|
|
||||||
request
|
|
||||||
.into_status_response(500)?
|
|
||||||
.write(error_text.as_bytes())?;
|
|
||||||
return anyhow::Ok(());
|
|
||||||
}
|
|
||||||
let mut board = BOARD_ACCESS.lock().unwrap();
|
|
||||||
board.set_wifi(&wifi_config.unwrap())?;
|
|
||||||
let mut response = request.into_status_response(202)?;
|
|
||||||
response.write("saved".as_bytes())?;
|
|
||||||
reboot_now.store(true, std::sync::atomic::Ordering::Relaxed);
|
|
||||||
anyhow::Ok(())
|
|
||||||
})
|
|
||||||
.unwrap();
|
|
||||||
server
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn httpd(reboot_now: Arc<AtomicBool>) -> Box<EspHttpServer<'static>> {
|
fn get_live_moisture(
|
||||||
let mut server = shared();
|
_request: &mut Request<&mut EspHttpConnection>,
|
||||||
|
) -> Result<Option<std::string::String>, anyhow::Error> {
|
||||||
|
let mut board = BOARD_ACCESS.lock().unwrap();
|
||||||
|
|
||||||
server
|
let mut a: Vec<u8> = Vec::new();
|
||||||
.fn_handler("/", Method::Get, move |request| {
|
let mut b: Vec<u8> = Vec::new();
|
||||||
let mut response = request.into_ok_response()?;
|
for plant in 0..8 {
|
||||||
response.write(include_bytes!("config.html"))?;
|
let a_hz = board.measure_moisture_hz(plant, crate::plant_hal::Sensor::A)?;
|
||||||
anyhow::Ok(())
|
let b_hz = board.measure_moisture_hz(plant, crate::plant_hal::Sensor::B)?;
|
||||||
})
|
let a_pct = map_range_moisture(a_hz as f32);
|
||||||
.unwrap();
|
|
||||||
|
|
||||||
server
|
match a_pct {
|
||||||
.fn_handler("/get_config", Method::Get, move |request| {
|
Ok(result) => {
|
||||||
let mut response = request.into_ok_response()?;
|
a.push(result);
|
||||||
let mut board = BOARD_ACCESS.lock().unwrap();
|
|
||||||
match board.get_config() {
|
|
||||||
Ok(config) => {
|
|
||||||
let config_json = serde_json::to_string(&config)?;
|
|
||||||
response.write(config_json.as_bytes())?;
|
|
||||||
}
|
|
||||||
Err(_) => {
|
|
||||||
let config_json = serde_json::to_string(&Config::default())?;
|
|
||||||
response.write(config_json.as_bytes())?;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
anyhow::Ok(())
|
Err(_) => {
|
||||||
})
|
a.push(200);
|
||||||
.unwrap();
|
}
|
||||||
|
}
|
||||||
|
|
||||||
server
|
let b_pct = map_range_moisture(b_hz as f32);
|
||||||
.fn_handler("/set_config", Method::Post, move |mut request| {
|
match b_pct {
|
||||||
let mut buf = [0_u8; 3072];
|
Ok(result) => {
|
||||||
let read = request.read(&mut buf);
|
b.push(result);
|
||||||
if read.is_err() {
|
|
||||||
let error_text = read.unwrap_err().to_string();
|
|
||||||
println!("Could not parse config {}", error_text);
|
|
||||||
request
|
|
||||||
.into_status_response(500)?
|
|
||||||
.write(error_text.as_bytes())?;
|
|
||||||
return anyhow::Ok(());
|
|
||||||
}
|
}
|
||||||
let actual_data = &buf[0..read.unwrap()];
|
Err(_) => {
|
||||||
println!("Raw data {}", from_utf8(actual_data).unwrap());
|
b.push(200);
|
||||||
let config: Result<Config, serde_json::Error> = serde_json::from_slice(actual_data);
|
|
||||||
if config.is_err() {
|
|
||||||
let error_text = config.unwrap_err().to_string();
|
|
||||||
println!("Could not parse config {}", error_text);
|
|
||||||
request
|
|
||||||
.into_status_response(500)?
|
|
||||||
.write(error_text.as_bytes())?;
|
|
||||||
return Ok(());
|
|
||||||
}
|
}
|
||||||
let mut board = BOARD_ACCESS.lock().unwrap();
|
}
|
||||||
board.set_config(&config.unwrap())?;
|
}
|
||||||
let mut response = request.into_status_response(202)?;
|
|
||||||
response.write("saved".as_bytes())?;
|
let data = Moistures {
|
||||||
reboot_now.store(true, std::sync::atomic::Ordering::Relaxed);
|
moisture_a: a,
|
||||||
Ok(())
|
moisture_b: b,
|
||||||
})
|
};
|
||||||
.unwrap();
|
let json = serde_json::to_string(&data)?;
|
||||||
server
|
|
||||||
|
anyhow::Ok(Some(json))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn shared() -> Box<EspHttpServer<'static>> {
|
fn get_data(
|
||||||
|
_request: &mut Request<&mut EspHttpConnection>,
|
||||||
|
) -> Result<Option<std::string::String>, anyhow::Error> {
|
||||||
|
let mut board = BOARD_ACCESS.lock().unwrap();
|
||||||
|
let native = board
|
||||||
|
.time()
|
||||||
|
.and_then(|t| Ok(t.to_rfc3339()))
|
||||||
|
.unwrap_or("error".to_string());
|
||||||
|
let rtc = board
|
||||||
|
.get_rtc_time()
|
||||||
|
.and_then(|t| Ok(t.to_rfc3339()))
|
||||||
|
.unwrap_or("error".to_string());
|
||||||
|
|
||||||
|
let data = LoadData {
|
||||||
|
rtc: rtc.as_str(),
|
||||||
|
native: native.as_str(),
|
||||||
|
};
|
||||||
|
let json = serde_json::to_string(&data)?;
|
||||||
|
|
||||||
|
anyhow::Ok(Some(json))
|
||||||
|
}
|
||||||
|
|
||||||
|
fn get_config(
|
||||||
|
_request: &mut Request<&mut EspHttpConnection>,
|
||||||
|
) -> Result<Option<std::string::String>, anyhow::Error> {
|
||||||
|
let mut board = BOARD_ACCESS.lock().unwrap();
|
||||||
|
let json = match board.get_config() {
|
||||||
|
Ok(config) => serde_json::to_string(&config)?,
|
||||||
|
Err(_) => serde_json::to_string(&PlantControllerConfig::default())?,
|
||||||
|
};
|
||||||
|
anyhow::Ok(Some(json))
|
||||||
|
}
|
||||||
|
|
||||||
|
fn set_config(
|
||||||
|
request: &mut Request<&mut EspHttpConnection>,
|
||||||
|
) -> Result<Option<std::string::String>, anyhow::Error> {
|
||||||
|
let mut buf = [0_u8; 3072];
|
||||||
|
let read = request.read(&mut buf)?;
|
||||||
|
let actual_data = &buf[0..read];
|
||||||
|
println!("Raw data {}", from_utf8(actual_data).unwrap());
|
||||||
|
let config: PlantControllerConfig = serde_json::from_slice(actual_data)?;
|
||||||
|
let mut board = BOARD_ACCESS.lock().unwrap();
|
||||||
|
board.set_config(&config)?;
|
||||||
|
anyhow::Ok(Some("saved".to_owned()))
|
||||||
|
}
|
||||||
|
|
||||||
|
fn get_battery_state(
|
||||||
|
_request: &mut Request<&mut EspHttpConnection>,
|
||||||
|
) -> Result<Option<std::string::String>, anyhow::Error> {
|
||||||
|
let mut board = BOARD_ACCESS.lock().unwrap();
|
||||||
|
let battery_state = board.get_battery_state();
|
||||||
|
let battery_json = serde_json::to_string(&battery_state)?;
|
||||||
|
anyhow::Ok(Some(battery_json))
|
||||||
|
}
|
||||||
|
|
||||||
|
fn get_version_web(
|
||||||
|
_request: &mut Request<&mut EspHttpConnection>,
|
||||||
|
) -> Result<Option<std::string::String>, anyhow::Error> {
|
||||||
|
anyhow::Ok(Some(serde_json::to_string(&get_version())?))
|
||||||
|
}
|
||||||
|
|
||||||
|
fn pump_test(
|
||||||
|
request: &mut Request<&mut EspHttpConnection>,
|
||||||
|
) -> Result<Option<std::string::String>, anyhow::Error> {
|
||||||
|
let mut buf = [0_u8; 3072];
|
||||||
|
let read = request.read(&mut buf)?;
|
||||||
|
let pump_test: TestPump = serde_json::from_slice(&buf[0..read])?;
|
||||||
|
let mut board = BOARD_ACCESS.lock().unwrap();
|
||||||
|
board.test_pump(pump_test.pump)?;
|
||||||
|
anyhow::Ok(None)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn wifi_scan(
|
||||||
|
_request: &mut Request<&mut EspHttpConnection>,
|
||||||
|
) -> Result<Option<std::string::String>, anyhow::Error> {
|
||||||
|
let mut board = BOARD_ACCESS.lock().unwrap();
|
||||||
|
let scan_result = board.wifi_scan()?;
|
||||||
|
let mut ssids: Vec<&String<32>> = Vec::new();
|
||||||
|
scan_result.iter().for_each(|s| ssids.push(&s.ssid));
|
||||||
|
let ssid_json = serde_json::to_string(&SSIDList { ssids })?;
|
||||||
|
println!("Sending ssid list {}", &ssid_json);
|
||||||
|
anyhow::Ok(Some(ssid_json))
|
||||||
|
}
|
||||||
|
|
||||||
|
fn list_files(
|
||||||
|
request: &mut Request<&mut EspHttpConnection>,
|
||||||
|
) -> Result<Option<std::string::String>, anyhow::Error> {
|
||||||
|
let filename = query_param(request.uri(), "filename").unwrap_or_default();
|
||||||
|
let board = BOARD_ACCESS.lock().unwrap();
|
||||||
|
let result = board.list_files(&filename);
|
||||||
|
let file_list_json = serde_json::to_string(&result)?;
|
||||||
|
return anyhow::Ok(Some(file_list_json));
|
||||||
|
}
|
||||||
|
|
||||||
|
fn ota(
|
||||||
|
request: &mut Request<&mut EspHttpConnection>,
|
||||||
|
) -> Result<Option<std::string::String>, anyhow::Error> {
|
||||||
|
let mut ota = OtaUpdate::begin()?;
|
||||||
|
println!("start ota");
|
||||||
|
|
||||||
|
//having a larger buffer is not really faster, requires more stack and prevents the progress bar from working ;)
|
||||||
|
const BUFFER_SIZE: usize = 512;
|
||||||
|
let mut buffer: [u8; BUFFER_SIZE] = [0; BUFFER_SIZE];
|
||||||
|
let mut total_read: usize = 0;
|
||||||
|
loop {
|
||||||
|
let read = request.read(&mut buffer)?;
|
||||||
|
total_read += read;
|
||||||
|
println!("received {read} bytes ota {total_read}");
|
||||||
|
let to_write = &buffer[0..read];
|
||||||
|
|
||||||
|
ota.write(to_write)?;
|
||||||
|
println!("wrote {read} bytes ota {total_read}");
|
||||||
|
if read == 0 {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
println!("finish ota");
|
||||||
|
let partition = ota.raw_partition();
|
||||||
|
println!("finalizing and changing boot partition to {partition:?}");
|
||||||
|
|
||||||
|
let mut finalizer = ota.finalize()?;
|
||||||
|
println!("changing boot partition");
|
||||||
|
finalizer.set_as_boot_partition()?;
|
||||||
|
finalizer.restart();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn flash_bq(filename: &str, dryrun: bool) -> anyhow::Result<()> {
|
||||||
|
let mut board = BOARD_ACCESS.lock().unwrap();
|
||||||
|
|
||||||
|
let mut toggle = true;
|
||||||
|
let delay = Delay::new(1);
|
||||||
|
|
||||||
|
let file_handle = board.get_file_handle(filename, false)?;
|
||||||
|
|
||||||
|
let mut reader = std::io::BufRead::lines(std::io::BufReader::with_capacity(512, file_handle));
|
||||||
|
let mut line = 0;
|
||||||
|
loop {
|
||||||
|
board.general_fault(toggle);
|
||||||
|
toggle = !toggle;
|
||||||
|
|
||||||
|
delay.delay_us(2);
|
||||||
|
line += 1;
|
||||||
|
match reader.next() {
|
||||||
|
Some(next) => {
|
||||||
|
let input = next?;
|
||||||
|
println!("flashing bq34z100 dryrun:{dryrun} line {line} payload: {input}");
|
||||||
|
match board.flash_bq34_z100(&input, dryrun) {
|
||||||
|
Ok(_) => {
|
||||||
|
println!("ok")
|
||||||
|
}
|
||||||
|
Err(err) => {
|
||||||
|
bail!(
|
||||||
|
"Error flashing bq34z100 in dryrun: {dryrun} line: {line} error: {err}"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
None => break,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
println!("Finished flashing file {line} lines processed");
|
||||||
|
board.general_fault(false);
|
||||||
|
return anyhow::Ok(());
|
||||||
|
}
|
||||||
|
|
||||||
|
fn query_param(uri: &str, param_name: &str) -> Option<std::string::String> {
|
||||||
|
println!("{uri} get {param_name}");
|
||||||
|
let parsed = Url::parse(&format!("http://127.0.0.1/{uri}")).unwrap();
|
||||||
|
let value = parsed.query_pairs().filter(|it| it.0 == param_name).next();
|
||||||
|
match value {
|
||||||
|
Some(found) => {
|
||||||
|
return Some(found.1.into_owned());
|
||||||
|
}
|
||||||
|
None => return None,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn httpd(_reboot_now: Arc<AtomicBool>) -> Box<EspHttpServer<'static>> {
|
||||||
let server_config = Configuration {
|
let server_config = Configuration {
|
||||||
stack_size: 8192,
|
stack_size: 32768,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
};
|
};
|
||||||
let mut server: Box<EspHttpServer<'static>> =
|
let mut server: Box<EspHttpServer<'static>> =
|
||||||
Box::new(EspHttpServer::new(&server_config).unwrap());
|
Box::new(EspHttpServer::new(&server_config).unwrap());
|
||||||
server
|
server
|
||||||
.fn_handler("/version", Method::Get, |request| {
|
.fn_handler("/version", Method::Get, |request| {
|
||||||
let mut response = request.into_ok_response()?;
|
handle_error_to500(request, get_version_web)
|
||||||
let git_hash = env!("VERGEN_GIT_DESCRIBE");
|
})
|
||||||
let build_time = env!("VERGEN_BUILD_TIMESTAMP");
|
.unwrap();
|
||||||
let version_info = VersionInfo {
|
server
|
||||||
git_hash,
|
.fn_handler("/battery", Method::Get, |request| {
|
||||||
build_time,
|
handle_error_to500(request, get_battery_state)
|
||||||
};
|
})
|
||||||
let version_info_json = serde_json::to_string(&version_info)?;
|
.unwrap();
|
||||||
response.write(version_info_json.as_bytes())?;
|
server
|
||||||
|
.fn_handler("/time", Method::Get, |request| {
|
||||||
|
handle_error_to500(request, get_data)
|
||||||
|
})
|
||||||
|
.unwrap();
|
||||||
|
server
|
||||||
|
.fn_handler("/moisture", Method::Get, |request| {
|
||||||
|
handle_error_to500(request, get_live_moisture)
|
||||||
|
})
|
||||||
|
.unwrap();
|
||||||
|
server
|
||||||
|
.fn_handler("/time", Method::Post, |request| {
|
||||||
|
handle_error_to500(request, write_time)
|
||||||
|
})
|
||||||
|
.unwrap();
|
||||||
|
server
|
||||||
|
.fn_handler("/pumptest", Method::Post, |request| {
|
||||||
|
handle_error_to500(request, pump_test)
|
||||||
|
})
|
||||||
|
.unwrap();
|
||||||
|
server
|
||||||
|
.fn_handler("/boardtest", Method::Post, move |_| {
|
||||||
|
BOARD_ACCESS.lock().unwrap().test()
|
||||||
|
})
|
||||||
|
.unwrap();
|
||||||
|
server
|
||||||
|
.fn_handler("/wifiscan", Method::Post, move |request| {
|
||||||
|
handle_error_to500(request, wifi_scan)
|
||||||
|
})
|
||||||
|
.unwrap();
|
||||||
|
server
|
||||||
|
.fn_handler("/ota", Method::Post, |request| {
|
||||||
|
handle_error_to500(request, ota)
|
||||||
|
})
|
||||||
|
.unwrap();
|
||||||
|
server
|
||||||
|
.fn_handler("/ota", Method::Options, |request| {
|
||||||
|
cors_response(request, 200, "")
|
||||||
|
})
|
||||||
|
.unwrap();
|
||||||
|
server
|
||||||
|
.fn_handler("/get_config", Method::Get, move |request| {
|
||||||
|
handle_error_to500(request, get_config)
|
||||||
|
})
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
server
|
||||||
|
.fn_handler("/set_config", Method::Post, move |request| {
|
||||||
|
handle_error_to500(request, set_config)
|
||||||
|
})
|
||||||
|
.unwrap();
|
||||||
|
server
|
||||||
|
.fn_handler("/files", Method::Get, move |request| {
|
||||||
|
handle_error_to500(request, list_files)
|
||||||
|
})
|
||||||
|
.unwrap();
|
||||||
|
server
|
||||||
|
.fn_handler("/file", Method::Get, move |request| {
|
||||||
|
let filename = query_param(request.uri(), "filename").unwrap();
|
||||||
|
let file_handle = BOARD_ACCESS
|
||||||
|
.lock()
|
||||||
|
.unwrap()
|
||||||
|
.get_file_handle(&filename, false);
|
||||||
|
match file_handle {
|
||||||
|
Ok(mut file_handle) => {
|
||||||
|
let headers = [("Access-Control-Allow-Origin", "*")];
|
||||||
|
let mut response = request.into_response(200, None, &headers)?;
|
||||||
|
const BUFFER_SIZE: usize = 512;
|
||||||
|
let mut buffer: [u8; BUFFER_SIZE] = [0; BUFFER_SIZE];
|
||||||
|
let mut total_read: usize = 0;
|
||||||
|
loop {
|
||||||
|
let read = std::io::Read::read(&mut file_handle, &mut buffer)?;
|
||||||
|
total_read += read;
|
||||||
|
println!(
|
||||||
|
"sending {read} bytes of {total_read} for file {}",
|
||||||
|
&filename
|
||||||
|
);
|
||||||
|
let to_write = &buffer[0..read];
|
||||||
|
response.write(to_write)?;
|
||||||
|
println!("wrote {read} bytes of {total_read} for file {filename}");
|
||||||
|
if read == 0 {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
drop(file_handle);
|
||||||
|
response.flush()?;
|
||||||
|
}
|
||||||
|
Err(err) => {
|
||||||
|
//todo set headers here for filename to be error
|
||||||
|
let error_text = err.to_string();
|
||||||
|
println!("error handling get file {}", error_text);
|
||||||
|
cors_response(request, 500, &error_text)?;
|
||||||
|
}
|
||||||
|
}
|
||||||
anyhow::Ok(())
|
anyhow::Ok(())
|
||||||
})
|
})
|
||||||
.unwrap();
|
.unwrap();
|
||||||
server
|
server
|
||||||
.fn_handler("/bundle.js", Method::Get, |request| {
|
.fn_handler("/file", Method::Post, move |mut request| {
|
||||||
|
let filename = query_param(request.uri(), "filename").unwrap();
|
||||||
|
let file_handle = BOARD_ACCESS
|
||||||
|
.lock()
|
||||||
|
.unwrap()
|
||||||
|
.get_file_handle(&filename, true);
|
||||||
|
match file_handle {
|
||||||
|
Ok(mut file_handle) => {
|
||||||
|
const BUFFER_SIZE: usize = 512;
|
||||||
|
let mut buffer: [u8; BUFFER_SIZE] = [0; BUFFER_SIZE];
|
||||||
|
let mut total_read: usize = 0;
|
||||||
|
loop {
|
||||||
|
let read = request.read(&mut buffer)?;
|
||||||
|
total_read += read;
|
||||||
|
println!("sending {read} bytes of {total_read} for upload {filename}");
|
||||||
|
let to_write = &buffer[0..read];
|
||||||
|
std::io::Write::write(&mut file_handle, to_write)?;
|
||||||
|
println!("wrote {read} bytes of {total_read} for upload {filename}");
|
||||||
|
if read == 0 {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cors_response(request, 200, &format!("saved {total_read} bytes"))?;
|
||||||
|
}
|
||||||
|
Err(err) => {
|
||||||
|
//todo set headers here for filename to be error
|
||||||
|
let error_text = err.to_string();
|
||||||
|
println!("error handling get file {}", error_text);
|
||||||
|
cors_response(request, 500, &error_text)?;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
anyhow::Ok(())
|
||||||
|
})
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
server
|
||||||
|
.fn_handler("/file", Method::Delete, move |request| {
|
||||||
|
let filename = query_param(request.uri(), "filename").unwrap();
|
||||||
|
let copy = filename.clone();
|
||||||
|
let board = BOARD_ACCESS.lock().unwrap();
|
||||||
|
match board.delete_file(&filename) {
|
||||||
|
Ok(_) => {
|
||||||
|
let info = format!("Deleted file {copy}");
|
||||||
|
cors_response(request, 200, &info)?;
|
||||||
|
}
|
||||||
|
Err(err) => {
|
||||||
|
let info = format!("Could not delete file {copy} {err:?}");
|
||||||
|
cors_response(request, 400, &info)?;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
anyhow::Ok(())
|
||||||
|
})
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
server
|
||||||
|
.fn_handler("/flashbattery", Method::Post, move |request| {
|
||||||
|
let filename = query_param(request.uri(),"filename").unwrap();
|
||||||
|
let dryrun = true;
|
||||||
|
match flash_bq(&filename, false) {
|
||||||
|
Ok(_) => {
|
||||||
|
if !dryrun {
|
||||||
|
match flash_bq(&filename, true) {
|
||||||
|
Ok(_) => {
|
||||||
|
cors_response(request, 200, "Sucessfully flashed bq34z100")?;
|
||||||
|
},
|
||||||
|
Err(err) => {
|
||||||
|
let info = format!("Could not flash bq34z100, could be bricked now! {filename} {err:?}");
|
||||||
|
cors_response(request, 500, &info)?;
|
||||||
|
},
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
cors_response(request, 200, "Sucessfully processed bq34z100")?;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
Err(err) => {
|
||||||
|
let info = format!("Could not process firmware file for, bq34z100, refusing to flash! {filename} {err:?}");
|
||||||
|
cors_response(request, 500, &info)?;
|
||||||
|
},
|
||||||
|
};
|
||||||
|
anyhow::Ok(())
|
||||||
|
})
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
server
|
||||||
|
.fn_handler("/", Method::Get, move |request| {
|
||||||
let mut response = request.into_ok_response()?;
|
let mut response = request.into_ok_response()?;
|
||||||
response.write(include_bytes!("bundle.js"))?;
|
response.write(include_bytes!("index.html"))?;
|
||||||
anyhow::Ok(())
|
anyhow::Ok(())
|
||||||
})
|
})
|
||||||
.unwrap();
|
.unwrap();
|
||||||
server
|
server
|
||||||
.fn_handler("/favicon.ico", Method::Get, |request| {
|
.fn_handler("/favicon.ico", Method::Get, |request| {
|
||||||
let mut response = request.into_ok_response()?;
|
request
|
||||||
response.write(include_bytes!("favicon.ico"))?;
|
.into_ok_response()?
|
||||||
|
.write(include_bytes!("favicon.ico"))?;
|
||||||
anyhow::Ok(())
|
anyhow::Ok(())
|
||||||
})
|
})
|
||||||
.unwrap();
|
.unwrap();
|
||||||
server
|
server
|
||||||
.fn_handler("/ota", Method::Post, |mut request| {
|
.fn_handler("/bundle.js", Method::Get, |request| {
|
||||||
let ota = OtaUpdate::begin();
|
request
|
||||||
if ota.is_err() {
|
.into_ok_response()?
|
||||||
let error_text = ota.unwrap_err().to_string();
|
.write(include_bytes!("bundle.js"))?;
|
||||||
request
|
|
||||||
.into_status_response(500)?
|
|
||||||
.write(error_text.as_bytes())?;
|
|
||||||
return anyhow::Ok(());
|
|
||||||
}
|
|
||||||
let mut ota = ota.unwrap();
|
|
||||||
println!("start ota");
|
|
||||||
|
|
||||||
//having a larger buffer is not really faster, requires more stack and prevents the progress bar from working ;)
|
|
||||||
const BUFFER_SIZE: usize = 512;
|
|
||||||
let mut buffer: [u8; BUFFER_SIZE] = [0; BUFFER_SIZE];
|
|
||||||
let mut total_read: usize = 0;
|
|
||||||
loop {
|
|
||||||
let read = request.read(&mut buffer).unwrap();
|
|
||||||
total_read += read;
|
|
||||||
println!("received {read} bytes ota {total_read}");
|
|
||||||
let to_write = &buffer[0..read];
|
|
||||||
|
|
||||||
let write_result = ota.write(to_write);
|
|
||||||
if write_result.is_err() {
|
|
||||||
let error_text = write_result.unwrap_err().to_string();
|
|
||||||
request
|
|
||||||
.into_status_response(500)?
|
|
||||||
.write(error_text.as_bytes())?;
|
|
||||||
return Ok(());
|
|
||||||
}
|
|
||||||
println!("wrote {read} bytes ota {total_read}");
|
|
||||||
if read == 0 {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
println!("finish ota");
|
|
||||||
let partition = ota.raw_partition();
|
|
||||||
println!("finalizing and changing boot partition to {partition:?}");
|
|
||||||
|
|
||||||
let finalizer = ota.finalize();
|
|
||||||
if finalizer.is_err() {
|
|
||||||
let error_text = finalizer.err().unwrap().to_string();
|
|
||||||
request
|
|
||||||
.into_status_response(500)?
|
|
||||||
.write(error_text.as_bytes())?;
|
|
||||||
return Ok(());
|
|
||||||
}
|
|
||||||
let mut finalizer = finalizer.unwrap();
|
|
||||||
|
|
||||||
println!("changing boot partition");
|
|
||||||
finalizer.set_as_boot_partition().unwrap();
|
|
||||||
finalizer.restart();
|
|
||||||
})
|
|
||||||
.unwrap();
|
|
||||||
server
|
|
||||||
.fn_handler("/boardtest", Method::Post, move |_| {
|
|
||||||
let mut board = BOARD_ACCESS.lock().unwrap();
|
|
||||||
board.test()?;
|
|
||||||
anyhow::Ok(())
|
anyhow::Ok(())
|
||||||
})
|
})
|
||||||
.unwrap();
|
.unwrap();
|
||||||
server
|
server
|
||||||
.fn_handler("/pumptest", Method::Post, |mut request| {
|
.fn_handler("/bootstrap-grid.css", Method::Get, |request| {
|
||||||
let mut buf = [0_u8; 3072];
|
let headers = [
|
||||||
let read = request.read(&mut buf);
|
("Access-Control-Allow-Origin", "*"),
|
||||||
if read.is_err() {
|
("Access-Control-Allow-Headers", "*"),
|
||||||
let error_text = read.unwrap_err().to_string();
|
("Content-Type", "text/css")
|
||||||
println!("Could not parse testrequest {}", error_text);
|
];
|
||||||
request
|
request.into_response(200, None, &headers)?.write(include_bytes!("bootstrap-grid.css"))?;
|
||||||
.into_status_response(500)?
|
|
||||||
.write(error_text.as_bytes())?;
|
|
||||||
return anyhow::Ok(());
|
|
||||||
}
|
|
||||||
let actual_data = &buf[0..read.unwrap()];
|
|
||||||
println!("Raw data {}", from_utf8(actual_data).unwrap());
|
|
||||||
let pump_test: Result<TestPump, serde_json::Error> =
|
|
||||||
serde_json::from_slice(actual_data);
|
|
||||||
if pump_test.is_err() {
|
|
||||||
let error_text = pump_test.unwrap_err().to_string();
|
|
||||||
println!("Could not parse TestPump {}", error_text);
|
|
||||||
request
|
|
||||||
.into_status_response(500)?
|
|
||||||
.write(error_text.as_bytes())?;
|
|
||||||
return Ok(());
|
|
||||||
}
|
|
||||||
let mut board = BOARD_ACCESS.lock().unwrap();
|
|
||||||
board.test_pump(pump_test.unwrap().pump)?;
|
|
||||||
anyhow::Ok(())
|
anyhow::Ok(())
|
||||||
})
|
})
|
||||||
.unwrap();
|
.unwrap();
|
||||||
server
|
server
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn cors_response(
|
||||||
|
request: Request<&mut EspHttpConnection>,
|
||||||
|
status: u16,
|
||||||
|
body: &str,
|
||||||
|
) -> Result<(), anyhow::Error> {
|
||||||
|
let headers = [
|
||||||
|
("Access-Control-Allow-Origin", "*"),
|
||||||
|
("Access-Control-Allow-Headers", "*"),
|
||||||
|
];
|
||||||
|
let mut response = request.into_response(status, None, &headers)?;
|
||||||
|
response.write(body.as_bytes())?;
|
||||||
|
response.flush()?;
|
||||||
|
return anyhow::Ok(());
|
||||||
|
}
|
||||||
|
|
||||||
|
type AnyhowHandler =
|
||||||
|
fn(&mut Request<&mut EspHttpConnection>) -> Result<Option<std::string::String>, anyhow::Error>;
|
||||||
|
fn handle_error_to500(
|
||||||
|
mut request: Request<&mut EspHttpConnection>,
|
||||||
|
chain: AnyhowHandler,
|
||||||
|
) -> Result<(), anyhow::Error> {
|
||||||
|
let error = chain(&mut request);
|
||||||
|
match error {
|
||||||
|
Ok(answer) => match answer {
|
||||||
|
Some(json) => {
|
||||||
|
cors_response(request, 200, &json)?;
|
||||||
|
}
|
||||||
|
None => {
|
||||||
|
cors_response(request, 200, "")?;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
Err(err) => {
|
||||||
|
let error_text = err.to_string();
|
||||||
|
println!("error handling process {}", error_text);
|
||||||
|
cors_response(request, 500, &error_text)?;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return anyhow::Ok(());
|
||||||
|
}
|
||||||
|
|||||||
Generated
+3319
-209
File diff suppressed because it is too large
Load Diff
@@ -1,11 +1,16 @@
|
|||||||
{
|
{
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"html-webpack-harddisk-plugin": "^2.0.0",
|
||||||
|
"html-webpack-plugin": "^5.6.3",
|
||||||
|
"raw-loader": "^4.0.2",
|
||||||
"ts-loader": "^9.5.1",
|
"ts-loader": "^9.5.1",
|
||||||
"typescript": "^5.3.3",
|
"typescript": "^5.3.3",
|
||||||
"webpack": "^5.89.0",
|
"webpack": "^5.97.1",
|
||||||
"webpack-cli": "^5.1.4"
|
"webpack-cli": "^5.1.4",
|
||||||
|
"webpack-dev-server": "^5.1.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"copy-webpack-plugin": "^12.0.2",
|
||||||
"source-map-loader": "^4.0.1"
|
"source-map-loader": "^4.0.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2050
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,79 @@
|
|||||||
|
interface NetworkConfig {
|
||||||
|
ap_ssid: string,
|
||||||
|
ssid: string,
|
||||||
|
password: string,
|
||||||
|
mqtt_url: string,
|
||||||
|
base_topic: string
|
||||||
|
}
|
||||||
|
|
||||||
|
interface NightLampConfig {
|
||||||
|
night_lamp_hour_start: number,
|
||||||
|
night_lamp_hour_end: number,
|
||||||
|
night_lamp_only_when_dark: boolean,
|
||||||
|
}
|
||||||
|
|
||||||
|
interface TankConfig {
|
||||||
|
tank_sensor_enabled: boolean,
|
||||||
|
tank_allow_pumping_if_sensor_error: boolean,
|
||||||
|
tank_useable_ml: number,
|
||||||
|
tank_warn_percent: number,
|
||||||
|
tank_empty_percent: number,
|
||||||
|
tank_full_percent: number,
|
||||||
|
}
|
||||||
|
|
||||||
|
interface PlantControllerConfig {
|
||||||
|
network: NetworkConfig,
|
||||||
|
tank: TankConfig,
|
||||||
|
night_lamp: NightLampConfig,
|
||||||
|
plants: PlantConfig[]
|
||||||
|
}
|
||||||
|
|
||||||
|
interface PlantConfig {
|
||||||
|
mode: string,
|
||||||
|
target_moisture: number,
|
||||||
|
pump_time_s: number,
|
||||||
|
pump_cooldown_min: number,
|
||||||
|
pump_hour_start: number,
|
||||||
|
pump_hour_end: number,
|
||||||
|
sensor_b: boolean,
|
||||||
|
max_consecutive_pump_count: number,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
interface SSIDList {
|
||||||
|
ssids: [string]
|
||||||
|
}
|
||||||
|
|
||||||
|
interface TestPump {
|
||||||
|
pump: number
|
||||||
|
}
|
||||||
|
|
||||||
|
interface SetTime {
|
||||||
|
time: string
|
||||||
|
}
|
||||||
|
|
||||||
|
interface GetTime {
|
||||||
|
rtc: string,
|
||||||
|
native: string
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Moistures {
|
||||||
|
moisture_a: [number],
|
||||||
|
moisture_b: [number],
|
||||||
|
}
|
||||||
|
|
||||||
|
interface VersionInfo {
|
||||||
|
git_hash: string,
|
||||||
|
build_time: string
|
||||||
|
}
|
||||||
|
|
||||||
|
interface BatteryState {
|
||||||
|
temperature: string
|
||||||
|
voltage_milli_volt: string,
|
||||||
|
current_milli_ampere: string,
|
||||||
|
cycle_count: string,
|
||||||
|
design_milli_ampere: string,
|
||||||
|
remaining_milli_ampere: string,
|
||||||
|
state_of_charge: string,
|
||||||
|
state_of_health: string
|
||||||
|
}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
<div class="row">
|
||||||
|
<div class="col-12" style="text-align: center; font-weight: bold;">
|
||||||
|
Battery:
|
||||||
|
</div>
|
||||||
|
<div style="display: block; right: 8px; position: absolute;">
|
||||||
|
<input id="battery_auto_refresh" type="checkbox">⟳
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<span class="col-7">V:</span>
|
||||||
|
<div class="col-5" id="battery_voltage_milli_volt" style="text-wrap: nowrap"></div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<span class="col-7">mA:</span>
|
||||||
|
<div class="col-5" id="battery_current_milli_ampere" style="text-wrap: nowrap"></div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<span class="col-7">Cycles:</span>
|
||||||
|
<div class="col-5" id="battery_cycle_count" style="text-wrap: nowrap"></div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<span class="col-7">design mA:</span>
|
||||||
|
<div class="col-5" id="battery_design_milli_ampere" style="text-wrap: nowrap"></div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<span class="col-7">remaining mA:</span>
|
||||||
|
<div class="col-5" id="battery_remaining_milli_ampere" style="text-wrap: nowrap"></div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<span class="col-7">charge %:</span>
|
||||||
|
<div class="col-5" id="battery_state_of_charge" style="text-wrap: nowrap"></div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<span class="col-7">health %:</span>
|
||||||
|
<div class="col-5" id="battery_state_of_health" style="text-wrap: nowrap"></div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<span class="col-7">Temp °C:</span>
|
||||||
|
<div class="col-5" id="battery_temperature" style="text-wrap: nowrap"></div>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
import { Controller } from "./main";
|
||||||
|
|
||||||
|
export class BatteryView{
|
||||||
|
voltage_milli_volt: HTMLSpanElement;
|
||||||
|
current_milli_ampere: HTMLSpanElement;
|
||||||
|
cycle_count: HTMLSpanElement;
|
||||||
|
design_milli_ampere: HTMLSpanElement;
|
||||||
|
remaining_milli_ampere: HTMLSpanElement;
|
||||||
|
state_of_charge: HTMLSpanElement;
|
||||||
|
state_of_health: HTMLSpanElement;
|
||||||
|
temperature: HTMLSpanElement;
|
||||||
|
auto_refresh: HTMLInputElement;
|
||||||
|
timer: NodeJS.Timeout | undefined;
|
||||||
|
controller: Controller;
|
||||||
|
|
||||||
|
constructor (controller:Controller) {
|
||||||
|
(document.getElementById("batteryview") as HTMLElement).innerHTML = require("./batteryview.html")
|
||||||
|
this.voltage_milli_volt = document.getElementById("battery_voltage_milli_volt") as HTMLSpanElement;
|
||||||
|
this.current_milli_ampere = document.getElementById("battery_current_milli_ampere") as HTMLSpanElement;
|
||||||
|
this.cycle_count = document.getElementById("battery_cycle_count") as HTMLSpanElement;
|
||||||
|
this.design_milli_ampere = document.getElementById("battery_design_milli_ampere") as HTMLSpanElement;
|
||||||
|
this.remaining_milli_ampere = document.getElementById("battery_remaining_milli_ampere") as HTMLSpanElement;
|
||||||
|
this.state_of_charge = document.getElementById("battery_state_of_charge") as HTMLSpanElement;
|
||||||
|
this.state_of_health = document.getElementById("battery_state_of_health") as HTMLSpanElement;
|
||||||
|
this.temperature = document.getElementById("battery_temperature") as HTMLSpanElement;
|
||||||
|
this.auto_refresh = document.getElementById("battery_auto_refresh") as HTMLInputElement;
|
||||||
|
|
||||||
|
this.controller = controller
|
||||||
|
this.auto_refresh.onchange = () => {
|
||||||
|
if(this.timer){
|
||||||
|
clearTimeout(this.timer)
|
||||||
|
}
|
||||||
|
if(this.auto_refresh.checked){
|
||||||
|
controller.updateBatteryData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
update(batterystate: BatteryState|null){
|
||||||
|
if (batterystate == null) {
|
||||||
|
this.voltage_milli_volt.innerText = "N/A"
|
||||||
|
this.current_milli_ampere.innerText = "N/A"
|
||||||
|
this.cycle_count.innerText = "N/A"
|
||||||
|
this.design_milli_ampere.innerText = "N/A"
|
||||||
|
this.remaining_milli_ampere.innerText = "N/A"
|
||||||
|
this.state_of_charge.innerText = "N/A"
|
||||||
|
this.state_of_health.innerText = "N/A"
|
||||||
|
this.temperature.innerText = "N/A"
|
||||||
|
} else {
|
||||||
|
this.voltage_milli_volt.innerText = String(+batterystate.voltage_milli_volt/1000)
|
||||||
|
this.current_milli_ampere.innerText = batterystate.current_milli_ampere
|
||||||
|
this.cycle_count.innerText = batterystate.cycle_count
|
||||||
|
this.design_milli_ampere.innerText = batterystate.design_milli_ampere
|
||||||
|
this.remaining_milli_ampere.innerText = batterystate.remaining_milli_ampere
|
||||||
|
this.state_of_charge.innerText = batterystate.state_of_charge
|
||||||
|
this.state_of_health.innerText = batterystate.state_of_health
|
||||||
|
this.temperature.innerText = String(+batterystate.temperature / 100)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(this.auto_refresh.checked){
|
||||||
|
this.timer = setTimeout(this.controller.updateBatteryData, 1000);
|
||||||
|
} else {
|
||||||
|
if(this.timer){
|
||||||
|
clearTimeout(this.timer)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,347 +0,0 @@
|
|||||||
interface PlantConfig {
|
|
||||||
mqtt_url: string,
|
|
||||||
base_topic: string,
|
|
||||||
tank_sensor_enabled: boolean,
|
|
||||||
tank_allow_pumping_if_sensor_error: boolean,
|
|
||||||
tank_useable_ml: number,
|
|
||||||
tank_warn_percent: number,
|
|
||||||
tank_empty_percent: number,
|
|
||||||
tank_full_percent: number,
|
|
||||||
night_lamp_hour_start: number,
|
|
||||||
night_lamp_hour_end: number,
|
|
||||||
night_lamp_only_when_dark: boolean,
|
|
||||||
max_consecutive_pump_count: number,
|
|
||||||
|
|
||||||
plants: {
|
|
||||||
mode: string,
|
|
||||||
target_moisture: number,
|
|
||||||
pump_time_s: number,
|
|
||||||
pump_cooldown_min: number,
|
|
||||||
pump_hour_start: number,
|
|
||||||
pump_hour_end: number,
|
|
||||||
sensor_b: boolean,
|
|
||||||
sensor_p: boolean
|
|
||||||
}[]
|
|
||||||
}
|
|
||||||
|
|
||||||
interface TestPump{
|
|
||||||
pump: number
|
|
||||||
}
|
|
||||||
|
|
||||||
let plants = document.getElementById("plants") as HTMLInputElement;
|
|
||||||
|
|
||||||
let fromWrapper = (() => {
|
|
||||||
|
|
||||||
let plantcount = 0;
|
|
||||||
|
|
||||||
function addTimeOptions(select: HTMLSelectElement) {
|
|
||||||
for (let i = 0; i < 24; i++) {
|
|
||||||
let option = document.createElement("option");
|
|
||||||
option.innerText = i.toString();
|
|
||||||
select.appendChild(option);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
let mqtt_url = document.getElementById("mqtt_url") as HTMLInputElement;
|
|
||||||
mqtt_url.onchange = updateJson
|
|
||||||
let base_topic = document.getElementById("base_topic") as HTMLInputElement;
|
|
||||||
base_topic.onchange = updateJson
|
|
||||||
let max_consecutive_pump_count = document.getElementById("max_consecutive_pump_count") as HTMLInputElement;
|
|
||||||
max_consecutive_pump_count.onchange = updateJson
|
|
||||||
|
|
||||||
let tank_useable_ml = document.getElementById("tank_useable_ml") as HTMLInputElement;
|
|
||||||
tank_useable_ml.onchange = updateJson
|
|
||||||
let tank_empty_percent = document.getElementById("tank_empty_percent") as HTMLInputElement;
|
|
||||||
tank_empty_percent.onchange = updateJson
|
|
||||||
let tank_full_percent = document.getElementById("tank_full_percent") as HTMLInputElement;
|
|
||||||
tank_full_percent.onchange = updateJson
|
|
||||||
let tank_warn_percent = document.getElementById("tank_warn_percent") as HTMLInputElement;
|
|
||||||
tank_warn_percent.onchange = updateJson
|
|
||||||
let tank_sensor_enabled = document.getElementById("tank_sensor_enabled") as HTMLInputElement;
|
|
||||||
tank_sensor_enabled.onchange = updateJson
|
|
||||||
let tank_allow_pumping_if_sensor_error = document.getElementById("tank_allow_pumping_if_sensor_error") as HTMLInputElement;
|
|
||||||
tank_allow_pumping_if_sensor_error.onchange = updateJson
|
|
||||||
let night_lamp_only_when_dark = document.getElementById("night_lamp_only_when_dark") as HTMLInputElement;
|
|
||||||
night_lamp_only_when_dark.onchange = updateJson
|
|
||||||
let night_lamp_time_start = document.getElementById("night_lamp_time_start") as HTMLSelectElement;
|
|
||||||
night_lamp_time_start.onchange = updateJson
|
|
||||||
addTimeOptions(night_lamp_time_start);
|
|
||||||
let night_lamp_time_end = document.getElementById("night_lamp_time_end") as HTMLSelectElement;
|
|
||||||
night_lamp_time_end.onchange = updateJson
|
|
||||||
addTimeOptions(night_lamp_time_end);
|
|
||||||
|
|
||||||
let json = document.getElementById('json') as HTMLInputElement
|
|
||||||
|
|
||||||
function createForm(current: PlantConfig) {
|
|
||||||
for (let i = 0; i < current.plants.length; i++) {
|
|
||||||
let plant = document.createElement("div");
|
|
||||||
plants.appendChild(plant);
|
|
||||||
let header = document.createElement("h4");
|
|
||||||
header.textContent = "Plant " + (i + 1);
|
|
||||||
plant.appendChild(header);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{
|
|
||||||
let holder = document.createElement("div");
|
|
||||||
plant.appendChild(holder);
|
|
||||||
|
|
||||||
let testButton = document.createElement("button");
|
|
||||||
testButton.innerText = "Test";
|
|
||||||
testButton.id = "plant_" + i + "_test";
|
|
||||||
testButton.onclick = function (){
|
|
||||||
var body:TestPump = {
|
|
||||||
pump: i
|
|
||||||
}
|
|
||||||
|
|
||||||
var pretty = JSON.stringify(body, undefined, 1);
|
|
||||||
fetch("/pumptest", {
|
|
||||||
method :"POST",
|
|
||||||
body: pretty
|
|
||||||
})
|
|
||||||
.then(response => response.text())
|
|
||||||
.then(text => submit_status.innerText = text)
|
|
||||||
};
|
|
||||||
holder.appendChild(testButton);
|
|
||||||
|
|
||||||
let br = document.createElement("br");
|
|
||||||
holder.appendChild(br);
|
|
||||||
|
|
||||||
let inputf = document.createElement("select");
|
|
||||||
inputf.id = "plant_" + i + "_mode";
|
|
||||||
inputf.onchange = updateJson;
|
|
||||||
holder.appendChild(inputf)
|
|
||||||
|
|
||||||
let optionOff = document.createElement("option");
|
|
||||||
optionOff.value = "OFF";
|
|
||||||
optionOff.innerText = "Off";
|
|
||||||
inputf.appendChild(optionOff);
|
|
||||||
|
|
||||||
let optionTargetMoisture = document.createElement("option");
|
|
||||||
optionTargetMoisture.value = "TargetMoisture";
|
|
||||||
optionTargetMoisture.innerText = "Target Moisture";
|
|
||||||
inputf.appendChild(optionTargetMoisture);
|
|
||||||
|
|
||||||
let optionTimerOnly = document.createElement("option");
|
|
||||||
optionTimerOnly.value = "TimerOnly";
|
|
||||||
optionTimerOnly.innerText = "Timer";
|
|
||||||
inputf.appendChild(optionTimerOnly);
|
|
||||||
|
|
||||||
let text = document.createElement("span");
|
|
||||||
holder.appendChild(text)
|
|
||||||
text.innerHTML += "Mode"
|
|
||||||
}
|
|
||||||
{
|
|
||||||
let holder = document.createElement("div");
|
|
||||||
plant.appendChild(holder);
|
|
||||||
let inputf = document.createElement("input");
|
|
||||||
inputf.id = "plant_" + i + "_target_moisture";
|
|
||||||
inputf.onchange = updateJson;
|
|
||||||
inputf.type = "number";
|
|
||||||
inputf.min = "0";
|
|
||||||
inputf.max = "100";
|
|
||||||
holder.appendChild(inputf)
|
|
||||||
|
|
||||||
let text = document.createElement("span");
|
|
||||||
holder.appendChild(text)
|
|
||||||
text.innerHTML += "Target Moisture"
|
|
||||||
}
|
|
||||||
{
|
|
||||||
let holder = document.createElement("div");
|
|
||||||
plant.appendChild(holder);
|
|
||||||
let input = document.createElement("input");
|
|
||||||
input.id = "plant_" + i + "_pump_time_s";
|
|
||||||
input.onchange = updateJson;
|
|
||||||
input.type = "number";
|
|
||||||
input.min = "0";
|
|
||||||
input.max = "600";
|
|
||||||
holder.appendChild(input)
|
|
||||||
|
|
||||||
let text = document.createElement("span");
|
|
||||||
holder.appendChild(text)
|
|
||||||
text.innerHTML += "Pump Time (s)"
|
|
||||||
}
|
|
||||||
{
|
|
||||||
let holder = document.createElement("div");
|
|
||||||
plant.appendChild(holder);
|
|
||||||
let input = document.createElement("input");
|
|
||||||
input.id = "plant_" + i + "_pump_cooldown_min";
|
|
||||||
input.onchange = updateJson;
|
|
||||||
input.type = "number";
|
|
||||||
input.min = "0";
|
|
||||||
input.max = "600";
|
|
||||||
holder.appendChild(input)
|
|
||||||
|
|
||||||
let text = document.createElement("span");
|
|
||||||
holder.appendChild(text)
|
|
||||||
text.innerHTML += "Pump Cooldown (m)"
|
|
||||||
}
|
|
||||||
{
|
|
||||||
let holder = document.createElement("div");
|
|
||||||
plant.appendChild(holder);
|
|
||||||
let input = document.createElement("select");
|
|
||||||
input.id = "plant_" + i + "_pump_hour_start";
|
|
||||||
addTimeOptions(input);
|
|
||||||
input.onchange = updateJson;
|
|
||||||
holder.appendChild(input)
|
|
||||||
|
|
||||||
let text = document.createElement("span");
|
|
||||||
holder.appendChild(text)
|
|
||||||
text.innerHTML += "Pump Hour Start"
|
|
||||||
}
|
|
||||||
{
|
|
||||||
let holder = document.createElement("div");
|
|
||||||
plant.appendChild(holder);
|
|
||||||
let input = document.createElement("select");
|
|
||||||
input.id = "plant_" + i + "_pump_hour_end";
|
|
||||||
addTimeOptions(input);
|
|
||||||
input.onchange = updateJson;
|
|
||||||
holder.appendChild(input)
|
|
||||||
|
|
||||||
let text = document.createElement("span");
|
|
||||||
holder.appendChild(text)
|
|
||||||
text.innerHTML += "Pump Hour End"
|
|
||||||
}
|
|
||||||
{
|
|
||||||
let holder = document.createElement("div");
|
|
||||||
plant.appendChild(holder);
|
|
||||||
let input = document.createElement("input");
|
|
||||||
input.id = "plant_" + i + "_sensor_b";
|
|
||||||
input.type = "checkbox";
|
|
||||||
input.onchange = updateJson;
|
|
||||||
holder.appendChild(input)
|
|
||||||
|
|
||||||
let text = document.createElement("span");
|
|
||||||
holder.appendChild(text)
|
|
||||||
text.innerHTML += "Sensor B installed"
|
|
||||||
}
|
|
||||||
{
|
|
||||||
let holder = document.createElement("div");
|
|
||||||
plant.appendChild(holder);
|
|
||||||
let input = document.createElement("input");
|
|
||||||
input.id = "plant_" + i + "_sensor_p";
|
|
||||||
input.type = "checkbox";
|
|
||||||
input.onchange = updateJson;
|
|
||||||
holder.appendChild(input)
|
|
||||||
|
|
||||||
let text = document.createElement("span");
|
|
||||||
holder.appendChild(text)
|
|
||||||
text.innerHTML += "Sensor P installed"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
sync(current);
|
|
||||||
}
|
|
||||||
|
|
||||||
function sync(current: PlantConfig) {
|
|
||||||
plantcount = current.plants.length
|
|
||||||
mqtt_url.value = current.mqtt_url;
|
|
||||||
base_topic.value = current.base_topic;
|
|
||||||
max_consecutive_pump_count.value = current.max_consecutive_pump_count.toString();
|
|
||||||
|
|
||||||
tank_useable_ml.disabled = !current.tank_sensor_enabled;
|
|
||||||
tank_warn_percent.disabled = !current.tank_sensor_enabled;
|
|
||||||
tank_sensor_enabled.checked = current.tank_sensor_enabled;
|
|
||||||
tank_allow_pumping_if_sensor_error.checked = current.tank_allow_pumping_if_sensor_error;
|
|
||||||
tank_useable_ml.value = current.tank_useable_ml.toString();
|
|
||||||
tank_warn_percent.value = current.tank_warn_percent.toString();
|
|
||||||
tank_empty_percent.value = current.tank_empty_percent.toString();
|
|
||||||
tank_full_percent.value = current.tank_full_percent.toString();
|
|
||||||
|
|
||||||
night_lamp_time_start.value = current.night_lamp_hour_start.toString();
|
|
||||||
night_lamp_time_end.value = current.night_lamp_hour_end.toString();
|
|
||||||
|
|
||||||
for (let i = 0; i < current.plants.length; i++) {
|
|
||||||
let plant_mode = document.getElementById("plant_" + i + "_mode") as HTMLSelectElement;
|
|
||||||
plant_mode.value = current.plants[i].mode;
|
|
||||||
let plant_target_moisture = document.getElementById("plant_" + i + "_target_moisture") as HTMLInputElement;
|
|
||||||
plant_target_moisture.value = current.plants[i].target_moisture.toString();
|
|
||||||
let plant_pump_time_s = document.getElementById("plant_" + i + "_pump_time_s") as HTMLInputElement;
|
|
||||||
plant_pump_time_s.value = current.plants[i].pump_time_s.toString();
|
|
||||||
let plant_pump_cooldown_min = document.getElementById("plant_" + i + "_pump_cooldown_min") as HTMLInputElement;
|
|
||||||
plant_pump_cooldown_min.value = current.plants[i].pump_cooldown_min.toString();
|
|
||||||
let plant_pump_hour_start = document.getElementById("plant_" + i + "_pump_hour_start") as HTMLInputElement;
|
|
||||||
plant_pump_hour_start.value = current.plants[i].pump_hour_start.toString();
|
|
||||||
let plant_pump_hour_end = document.getElementById("plant_" + i + "_pump_hour_end") as HTMLInputElement;
|
|
||||||
plant_pump_hour_end.value = current.plants[i].pump_hour_end.toString();
|
|
||||||
|
|
||||||
let plant_sensor_b = document.getElementById("plant_" + i + "_sensor_b") as HTMLInputElement;
|
|
||||||
plant_sensor_b.checked = current.plants[i].sensor_b;
|
|
||||||
let plant_sensor_p = document.getElementById("plant_" + i + "_sensor_p") as HTMLInputElement;
|
|
||||||
plant_sensor_p.checked = current.plants[i].sensor_p;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function updateJson() {
|
|
||||||
var current: PlantConfig = {
|
|
||||||
max_consecutive_pump_count: +max_consecutive_pump_count.value,
|
|
||||||
mqtt_url: mqtt_url.value,
|
|
||||||
base_topic: base_topic.value,
|
|
||||||
tank_allow_pumping_if_sensor_error: tank_allow_pumping_if_sensor_error.checked,
|
|
||||||
tank_sensor_enabled: tank_sensor_enabled.checked,
|
|
||||||
tank_useable_ml: +tank_useable_ml.value,
|
|
||||||
tank_warn_percent: +tank_warn_percent.value,
|
|
||||||
tank_empty_percent: +tank_empty_percent.value,
|
|
||||||
tank_full_percent: +tank_full_percent.value,
|
|
||||||
night_lamp_hour_start: +night_lamp_time_start.value,
|
|
||||||
night_lamp_hour_end: +night_lamp_time_end.value,
|
|
||||||
night_lamp_only_when_dark: night_lamp_only_when_dark.checked,
|
|
||||||
plants: []
|
|
||||||
}
|
|
||||||
|
|
||||||
for (let i = 0; i < plantcount; i++) {
|
|
||||||
console.log("Adding plant " + i)
|
|
||||||
let plant_mode = document.getElementById("plant_" + i + "_mode") as HTMLSelectElement;
|
|
||||||
let plant_target_moisture = document.getElementById("plant_" + i + "_target_moisture") as HTMLInputElement;
|
|
||||||
let plant_pump_time_s = document.getElementById("plant_" + i + "_pump_time_s") as HTMLInputElement;
|
|
||||||
let plant_pump_cooldown_min = document.getElementById("plant_" + i + "_pump_cooldown_min") as HTMLInputElement;
|
|
||||||
let plant_pump_hour_start = document.getElementById("plant_" + i + "_pump_hour_start") as HTMLInputElement;
|
|
||||||
let plant_pump_hour_end = document.getElementById("plant_" + i + "_pump_hour_end") as HTMLInputElement;
|
|
||||||
let plant_sensor_b = document.getElementById("plant_" + i + "_sensor_b") as HTMLInputElement;
|
|
||||||
let plant_sensor_p = document.getElementById("plant_" + i + "_sensor_p") as HTMLInputElement;
|
|
||||||
|
|
||||||
current.plants[i] = {
|
|
||||||
mode: plant_mode.value,
|
|
||||||
target_moisture: +plant_target_moisture.value,
|
|
||||||
pump_time_s: +plant_pump_time_s.value,
|
|
||||||
pump_cooldown_min: +plant_pump_cooldown_min.value,
|
|
||||||
pump_hour_start: +plant_pump_hour_start.value,
|
|
||||||
pump_hour_end: +plant_pump_hour_end.value,
|
|
||||||
sensor_b: plant_sensor_b.checked,
|
|
||||||
sensor_p: plant_sensor_p.checked
|
|
||||||
}
|
|
||||||
}
|
|
||||||
sync(current);
|
|
||||||
console.log(current);
|
|
||||||
|
|
||||||
var pretty = JSON.stringify(current, undefined, 1);
|
|
||||||
json.value = pretty;
|
|
||||||
}
|
|
||||||
|
|
||||||
let submitFormBtn = document.getElementById("submit") as HTMLButtonElement
|
|
||||||
let submit_status = document.getElementById("submit_status")
|
|
||||||
|
|
||||||
if (submitFormBtn) {
|
|
||||||
|
|
||||||
submitFormBtn.onclick = function (){
|
|
||||||
updateJson()
|
|
||||||
fetch("/set_config", {
|
|
||||||
method :"POST",
|
|
||||||
body: json.value
|
|
||||||
})
|
|
||||||
.then(response => response.text())
|
|
||||||
.then(text => submit_status.innerText = text)
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
fetch("/get_config")
|
|
||||||
.then(response => response.json())
|
|
||||||
.then(json => { createForm(json as PlantConfig); }
|
|
||||||
)
|
|
||||||
})
|
|
||||||
if (plants) {
|
|
||||||
fromWrapper()
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -0,0 +1,127 @@
|
|||||||
|
<link rel="stylesheet" href="bootstrap-grid.css">
|
||||||
|
<style>
|
||||||
|
.progressPane {
|
||||||
|
display: block;
|
||||||
|
position: fixed;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
background-color: lightgrey;
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.progressPaneCenter {
|
||||||
|
display: inline-block;
|
||||||
|
margin-top: 48%;
|
||||||
|
position: absolute;
|
||||||
|
height: 4%;
|
||||||
|
width: 50%;
|
||||||
|
margin-left: 25%;
|
||||||
|
margin-right: 25%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.progress {
|
||||||
|
height: 1.5em;
|
||||||
|
width: 100%;
|
||||||
|
background-color: #c9c9c9;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.progress:after {
|
||||||
|
content: attr(data-label);
|
||||||
|
font-size: 0.8em;
|
||||||
|
position: absolute;
|
||||||
|
text-align: center;
|
||||||
|
top: 5px;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.progress .value {
|
||||||
|
background-color: #7cc4ff;
|
||||||
|
display: inline-block;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.progress .valueIndeterminate {
|
||||||
|
background-color: #7cc4ff;
|
||||||
|
display: inline-block;
|
||||||
|
height: 100%;
|
||||||
|
animation: indeterminateAnimation 1s infinite linear;
|
||||||
|
transform-origin: 0% 50%;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@keyframes indeterminateAnimation {
|
||||||
|
0% {
|
||||||
|
transform: translateX(0%) scaleX(0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
50% {
|
||||||
|
transform: translateX(50%) scaleX(0.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
transform: translateX(0%) scaleX(0.5);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="container-xl">
|
||||||
|
<div class="row">
|
||||||
|
<div id="firmwareview" class="container col-12 col-lg-4"
|
||||||
|
style="border-width: 1px; border-style: solid; padding: 8px;">
|
||||||
|
</div>
|
||||||
|
<div id="timeview" class="container col-12 col-lg-4" style="border-style: solid; border-width: 1px; padding: 8px;">
|
||||||
|
</div>
|
||||||
|
<div id="batteryview" class="container col-12 col-lg-4"
|
||||||
|
style="border-style: solid; border-width: 1px; padding: 8px;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div id="network_view" class="container col-12 col-sm-6 col-lg-4"
|
||||||
|
style="border-style: solid; border-width: 1px; padding: 8px;">
|
||||||
|
</div>
|
||||||
|
<div id="lightview" class="container col-12 col-sm-6 col-lg-4"
|
||||||
|
style="border-style: solid; border-width: 1px; padding: 16px;">
|
||||||
|
</div>
|
||||||
|
<div id="tankview" class="container col-12 col-lg-4" style="border-style: solid; border-width: 1px; padding: 16px;">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h2>config</h2>
|
||||||
|
<h3>Plants:</h3>
|
||||||
|
<button id="measure_moisture">Measure Moisture</button>
|
||||||
|
<div id="plants" class="row"></div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<button id="submit">Submit</button>
|
||||||
|
<div id="submit_status"></div>
|
||||||
|
<br>
|
||||||
|
<textarea id="json" cols=50 rows=10></textarea>
|
||||||
|
<script src="bundle.js"></script>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="progressPane" class="progressPane">
|
||||||
|
<div class="progressPaneCenter">
|
||||||
|
<div id="progressPaneBar" class="progress" data-label="50% Complete">
|
||||||
|
<span id="progressPaneSpan" class="value" style="width:100%;"></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,261 @@
|
|||||||
|
|
||||||
|
declare var PUBLIC_URL: string;
|
||||||
|
console.log("Url is " + PUBLIC_URL);
|
||||||
|
|
||||||
|
document.body.innerHTML = require('./main.html') as string;
|
||||||
|
|
||||||
|
|
||||||
|
import { TimeView } from "./timeview";
|
||||||
|
import { PlantView, PlantViews } from "./plant";
|
||||||
|
import { NetworkConfigView } from "./network";
|
||||||
|
import { NightLampView } from "./nightlightview";
|
||||||
|
import { TankConfigView } from "./tankview";
|
||||||
|
import { SubmitView } from "./submitView";
|
||||||
|
import { ProgressView } from "./progress";
|
||||||
|
import { OTAView } from "./ota";
|
||||||
|
import { BatteryView } from "./batteryview";
|
||||||
|
|
||||||
|
export class Controller {
|
||||||
|
updateRTCData() {
|
||||||
|
fetch(PUBLIC_URL + "/time")
|
||||||
|
.then(response => response.json())
|
||||||
|
.then(json => json as GetTime)
|
||||||
|
.then(time => {
|
||||||
|
controller.timeView.update(time.native, time.rtc)
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
controller.timeView.update("n/a","n/a")
|
||||||
|
console.log(error);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
updateBatteryData() {
|
||||||
|
fetch(PUBLIC_URL + "/battery")
|
||||||
|
.then(response => response.json())
|
||||||
|
.then(json => json as BatteryState)
|
||||||
|
.then(battery => {
|
||||||
|
controller.batteryView.update(battery)
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
controller.batteryView.update(null)
|
||||||
|
console.log(error);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
uploadNewFirmware(file: File) {
|
||||||
|
var current = 0;
|
||||||
|
var max = 100;
|
||||||
|
controller.progressview.addProgress("ota_upload", (current/max) *100 , "Uploading firmeware ("+current+"/" + max+")")
|
||||||
|
var ajax = new XMLHttpRequest();
|
||||||
|
ajax.upload.addEventListener("progress", event => {
|
||||||
|
current = event.loaded/1000;
|
||||||
|
max = event.total/1000;
|
||||||
|
controller.progressview.addProgress("ota_upload", (current/max) *100 , "Uploading firmeware ("+current+"/" + max+")")
|
||||||
|
}, false);
|
||||||
|
ajax.addEventListener("load", () => {
|
||||||
|
//TODO wait for reboot here!
|
||||||
|
controller.progressview.removeProgress("ota_upload")
|
||||||
|
}, false);
|
||||||
|
ajax.addEventListener("error", () => {
|
||||||
|
alert("Error ota")
|
||||||
|
controller.progressview.removeProgress("ota_upload")
|
||||||
|
}, false);
|
||||||
|
ajax.addEventListener("abort", () => {
|
||||||
|
alert("abort ota")
|
||||||
|
controller.progressview.removeProgress("ota_upload")
|
||||||
|
}, false);
|
||||||
|
ajax.open("POST", PUBLIC_URL + "/ota");
|
||||||
|
ajax.send(file);
|
||||||
|
}
|
||||||
|
version() {
|
||||||
|
controller.progressview.addIndeterminate("version", "Getting buildVersion")
|
||||||
|
fetch(PUBLIC_URL + "/version")
|
||||||
|
.then(response => response.json())
|
||||||
|
.then(json => json as VersionInfo)
|
||||||
|
.then(versionInfo => {
|
||||||
|
controller.progressview.removeProgress("version")
|
||||||
|
controller.firmWareView.setVersion(versionInfo);
|
||||||
|
})
|
||||||
|
}
|
||||||
|
downloadConfig() {
|
||||||
|
controller.progressview.addIndeterminate("get_config", "Downloading Config")
|
||||||
|
fetch(PUBLIC_URL + "/get_config")
|
||||||
|
.then(response => response.json())
|
||||||
|
.then(loaded => {
|
||||||
|
var currentConfig = loaded as PlantControllerConfig;
|
||||||
|
this.setConfig(currentConfig);
|
||||||
|
//sync json view initially
|
||||||
|
this.configChanged();
|
||||||
|
controller.progressview.removeProgress("get_config")
|
||||||
|
})
|
||||||
|
}
|
||||||
|
uploadConfig(json: string, statusCallback: (status: string) => void) {
|
||||||
|
controller.progressview.addIndeterminate("set_config", "Uploading Config")
|
||||||
|
fetch(PUBLIC_URL + "/set_config", {
|
||||||
|
method: "POST",
|
||||||
|
body: json,
|
||||||
|
})
|
||||||
|
.then(response => response.text())
|
||||||
|
.then(text => statusCallback(text))
|
||||||
|
controller.progressview.removeProgress("set_config")
|
||||||
|
}
|
||||||
|
syncRTCFromBrowser(){
|
||||||
|
controller.progressview.addIndeterminate("write_rtc", "Writing RTC")
|
||||||
|
var value: SetTime = {
|
||||||
|
time: new Date().toISOString()
|
||||||
|
}
|
||||||
|
var pretty = JSON.stringify(value, undefined, 1);
|
||||||
|
fetch(PUBLIC_URL + "/time", {
|
||||||
|
method: "POST",
|
||||||
|
body: pretty
|
||||||
|
}).then(
|
||||||
|
_ => controller.progressview.removeProgress("write_rtc")
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
configChanged() {
|
||||||
|
const current = controller.getConfig();
|
||||||
|
var pretty = JSON.stringify(current, undefined, 1);
|
||||||
|
console.log(pretty)
|
||||||
|
controller.submitView.setJson(pretty);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
testPlant(plantId: number) {
|
||||||
|
let counter = 0
|
||||||
|
let limit = 30
|
||||||
|
controller.progressview.addProgress("test_pump", counter/limit*100, "Testing pump " + (plantId+1) + " for " + (limit-counter)+"s")
|
||||||
|
|
||||||
|
let timerId: string | number | NodeJS.Timeout | undefined
|
||||||
|
function updateProgress(){
|
||||||
|
counter++;
|
||||||
|
controller.progressview.addProgress("test_pump", counter/limit*100, "Testing pump " + (plantId+1) + " for " + (limit-counter)+"s")
|
||||||
|
timerId = setTimeout(updateProgress, 1000);
|
||||||
|
|
||||||
|
}
|
||||||
|
timerId = setTimeout(updateProgress, 1000);
|
||||||
|
|
||||||
|
var body: TestPump = {
|
||||||
|
pump: plantId
|
||||||
|
}
|
||||||
|
var pretty = JSON.stringify(body, undefined, 1);
|
||||||
|
|
||||||
|
fetch(PUBLIC_URL + "/pumptest", {
|
||||||
|
method: "POST",
|
||||||
|
body: pretty
|
||||||
|
})
|
||||||
|
.then(response => response.text())
|
||||||
|
.then(
|
||||||
|
text => {
|
||||||
|
clearTimeout(timerId);
|
||||||
|
controller.progressview.removeProgress("test_pump");
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
getConfig(): PlantControllerConfig{
|
||||||
|
return {
|
||||||
|
network: controller.networkView.getConfig(),
|
||||||
|
tank: controller.tankView.getConfig(),
|
||||||
|
night_lamp: controller.nightLampView.getConfig(),
|
||||||
|
plants: controller.plantViews.getConfig()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
scanWifi() {
|
||||||
|
let counter = 0
|
||||||
|
let limit = 5
|
||||||
|
controller.progressview.addProgress("scan_ssid", counter/limit*100, "Scanning for SSIDs for " + (limit-counter)+"s")
|
||||||
|
|
||||||
|
let timerId: string | number | NodeJS.Timeout | undefined
|
||||||
|
function updateProgress(){
|
||||||
|
counter++;
|
||||||
|
controller.progressview.addProgress("scan_ssid", counter/limit*100, "Scanning for SSIDs for " + (limit-counter)+"s")
|
||||||
|
timerId = setTimeout(updateProgress, 1000);
|
||||||
|
|
||||||
|
}
|
||||||
|
timerId = setTimeout(updateProgress, 1000);
|
||||||
|
|
||||||
|
|
||||||
|
var ajax = new XMLHttpRequest();
|
||||||
|
ajax.responseType = 'json';
|
||||||
|
ajax.onreadystatechange = () => {
|
||||||
|
if (ajax.readyState === 4) {
|
||||||
|
clearTimeout(timerId);
|
||||||
|
controller.progressview.removeProgress("scan_ssid");
|
||||||
|
this.networkView.setScanResult(ajax.response as SSIDList)
|
||||||
|
}
|
||||||
|
};
|
||||||
|
ajax.onerror = (evt) => {
|
||||||
|
clearTimeout(timerId);
|
||||||
|
controller.progressview.removeProgress("scan_ssid");
|
||||||
|
alert("Failed to start see console")
|
||||||
|
}
|
||||||
|
ajax.open("POST", PUBLIC_URL + "/wifiscan");
|
||||||
|
ajax.send();
|
||||||
|
}
|
||||||
|
|
||||||
|
setConfig(current: PlantControllerConfig) {
|
||||||
|
this.tankView.setConfig(current.tank);
|
||||||
|
this.networkView.setConfig(current.network);
|
||||||
|
this.nightLampView.setConfig(current.night_lamp);
|
||||||
|
this.plantViews.setConfig(current.plants);
|
||||||
|
}
|
||||||
|
|
||||||
|
measure_moisture (){
|
||||||
|
let counter = 0
|
||||||
|
let limit = 2
|
||||||
|
controller.progressview.addProgress("measure_moisture", counter/limit*100, "Measure Moisture " + (limit-counter)+"s")
|
||||||
|
|
||||||
|
let timerId: string | number | NodeJS.Timeout | undefined
|
||||||
|
function updateProgress(){
|
||||||
|
counter++;
|
||||||
|
controller.progressview.addProgress("measure_moisture", counter/limit*100, "Measure Moisture " + (limit-counter)+"s")
|
||||||
|
timerId = setTimeout(updateProgress, 1000);
|
||||||
|
|
||||||
|
}
|
||||||
|
timerId = setTimeout(updateProgress, 1000);
|
||||||
|
|
||||||
|
|
||||||
|
fetch(PUBLIC_URL + "/moisture")
|
||||||
|
.then(response => response.json())
|
||||||
|
.then(json => json as Moistures)
|
||||||
|
.then(time => {
|
||||||
|
controller.plantViews.update(time.moisture_a, time.moisture_b)
|
||||||
|
clearTimeout(timerId);
|
||||||
|
controller.progressview.removeProgress("measure_moisture");
|
||||||
|
})
|
||||||
|
.catch(error => {
|
||||||
|
clearTimeout(timerId);
|
||||||
|
controller.progressview.removeProgress("measure_moisture");
|
||||||
|
console.log(error);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
readonly timeView: TimeView;
|
||||||
|
readonly plantViews: PlantViews;
|
||||||
|
readonly networkView: NetworkConfigView;
|
||||||
|
readonly tankView: TankConfigView;
|
||||||
|
readonly nightLampView: NightLampView;
|
||||||
|
readonly submitView: SubmitView;
|
||||||
|
readonly firmWareView : OTAView;
|
||||||
|
readonly progressview: ProgressView;
|
||||||
|
readonly batteryView: BatteryView;
|
||||||
|
constructor() {
|
||||||
|
this.timeView = new TimeView(this)
|
||||||
|
this.plantViews = new PlantViews(this)
|
||||||
|
this.networkView = new NetworkConfigView(this, PUBLIC_URL)
|
||||||
|
this.tankView = new TankConfigView(this)
|
||||||
|
this.batteryView = new BatteryView(this)
|
||||||
|
this.nightLampView = new NightLampView(this)
|
||||||
|
this.submitView = new SubmitView(this)
|
||||||
|
this.firmWareView = new OTAView(this)
|
||||||
|
this.progressview = new ProgressView(this)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const controller = new Controller();
|
||||||
|
controller.updateRTCData();
|
||||||
|
controller.updateBatteryData();
|
||||||
|
controller.downloadConfig();
|
||||||
|
//controller.measure_moisture();
|
||||||
|
controller.version();
|
||||||
|
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
<h2>Basic network</h2>
|
||||||
|
Api Redirection to:
|
||||||
|
<span id="remote_ip">remote ip</span>
|
||||||
|
<br>
|
||||||
|
AccessPoint Mode (or fallback)
|
||||||
|
<br>
|
||||||
|
<label for="ap_ssid">AP SSID:</label>
|
||||||
|
<input type="text" id="ap_ssid" list="ssidlist">
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
Station Mode:
|
||||||
|
<br>
|
||||||
|
<label for="ssid">SSID:</label>
|
||||||
|
<input type="text" id="ssid" list="ssidlist"> <input type="button" id="scan" value="Scan">
|
||||||
|
<datalist id="ssidlist">
|
||||||
|
<option value="Not scanned yet">
|
||||||
|
</datalist>
|
||||||
|
<br>
|
||||||
|
<label for="ssid">Password:</label>
|
||||||
|
<input type="text" id="password">
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
Mqtt Reporting
|
||||||
|
<br>
|
||||||
|
<div>
|
||||||
|
MQTT Url
|
||||||
|
<input type="text" id="mqtt_url" placeholder="mqtt://192.168.1.1:1883">
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
Base Topic
|
||||||
|
<input type="text" id="base_topic" placeholder="plants/one">
|
||||||
|
</div>
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user