Skip to content

Commit 34f0e3b

Browse files
authored
Require ESP auto-program pins used, move to STM32L432-C (#398)
Requires ESP auto-program pins used on an auto-program connector, but also allows bypassing the check with a refinement. Resolves #301, moving STM32L432 to higher-memory -C variant. Also adds a test output.
1 parent 0641dd8 commit 34f0e3b

File tree

4 files changed

+227
-3
lines changed

4 files changed

+227
-3
lines changed

edg/parts/Microcontroller_Esp.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,25 @@ def __init__(self) -> None:
1919

2020

2121
class EspProgrammingAutoReset(BlockInterfaceMixin[EspProgrammingHeader]):
22-
"""Mixin for ESP programming header with auto-reset and auto-boot pins"""
23-
def __init__(self, *args, **kwargs) -> None:
22+
"""Mixin for ESP programming header with auto-reset and auto-boot pins.
23+
By default, these are required to be connected (since it doesn't make sense to instantiate
24+
this without connecting the additional pins to the micro), but can be disabled with parameters."""
25+
@init_in_parent
26+
def __init__(self, *args, require_auto_reset: BoolLike = True, **kwargs) -> None:
2427
super().__init__(*args, **kwargs)
2528

2629
self.en = self.Port(DigitalSource.empty(), optional=True) # effectively a reset pin
2730
self.boot = self.Port(DigitalSource.empty(), optional=True) # IO0 on ESP32, IO9 on ESP32C3
2831

32+
self.require_auto_reset = self.ArgParameter(require_auto_reset)
33+
34+
def contents(self) -> None:
35+
super().contents()
36+
self.require(self.require_auto_reset.implies(self.en.is_connected() & self.boot.is_connected()),
37+
"auto-reset programming header without auto-reset pins connected, "
38+
"either connect by setting programming='uart-auto' or 'uart-auto-button' on the microcontroller "
39+
"or set require_auto_reset=False to disable this check")
40+
2941

3042
class EspProgrammingPinHeader254(EspProgrammingHeader):
3143
"""Programming header for ESP series micros using 2.54mm headers, matching the pinning in the reference schematics."""

edg/parts/Microcontroller_Stm32l432.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ class Stm32l432k_Device(Stm32l432Base_Device):
210210
}
211211
PACKAGE = 'Package_DFN_QFN:QFN-32-1EP_5x5mm_P0.5mm_EP3.45x3.45mm'
212212
PART = 'STM32L432Kxxx'
213-
LCSC_PART = 'C94784' # KBU6 variant
213+
LCSC_PART = 'C1337280' # KCU6 variant, maximum memory variant
214214

215215

216216
@abstract_block
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
(export (version D)
2+
(components
3+
(comp (ref "bat.cell[0]")
4+
(value "2460")
5+
(footprint "Battery:BatteryHolder_Keystone_2460_1xAA")
6+
(property (name "Sheetname") (value "bat"))
7+
(property (name "Sheetfile") (value "edg.parts.Batteries.AaBatteryStack"))
8+
(property (name "edg_path") (value "bat.cell[0]"))
9+
(property (name "edg_short_path") (value "bat.cell[0]"))
10+
(property (name "edg_refdes") (value "U1"))
11+
(property (name "edg_part") (value "2460 (Keystone)"))
12+
(sheetpath (names "/bat/") (tstamps "/025f0138/"))
13+
(tstamps "0ab40289"))
14+
(comp (ref "bat.cell[1]")
15+
(value "2460")
16+
(footprint "Battery:BatteryHolder_Keystone_2460_1xAA")
17+
(property (name "Sheetname") (value "bat"))
18+
(property (name "Sheetfile") (value "edg.parts.Batteries.AaBatteryStack"))
19+
(property (name "edg_path") (value "bat.cell[1]"))
20+
(property (name "edg_short_path") (value "bat.cell[1]"))
21+
(property (name "edg_refdes") (value "U2"))
22+
(property (name "edg_part") (value "2460 (Keystone)"))
23+
(sheetpath (names "/bat/") (tstamps "/025f0138/"))
24+
(tstamps "0ab6028a"))
25+
(comp (ref "bat.cell[2]")
26+
(value "2460")
27+
(footprint "Battery:BatteryHolder_Keystone_2460_1xAA")
28+
(property (name "Sheetname") (value "bat"))
29+
(property (name "Sheetfile") (value "edg.parts.Batteries.AaBatteryStack"))
30+
(property (name "edg_path") (value "bat.cell[2]"))
31+
(property (name "edg_short_path") (value "bat.cell[2]"))
32+
(property (name "edg_refdes") (value "U3"))
33+
(property (name "edg_part") (value "2460 (Keystone)"))
34+
(sheetpath (names "/bat/") (tstamps "/025f0138/"))
35+
(tstamps "0ab8028b"))
36+
(comp (ref "bat.cell[3]")
37+
(value "2460")
38+
(footprint "Battery:BatteryHolder_Keystone_2460_1xAA")
39+
(property (name "Sheetname") (value "bat"))
40+
(property (name "Sheetfile") (value "edg.parts.Batteries.AaBatteryStack"))
41+
(property (name "edg_path") (value "bat.cell[3]"))
42+
(property (name "edg_short_path") (value "bat.cell[3]"))
43+
(property (name "edg_refdes") (value "U4"))
44+
(property (name "edg_part") (value "2460 (Keystone)"))
45+
(sheetpath (names "/bat/") (tstamps "/025f0138/"))
46+
(tstamps "0aba028c"))
47+
(comp (ref "mcu")
48+
(value "XIAO RP2040")
49+
(footprint "Seeed Studio XIAO Series Library:XIAO-Generic-Hybrid-14P-2.54-21X17.8MM")
50+
(property (name "Sheetname") (value ""))
51+
(property (name "Sheetfile") (value ""))
52+
(property (name "edg_path") (value "mcu"))
53+
(property (name "edg_short_path") (value "mcu"))
54+
(property (name "edg_refdes") (value "U5"))
55+
(property (name "edg_part") (value "XIAO RP2040"))
56+
(sheetpath (names "/") (tstamps "/"))
57+
(tstamps "02850146"))
58+
(comp (ref "led.package")
59+
(value "Red 615~630nm 1.9~2.2V 0603 Light Emitting Diodes (LED) RoHS")
60+
(footprint "LED_SMD:LED_0603_1608Metric")
61+
(property (name "Sheetname") (value "led"))
62+
(property (name "Sheetfile") (value "edg.abstract_parts.AbstractLed.IndicatorLed"))
63+
(property (name "edg_path") (value "led.package"))
64+
(property (name "edg_short_path") (value "led.package"))
65+
(property (name "edg_refdes") (value "D1"))
66+
(property (name "edg_part") (value "KT-0603R (Hubei KENTO Elec)"))
67+
(sheetpath (names "/led/") (tstamps "/02750136/"))
68+
(tstamps "0b4e02cd"))
69+
(comp (ref "led.res")
70+
(value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 1kΩ 0603 Chip Resistor - Surface Mount ROHS")
71+
(footprint "Resistor_SMD:R_0603_1608Metric")
72+
(property (name "Sheetname") (value "led"))
73+
(property (name "Sheetfile") (value "edg.abstract_parts.AbstractLed.IndicatorLed"))
74+
(property (name "edg_path") (value "led.res"))
75+
(property (name "edg_short_path") (value "led.res"))
76+
(property (name "edg_refdes") (value "R1"))
77+
(property (name "edg_part") (value "0603WAF1001T5E (UNI-ROYAL(Uniroyal Elec))"))
78+
(sheetpath (names "/led/") (tstamps "/02750136/"))
79+
(tstamps "0296014b")))
80+
(nets
81+
(net (code 1) (name "mcu.pwr_vin")
82+
(node (ref bat.cell[3]) (pin 1)))
83+
(net (code 2) (name "mcu.gnd")
84+
(node (ref mcu) (pin 13))
85+
(node (ref bat.cell[0]) (pin 2))
86+
(node (ref led.res) (pin 2)))
87+
(net (code 3) (name "led.signal")
88+
(node (ref mcu) (pin 7))
89+
(node (ref led.package) (pin 2)))
90+
(net (code 4) (name "bat.cell[0].pwr")
91+
(node (ref bat.cell[0]) (pin 1))
92+
(node (ref bat.cell[1]) (pin 2)))
93+
(net (code 5) (name "bat.cell[1].pwr")
94+
(node (ref bat.cell[1]) (pin 1))
95+
(node (ref bat.cell[2]) (pin 2)))
96+
(net (code 6) (name "bat.cell[2].pwr")
97+
(node (ref bat.cell[2]) (pin 1))
98+
(node (ref bat.cell[3]) (pin 2)))
99+
(net (code 7) (name "mcu.pwr_out")
100+
(node (ref mcu) (pin 12)))
101+
(net (code 8) (name "mcu.vusb_out")
102+
(node (ref mcu) (pin 14)))
103+
(net (code 9) (name "led.res.a")
104+
(node (ref led.res) (pin 1))
105+
(node (ref led.package) (pin 1))))
106+
)
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
(export (version D)
2+
(components
3+
(comp (ref "U1")
4+
(value "2460")
5+
(footprint "Battery:BatteryHolder_Keystone_2460_1xAA")
6+
(property (name "Sheetname") (value "bat"))
7+
(property (name "Sheetfile") (value "edg.parts.Batteries.AaBatteryStack"))
8+
(property (name "edg_path") (value "bat.cell[0]"))
9+
(property (name "edg_short_path") (value "bat.cell[0]"))
10+
(property (name "edg_refdes") (value "U1"))
11+
(property (name "edg_part") (value "2460 (Keystone)"))
12+
(sheetpath (names "/bat/") (tstamps "/025f0138/"))
13+
(tstamps "0ab40289"))
14+
(comp (ref "U2")
15+
(value "2460")
16+
(footprint "Battery:BatteryHolder_Keystone_2460_1xAA")
17+
(property (name "Sheetname") (value "bat"))
18+
(property (name "Sheetfile") (value "edg.parts.Batteries.AaBatteryStack"))
19+
(property (name "edg_path") (value "bat.cell[1]"))
20+
(property (name "edg_short_path") (value "bat.cell[1]"))
21+
(property (name "edg_refdes") (value "U2"))
22+
(property (name "edg_part") (value "2460 (Keystone)"))
23+
(sheetpath (names "/bat/") (tstamps "/025f0138/"))
24+
(tstamps "0ab6028a"))
25+
(comp (ref "U3")
26+
(value "2460")
27+
(footprint "Battery:BatteryHolder_Keystone_2460_1xAA")
28+
(property (name "Sheetname") (value "bat"))
29+
(property (name "Sheetfile") (value "edg.parts.Batteries.AaBatteryStack"))
30+
(property (name "edg_path") (value "bat.cell[2]"))
31+
(property (name "edg_short_path") (value "bat.cell[2]"))
32+
(property (name "edg_refdes") (value "U3"))
33+
(property (name "edg_part") (value "2460 (Keystone)"))
34+
(sheetpath (names "/bat/") (tstamps "/025f0138/"))
35+
(tstamps "0ab8028b"))
36+
(comp (ref "U4")
37+
(value "2460")
38+
(footprint "Battery:BatteryHolder_Keystone_2460_1xAA")
39+
(property (name "Sheetname") (value "bat"))
40+
(property (name "Sheetfile") (value "edg.parts.Batteries.AaBatteryStack"))
41+
(property (name "edg_path") (value "bat.cell[3]"))
42+
(property (name "edg_short_path") (value "bat.cell[3]"))
43+
(property (name "edg_refdes") (value "U4"))
44+
(property (name "edg_part") (value "2460 (Keystone)"))
45+
(sheetpath (names "/bat/") (tstamps "/025f0138/"))
46+
(tstamps "0aba028c"))
47+
(comp (ref "U5")
48+
(value "XIAO RP2040")
49+
(footprint "Seeed Studio XIAO Series Library:XIAO-Generic-Hybrid-14P-2.54-21X17.8MM")
50+
(property (name "Sheetname") (value ""))
51+
(property (name "Sheetfile") (value ""))
52+
(property (name "edg_path") (value "mcu"))
53+
(property (name "edg_short_path") (value "mcu"))
54+
(property (name "edg_refdes") (value "U5"))
55+
(property (name "edg_part") (value "XIAO RP2040"))
56+
(sheetpath (names "/") (tstamps "/"))
57+
(tstamps "02850146"))
58+
(comp (ref "D1")
59+
(value "Red 615~630nm 1.9~2.2V 0603 Light Emitting Diodes (LED) RoHS")
60+
(footprint "LED_SMD:LED_0603_1608Metric")
61+
(property (name "Sheetname") (value "led"))
62+
(property (name "Sheetfile") (value "edg.abstract_parts.AbstractLed.IndicatorLed"))
63+
(property (name "edg_path") (value "led.package"))
64+
(property (name "edg_short_path") (value "led.package"))
65+
(property (name "edg_refdes") (value "D1"))
66+
(property (name "edg_part") (value "KT-0603R (Hubei KENTO Elec)"))
67+
(sheetpath (names "/led/") (tstamps "/02750136/"))
68+
(tstamps "0b4e02cd"))
69+
(comp (ref "R1")
70+
(value "±1% 1/10W Thick Film Resistors 75V ±100ppm/℃ -55℃~+155℃ 1kΩ 0603 Chip Resistor - Surface Mount ROHS")
71+
(footprint "Resistor_SMD:R_0603_1608Metric")
72+
(property (name "Sheetname") (value "led"))
73+
(property (name "Sheetfile") (value "edg.abstract_parts.AbstractLed.IndicatorLed"))
74+
(property (name "edg_path") (value "led.res"))
75+
(property (name "edg_short_path") (value "led.res"))
76+
(property (name "edg_refdes") (value "R1"))
77+
(property (name "edg_part") (value "0603WAF1001T5E (UNI-ROYAL(Uniroyal Elec))"))
78+
(sheetpath (names "/led/") (tstamps "/02750136/"))
79+
(tstamps "0296014b")))
80+
(nets
81+
(net (code 1) (name "mcu.pwr_vin")
82+
(node (ref U4) (pin 1)))
83+
(net (code 2) (name "mcu.gnd")
84+
(node (ref U5) (pin 13))
85+
(node (ref U1) (pin 2))
86+
(node (ref R1) (pin 2)))
87+
(net (code 3) (name "led.signal")
88+
(node (ref U5) (pin 7))
89+
(node (ref D1) (pin 2)))
90+
(net (code 4) (name "bat.cell[0].pwr")
91+
(node (ref U1) (pin 1))
92+
(node (ref U2) (pin 2)))
93+
(net (code 5) (name "bat.cell[1].pwr")
94+
(node (ref U2) (pin 1))
95+
(node (ref U3) (pin 2)))
96+
(net (code 6) (name "bat.cell[2].pwr")
97+
(node (ref U3) (pin 1))
98+
(node (ref U4) (pin 2)))
99+
(net (code 7) (name "mcu.pwr_out")
100+
(node (ref U5) (pin 12)))
101+
(net (code 8) (name "mcu.vusb_out")
102+
(node (ref U5) (pin 14)))
103+
(net (code 9) (name "led.res.a")
104+
(node (ref R1) (pin 1))
105+
(node (ref D1) (pin 1))))
106+
)

0 commit comments

Comments
 (0)