Skip to content
Snippets Groups Projects
Commit 44e60727 authored by Benjamin Koch's avatar Benjamin Koch
Browse files

place semi-final components on board and start routing

parent b9258121
No related branches found
No related tags found
No related merge requests found
......@@ -342,6 +342,7 @@
- Das ist praktisch, weil wir wollen die oben sowieso nicht überstehen haben eigentlich (oder zumindest nicht mehr als die 0.28 mm, die der Unterteil
vom WS2812C-2020 dick ist).
- Damit kann ich die innere Kante von dem Touch-Ring auf 21 mm setzen statt 23 mm (bzw. in beiden Fällen kommt ggf doch noch mehr Abstand dazu).
- Der Stecker kollidiert mit der einen Schraube. Ich denke, man kann ihn passend "bearbeiten", aber vermutlich lässt man eher diese Schraube weg.
- Display-Board:
- OLED mit SSD1306
- OLED als Board kaufen oder irgendwie anders auf eigene Platine? -> Nicht gut ohne Breakout kaufbar und Breakout hat noch diverse Kondensatoren und so. Ich würd's
......@@ -358,10 +359,16 @@
- Wischgesten hoch/runter rechts und links vom Display, etc.
- Taster und OLED trotzdem (Fallback)
- Buzzer?
- WS2812-2020 Ring, WorldSemi, die 2020 wegen Qualität (sagt fxk8y); WS2812C-2020-V1 klingt gut, weil macht 5 mA pro LED und wir wollen anzeigen, nicht beleuchten
- WS2812-2020 Ring, WorldSemi, die 2020 wegen Qualität (sagt fxk8y)
- WS2812C-2020-V1 klingt gut, weil macht 5 mA pro LED und wir wollen anzeigen, nicht beleuchten
- bestücken per Hand, sofern doppelseitig zu teuer ist, weil die brauchen einen Kondensator und die Platine soll abseits der LEDs flächig am PVC anliegen
- Anschließen an den Pin der weißen LED. Spannungswandlung auf 5V nicht vergessen (oder das schon auf dem Main PCB machen, weil MOSFET ist ein Extended Part).
- Basiskosten sind $11.50 für normal PCBA, $38 für PCBA Standard statt Economic (was für diese WS2812 nötig ist) und $71 für beidseitig.
- Ich könnte versuchen, alles auf die Vorderseite zu packen, weil die Basis vom WS2812 ist 0.28 mm hoch, d.h. ein Kondensator daneben könnte gehen.
- Oder auch nicht: Grad habe ich C1525 gewählt und der hat "Thickness Code" 5, d.h. 0.5 mm. Und auch mit anderer Spannungsfestigkeit gibt's den nicht dünner.
- Theoretisch könnte 0201 gehen, aber in 100 nF haben die meisten nur 6.3 V und JLC hat von keinem davon 600 pcs auf Lager.
- (Ich dachte gerade noch "das OLED ist aber dicker", aber das dessen Platine kommt unter meine und für das Display brauchen wir ein Loch, was dann vermutlich
größer sein muss als nur der aktive Bereich.)
- Touch mit MPR121.
- Einen der Matrix-In Pins stattdessen als IRQ nutzen.
- Eventuell einen dedizierten LDO vor das IC setzen für weniger Noise.
......@@ -369,8 +376,28 @@
- WS2811 mit ans Ende vom Ring beim Display und den mit an die Matrix hängen. Oder das Ende vom Ring mit an die Matrix und man weiß ja grob, wann man die WS2812
Signale da erwartet. So oder so per Diode, so dass es nur runter ziehen kann. Hm, und plus MOSFET oder so, weil nur wenn selektiert.
- Eigentlich kann es mit an den Open-Drain IRQ Ausgang vom MPR121 (per Diode).
- 2x MPR121.
- Schrauben vom OLED bis durchs PVC.
- 2x MPR121 ?
- Schrauben vom OLED bis durchs PVC. Die können auch Touch-Flächen werden.
- Touch:
- Der MPR kann auch eine Matrix: https://www.nxp.com/docs/en/application-note/AN4600.pdf
- Aber ein Grid aus 4x4 mm (oder was Äquivalentes in rund) bekommen wir wohl eher nicht hin.
- Die empfohlenen 0.3 mm Cover für eine Matrix werden wir deutlich überschreiten, weil der WS2812 ist schon 0.28 mm und dann kommt noch das PVC.
- Unser Ring hat 33-21 = 12 mm Breite. Das wären also drei oder vier Ringe als Matrix.
- Die mittlere Länge des Rings ist 2*27*pi = 170 mm. Das wäre 42 Flächen.
- Wenn wir zwei MPR verbauen und 2x2 für die Schrauben nehmen und vier Ringe, bleiben uns noch 24-4-4 = 16 Ring-Segmente. Oder 15, damit es zu den LEDs passt.
- Wenn ich die Schrauben mit in die Matrix aufnehme, brauche ich definitiv vier Ringe, aber nur eine Leitung dafür.
- Dann darf ich die Leitung nicht an die Schraube führen, sondern per Kondensator koppeln, denke ich. Weil eigentlich brauche ich zwei Touch-Flächen für die Matrix.
- Ich bin mir unsicher, ob das wohl klug ist, zwei MPR an dieselbe Matrix zu hängen. Die werden sich vermutlich stören beim Scannen.
- Nächster Plan: obere und untere Hälfte komplett trennen. Nur damit sind wir dann bei 4 Pins für innen/außen (und ggf Schrauben) und 8 Segmente. Ich täte dann
bei dem einen ein Segment weglassen, weil 60/(7+8) passt besser als 60/(8+8).
- Noch ne Idee: Ideal wäre ja 6x6 Matrix. Den Ring vierteln und da je 3 Ring-Abschnitte für innen/außen machen. Die beiden Viertel, die zu einem MPR gehören,
bekommen je 6 Sektoren, wobei da an einem Pin dann zwei Sektoren aus verschiedenen Vierteln hängen. Das wären dann insgesamt 24 Sektoren.
- Nachteil: Das bricht komplett zusammen bei Multitouch. Das tut eine Matrix ggf sowieso ein wenig, aber zumindest weiß ich immer den Sektor.
- Ok, also 3 Ringe innen/außen und 8 bzw. 7 Segmente pro Hälfte. Dann habe ich dedizierte Leitungen für 3 der vier Schrauben.
- Bei den Schrauben würde ich einen Widerstand (und ggf Kondensator) mit in die Leitung hängen. Ich glaube das stand zwar beim TS20 wegen ESD, aber ist hier
vermutlich auch ganz sinnvoll, auch wenn es die Sensitivität senkt - was bei den Schrauben egal sein dürfte.
- Die ELE Pins haben selbst schon bis zu 15 pF und sie treiben einen Strom, d.h. ein sinnvoller Widerstand dürft komplett nix ändern.
- TS20 empfiehlt unter 50 pF und 200 bis 1000 Ohm.
......
This diff is collapsed.
This diff is collapsed.
......@@ -2,26 +2,143 @@
"board": {
"design_settings": {
"defaults": {
"board_outline_line_width": 0.1,
"copper_line_width": 0.2,
"board_outline_line_width": 0.09999999999999999,
"copper_line_width": 0.19999999999999998,
"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.049999999999999996,
"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.09999999999999999,
"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.15,
"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.15,
"silk_text_italic": false,
"silk_text_size_h": 1.0,
"silk_text_size_v": 1.0,
"silk_text_thickness": 0.15
"silk_text_thickness": 0.15,
"silk_text_upright": false,
"zones": {
"45_degree_only": false,
"min_clearance": 0.508
}
},
"diff_pair_dimensions": [
{
"gap": 0.0,
"via_gap": 0.0,
"width": 0.0
}
],
"drc_exclusions": [
"courtyards_overlap|162967501|86340001|6cc698e4-3457-4037-a383-dc1daf44ad4d|cd575ef3-4062-4978-8fba-017927a491a5"
],
"meta": {
"version": 2
},
"rule_severities": {
"annular_width": "error",
"clearance": "error",
"copper_edge_clearance": "error",
"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_type_mismatch": "error",
"hole_clearance": "error",
"hole_near_hole": "error",
"invalid_outline": "error",
"item_on_disabled_layer": "error",
"items_not_allowed": "error",
"length_out_of_range": "error",
"malformed_courtyard": "error",
"microvia_drill_out_of_range": "error",
"missing_courtyard": "ignore",
"missing_footprint": "warning",
"net_conflict": "warning",
"npth_inside_courtyard": "ignore",
"padstack": "error",
"pth_inside_courtyard": "ignore",
"shorting_items": "error",
"silk_over_copper": "warning",
"silk_overlap": "warning",
"skew_out_of_range": "error",
"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",
"zone_has_empty_net": "error",
"zones_intersect": "error"
},
"diff_pair_dimensions": [],
"drc_exclusions": [],
"rules": {
"min_copper_edge_clearance": 0.0,
"allow_blind_buried_vias": false,
"allow_microvias": false,
"max_error": 0.005,
"min_clearance": 0.127,
"min_copper_edge_clearance": 0.19999999999999998,
"min_hole_clearance": 0.25,
"min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.19999999999999998,
"min_microvia_drill": 0.09999999999999999,
"min_silk_clearance": 0.0,
"min_through_hole_diameter": 0.25,
"min_track_width": 0.19999999999999998,
"min_via_annular_width": 0.049999999999999996,
"min_via_diameter": 0.39999999999999997,
"solder_mask_clearance": 0.0,
"solder_mask_min_width": 0.0
"solder_mask_min_width": 0.0,
"use_height_for_length_calcs": true
},
"track_widths": [],
"via_dimensions": []
"track_widths": [
0.0,
0.2,
0.25,
0.4,
0.8
],
"via_dimensions": [
{
"diameter": 0.0,
"drill": 0.0
},
{
"diameter": 0.35,
"drill": 0.2
}
],
"zones_allow_external_fillets": false,
"zones_use_no_outline": true
},
"layer_presets": []
},
......@@ -246,7 +363,7 @@
"classes": [
{
"bus_width": 12.0,
"clearance": 0.2,
"clearance": 0.15,
"diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25,
"diff_pair_width": 0.2,
......@@ -320,6 +437,30 @@
[
"e2bf0a7e-1eac-4799-a01c-228d17cf2e01",
""
],
[
"3a6e5aca-fb0e-4101-bd2c-fbcebed154ef",
"WS2812, 10x"
],
[
"faea92cc-f87c-4019-9166-3b9d485d146c",
"WS2812, 10x1"
],
[
"4e579be8-6a78-45ed-a7c1-b4f6b63a394d",
"WS2812, 10x2"
],
[
"8457adb0-4d99-480c-89a0-a0f30b48b912",
"WS2812, 10x3"
],
[
"188423b3-ff5d-4b8e-9a42-d053fc097940",
"WS2812, 10x4"
],
[
"51109468-4bfb-41ad-8874-ba70f9386137",
"WS2812, 10x5"
]
],
"text_variables": {}
......
This diff is collapsed.
(sym_lib_table
(lib (name "c3pb-heizung")(type "KiCad")(uri "${KIPRJMOD}/../c3pb-heizung/c3pb-heizung.kicad_sym")(options "")(descr ""))
)
This diff is collapsed.
......@@ -86,6 +86,7 @@
(fp_line (start -12.35 10.92) (end -6.35 10.92) (layer "Edge.Cuts") (width 0.12) (tstamp 9ea6c167-b1dd-467c-a179-1ecc968ebc5c))
(fp_line (start 6.35 10.92) (end 12.35 10.92) (layer "Edge.Cuts") (width 0.12) (tstamp a8a6893d-7e9c-4103-8fdd-0e0b8a15df93))
(fp_line (start -12.35 -7.58) (end 12.35 -7.58) (layer "Edge.Cuts") (width 0.12) (tstamp e38f1d50-08dc-4f4e-88b0-379ba4238f48))
(fp_rect (start -12.85 -12.33) (end 12.85 15.67) (layer "B.CrtYd") (width 0.05) (fill none) (tstamp da0db978-8aa4-4a26-a49a-72fdbe2ee2d7))
(fp_line (start 6.35 15.67) (end 6.35 10.92) (layer "User.4") (width 0.12) (tstamp 003adbcb-65d3-40c4-83e5-5b2ea71a5658))
(fp_line (start -12.35 -7.58) (end 12.35 -7.58) (layer "User.4") (width 0.12) (tstamp 1e9e0174-7baa-4655-9ae3-08dc21cdd8c0))
(fp_line (start -12.35 10.92) (end -6.35 10.92) (layer "User.4") (width 0.12) (tstamp 4da6a41c-84ba-440c-87b6-d2b9619e4373))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment