breadkit 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/.codespellignore +2 -0
  3. data/.yamllint +16 -0
  4. data/README.md +109 -6
  5. data/data/boards/double_full.yml +18 -0
  6. data/data/boards/stripboard.yml +9 -0
  7. data/data/boards/universal.yml +8 -0
  8. data/data/parts/2n3904.yml +11 -0
  9. data/data/parts/2n7000_onsemi_to92.yml +10 -0
  10. data/data/parts/74hc00.yml +22 -0
  11. data/data/parts/74hc04.yml +22 -0
  12. data/data/parts/74hc08.yml +22 -0
  13. data/data/parts/74hc14.yml +22 -0
  14. data/data/parts/74hc165.yml +24 -0
  15. data/data/parts/74hc32.yml +22 -0
  16. data/data/parts/74hc595.yml +24 -0
  17. data/data/parts/active_buzzer.yml +8 -0
  18. data/data/parts/ams1117_3v3.yml +12 -0
  19. data/data/parts/arduino_nano.yml +70 -0
  20. data/data/parts/arduino_uno.yml +29 -26
  21. data/data/parts/atmega328p.yml +37 -0
  22. data/data/parts/attiny85.yml +16 -0
  23. data/data/parts/battery_box.yml +8 -0
  24. data/data/parts/cd4017.yml +24 -0
  25. data/data/parts/ck_bd04.yml +29 -0
  26. data/data/parts/crystal.yml +7 -0
  27. data/data/parts/dc_jack_2wire.yml +8 -0
  28. data/data/parts/diode.yml +1 -0
  29. data/data/parts/esp32_devkitc_v4_wroom32e.yml +86 -0
  30. data/data/parts/irlz44n.yml +10 -0
  31. data/data/parts/l293d.yml +24 -0
  32. data/data/parts/led.yml +1 -0
  33. data/data/parts/lm358.yml +16 -0
  34. data/data/parts/lm393.yml +16 -0
  35. data/data/parts/ne555.yml +2 -2
  36. data/data/parts/ntc_thermistor.yml +7 -0
  37. data/data/parts/photoresistor.yml +8 -0
  38. data/data/parts/pico.yml +89 -0
  39. data/data/parts/resistor.yml +1 -0
  40. data/data/parts/sc56_11ewa.yml +30 -0
  41. data/data/parts/seeed_xiao_samd21.yml +37 -0
  42. data/data/parts/shillehtek_mb102_4pin.yml +23 -0
  43. data/data/parts/slide_switch_spst.yml +8 -0
  44. data/data/parts/sparkfun_pro_micro_5v.yml +58 -0
  45. data/data/parts/transistor.yml +0 -1
  46. data/data/parts/ua7805.yml +10 -0
  47. data/data/parts/uln2003a.yml +23 -0
  48. data/data/parts/wp154a4sureqbfzgc.yml +11 -0
  49. data/docs/CLI.md +108 -0
  50. data/docs/COMPATIBILITY.md +60 -0
  51. data/docs/DECLARATIVE.md +138 -0
  52. data/docs/IR.md +42 -0
  53. data/docs/JUMPER_KIT.md +45 -0
  54. data/docs/LOCK.md +75 -0
  55. data/docs/LSP.md +59 -0
  56. data/docs/MB102_POWER.md +11 -0
  57. data/docs/MCP.md +44 -0
  58. data/docs/RAKE.md +19 -0
  59. data/docs/dsl.md +197 -6
  60. data/exe/breadkit-lsp +13 -0
  61. data/exe/breadkit-mcp +12 -0
  62. data/lib/breadkit/analysis.rb +174 -50
  63. data/lib/breadkit/board.rb +152 -4
  64. data/lib/breadkit/cli.rb +229 -13
  65. data/lib/breadkit/color.rb +38 -0
  66. data/lib/breadkit/dc_analysis.rb +261 -0
  67. data/lib/breadkit/dsl.rb +205 -24
  68. data/lib/breadkit/exporters.rb +202 -0
  69. data/lib/breadkit/formatter.rb +52 -0
  70. data/lib/breadkit/fritzing_export.rb +256 -0
  71. data/lib/breadkit/ir.rb +154 -22
  72. data/lib/breadkit/jumper_kit.rb +127 -0
  73. data/lib/breadkit/lsp_server.rb +248 -0
  74. data/lib/breadkit/mcp_server.rb +133 -0
  75. data/lib/breadkit/model.rb +47 -5
  76. data/lib/breadkit/part_library.rb +156 -3
  77. data/lib/breadkit/part_lock.rb +107 -0
  78. data/lib/breadkit/patterns.rb +119 -0
  79. data/lib/breadkit/rake_task.rb +25 -0
  80. data/lib/breadkit/resolver.rb +160 -28
  81. data/lib/breadkit/structured_input.rb +275 -0
  82. data/lib/breadkit/templates/555.bk.rb +34 -0
  83. data/lib/breadkit/templates/arduino.bk.rb +17 -0
  84. data/lib/breadkit/templates/led.bk.rb +21 -0
  85. data/lib/breadkit/value.rb +42 -3
  86. data/lib/breadkit/version.rb +1 -1
  87. data/lib/breadkit/wire_suggestions.rb +106 -0
  88. data/lib/breadkit.rb +28 -3
  89. data/package.json +1 -1
  90. data/schema/board-v1.json +38 -0
  91. data/schema/ir-v1.json +56 -11
  92. data/schema/ir-v2.json +173 -0
  93. data/schema/part-v1.json +52 -4
  94. data/sig/breadkit.rbs +107 -5
  95. metadata +119 -14
  96. data/docs/assets/01_led_button.svg +0 -12
  97. data/site/assets/01_led_button.svg +0 -14
  98. data/site/assets/03_arduino_blink.svg +0 -14
  99. data/site/favicon.svg +0 -7
  100. data/site/guide/components/index.html +0 -113
  101. data/site/guide/dsl/index.html +0 -132
  102. data/site/guide/index.html +0 -163
  103. data/site/index.html +0 -95
  104. data/site/styles.css +0 -14
@@ -0,0 +1,29 @@
1
+ # Four separate SPST positions. PnA/PnB are logical position-side names, not manufacturer terminal numbers.
2
+ # The datasheet gives 7.55 mm between contact rows. Three breadboard pitches are 7.62 mm.
3
+ # https://www.littelfuse.com/assetdocs/littelfuse-ck-dip-bd-series-datasheet?assetguid=c1d4e4f2-7607-4309-afba-ad965b566d35
4
+ id: ck_bd04
5
+ category: switch
6
+ placement: footprint
7
+ straddle: true
8
+ datasheet_url: https://www.littelfuse.com/assetdocs/littelfuse-ck-dip-bd-series-datasheet?assetguid=c1d4e4f2-7607-4309-afba-ad965b566d35
9
+ pins:
10
+ - {num: P1A, type: passive}
11
+ - {num: P1B, type: passive}
12
+ - {num: P2A, type: passive}
13
+ - {num: P2B, type: passive}
14
+ - {num: P3A, type: passive}
15
+ - {num: P3B, type: passive}
16
+ - {num: P4A, type: passive}
17
+ - {num: P4B, type: passive}
18
+ footprint:
19
+ P1A: [0, 0]
20
+ P1B: [0, 3]
21
+ P2A: [1, 0]
22
+ P2B: [1, 3]
23
+ P3A: [2, 0]
24
+ P3B: [2, 3]
25
+ P4A: [3, 0]
26
+ P4B: [3, 3]
27
+ switch: [[P1A, P1B], [P2A, P2B], [P3A, P3B], [P4A, P4B]]
28
+ independent_switches: true
29
+ render: {shape: generic, label: C&K BD04}
@@ -0,0 +1,7 @@
1
+ id: crystal
2
+ category: passive
3
+ placement: leads
4
+ pins:
5
+ - {num: 1, name: "1", type: passive}
6
+ - {num: 2, name: "2", type: passive}
7
+ render: {shape: generic}
@@ -0,0 +1,8 @@
1
+ id: dc_jack_2wire
2
+ category: power
3
+ placement: offboard
4
+ pins:
5
+ - {num: 1, name: "POS", type: power}
6
+ - {num: 2, name: "NEG", type: ground}
7
+ polarity: {positive: POS, negative: NEG}
8
+ render: {shape: offboard, label: Dc Jack 2wire}
data/data/parts/diode.yml CHANGED
@@ -6,3 +6,4 @@ pins:
6
6
  - {num: 2, name: cathode, aliases: [k]}
7
7
  polarity: {positive: anode, negative: cathode}
8
8
  render: {shape: diode}
9
+ attributes: {bias: [forward, reverse]}
@@ -0,0 +1,86 @@
1
+ # https://docs.espressif.com/projects/esp-dev-kits/en/latest/esp32/esp32-devkitc/user_guide.html
2
+ # FLASH_* header pins are reserved for the module's SPI flash and must not be used for external wiring.
3
+ id: esp32_devkitc_v4_wroom32e
4
+ category: module
5
+ placement: footprint
6
+ straddle: true
7
+ pins:
8
+ - {num: 1, name: 3V3, type: power}
9
+ - {num: 2, name: EN, type: reset}
10
+ - {num: 3, name: VP, type: input, aliases: [GPIO36], max_voltage: 3.3}
11
+ - {num: 4, name: VN, type: input, aliases: [GPIO39], max_voltage: 3.3}
12
+ - {num: 5, name: IO34, type: input, aliases: [GPIO34], max_voltage: 3.3}
13
+ - {num: 6, name: IO35, type: input, aliases: [GPIO35], max_voltage: 3.3}
14
+ - {num: 7, name: IO32, type: gpio, aliases: [GPIO32], max_voltage: 3.3, output_capable: true}
15
+ - {num: 8, name: IO33, type: gpio, aliases: [GPIO33], max_voltage: 3.3, output_capable: true}
16
+ - {num: 9, name: IO25, type: gpio, aliases: [GPIO25], max_voltage: 3.3, output_capable: true}
17
+ - {num: 10, name: IO26, type: gpio, aliases: [GPIO26], max_voltage: 3.3, output_capable: true}
18
+ - {num: 11, name: IO27, type: gpio, aliases: [GPIO27], max_voltage: 3.3, output_capable: true}
19
+ - {num: 12, name: IO14, type: gpio, aliases: [GPIO14], max_voltage: 3.3, output_capable: true}
20
+ - {num: 13, name: IO12, type: gpio, aliases: [GPIO12], max_voltage: 3.3, output_capable: true}
21
+ - {num: 14, name: GND1, type: ground, aliases: [GND]}
22
+ - {num: 15, name: IO13, type: gpio, aliases: [GPIO13], max_voltage: 3.3, output_capable: true}
23
+ - {num: 16, name: FLASH_D2, type: data}
24
+ - {num: 17, name: FLASH_D3, type: data}
25
+ - {num: 18, name: FLASH_CMD, type: data}
26
+ - {num: 19, name: 5V, type: power}
27
+ - {num: 20, name: FLASH_CLK, type: data}
28
+ - {num: 21, name: FLASH_D0, type: data}
29
+ - {num: 22, name: FLASH_D1, type: data}
30
+ - {num: 23, name: IO15, type: gpio, aliases: [GPIO15], max_voltage: 3.3, output_capable: true}
31
+ - {num: 24, name: IO2, type: gpio, aliases: [GPIO2], max_voltage: 3.3, output_capable: true}
32
+ - {num: 25, name: IO0, type: gpio, aliases: [GPIO0], max_voltage: 3.3, output_capable: true}
33
+ - {num: 26, name: IO4, type: gpio, aliases: [GPIO4], max_voltage: 3.3, output_capable: true}
34
+ - {num: 27, name: IO16, type: gpio, aliases: [GPIO16], max_voltage: 3.3, output_capable: true}
35
+ - {num: 28, name: IO17, type: gpio, aliases: [GPIO17], max_voltage: 3.3, output_capable: true}
36
+ - {num: 29, name: IO5, type: gpio, aliases: [GPIO5], max_voltage: 3.3, output_capable: true}
37
+ - {num: 30, name: IO18, type: gpio, aliases: [GPIO18], max_voltage: 3.3, output_capable: true}
38
+ - {num: 31, name: IO19, type: gpio, aliases: [GPIO19], max_voltage: 3.3, output_capable: true}
39
+ - {num: 32, name: GND2, type: ground}
40
+ - {num: 33, name: IO21, type: gpio, aliases: [GPIO21], max_voltage: 3.3, output_capable: true}
41
+ - {num: 34, name: RX, type: gpio, max_voltage: 3.3, output_capable: true}
42
+ - {num: 35, name: TX, type: gpio, max_voltage: 3.3, output_capable: true}
43
+ - {num: 36, name: IO22, type: gpio, aliases: [GPIO22], max_voltage: 3.3, output_capable: true}
44
+ - {num: 37, name: IO23, type: gpio, aliases: [GPIO23], max_voltage: 3.3, output_capable: true}
45
+ - {num: 38, name: GND3, type: ground}
46
+ internal: [[GND1, GND2], [GND2, GND3]]
47
+ footprint:
48
+ "1": [0, 0]
49
+ "2": [1, 0]
50
+ "3": [2, 0]
51
+ "4": [3, 0]
52
+ "5": [4, 0]
53
+ "6": [5, 0]
54
+ "7": [6, 0]
55
+ "8": [7, 0]
56
+ "9": [8, 0]
57
+ "10": [9, 0]
58
+ "11": [10, 0]
59
+ "12": [11, 0]
60
+ "13": [12, 0]
61
+ "14": [13, 0]
62
+ "15": [14, 0]
63
+ "16": [15, 0]
64
+ "17": [16, 0]
65
+ "18": [17, 0]
66
+ "19": [18, 0]
67
+ "20": [18, 10]
68
+ "21": [17, 10]
69
+ "22": [16, 10]
70
+ "23": [15, 10]
71
+ "24": [14, 10]
72
+ "25": [13, 10]
73
+ "26": [12, 10]
74
+ "27": [11, 10]
75
+ "28": [10, 10]
76
+ "29": [9, 10]
77
+ "30": [8, 10]
78
+ "31": [7, 10]
79
+ "32": [6, 10]
80
+ "33": [5, 10]
81
+ "34": [4, 10]
82
+ "35": [3, 10]
83
+ "36": [2, 10]
84
+ "37": [1, 10]
85
+ "38": [0, 10]
86
+ render: {shape: module, label: ESP32 DevKitC V4, size_mm: [48.26, 27.94], fill: "#2C2C2A", stroke: "#171715", text_color: "#FFFFFF"}
@@ -0,0 +1,10 @@
1
+ # Infineon TO-220AB, front view: gate, drain, source.
2
+ # https://www.infineon.com/assets/row/public/documents/24/49/infineon-irlz44n-datasheet-en.pdf
3
+ id: irlz44n
4
+ category: mosfet
5
+ placement: leads
6
+ pins:
7
+ - {num: 1, name: gate, aliases: [g]}
8
+ - {num: 2, name: drain, aliases: [d]}
9
+ - {num: 3, name: source, aliases: [s]}
10
+ render: {shape: generic}
@@ -0,0 +1,24 @@
1
+ # https://www.ti.com/lit/ds/symlink/l293.pdf
2
+ id: l293d
3
+ category: ic
4
+ placement: dip
5
+ package: {pins: 16}
6
+ pins:
7
+ - {num: 1, name: EN12, type: input}
8
+ - {num: 2, name: 1A, type: input}
9
+ - {num: 3, name: 1Y, type: output}
10
+ - {num: 4, name: GND1, type: ground}
11
+ - {num: 5, name: GND2, type: ground}
12
+ - {num: 6, name: 2Y, type: output}
13
+ - {num: 7, name: 2A, type: input}
14
+ - {num: 8, name: VCC2, type: power}
15
+ - {num: 9, name: EN34, type: input}
16
+ - {num: 10, name: 3A, type: input}
17
+ - {num: 11, name: 3Y, type: output}
18
+ - {num: 12, name: GND3, type: ground}
19
+ - {num: 13, name: GND4, type: ground}
20
+ - {num: 14, name: 4Y, type: output}
21
+ - {num: 15, name: 4A, type: input}
22
+ - {num: 16, name: VCC1, type: power}
23
+ internal: [[GND1, GND2], [GND2, GND3], [GND3, GND4]]
24
+ render: {shape: dip, label: L293D}
data/data/parts/led.yml CHANGED
@@ -7,3 +7,4 @@ pins:
7
7
  polarity: {positive: anode, negative: cathode}
8
8
  flags: [needs_series_resistor]
9
9
  render: {shape: led_5mm}
10
+ attributes: {color: css_color, bias: [forward, reverse]}
@@ -0,0 +1,16 @@
1
+ # https://www.ti.com/lit/ds/symlink/lm358.pdf
2
+ id: lm358
3
+ category: ic
4
+ placement: dip
5
+ package: {pins: 8}
6
+ pins:
7
+ - {num: 1, name: OUT1, type: output}
8
+ - {num: 2, name: IN1_MINUS, type: input}
9
+ - {num: 3, name: IN1_PLUS, type: input}
10
+ - {num: 4, name: V_MINUS, type: power}
11
+ - {num: 5, name: IN2_PLUS, type: input}
12
+ - {num: 6, name: IN2_MINUS, type: input}
13
+ - {num: 7, name: OUT2, type: output}
14
+ - {num: 8, name: V_PLUS, type: power}
15
+ supply_range: [3, 30]
16
+ render: {shape: dip, label: LM358}
@@ -0,0 +1,16 @@
1
+ # https://www.ti.com/lit/ds/symlink/lm393.pdf
2
+ id: lm393
3
+ category: ic
4
+ placement: dip
5
+ package: {pins: 8}
6
+ pins:
7
+ - {num: 1, name: OUT1, type: open_drain}
8
+ - {num: 2, name: IN1_MINUS, type: input}
9
+ - {num: 3, name: IN1_PLUS, type: input}
10
+ - {num: 4, name: GND, type: ground}
11
+ - {num: 5, name: IN2_PLUS, type: input}
12
+ - {num: 6, name: IN2_MINUS, type: input}
13
+ - {num: 7, name: OUT2, type: open_drain}
14
+ - {num: 8, name: VCC, type: power}
15
+ supply_range: [2, 36]
16
+ render: {shape: dip, label: LM393}
data/data/parts/ne555.yml CHANGED
@@ -4,13 +4,13 @@ category: ic
4
4
  placement: dip
5
5
  package: {pins: 8}
6
6
  pins:
7
- - {num: 1, name: GND, role: ground}
7
+ - {num: 1, name: GND, type: ground}
8
8
  - {num: 2, name: TRIG}
9
9
  - {num: 3, name: OUT}
10
10
  - {num: 4, name: RESET}
11
11
  - {num: 5, name: CTRL}
12
12
  - {num: 6, name: THR}
13
13
  - {num: 7, name: DIS}
14
- - {num: 8, name: VCC, role: power}
14
+ - {num: 8, name: VCC, type: power}
15
15
  supply_range: [4.5, 16.0]
16
16
  render: {shape: dip, label: NE555}
@@ -0,0 +1,7 @@
1
+ id: ntc_thermistor
2
+ category: passive
3
+ placement: leads
4
+ pins:
5
+ - {num: 1, name: "1", type: passive}
6
+ - {num: 2, name: "2", type: passive}
7
+ render: {shape: generic}
@@ -0,0 +1,8 @@
1
+ id: photoresistor
2
+ aliases: [cds_cell, ldr]
3
+ category: passive
4
+ placement: leads
5
+ pins:
6
+ - {num: 1, name: "1", type: passive}
7
+ - {num: 2, name: "2", type: passive}
8
+ render: {shape: generic}
@@ -0,0 +1,89 @@
1
+ # https://datasheets.raspberrypi.com/pico/Pico-2-Pinout.pdf
2
+ id: pico
3
+ category: module
4
+ placement: footprint
5
+ straddle: true
6
+ pins:
7
+ - {num: 1, name: GP0, type: gpio, max_voltage: 3.3, output_capable: true}
8
+ - {num: 2, name: GP1, type: gpio, max_voltage: 3.3, output_capable: true}
9
+ - {num: 3, name: GND1, type: ground, aliases: [GND]}
10
+ - {num: 4, name: GP2, type: gpio, max_voltage: 3.3, output_capable: true}
11
+ - {num: 5, name: GP3, type: gpio, max_voltage: 3.3, output_capable: true}
12
+ - {num: 6, name: GP4, type: gpio, max_voltage: 3.3, output_capable: true}
13
+ - {num: 7, name: GP5, type: gpio, max_voltage: 3.3, output_capable: true}
14
+ - {num: 8, name: GND2, type: ground}
15
+ - {num: 9, name: GP6, type: gpio, max_voltage: 3.3, output_capable: true}
16
+ - {num: 10, name: GP7, type: gpio, max_voltage: 3.3, output_capable: true}
17
+ - {num: 11, name: GP8, type: gpio, max_voltage: 3.3, output_capable: true}
18
+ - {num: 12, name: GP9, type: gpio, max_voltage: 3.3, output_capable: true}
19
+ - {num: 13, name: GND3, type: ground}
20
+ - {num: 14, name: GP10, type: gpio, max_voltage: 3.3, output_capable: true}
21
+ - {num: 15, name: GP11, type: gpio, max_voltage: 3.3, output_capable: true}
22
+ - {num: 16, name: GP12, type: gpio, max_voltage: 3.3, output_capable: true}
23
+ - {num: 17, name: GP13, type: gpio, max_voltage: 3.3, output_capable: true}
24
+ - {num: 18, name: GND4, type: ground}
25
+ - {num: 19, name: GP14, type: gpio, max_voltage: 3.3, output_capable: true}
26
+ - {num: 20, name: GP15, type: gpio, max_voltage: 3.3, output_capable: true}
27
+ - {num: 21, name: GP16, type: gpio, max_voltage: 3.3, output_capable: true}
28
+ - {num: 22, name: GP17, type: gpio, max_voltage: 3.3, output_capable: true}
29
+ - {num: 23, name: GND5, type: ground}
30
+ - {num: 24, name: GP18, type: gpio, max_voltage: 3.3, output_capable: true}
31
+ - {num: 25, name: GP19, type: gpio, max_voltage: 3.3, output_capable: true}
32
+ - {num: 26, name: GP20, type: gpio, max_voltage: 3.3, output_capable: true}
33
+ - {num: 27, name: GP21, type: gpio, max_voltage: 3.3, output_capable: true}
34
+ - {num: 28, name: GND6, type: ground}
35
+ - {num: 29, name: GP22, type: gpio, max_voltage: 3.3, output_capable: true}
36
+ - {num: 30, name: RUN, type: reset}
37
+ - {num: 31, name: GP26, type: gpio, max_voltage: 3.3, output_capable: true}
38
+ - {num: 32, name: GP27, type: gpio, max_voltage: 3.3, output_capable: true}
39
+ - {num: 33, name: AGND, type: ground}
40
+ - {num: 34, name: GP28, type: gpio, max_voltage: 3.3, output_capable: true}
41
+ - {num: 35, name: ADC_VREF, type: analog}
42
+ - {num: 36, name: 3V3_OUT, type: power, aliases: [3V3]}
43
+ - {num: 37, name: 3V3_EN, type: input}
44
+ - {num: 38, name: GND7, type: ground}
45
+ - {num: 39, name: VSYS, type: power}
46
+ - {num: 40, name: VBUS, type: power}
47
+ internal: [[GND1, GND2], [GND2, GND3], [GND3, GND4], [GND4, GND5], [GND5, GND6], [GND6, AGND], [AGND, GND7]]
48
+ footprint:
49
+ "1": [0, 0]
50
+ "2": [1, 0]
51
+ "3": [2, 0]
52
+ "4": [3, 0]
53
+ "5": [4, 0]
54
+ "6": [5, 0]
55
+ "7": [6, 0]
56
+ "8": [7, 0]
57
+ "9": [8, 0]
58
+ "10": [9, 0]
59
+ "11": [10, 0]
60
+ "12": [11, 0]
61
+ "13": [12, 0]
62
+ "14": [13, 0]
63
+ "15": [14, 0]
64
+ "16": [15, 0]
65
+ "17": [16, 0]
66
+ "18": [17, 0]
67
+ "19": [18, 0]
68
+ "20": [19, 0]
69
+ "21": [19, 7]
70
+ "22": [18, 7]
71
+ "23": [17, 7]
72
+ "24": [16, 7]
73
+ "25": [15, 7]
74
+ "26": [14, 7]
75
+ "27": [13, 7]
76
+ "28": [12, 7]
77
+ "29": [11, 7]
78
+ "30": [10, 7]
79
+ "31": [9, 7]
80
+ "32": [8, 7]
81
+ "33": [7, 7]
82
+ "34": [6, 7]
83
+ "35": [5, 7]
84
+ "36": [4, 7]
85
+ "37": [3, 7]
86
+ "38": [2, 7]
87
+ "39": [1, 7]
88
+ "40": [0, 7]
89
+ render: {shape: module, label: Raspberry Pi Pico, size_mm: [51, 21], fill: "#2C2C2A", stroke: "#171715", text_color: "#FFFFFF"}
@@ -5,3 +5,4 @@ pins:
5
5
  - {num: 1, name: "1"}
6
6
  - {num: 2, name: "2"}
7
7
  render: {shape: resistor}
8
+ attributes: {bands: [4, 5]}
@@ -0,0 +1,30 @@
1
+ # Kingbright SC56-11EWA: 0.56-inch common-cathode display.
2
+ # https://www.kingbrightusa.com/images/catalog/spec/sc56-11ewa.pdf
3
+ id: sc56_11ewa
4
+ category: display
5
+ placement: footprint
6
+ straddle: true
7
+ pins:
8
+ - {num: 1, name: E, type: input}
9
+ - {num: 2, name: D, type: input}
10
+ - {num: 3, name: CATHODE1, type: passive, aliases: [CATHODE]}
11
+ - {num: 4, name: C, type: input}
12
+ - {num: 5, name: DP, type: input}
13
+ - {num: 6, name: B, type: input}
14
+ - {num: 7, name: A, type: input}
15
+ - {num: 8, name: CATHODE2, type: passive}
16
+ - {num: 9, name: F, type: input}
17
+ - {num: 10, name: G, type: input}
18
+ internal: [[CATHODE1, CATHODE2]]
19
+ footprint:
20
+ "1": [0, 0]
21
+ "2": [1, 0]
22
+ "3": [2, 0]
23
+ "4": [3, 0]
24
+ "5": [4, 0]
25
+ "6": [4, 6]
26
+ "7": [3, 6]
27
+ "8": [2, 6]
28
+ "9": [1, 6]
29
+ "10": [0, 6]
30
+ render: {shape: seven_segment, label: SC56-11EWA}
@@ -0,0 +1,37 @@
1
+ # https://wiki.seeedstudio.com/Seeeduino-XIAO/
2
+ # Synthetic pin numbers: left header top to bottom, then right header bottom to top.
3
+ id: seeed_xiao_samd21
4
+ category: module
5
+ placement: footprint
6
+ straddle: true
7
+ pins:
8
+ - {num: 1, name: D0, type: gpio, aliases: [A0], max_voltage: 3.3, output_capable: true}
9
+ - {num: 2, name: D1, type: gpio, aliases: [A1], max_voltage: 3.3, output_capable: true}
10
+ - {num: 3, name: D2, type: gpio, aliases: [A2], max_voltage: 3.3, output_capable: true}
11
+ - {num: 4, name: D3, type: gpio, aliases: [A3], max_voltage: 3.3, output_capable: true}
12
+ - {num: 5, name: D4, type: gpio, aliases: [A4, SDA], max_voltage: 3.3, output_capable: true}
13
+ - {num: 6, name: D5, type: gpio, aliases: [A5, SCL], max_voltage: 3.3, output_capable: true}
14
+ - {num: 7, name: D6, type: gpio, aliases: [A6, TX], max_voltage: 3.3, output_capable: true}
15
+ - {num: 8, name: D7, type: gpio, aliases: [A7, RX], max_voltage: 3.3, output_capable: true}
16
+ - {num: 9, name: D8, type: gpio, aliases: [A8, SCK], max_voltage: 3.3, output_capable: true}
17
+ - {num: 10, name: D9, type: gpio, aliases: [A9, MISO], max_voltage: 3.3, output_capable: true}
18
+ - {num: 11, name: D10, type: gpio, aliases: [A10, MOSI], max_voltage: 3.3, output_capable: true}
19
+ - {num: 12, name: 3V3, type: power}
20
+ - {num: 13, name: GND, type: ground}
21
+ - {num: 14, name: 5V, type: power}
22
+ footprint:
23
+ "1": [0, 0]
24
+ "2": [1, 0]
25
+ "3": [2, 0]
26
+ "4": [3, 0]
27
+ "5": [4, 0]
28
+ "6": [5, 0]
29
+ "7": [6, 0]
30
+ "8": [6, 6]
31
+ "9": [5, 6]
32
+ "10": [4, 6]
33
+ "11": [3, 6]
34
+ "12": [2, 6]
35
+ "13": [1, 6]
36
+ "14": [0, 6]
37
+ render: {shape: module, label: XIAO SAMD21, size_mm: [21, 17.5], fill: "#2C2C2A", stroke: "#171715", text_color: "#FFFFFF"}
@@ -0,0 +1,23 @@
1
+ # ShillehTek four-contact underside variant only. Other MB102 modules can differ.
2
+ # No fixed footprint: the four rail holes must be supplied from the actual module and breadboard.
3
+ id: shillehtek_mb102_4pin
4
+ category: power
5
+ placement: footprint
6
+ datasheet_url: https://shillehtek.com/blogs/shillehtek-product-manuals/mb102-breadboard-power-supply-3-3v-5v
7
+ pins:
8
+ - {num: LP, name: LEFT_POS, type: power, mount: rail}
9
+ - {num: LG, name: LEFT_GND, type: ground, mount: rail}
10
+ - {num: RP, name: RIGHT_POS, type: power, mount: rail}
11
+ - {num: RG, name: RIGHT_GND, type: ground, mount: rail}
12
+ internal: [[LEFT_GND, RIGHT_GND]]
13
+ attributes:
14
+ master: ["on", "off"]
15
+ left: ["v5", "v3_3", "off"]
16
+ right: ["v5", "v3_3", "off"]
17
+ required_attributes: [master, left, right]
18
+ provides:
19
+ - {positive: LEFT_POS, negative: LEFT_GND, voltage: 5, when: {master: "on", left: "v5"}}
20
+ - {positive: LEFT_POS, negative: LEFT_GND, voltage: 3.3, when: {master: "on", left: "v3_3"}}
21
+ - {positive: RIGHT_POS, negative: RIGHT_GND, voltage: 5, when: {master: "on", right: "v5"}}
22
+ - {positive: RIGHT_POS, negative: RIGHT_GND, voltage: 3.3, when: {master: "on", right: "v3_3"}}
23
+ render: {shape: generic, label: ShillehTek MB102 (logical)}
@@ -0,0 +1,8 @@
1
+ id: slide_switch_spst
2
+ category: switch
3
+ placement: leads
4
+ pins:
5
+ - {num: 1, name: "1", type: passive}
6
+ - {num: 2, name: "2", type: passive}
7
+ switch: [[1, 2]]
8
+ render: {shape: generic}
@@ -0,0 +1,58 @@
1
+ # https://cdn.sparkfun.com/datasheets/Dev/Arduino/Boards/ProMicro16MHzv1.pdf
2
+ # Synthetic pin numbers: left header top to bottom, then right header bottom to top.
3
+ id: sparkfun_pro_micro_5v
4
+ category: module
5
+ placement: footprint
6
+ straddle: true
7
+ pins:
8
+ - {num: 1, name: D1, type: gpio, aliases: [TXO], max_voltage: 5, output_capable: true}
9
+ - {num: 2, name: D0, type: gpio, aliases: [RXI], max_voltage: 5, output_capable: true}
10
+ - {num: 3, name: GND1, type: ground, aliases: [GND]}
11
+ - {num: 4, name: GND2, type: ground}
12
+ - {num: 5, name: D2, type: gpio, max_voltage: 5, output_capable: true}
13
+ - {num: 6, name: D3, type: gpio, max_voltage: 5, output_capable: true}
14
+ - {num: 7, name: D4, type: gpio, aliases: [A6], max_voltage: 5, output_capable: true}
15
+ - {num: 8, name: D5, type: gpio, max_voltage: 5, output_capable: true}
16
+ - {num: 9, name: D6, type: gpio, aliases: [A7], max_voltage: 5, output_capable: true}
17
+ - {num: 10, name: D7, type: gpio, max_voltage: 5, output_capable: true}
18
+ - {num: 11, name: D8, type: gpio, aliases: [A8], max_voltage: 5, output_capable: true}
19
+ - {num: 12, name: D9, type: gpio, aliases: [A9], max_voltage: 5, output_capable: true}
20
+ - {num: 13, name: D10, type: gpio, aliases: [A10], max_voltage: 5, output_capable: true}
21
+ - {num: 14, name: D16, type: gpio, aliases: [MOSI], max_voltage: 5, output_capable: true}
22
+ - {num: 15, name: D14, type: gpio, aliases: [MISO], max_voltage: 5, output_capable: true}
23
+ - {num: 16, name: D15, type: gpio, aliases: [SCK], max_voltage: 5, output_capable: true}
24
+ - {num: 17, name: A0, type: gpio, max_voltage: 5, output_capable: true}
25
+ - {num: 18, name: A1, type: gpio, max_voltage: 5, output_capable: true}
26
+ - {num: 19, name: A2, type: gpio, max_voltage: 5, output_capable: true}
27
+ - {num: 20, name: A3, type: gpio, max_voltage: 5, output_capable: true}
28
+ - {num: 21, name: VCC, type: power}
29
+ - {num: 22, name: RST, type: reset}
30
+ - {num: 23, name: GND3, type: ground}
31
+ - {num: 24, name: RAW, type: power}
32
+ internal: [[GND1, GND2], [GND2, GND3]]
33
+ footprint:
34
+ "1": [0, 0]
35
+ "2": [1, 0]
36
+ "3": [2, 0]
37
+ "4": [3, 0]
38
+ "5": [4, 0]
39
+ "6": [5, 0]
40
+ "7": [6, 0]
41
+ "8": [7, 0]
42
+ "9": [8, 0]
43
+ "10": [9, 0]
44
+ "11": [10, 0]
45
+ "12": [11, 0]
46
+ "13": [11, 6]
47
+ "14": [10, 6]
48
+ "15": [9, 6]
49
+ "16": [8, 6]
50
+ "17": [7, 6]
51
+ "18": [6, 6]
52
+ "19": [5, 6]
53
+ "20": [4, 6]
54
+ "21": [3, 6]
55
+ "22": [2, 6]
56
+ "23": [1, 6]
57
+ "24": [0, 6]
58
+ render: {shape: module, label: SparkFun Pro Micro 5V, size_mm: [33, 18], fill: "#2C2C2A", stroke: "#171715", text_color: "#FFFFFF"}
@@ -1,5 +1,4 @@
1
1
  id: transistor
2
- aliases: [2N3904]
3
2
  category: transistor
4
3
  transistor_polarity: NPN
5
4
  placement: leads
@@ -0,0 +1,10 @@
1
+ # TI uA7805 TO-220 (KC), front view: input, common, output.
2
+ # https://www.ti.com/lit/ds/symlink/ua78.pdf
3
+ id: ua7805
4
+ category: regulator
5
+ placement: leads
6
+ pins:
7
+ - {num: 1, name: INPUT, type: power}
8
+ - {num: 2, name: GND, type: ground}
9
+ - {num: 3, name: OUTPUT, type: power}
10
+ render: {shape: generic}
@@ -0,0 +1,23 @@
1
+ # https://www.ti.com/lit/ds/symlink/uln2003a.pdf
2
+ id: uln2003a
3
+ category: ic
4
+ placement: dip
5
+ package: {pins: 16}
6
+ pins:
7
+ - {num: 1, name: 1B, type: input}
8
+ - {num: 2, name: 2B, type: input}
9
+ - {num: 3, name: 3B, type: input}
10
+ - {num: 4, name: 4B, type: input}
11
+ - {num: 5, name: 5B, type: input}
12
+ - {num: 6, name: 6B, type: input}
13
+ - {num: 7, name: 7B, type: input}
14
+ - {num: 8, name: E, type: ground}
15
+ - {num: 9, name: COM, type: passive}
16
+ - {num: 10, name: 7C, type: open_drain}
17
+ - {num: 11, name: 6C, type: open_drain}
18
+ - {num: 12, name: 5C, type: open_drain}
19
+ - {num: 13, name: 4C, type: open_drain}
20
+ - {num: 14, name: 3C, type: open_drain}
21
+ - {num: 15, name: 2C, type: open_drain}
22
+ - {num: 16, name: 1C, type: open_drain}
23
+ render: {shape: dip, label: ULN2003A}
@@ -0,0 +1,11 @@
1
+ # Kingbright 5 mm RGB LED, common cathode; 1.27 mm lead pitch requires lead forming for a breadboard.
2
+ # https://www.kingbrightusa.com/images/catalog/spec/WP154A4SUREQBFZGC.pdf
3
+ id: wp154a4sureqbfzgc
4
+ category: display
5
+ placement: leads
6
+ pins:
7
+ - {num: 1, name: RED, type: input}
8
+ - {num: 2, name: CATHODE, type: passive}
9
+ - {num: 3, name: BLUE, type: input}
10
+ - {num: 4, name: GREEN, type: input}
11
+ render: {shape: rgb_led_5mm, label: RGB LED}