Compare commits

...

17 Commits

Author SHA1 Message Date
e23f2af04c ECAD #40: Re-add MicroSD card schematic 2025-09-21 19:46:02 -07:00
22bc55105c ECAD: 4-bit MicroSD schematic with pullups 2025-09-20 23:14:23 -07:00
8ddd22f832 SW #36: CubeMX debug led 2025-09-15 23:10:45 -07:00
07bd1658dc ECAD #32: Debug LED connected to PB12 2025-09-15 22:29:48 -07:00
dc5a3a794b ECAD#24: Added titles to remaining schematic pages 2025-09-15 22:05:02 -07:00
02aa71bd12 ECAD #23: Battery charging, status, and output regulation 2025-09-10 22:38:49 -07:00
bc724862ec Merge branch 'main' into ECAD-#22-debug-interface 2025-09-09 22:44:08 -04:00
a8df5f9a46 SW #24: Added SW debug and VCP interface to CubeMX config 2025-09-08 23:49:46 -07:00
ccd5cff310 ECAD #22: Added STDC14 connector with SW debug and VCP 2025-09-07 22:11:13 -07:00
b57de572bc #20-ECAD: renamed schematic sheets and inverted sheet pins 2025-09-06 22:33:00 -07:00
7a3b357c2d ECAD: created USB-C schematic 2025-09-06 22:11:49 -07:00
b1cd200d54 SW: updated CubeMX pins for MS5607 2025-09-06 21:10:07 -07:00
dce586a14a ECAD: barometric pressure sensor schematic 2025-09-06 18:22:36 -07:00
91e78c8352 ECAD: rectangular 18x40mm board outline 2025-09-04 22:58:01 -07:00
2ef965f2a1 Added 18mm diameter circular edge cut 2025-09-04 20:47:44 -07:00
d356c9c0b2 SW: Updated CubeMX pinout for 1092-1234-ND 2025-09-04 20:25:34 -07:00
ff24b2cab7 ECAD: Added schematic drawing for flash chip 2025-09-04 20:19:30 -07:00
45 changed files with 13999 additions and 104 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,2 +1,95 @@
(kicad_pcb (version 20241229) (generator "pcbnew") (generator_version "9.0") (kicad_pcb
(version 20241229)
(generator "pcbnew")
(generator_version "9.0")
(general
(thickness 1.6)
(legacy_teardrops no)
)
(paper "USLetter")
(layers
(0 "F.Cu" signal)
(2 "B.Cu" signal)
(9 "F.Adhes" user "F.Adhesive")
(11 "B.Adhes" user "B.Adhesive")
(13 "F.Paste" user)
(15 "B.Paste" user)
(5 "F.SilkS" user "F.Silkscreen")
(7 "B.SilkS" user "B.Silkscreen")
(1 "F.Mask" user)
(3 "B.Mask" user)
(17 "Dwgs.User" user "User.Drawings")
(19 "Cmts.User" user "User.Comments")
(21 "Eco1.User" user "User.Eco1")
(23 "Eco2.User" user "User.Eco2")
(25 "Edge.Cuts" user)
(27 "Margin" user)
(31 "F.CrtYd" user "F.Courtyard")
(29 "B.CrtYd" user "B.Courtyard")
(35 "F.Fab" user)
(33 "B.Fab" user)
(39 "User.1" user)
(41 "User.2" user)
(43 "User.3" user)
(45 "User.4" user)
)
(setup
(pad_to_mask_clearance 0)
(allow_soldermask_bridges_in_footprints no)
(tenting front back)
(aux_axis_origin 134.019 116.433)
(grid_origin 143.019 98.933)
(pcbplotparams
(layerselection 0x00000000_00000000_55555555_5755f5ff)
(plot_on_all_layers_selection 0x00000000_00000000_00000000_00000000)
(disableapertmacros no)
(usegerberextensions no)
(usegerberattributes yes)
(usegerberadvancedattributes yes)
(creategerberjobfile yes)
(dashed_line_dash_ratio 12.000000)
(dashed_line_gap_ratio 3.000000)
(svgprecision 4)
(plotframeref no)
(mode 1)
(useauxorigin no)
(hpglpennumber 1)
(hpglpenspeed 20)
(hpglpendiameter 15.000000)
(pdf_front_fp_property_popups yes)
(pdf_back_fp_property_popups yes)
(pdf_metadata yes)
(pdf_single_document no)
(dxfpolygonmode yes)
(dxfimperialunits yes)
(dxfusepcbnewfont yes)
(psnegative no)
(psa4output no)
(plot_black_and_white yes)
(sketchpadsonfab no)
(plotpadnumbers no)
(hidednponfab no)
(sketchdnponfab yes)
(crossoutdnponfab yes)
(subtractmaskfromsilk no)
(outputformat 1)
(mirror no)
(drillshape 1)
(scaleselection 1)
(outputdirectory "")
)
)
(net 0 "")
(gr_rect
(start 134.019 81.433)
(end 152.019 116.433)
(stroke
(width 0.05)
(type solid)
)
(fill no)
(layer "Edge.Cuts")
(uuid "fe18096d-9b0e-4e24-bab4-def8ea066e94")
)
(embedded_fonts no)
) )

View File

@@ -1,6 +1,6 @@
{ {
"board": { "board": {
"active_layer": 0, "active_layer": 25,
"active_layer_preset": "", "active_layer_preset": "",
"auto_track_width": true, "auto_track_width": true,
"hidden_netclasses": [], "hidden_netclasses": [],
@@ -62,9 +62,42 @@
"version": 5 "version": 5
}, },
"net_inspector_panel": { "net_inspector_panel": {
"col_hidden": [], "col_hidden": [
"col_order": [], false,
"col_widths": [], false,
false,
false,
false,
false,
false,
false,
false,
false
],
"col_order": [
0,
1,
2,
3,
4,
5,
6,
7,
8,
9
],
"col_widths": [
0,
0,
0,
0,
0,
0,
0,
0,
0,
0
],
"custom_group_rules": [], "custom_group_rules": [],
"expanded_rows": [], "expanded_rows": [],
"filter_by_net_name": true, "filter_by_net_name": true,
@@ -75,7 +108,7 @@
"show_unconnected_nets": false, "show_unconnected_nets": false,
"show_zero_pad_nets": false, "show_zero_pad_nets": false,
"sort_ascending": true, "sort_ascending": true,
"sorting_column": -1 "sorting_column": 0
}, },
"open_jobsets": [], "open_jobsets": [],
"project": { "project": {

View File

@@ -2,12 +2,213 @@
"board": { "board": {
"3dviewports": [], "3dviewports": [],
"design_settings": { "design_settings": {
"defaults": {}, "defaults": {
"apply_defaults_to_fp_fields": false,
"apply_defaults_to_fp_shapes": false,
"apply_defaults_to_fp_text": false,
"board_outline_line_width": 0.05,
"copper_line_width": 0.2,
"copper_text_italic": false,
"copper_text_size_h": 1.5,
"copper_text_size_v": 1.5,
"copper_text_thickness": 0.3,
"copper_text_upright": false,
"courtyard_line_width": 0.05,
"dimension_precision": 4,
"dimension_units": 3,
"dimensions": {
"arrow_length": 1270000,
"extension_offset": 500000,
"keep_text_aligned": true,
"suppress_zeroes": true,
"text_position": 0,
"units_format": 0
},
"fab_line_width": 0.1,
"fab_text_italic": false,
"fab_text_size_h": 1.0,
"fab_text_size_v": 1.0,
"fab_text_thickness": 0.15,
"fab_text_upright": false,
"other_line_width": 0.1,
"other_text_italic": false,
"other_text_size_h": 1.0,
"other_text_size_v": 1.0,
"other_text_thickness": 0.15,
"other_text_upright": false,
"pads": {
"drill": 0.8,
"height": 1.27,
"width": 2.54
},
"silk_line_width": 0.1,
"silk_text_italic": false,
"silk_text_size_h": 1.0,
"silk_text_size_v": 1.0,
"silk_text_thickness": 0.1,
"silk_text_upright": false,
"zones": {
"min_clearance": 0.5
}
},
"diff_pair_dimensions": [], "diff_pair_dimensions": [],
"drc_exclusions": [], "drc_exclusions": [],
"rules": {}, "meta": {
"version": 2
},
"rule_severities": {
"annular_width": "error",
"clearance": "error",
"connection_width": "warning",
"copper_edge_clearance": "error",
"copper_sliver": "warning",
"courtyards_overlap": "error",
"creepage": "error",
"diff_pair_gap_out_of_range": "error",
"diff_pair_uncoupled_length_too_long": "error",
"drill_out_of_range": "error",
"duplicate_footprints": "warning",
"extra_footprint": "warning",
"footprint": "error",
"footprint_filters_mismatch": "ignore",
"footprint_symbol_mismatch": "warning",
"footprint_type_mismatch": "ignore",
"hole_clearance": "error",
"hole_to_hole": "warning",
"holes_co_located": "warning",
"invalid_outline": "error",
"isolated_copper": "warning",
"item_on_disabled_layer": "error",
"items_not_allowed": "error",
"length_out_of_range": "error",
"lib_footprint_issues": "warning",
"lib_footprint_mismatch": "warning",
"malformed_courtyard": "error",
"microvia_drill_out_of_range": "error",
"mirrored_text_on_front_layer": "warning",
"missing_courtyard": "ignore",
"missing_footprint": "warning",
"net_conflict": "warning",
"nonmirrored_text_on_back_layer": "warning",
"npth_inside_courtyard": "ignore",
"padstack": "warning",
"pth_inside_courtyard": "ignore",
"shorting_items": "error",
"silk_edge_clearance": "warning",
"silk_over_copper": "warning",
"silk_overlap": "warning",
"skew_out_of_range": "error",
"solder_mask_bridge": "error",
"starved_thermal": "error",
"text_height": "warning",
"text_on_edge_cuts": "error",
"text_thickness": "warning",
"through_hole_pad_without_hole": "error",
"too_many_vias": "error",
"track_angle": "error",
"track_dangling": "warning",
"track_segment_length": "error",
"track_width": "error",
"tracks_crossing": "error",
"unconnected_items": "error",
"unresolved_variable": "error",
"via_dangling": "warning",
"zones_intersect": "error"
},
"rules": {
"max_error": 0.005,
"min_clearance": 0.0,
"min_connection": 0.0,
"min_copper_edge_clearance": 0.5,
"min_groove_width": 0.0,
"min_hole_clearance": 0.25,
"min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.2,
"min_microvia_drill": 0.1,
"min_resolved_spokes": 2,
"min_silk_clearance": 0.0,
"min_text_height": 0.8,
"min_text_thickness": 0.08,
"min_through_hole_diameter": 0.3,
"min_track_width": 0.0,
"min_via_annular_width": 0.1,
"min_via_diameter": 0.5,
"solder_mask_to_copper_clearance": 0.0,
"use_height_for_length_calcs": true
},
"teardrop_options": [
{
"td_onpthpad": true,
"td_onroundshapesonly": false,
"td_onsmdpad": true,
"td_ontrackend": false,
"td_onvia": true
}
],
"teardrop_parameters": [
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_round_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_rect_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_track_end",
"td_width_to_size_filter_ratio": 0.9
}
],
"track_widths": [], "track_widths": [],
"via_dimensions": [] "tuning_pattern_settings": {
"diff_pair_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 1.0
},
"diff_pair_skew_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
},
"single_track_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
}
},
"via_dimensions": [],
"zones_allow_external_fillets": false
}, },
"ipc2581": { "ipc2581": {
"dist": "", "dist": "",
@@ -416,6 +617,22 @@
[ [
"3f625fbe-0d7d-4f9d-a789-e3d398a1e499", "3f625fbe-0d7d-4f9d-a789-e3d398a1e499",
"MCU" "MCU"
],
[
"3b69b8b5-74b9-4ef8-b089-9f6703a47935",
"Pressure Sensor"
],
[
"1545cd58-ec56-43ca-991f-528eab9b04ea",
"USB"
],
[
"be3c13b5-9ed7-48d7-9628-fcde8ceb3f83",
"Battery"
],
[
"e94fe28b-7032-4620-a8c2-7db10727010e",
"MicroSD Card"
] ]
], ],
"text_variables": {} "text_variables": {}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1 @@
0

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

105
sw/sw.ioc
View File

@@ -7,27 +7,35 @@ GPIO.groupedBy=
KeepUserPlacement=false KeepUserPlacement=false
Mcu.CPN=STM32L4Q5CGT6 Mcu.CPN=STM32L4Q5CGT6
Mcu.Family=STM32L4 Mcu.Family=STM32L4
Mcu.IP0=FATFS Mcu.IP0=NVIC
Mcu.IP1=NVIC Mcu.IP1=RCC
Mcu.IP2=RCC Mcu.IP2=SPI1
Mcu.IP3=SDMMC2 Mcu.IP3=SPI3
Mcu.IP4=SPI1 Mcu.IP4=SYS
Mcu.IP5=SYS Mcu.IP5=USART1
Mcu.IP6=USB_OTG_FS Mcu.IP6=USB_OTG_FS
Mcu.IPNb=7 Mcu.IPNb=7
Mcu.Name=STM32L4Q5CGTx Mcu.Name=STM32L4Q5CGTx
Mcu.Package=LQFP48 Mcu.Package=LQFP48
Mcu.Pin0=PA1 Mcu.Pin0=PA5
Mcu.Pin1=PA5 Mcu.Pin1=PA6
Mcu.Pin2=PA6 Mcu.Pin10=PA14 (JTCK/SWCLK)
Mcu.Pin3=PA7 Mcu.Pin11=PA15 (JTDI)
Mcu.Pin12=PB3 (JTDO/TRACESWO)
Mcu.Pin13=PB4 (NJTRST)
Mcu.Pin14=PB5
Mcu.Pin15=PB6
Mcu.Pin16=PB7
Mcu.Pin17=VP_SYS_VS_Systick
Mcu.Pin2=PA7
Mcu.Pin3=PB0
Mcu.Pin4=PB12 Mcu.Pin4=PB12
Mcu.Pin5=PB14 Mcu.Pin5=PA9
Mcu.Pin6=PA11 Mcu.Pin6=PA10
Mcu.Pin7=PA12 Mcu.Pin7=PA11
Mcu.Pin8=VP_FATFS_VS_SDIO Mcu.Pin8=PA12
Mcu.Pin9=VP_SYS_VS_Systick Mcu.Pin9=PA13 (JTMS/SWDIO)
Mcu.PinsNb=10 Mcu.PinsNb=18
Mcu.ThirdPartyNb=0 Mcu.ThirdPartyNb=0
Mcu.UserConstants= Mcu.UserConstants=
Mcu.UserName=STM32L4Q5CGTx Mcu.UserName=STM32L4Q5CGTx
@@ -44,22 +52,64 @@ NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true\:false NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true\:false
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false
PA1.Mode=SD_1_bit PA10.Mode=Asynchronous
PA1.Signal=SDMMC2_CMD PA10.Signal=USART1_RX
PA11.Mode=Device_Only PA11.Mode=Device_Only
PA11.Signal=USB_OTG_FS_DM PA11.Signal=USB_OTG_FS_DM
PA12.Mode=Device_Only PA12.Mode=Device_Only
PA12.Signal=USB_OTG_FS_DP PA12.Signal=USB_OTG_FS_DP
PA13\ (JTMS/SWDIO).Locked=true
PA13\ (JTMS/SWDIO).Mode=Serial_Wire
PA13\ (JTMS/SWDIO).Signal=SYS_JTMS-SWDIO
PA14\ (JTCK/SWCLK).Locked=true
PA14\ (JTCK/SWCLK).Mode=Serial_Wire
PA14\ (JTCK/SWCLK).Signal=SYS_JTCK-SWCLK
PA15\ (JTDI).GPIOParameters=GPIO_Label
PA15\ (JTDI).GPIO_Label=FLASH_CS
PA15\ (JTDI).Locked=true
PA15\ (JTDI).Signal=GPIO_Output
PA5.GPIOParameters=GPIO_Label
PA5.GPIO_Label=PRES_SCK
PA5.Mode=Full_Duplex_Master PA5.Mode=Full_Duplex_Master
PA5.Signal=SPI1_SCK PA5.Signal=SPI1_SCK
PA6.GPIOParameters=GPIO_Label
PA6.GPIO_Label=PRES_MISO
PA6.Mode=Full_Duplex_Master PA6.Mode=Full_Duplex_Master
PA6.Signal=SPI1_MISO PA6.Signal=SPI1_MISO
PA7.GPIOParameters=GPIO_Label
PA7.GPIO_Label=PRES_MOSI
PA7.Mode=Full_Duplex_Master PA7.Mode=Full_Duplex_Master
PA7.Signal=SPI1_MOSI PA7.Signal=SPI1_MOSI
PB12.Mode=SD_1_bit PA9.Mode=Asynchronous
PB12.Signal=SDMMC2_CK PA9.Signal=USART1_TX
PB14.Mode=SD_1_bit PB0.GPIOParameters=GPIO_Label
PB14.Signal=SDMMC2_D0 PB0.GPIO_Label=PRES_CS
PB0.Locked=true
PB0.Signal=GPIO_Output
PB12.GPIOParameters=GPIO_Label
PB12.GPIO_Label=DEBUG_LED
PB12.Locked=true
PB12.Signal=GPIO_Output
PB3\ (JTDO/TRACESWO).GPIOParameters=GPIO_Label
PB3\ (JTDO/TRACESWO).GPIO_Label=FLASH_SCK
PB3\ (JTDO/TRACESWO).Mode=Full_Duplex_Master
PB3\ (JTDO/TRACESWO).Signal=SPI3_SCK
PB4\ (NJTRST).GPIOParameters=GPIO_Label
PB4\ (NJTRST).GPIO_Label=FLASH_MISO
PB4\ (NJTRST).Mode=Full_Duplex_Master
PB4\ (NJTRST).Signal=SPI3_MISO
PB5.GPIOParameters=GPIO_Label
PB5.GPIO_Label=FLASH_MOSI
PB5.Mode=Full_Duplex_Master
PB5.Signal=SPI3_MOSI
PB6.GPIOParameters=GPIO_Label
PB6.GPIO_Label=FLASH_RST
PB6.Locked=true
PB6.Signal=GPIO_Output
PB7.GPIOParameters=GPIO_Label
PB7.GPIO_Label=FLASH_WP
PB7.Locked=true
PB7.Signal=GPIO_Output
PinOutPanel.RotationAngle=0 PinOutPanel.RotationAngle=0
ProjectManager.AskForMigrate=true ProjectManager.AskForMigrate=true
ProjectManager.BackupPrevious=false ProjectManager.BackupPrevious=false
@@ -92,7 +142,7 @@ ProjectManager.ToolChainLocation=
ProjectManager.UAScriptAfterPath= ProjectManager.UAScriptAfterPath=
ProjectManager.UAScriptBeforePath= ProjectManager.UAScriptBeforePath=
ProjectManager.UnderRoot=false ProjectManager.UnderRoot=false
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_SDMMC2_SD_Init-SDMMC2-false-HAL-true,4-MX_SPI1_Init-SPI1-false-HAL-true,5-MX_FATFS_Init-FATFS-false-HAL-false,6-MX_USB_OTG_FS_PCD_Init-USB_OTG_FS-false-HAL-true ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_SPI1_Init-SPI1-false-HAL-true,4-MX_USB_OTG_FS_PCD_Init-USB_OTG_FS-false-HAL-true,5-MX_SPI3_Init-SPI3-false-HAL-true,6-MX_USART1_UART_Init-USART1-false-HAL-true
RCC.ADCFreq_Value=48000000 RCC.ADCFreq_Value=48000000
RCC.AHBFreq_Value=120000000 RCC.AHBFreq_Value=120000000
RCC.APB1Freq_Value=120000000 RCC.APB1Freq_Value=120000000
@@ -158,10 +208,15 @@ SPI1.Direction=SPI_DIRECTION_2LINES
SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate
SPI1.Mode=SPI_MODE_MASTER SPI1.Mode=SPI_MODE_MASTER
SPI1.VirtualType=VM_MASTER SPI1.VirtualType=VM_MASTER
SPI3.CalculateBaudRate=60.0 MBits/s
SPI3.Direction=SPI_DIRECTION_2LINES
SPI3.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate
SPI3.Mode=SPI_MODE_MASTER
SPI3.VirtualType=VM_MASTER
USART1.IPParameters=VirtualMode-Asynchronous
USART1.VirtualMode-Asynchronous=VM_ASYNC
USB_OTG_FS.IPParameters=VirtualMode USB_OTG_FS.IPParameters=VirtualMode
USB_OTG_FS.VirtualMode=Device_Only USB_OTG_FS.VirtualMode=Device_Only
VP_FATFS_VS_SDIO.Mode=SDIO
VP_FATFS_VS_SDIO.Signal=FATFS_VS_SDIO
VP_SYS_VS_Systick.Mode=SysTick VP_SYS_VS_Systick.Mode=SysTick
VP_SYS_VS_Systick.Signal=SYS_VS_Systick VP_SYS_VS_Systick.Signal=SYS_VS_Systick
board=custom board=custom