Skip to content
This repository was archived by the owner on Nov 11, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,53 @@

This repository holds the designs for various hardware prototypes.

## kicad_rs sample usage

First, `cd tools/kicad/kicad_rs` when running from source.

### Evaluator

Reads from Stdin: No
Writes to Stdout: No
Command line arguments:

1. Schematic file to evaluate, will update in-place

```bash
# This command will update the file in place
cargo run --bin=evaluator ../../../hat-psu/hat-psu/BD9E302EFJ-5V1.sch
```

### Parser

Reads from Stdin: No
Writes to Stdout: Yes
Command line arguments:

1. Schematic file to parse

```bash
# Or any other .sch file. This command writes to stdout, you can save it in a
# file like this or pipe it to the classifier.
cargo run --bin=parser ../../../hat-psu/hat-psu/BD9E302EFJ-5V1.sch > parsed.yaml
```

### Classifier

Reads from Stdin: Yes
Writes to Stdout: Yes
Command line arguments:

1. Policy file written in CUE to use. A sample file is given in `tools/kicad/kicad_rs/sample_policy.cue`

```bash
# Read from the parsed file like this and save to a file, or...
cat parsed.yaml | cargo run --bin=classifier sample_policy.cue > classified.yaml

# ... pipe the output from the parser like this (writes to stdout)
cargo run --bin=parser ../../../hat-psu/hat-psu/BD9E302EFJ-5V1.sch | cargo run --bin=classifier sample_policy.cue
```

## Contributing

Please see [CONTRIBUTING.md](CONTRIBUTING.md) and our [Code Of Conduct](CODE_OF_CONDUCT.md).
Expand Down
118 changes: 76 additions & 42 deletions hat-psu/hat-psu/BD9E302EFJ-5V1.sch
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ EELAYER 30 0
EELAYER END
$Descr A4 11693 8268
encoding utf-8
Sheet 5 5
Sheet 2 2
Title "Compute unit HAT attachment"
Date "2021-06-13"
Rev "0.1.1"
Expand All @@ -14,28 +14,33 @@ Comment3 "https://github.com/racklet/racklet"
Comment4 "Author: Verneri Hirvonen"
$EndDescr
$Comp
L Device:L L?
L Device:L L2
U 1 1 60A118D6
P 6700 3600
AR Path="/60A118D6" Ref="L?" Part="1"
AR Path="/60A118D6" Ref="L2" Part="1"
AR Path="/60A0E5A4/60A118D6" Ref="L2" Part="1"
F 0 "L2" V 6890 3600 50 0000 C CNN
F 1 "8.2u" V 6799 3600 50 0000 C CNN
AR Path="/60F06CF1/60A118D6" Ref="L?" Part="1"
F 0 "L?" V 6890 3600 50 0000 C CNN
F 1 "8.2" V 6799 3600 50 0000 C CNN
F 2 "racklet:DEM8045C" H 6700 3600 50 0001 C CNN
F 3 "https://media.digikey.com/pdf/Data%20Sheets/Murata%20PDFs/DEMO80(30,40,45)C%20Type.pdf" H 6700 3600 50 0001 C CNN
F 4 "true" V 6700 3600 50 0001 C CNN "ICCC_Show"
F 5 "8.2" V 6700 3600 50 0001 C CNN "value_expr"
1 6700 3600
0 -1 -1 0
$EndComp
Text Notes 4600 4650 0 50 ~ 0
Should AGND\nhave a separate\nground plane?
$Comp
L Device:C_Small C6
L Device:C_Small C?
U 1 1 60A1617F
P 7150 3750
F 0 "C6" H 7242 3796 50 0000 L CNN
F 1 "47u" H 7242 3705 50 0000 L CNN
F 0 "C?" H 7242 3796 50 0000 L CNN
F 1 "47" H 7242 3705 50 0000 L CNN
F 2 "Capacitor_SMD:C_1206_3216Metric" H 7150 3750 50 0001 C CNN
F 3 "~" H 7150 3750 50 0001 C CNN
F 4 "true" H 7150 3750 50 0001 C CNN "ICCC_Show"
F 5 "47" H 7150 3750 50 0001 C CNN "value_expr"
1 7150 3750
1 0 0 -1
$EndComp
Expand All @@ -47,10 +52,10 @@ Wire Wire Line
7150 3600 7700 3600
Connection ~ 7150 3600
$Comp
L power:GND #PWR010
L power:GND #PWR?
U 1 1 60A17059
P 7700 4550
F 0 "#PWR010" H 7700 4300 50 0001 C CNN
F 0 "#PWR?" H 7700 4300 50 0001 C CNN
F 1 "GND" H 7705 4377 50 0000 C CNN
F 2 "" H 7700 4550 50 0001 C CNN
F 3 "" H 7700 4550 50 0001 C CNN
Expand All @@ -67,13 +72,15 @@ Connection ~ 7700 3600
Wire Wire Line
7700 3600 8050 3600
$Comp
L Device:C_Small C7
L Device:C_Small C?
U 1 1 60A1779A
P 8050 4100
F 0 "C7" H 8142 4146 50 0000 L CNN
F 1 "15p" H 8142 4055 50 0000 L CNN
F 0 "C?" H 8142 4146 50 0000 L CNN
F 1 "15" H 8142 4055 50 0000 L CNN
F 2 "Capacitor_SMD:C_0603_1608Metric" H 8050 4100 50 0001 C CNN
F 3 "~" H 8050 4100 50 0001 C CNN
F 4 "true" H 8050 4100 50 0001 C CNN "ICCC_Show"
F 5 "15" H 8050 4100 50 0001 C CNN "value_expr"
1 8050 4100
1 0 0 -1
$EndComp
Expand All @@ -92,10 +99,10 @@ Connection ~ 7700 4250
Wire Wire Line
7700 4250 7700 4200
$Comp
L power:GND #PWR09
L power:GND #PWR?
U 1 1 60A1950D
P 7150 3900
F 0 "#PWR09" H 7150 3650 50 0001 C CNN
F 0 "#PWR?" H 7150 3650 50 0001 C CNN
F 1 "GND" H 7155 3727 50 0000 C CNN
F 2 "" H 7150 3900 50 0001 C CNN
F 3 "" H 7150 3900 50 0001 C CNN
Expand All @@ -105,13 +112,15 @@ $EndComp
Wire Wire Line
7150 3900 7150 3850
$Comp
L Device:C_Small C5
L Device:C_Small C?
U 1 1 60A1C127
P 6300 4050
F 0 "C5" H 6392 4096 50 0000 L CNN
F 1 "5600p" H 6392 4005 50 0000 L CNN
F 0 "C?" H 6392 4096 50 0000 L CNN
F 1 "5600" H 6392 4005 50 0000 L CNN
F 2 "Capacitor_SMD:C_0603_1608Metric" H 6300 4050 50 0001 C CNN
F 3 "~" H 6300 4050 50 0001 C CNN
F 4 "true" H 6300 4050 50 0001 C CNN "ICCC_Show"
F 5 "5600" H 6300 4050 50 0001 C CNN "value_expr"
1 6300 4050
1 0 0 -1
$EndComp
Expand All @@ -120,9 +129,13 @@ L Device:R_Small R6
U 1 1 60A1CEC4
P 6300 4300
F 0 "R6" H 6241 4254 50 0000 R CNN
F 1 "16.2k" H 6241 4345 50 0000 R CNN
F 1 "8.1" H 6241 4345 50 0000 R CNN
F 2 "Resistor_SMD:R_0603_1608Metric" H 6300 4300 50 0001 C CNN
F 3 "~" H 6300 4300 50 0001 C CNN
F 4 "true" H 6300 4300 50 0001 C CNN "ICCC_Show"
F 5 "16.2/2" H 6300 4300 50 0001 C CNN "value_expr"
F 6 "R7.Value/500.0" H 6300 4300 50 0001 C CNN "tolerance_expr"
F 7 "1.098" H 6300 4300 50 0001 C CNN "tolerance"
1 6300 4300
-1 0 0 1
$EndComp
Expand All @@ -131,20 +144,24 @@ L Device:R_Small R7
U 1 1 60A1D4C6
P 7700 4100
F 0 "R7" H 7641 4054 50 0000 R CNN
F 1 "549k" H 7641 4145 50 0000 R CNN
F 1 "549" H 7641 4145 50 0000 R CNN
F 2 "Resistor_SMD:R_0603_1608Metric" H 7700 4100 50 0001 C CNN
F 3 "~" H 7700 4100 50 0001 C CNN
F 4 "true" H 7700 4100 50 0001 C CNN "ICCC_Show"
F 5 "549" H 7700 4100 50 0001 C CNN "value_expr"
1 7700 4100
-1 0 0 1
$EndComp
$Comp
L Device:R_Small R8
L Device:R_Small R?
U 1 1 60A1DFD2
P 7700 4400
F 0 "R8" H 7641 4354 50 0000 R CNN
F 1 "102k" H 7641 4445 50 0000 R CNN
F 0 "R?" H 7641 4354 50 0000 R CNN
F 1 "102" H 7641 4445 50 0000 R CNN
F 2 "Resistor_SMD:R_0603_1608Metric" H 7700 4400 50 0001 C CNN
F 3 "~" H 7700 4400 50 0001 C CNN
F 4 "true" H 7700 4400 50 0001 C CNN "ICCC_Show"
F 5 "102" H 7700 4400 50 0001 C CNN "value_expr"
1 7700 4400
-1 0 0 1
$EndComp
Expand All @@ -157,10 +174,10 @@ Wire Wire Line
Wire Wire Line
6300 4450 6300 4400
$Comp
L power:GND #PWR07
L power:GND #PWR?
U 1 1 60A21A70
P 6300 4450
F 0 "#PWR07" H 6300 4200 50 0001 C CNN
F 0 "#PWR?" H 6300 4200 50 0001 C CNN
F 1 "GND" H 6305 4277 50 0000 C CNN
F 2 "" H 6300 4450 50 0001 C CNN
F 3 "" H 6300 4450 50 0001 C CNN
Expand All @@ -170,21 +187,27 @@ $EndComp
Wire Wire Line
7700 4250 7550 4250
$Comp
L Device:C_Small C3
L Device:C_Small C?
U 1 1 60A2522A
P 3900 4000
F 0 "C3" H 3992 4046 50 0000 L CNN
F 1 "0.1u" H 3992 3955 50 0000 L CNN
F 0 "C?" H 3992 4046 50 0000 L CNN
F 1 "0.1" H 3992 3955 50 0000 L CNN
F 2 "Capacitor_SMD:C_0603_1608Metric" H 3900 4000 50 0001 C CNN
F 3 "~" H 3900 4000 50 0001 C CNN
F 4 "true" H 3900 4000 50 0001 C CNN "ICCC_Show"
F 5 "0.1" H 3900 4000 50 0001 C CNN "value_expr"
F 6 "35" H 3900 4000 50 0001 C CNN "voltagerating_expr"
F 7 "V" H 3900 4000 50 0001 C CNN "voltagerating_unit"
F 8 "35 V" H 3900 4000 50 0001 C CNN "voltagerating"
F 9 "Must be at least as large as the input voltage" H 3900 4000 50 0001 C CNN "voltagerating_comment"
1 3900 4000
1 0 0 -1
$EndComp
$Comp
L power:GND #PWR02
L power:GND #PWR?
U 1 1 60A25F03
P 3700 4300
F 0 "#PWR02" H 3700 4050 50 0001 C CNN
F 0 "#PWR?" H 3700 4050 50 0001 C CNN
F 1 "GND" H 3705 4127 50 0000 C CNN
F 2 "" H 3700 4300 50 0001 C CNN
F 3 "" H 3700 4300 50 0001 C CNN
Expand All @@ -201,10 +224,10 @@ Wire Wire Line
Wire Wire Line
3500 4250 3700 4250
$Comp
L power:GND #PWR06
L power:GND #PWR?
U 1 1 60A1408D
P 4650 3950
F 0 "#PWR06" H 4650 3700 50 0001 C CNN
F 0 "#PWR?" H 4650 3700 50 0001 C CNN
F 1 "GND" H 4655 3777 50 0000 C CNN
F 2 "" H 4650 3950 50 0001 C CNN
F 3 "" H 4650 3950 50 0001 C CNN
Expand All @@ -222,13 +245,15 @@ VOUT
Text HLabel 3300 3700 0 50 Input ~ 0
VIN
$Comp
L Device:C_Small C4
L Device:C_Small C?
U 1 1 60A2ECA9
P 5350 3050
F 0 "C4" V 5121 3050 50 0000 C CNN
F 1 "0.1u" V 5212 3050 50 0000 C CNN
F 0 "C?" V 5121 3050 50 0000 C CNN
F 1 "0.1" V 5212 3050 50 0000 C CNN
F 2 "Capacitor_SMD:C_0603_1608Metric" H 5350 3050 50 0001 C CNN
F 3 "~" H 5350 3050 50 0001 C CNN
F 4 "true" V 5350 3050 50 0001 C CNN "ICCC_Show"
F 5 "0.1" V 5350 3050 50 0001 C CNN "value_expr"
1 5350 3050
0 1 1 0
$EndComp
Expand Down Expand Up @@ -263,21 +288,24 @@ Wire Wire Line
Wire Wire Line
3500 3900 3500 3700
$Comp
L Device:C_Small C2
L Device:C_Small C?
U 1 1 60A24C15
P 3500 4000
F 0 "C2" H 3592 4046 50 0000 L CNN
F 1 "10u" H 3592 3955 50 0000 L CNN
F 0 "C?" H 3592 4046 50 0000 L CNN
F 1 "10 F" H 3592 3955 50 0000 L CNN
F 2 "Capacitor_SMD:C_1206_3216Metric" H 3500 4000 50 0001 C CNN
F 3 "~" H 3500 4000 50 0001 C CNN
F 4 "true" H 3500 4000 50 0001 C CNN "ICCC_Show"
F 5 "C3.Value*100" H 3500 4000 50 0001 C CNN "value_expr"
F 6 "F" H 3500 4000 50 0001 C CNN "value_unit"
1 3500 4000
1 0 0 -1
$EndComp
$Comp
L power:GND #PWR08
L power:GND #PWR?
U 1 1 60A7FBCB
P 6450 3700
F 0 "#PWR08" H 6450 3450 50 0001 C CNN
F 0 "#PWR?" H 6450 3450 50 0001 C CNN
F 1 "GND" H 6455 3527 50 0000 C CNN
F 2 "" H 6450 3700 50 0001 C CNN
F 3 "" H 6450 3700 50 0001 C CNN
Expand All @@ -294,13 +322,19 @@ Connection ~ 5900 3700
Wire Wire Line
5900 3700 5800 3700
$Comp
L racklet:BD9E302EFJ-E2 U2
L racklet:BD9E302EFJ-E2 U?
U 1 1 60C766A3
P 5300 3750
F 0 "U2" H 5275 4265 50 0000 C CNN
F 0 "U?" H 5275 4265 50 0000 C CNN
F 1 "BD9E302EFJ-E2" H 5275 4174 50 0000 C CNN
F 2 "Package_SO:HTSOP-8-1EP_3.9x4.9mm_P1.27mm_EP2.4x3.2mm_ThermalVias" H 5200 4250 50 0001 C CNN
F 3 "https://fscdn.rohm.com/en/products/databook/datasheet/ic/power/switching_regulator/bd9e302efj-e.pdf" H 5200 3750 50 0001 C CNN
F 4 "true" H 5300 3750 50 0001 C CNN "ICCC_Show"
F 5 "BD9E302EFJ-E2" H 5300 3750 50 0001 C CNN "Model"
F 6 "3" H 5300 3750 50 0001 C CNN "currentoutput_min_expr"
F 7 "3" H 5300 3750 50 0001 C CNN "currentOutput_min"
F 8 "12" H 5300 3750 50 0001 C CNN "min_vin_max_expr"
F 9 "24" H 5300 3750 50 0001 C CNN "max_vin_min_expr"
1 5300 3750
1 0 0 -1
$EndComp
Expand Down
8 changes: 7 additions & 1 deletion hat-psu/hat-psu/BMC.sch
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ EELAYER 30 0
EELAYER END
$Descr A4 11693 8268
encoding utf-8
Sheet 4 5
Sheet 1 2
Title "Compute unit HAT attachment"
Date "2021-06-13"
Rev "0.1.1"
Expand Down Expand Up @@ -167,4 +167,10 @@ Wire Wire Line
4000 5450 3250 5450
Text HLabel 3250 5450 0 50 Input ~ 0
3V3
$Sheet
S 7700 3750 950 350
U 60F06CF1
F0 "BD9E302EFJ" 50
F1 "BD9E302EFJ-5V1.sch" 50
$EndSheet
$EndSCHEMATC
1 change: 1 addition & 0 deletions tools/kicad/kicad_rs/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,4 @@ kicad_parse_gen = { git = "https://github.com/productize/kicad-parse-gen", branc
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
serde_yaml = "0.8"
tempfile = "3.2"
Loading