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.
- checksums.yaml +4 -4
- data/.codespellignore +2 -0
- data/.yamllint +16 -0
- data/README.md +109 -6
- data/data/boards/double_full.yml +18 -0
- data/data/boards/stripboard.yml +9 -0
- data/data/boards/universal.yml +8 -0
- data/data/parts/2n3904.yml +11 -0
- data/data/parts/2n7000_onsemi_to92.yml +10 -0
- data/data/parts/74hc00.yml +22 -0
- data/data/parts/74hc04.yml +22 -0
- data/data/parts/74hc08.yml +22 -0
- data/data/parts/74hc14.yml +22 -0
- data/data/parts/74hc165.yml +24 -0
- data/data/parts/74hc32.yml +22 -0
- data/data/parts/74hc595.yml +24 -0
- data/data/parts/active_buzzer.yml +8 -0
- data/data/parts/ams1117_3v3.yml +12 -0
- data/data/parts/arduino_nano.yml +70 -0
- data/data/parts/arduino_uno.yml +29 -26
- data/data/parts/atmega328p.yml +37 -0
- data/data/parts/attiny85.yml +16 -0
- data/data/parts/battery_box.yml +8 -0
- data/data/parts/cd4017.yml +24 -0
- data/data/parts/ck_bd04.yml +29 -0
- data/data/parts/crystal.yml +7 -0
- data/data/parts/dc_jack_2wire.yml +8 -0
- data/data/parts/diode.yml +1 -0
- data/data/parts/esp32_devkitc_v4_wroom32e.yml +86 -0
- data/data/parts/irlz44n.yml +10 -0
- data/data/parts/l293d.yml +24 -0
- data/data/parts/led.yml +1 -0
- data/data/parts/lm358.yml +16 -0
- data/data/parts/lm393.yml +16 -0
- data/data/parts/ne555.yml +2 -2
- data/data/parts/ntc_thermistor.yml +7 -0
- data/data/parts/photoresistor.yml +8 -0
- data/data/parts/pico.yml +89 -0
- data/data/parts/resistor.yml +1 -0
- data/data/parts/sc56_11ewa.yml +30 -0
- data/data/parts/seeed_xiao_samd21.yml +37 -0
- data/data/parts/shillehtek_mb102_4pin.yml +23 -0
- data/data/parts/slide_switch_spst.yml +8 -0
- data/data/parts/sparkfun_pro_micro_5v.yml +58 -0
- data/data/parts/transistor.yml +0 -1
- data/data/parts/ua7805.yml +10 -0
- data/data/parts/uln2003a.yml +23 -0
- data/data/parts/wp154a4sureqbfzgc.yml +11 -0
- data/docs/CLI.md +108 -0
- data/docs/COMPATIBILITY.md +60 -0
- data/docs/DECLARATIVE.md +138 -0
- data/docs/IR.md +42 -0
- data/docs/JUMPER_KIT.md +45 -0
- data/docs/LOCK.md +75 -0
- data/docs/LSP.md +59 -0
- data/docs/MB102_POWER.md +11 -0
- data/docs/MCP.md +44 -0
- data/docs/RAKE.md +19 -0
- data/docs/dsl.md +197 -6
- data/exe/breadkit-lsp +13 -0
- data/exe/breadkit-mcp +12 -0
- data/lib/breadkit/analysis.rb +174 -50
- data/lib/breadkit/board.rb +152 -4
- data/lib/breadkit/cli.rb +229 -13
- data/lib/breadkit/color.rb +38 -0
- data/lib/breadkit/dc_analysis.rb +261 -0
- data/lib/breadkit/dsl.rb +205 -24
- data/lib/breadkit/exporters.rb +202 -0
- data/lib/breadkit/formatter.rb +52 -0
- data/lib/breadkit/fritzing_export.rb +256 -0
- data/lib/breadkit/ir.rb +154 -22
- data/lib/breadkit/jumper_kit.rb +127 -0
- data/lib/breadkit/lsp_server.rb +248 -0
- data/lib/breadkit/mcp_server.rb +133 -0
- data/lib/breadkit/model.rb +47 -5
- data/lib/breadkit/part_library.rb +156 -3
- data/lib/breadkit/part_lock.rb +107 -0
- data/lib/breadkit/patterns.rb +119 -0
- data/lib/breadkit/rake_task.rb +25 -0
- data/lib/breadkit/resolver.rb +160 -28
- data/lib/breadkit/structured_input.rb +275 -0
- data/lib/breadkit/templates/555.bk.rb +34 -0
- data/lib/breadkit/templates/arduino.bk.rb +17 -0
- data/lib/breadkit/templates/led.bk.rb +21 -0
- data/lib/breadkit/value.rb +42 -3
- data/lib/breadkit/version.rb +1 -1
- data/lib/breadkit/wire_suggestions.rb +106 -0
- data/lib/breadkit.rb +28 -3
- data/package.json +1 -1
- data/schema/board-v1.json +38 -0
- data/schema/ir-v1.json +56 -11
- data/schema/ir-v2.json +173 -0
- data/schema/part-v1.json +52 -4
- data/sig/breadkit.rbs +107 -5
- metadata +119 -14
- data/docs/assets/01_led_button.svg +0 -12
- data/site/assets/01_led_button.svg +0 -14
- data/site/assets/03_arduino_blink.svg +0 -14
- data/site/favicon.svg +0 -7
- data/site/guide/components/index.html +0 -113
- data/site/guide/dsl/index.html +0 -132
- data/site/guide/index.html +0 -163
- data/site/index.html +0 -95
- data/site/styles.css +0 -14
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0d260ec0ed4e1c801bca1cef667f8744801c873b3030d0b0374b55ba792e1c39
|
|
4
|
+
data.tar.gz: e3385f84d1c1db667220610c88b92aaccf6418764848fbd25e48b28803a6b650
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e0f7b8dfe9bc040913684edd4dd33bdb8f08faa0a8d4a87d660d8c44945d445db2dc6fc15df1e533f7212a18d063ce189f28359877ed0a92aa54ea451ccf665d
|
|
7
|
+
data.tar.gz: '08ddeeed6aafd4324d55d56432af21f457d28308ebb151459096806e31f5d8f0ba37cf635b5c4eb79bd51df21941568786d07321a09fa37204df42680c3442d4'
|
data/.codespellignore
ADDED
data/.yamllint
ADDED
data/README.md
CHANGED
|
@@ -1,16 +1,119 @@
|
|
|
1
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="site/favicon.svg" width="72" height="72" alt="">
|
|
3
|
+
</p>
|
|
2
4
|
|
|
3
|
-
|
|
5
|
+
<h1 align="center">breadkit</h1>
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
<p align="center">
|
|
8
|
+
<strong>Describe breadboard circuits in Ruby, YAML, or TOML. See how every connection fits together.</strong>
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
<p align="center">
|
|
12
|
+
<a href="https://rubygems.org/gems/breadkit"><img src="https://img.shields.io/gem/v/breadkit.svg" alt="RubyGems version"></a>
|
|
13
|
+
<a href="https://github.com/breadkit/breadkit/actions/workflows/ci.yml"><img src="https://github.com/breadkit/breadkit/actions/workflows/ci.yml/badge.svg" alt="CI status"></a>
|
|
14
|
+
<img src="https://img.shields.io/badge/Ruby-%3E%3D%203.3-CC342D.svg" alt="Ruby 3.3 or newer">
|
|
15
|
+
<a href="LICENSE.txt"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="MIT license"></a>
|
|
16
|
+
</p>
|
|
17
|
+
|
|
18
|
+
Breadkit resolves board holes, part pins, wires, and switch states into connected
|
|
19
|
+
nets. It exports JSON IR for other tools and checks declared connection intent.
|
|
20
|
+
|
|
21
|
+
<p align="center">
|
|
22
|
+
<img src="site/assets/05_sensor_demo.png" width="700" alt="RP2040 breadboard circuit with an OLED, two SHT31 sensors, switches, and IR modules">
|
|
23
|
+
</p>
|
|
24
|
+
|
|
25
|
+
<p align="center">
|
|
26
|
+
<a href="examples/05_sensor_demo.bk.rb">Circuit source</a> ·
|
|
27
|
+
<a href="https://breadkit.github.io/breadkit-render/images/sensor-demo.svg">Explore its layers</a>
|
|
28
|
+
</p>
|
|
29
|
+
|
|
30
|
+
## Quick start
|
|
31
|
+
|
|
32
|
+
Install with Ruby 3.3 or newer:
|
|
6
33
|
|
|
7
34
|
```sh
|
|
8
35
|
gem install breadkit
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Save this as `circuit.bk.rb`:
|
|
39
|
+
|
|
40
|
+
```ruby
|
|
41
|
+
title "Button and LED"
|
|
42
|
+
board :half
|
|
43
|
+
|
|
44
|
+
supply :USB, voltage: 5.0, plus: "B+1", minus: "B-1"
|
|
45
|
+
net :VCC, at: "B+1"
|
|
46
|
+
net :GND, at: "B-1"
|
|
47
|
+
|
|
48
|
+
button :SW1, at: "e10"
|
|
49
|
+
resistor :R1, "330", pins: %w[a12 a16]
|
|
50
|
+
led :D1, color: :red, anode: "b16", cathode: "b17"
|
|
51
|
+
|
|
52
|
+
wire "a10", "B+", color: :red
|
|
53
|
+
wire "a17", "B-", color: :black
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
```sh
|
|
9
57
|
breadkit nets circuit.bk.rb
|
|
10
58
|
breadkit ir circuit.bk.rb > circuit.json
|
|
11
|
-
breadkit parts
|
|
12
59
|
```
|
|
13
60
|
|
|
14
|
-
|
|
61
|
+
This README follows main (0.2.0). If `breadkit --version` shows an older
|
|
62
|
+
published release, use the [source checkout](#development) for newer features.
|
|
63
|
+
The same circuit is available in [YAML](examples/06_declarative_led.bk.yml) and
|
|
64
|
+
[TOML](examples/07_declarative_led.bk.toml).
|
|
65
|
+
|
|
66
|
+
## Layered module example
|
|
67
|
+
|
|
68
|
+
The [sensor demo](examples/05_sensor_demo.bk.rb) combines an RP2040 module with
|
|
69
|
+
an OLED, two SHT31 sensors, switches, and IR modules. Its `layer:` declarations
|
|
70
|
+
group parts and wires in the interactive SVG. These lines are from the full
|
|
71
|
+
example:
|
|
72
|
+
|
|
73
|
+
```ruby
|
|
74
|
+
offboard :OLED, :ssd1306_oled, side: :right, at: "a7", address: "0x3C", layer: "2 I2C"
|
|
75
|
+
offboard :SHT31A, :sht31, side: :right, at: "a12", address: "0x44", unused: ["ALR"], layer: "2 I2C"
|
|
76
|
+
offboard :SHT31B, :sht31, side: :right, at: "a19", address: "0x45", unused: ["ALR"], layer: "2 I2C"
|
|
77
|
+
|
|
78
|
+
wire "j5", "T+5", color: "#E24B4A", layer: "1 Power"
|
|
79
|
+
wire "OLED.SDA", "g24", color: "#378ADD", route: :edge, layer: "2 I2C"
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Run `bundle exec ruby exe/breadkit nets examples/05_sensor_demo.bk.rb` from a
|
|
83
|
+
source checkout to inspect the full circuit. The optional 5 V emitter layer is
|
|
84
|
+
an alternative: disconnect its 3.3 V feed before using it.
|
|
85
|
+
|
|
86
|
+
## Explore
|
|
87
|
+
|
|
88
|
+
- [User guide](https://breadkit.github.io/breadkit/guide/) and [circuit gallery](https://breadkit.github.io/breadkit/gallery/)
|
|
89
|
+
- [DSL reference](https://breadkit.github.io/breadkit/guide/dsl/) and [component catalog](https://breadkit.github.io/breadkit/guide/components/)
|
|
90
|
+
- [CLI reference](docs/CLI.md), [YAML/TOML guide](docs/DECLARATIVE.md), and [JSON IR](docs/IR.md)
|
|
91
|
+
- [Browser Playground](https://breadkit.github.io/breadkit/playground/) and [editor integration](docs/LSP.md)
|
|
92
|
+
- [MCP server](docs/MCP.md), [Rake task](docs/RAKE.md), [jumper kit](docs/JUMPER_KIT.md), and [definition lockfile](docs/LOCK.md)
|
|
93
|
+
|
|
94
|
+
The companion repositories are [breadkit-render](https://github.com/breadkit/breadkit-render)
|
|
95
|
+
for diagrams, [breadkit-lint](https://github.com/breadkit/breadkit-lint)
|
|
96
|
+
for circuit checks, [breadkit-rspec](https://github.com/breadkit/breadkit-rspec)
|
|
97
|
+
for connection matchers, and [breadkit-parts](https://github.com/breadkit/breadkit-parts)
|
|
98
|
+
for model-specific definitions. Each gem is released independently.
|
|
99
|
+
|
|
100
|
+
Ruby DSL files execute code; load only files you trust. YAML, TOML, and JSON IR
|
|
101
|
+
are parsed as data.
|
|
102
|
+
|
|
103
|
+
## Development
|
|
104
|
+
|
|
105
|
+
```sh
|
|
106
|
+
git clone https://github.com/breadkit/breadkit.git
|
|
107
|
+
cd breadkit
|
|
108
|
+
bundle install
|
|
109
|
+
bundle exec ruby exe/breadkit nets examples/01_led_button.bk.rb
|
|
110
|
+
bundle exec rake
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Clone companion repositories beside this checkout when working on their main
|
|
114
|
+
branches. See the [compatibility policy](docs/COMPATIBILITY.md) before changing
|
|
115
|
+
a public data format.
|
|
116
|
+
|
|
117
|
+
## License
|
|
15
118
|
|
|
16
|
-
|
|
119
|
+
[MIT](LICENSE.txt).
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
id: double_full
|
|
2
|
+
name: Double full-size breadboard (1660 tie points)
|
|
3
|
+
terminal:
|
|
4
|
+
columns: 126
|
|
5
|
+
rows: [a, b, c, d, e, f, g, h, i, j]
|
|
6
|
+
groups: [[a, b, c, d, e], [f, g, h, i, j]]
|
|
7
|
+
ravine_between: [e, f]
|
|
8
|
+
rails:
|
|
9
|
+
- {id: "T+", side: top, order: 0}
|
|
10
|
+
- {id: "T-", side: top, order: 1}
|
|
11
|
+
- {id: "B+", side: bottom, order: 1}
|
|
12
|
+
- {id: "B-", side: bottom, order: 0}
|
|
13
|
+
rail_layout:
|
|
14
|
+
holes: 100
|
|
15
|
+
group_size: 5
|
|
16
|
+
start_column: 3
|
|
17
|
+
segments: [[1, 50], [51, 100]]
|
|
18
|
+
split_segments: [[1, 25], [26, 50], [51, 75], [76, 100]]
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
id: stripboard
|
|
2
|
+
name: Stripboard (30 x 20 continuous copper rows)
|
|
3
|
+
terminal:
|
|
4
|
+
columns: 30
|
|
5
|
+
rows: [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t]
|
|
6
|
+
groups: [[a], [b], [c], [d], [e], [f], [g], [h], [i], [j], [k], [l], [m], [n], [o], [p], [q], [r], [s], [t]]
|
|
7
|
+
strip_direction: row
|
|
8
|
+
wire_attachment: solder
|
|
9
|
+
rails: []
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
id: universal
|
|
2
|
+
name: Universal perfboard (30 x 20 isolated pads)
|
|
3
|
+
terminal:
|
|
4
|
+
columns: 30
|
|
5
|
+
rows: [a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t]
|
|
6
|
+
groups: [[a], [b], [c], [d], [e], [f], [g], [h], [i], [j], [k], [l], [m], [n], [o], [p], [q], [r], [s], [t]]
|
|
7
|
+
wire_attachment: solder
|
|
8
|
+
rails: []
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Onsemi 2N3904 TO-92 pin order (front view): emitter, base, collector.
|
|
2
|
+
# https://www.onsemi.com/download/data-sheet/pdf/2n3904-d.pdf
|
|
3
|
+
id: 2n3904
|
|
4
|
+
category: transistor
|
|
5
|
+
transistor_polarity: NPN
|
|
6
|
+
placement: leads
|
|
7
|
+
pins:
|
|
8
|
+
- {num: 1, name: emitter, aliases: [e]}
|
|
9
|
+
- {num: 2, name: base, aliases: [b]}
|
|
10
|
+
- {num: 3, name: collector, aliases: [c]}
|
|
11
|
+
render: {shape: generic}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Onsemi TO-92 CASE 135AN; other manufacturers may use a different pin order.
|
|
2
|
+
# https://www.onsemi.com/pdf/datasheet/nds7002a-d.pdf
|
|
3
|
+
id: 2n7000_onsemi_to92
|
|
4
|
+
category: mosfet
|
|
5
|
+
placement: leads
|
|
6
|
+
pins:
|
|
7
|
+
- {num: 1, name: source, aliases: [s]}
|
|
8
|
+
- {num: 2, name: gate, aliases: [g]}
|
|
9
|
+
- {num: 3, name: drain, aliases: [d]}
|
|
10
|
+
render: {shape: generic}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# https://www.ti.com/lit/ds/symlink/sn74hc00.pdf
|
|
2
|
+
id: 74hc00
|
|
3
|
+
category: ic
|
|
4
|
+
placement: dip
|
|
5
|
+
package: {pins: 14}
|
|
6
|
+
pins:
|
|
7
|
+
- {num: 1, name: 1A, type: input}
|
|
8
|
+
- {num: 2, name: 1B, type: input}
|
|
9
|
+
- {num: 3, name: 1Y, type: output}
|
|
10
|
+
- {num: 4, name: 2A, type: input}
|
|
11
|
+
- {num: 5, name: 2B, type: input}
|
|
12
|
+
- {num: 6, name: 2Y, type: output}
|
|
13
|
+
- {num: 7, name: GND, type: ground}
|
|
14
|
+
- {num: 8, name: 3Y, type: output}
|
|
15
|
+
- {num: 9, name: 3A, type: input}
|
|
16
|
+
- {num: 10, name: 3B, type: input}
|
|
17
|
+
- {num: 11, name: 4Y, type: output}
|
|
18
|
+
- {num: 12, name: 4A, type: input}
|
|
19
|
+
- {num: 13, name: 4B, type: input}
|
|
20
|
+
- {num: 14, name: VCC, type: power}
|
|
21
|
+
supply_range: [2, 6]
|
|
22
|
+
render: {shape: dip, label: 74HC00}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# https://www.ti.com/lit/ds/symlink/sn74hc04.pdf
|
|
2
|
+
id: 74hc04
|
|
3
|
+
category: ic
|
|
4
|
+
placement: dip
|
|
5
|
+
package: {pins: 14}
|
|
6
|
+
pins:
|
|
7
|
+
- {num: 1, name: 1A, type: input}
|
|
8
|
+
- {num: 2, name: 1Y, type: output}
|
|
9
|
+
- {num: 3, name: 2A, type: input}
|
|
10
|
+
- {num: 4, name: 2Y, type: output}
|
|
11
|
+
- {num: 5, name: 3A, type: input}
|
|
12
|
+
- {num: 6, name: 3Y, type: output}
|
|
13
|
+
- {num: 7, name: GND, type: ground}
|
|
14
|
+
- {num: 8, name: 4Y, type: output}
|
|
15
|
+
- {num: 9, name: 4A, type: input}
|
|
16
|
+
- {num: 10, name: 5Y, type: output}
|
|
17
|
+
- {num: 11, name: 5A, type: input}
|
|
18
|
+
- {num: 12, name: 6Y, type: output}
|
|
19
|
+
- {num: 13, name: 6A, type: input}
|
|
20
|
+
- {num: 14, name: VCC, type: power}
|
|
21
|
+
supply_range: [2, 6]
|
|
22
|
+
render: {shape: dip, label: 74HC04}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# https://www.ti.com/lit/ds/symlink/sn74hc08.pdf
|
|
2
|
+
id: 74hc08
|
|
3
|
+
category: ic
|
|
4
|
+
placement: dip
|
|
5
|
+
package: {pins: 14}
|
|
6
|
+
pins:
|
|
7
|
+
- {num: 1, name: 1A, type: input}
|
|
8
|
+
- {num: 2, name: 1B, type: input}
|
|
9
|
+
- {num: 3, name: 1Y, type: output}
|
|
10
|
+
- {num: 4, name: 2A, type: input}
|
|
11
|
+
- {num: 5, name: 2B, type: input}
|
|
12
|
+
- {num: 6, name: 2Y, type: output}
|
|
13
|
+
- {num: 7, name: GND, type: ground}
|
|
14
|
+
- {num: 8, name: 3Y, type: output}
|
|
15
|
+
- {num: 9, name: 3A, type: input}
|
|
16
|
+
- {num: 10, name: 3B, type: input}
|
|
17
|
+
- {num: 11, name: 4Y, type: output}
|
|
18
|
+
- {num: 12, name: 4A, type: input}
|
|
19
|
+
- {num: 13, name: 4B, type: input}
|
|
20
|
+
- {num: 14, name: VCC, type: power}
|
|
21
|
+
supply_range: [2, 6]
|
|
22
|
+
render: {shape: dip, label: 74HC08}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# https://www.ti.com/lit/ds/symlink/sn74hc14.pdf
|
|
2
|
+
id: 74hc14
|
|
3
|
+
category: ic
|
|
4
|
+
placement: dip
|
|
5
|
+
package: {pins: 14}
|
|
6
|
+
pins:
|
|
7
|
+
- {num: 1, name: 1A, type: input}
|
|
8
|
+
- {num: 2, name: 1Y, type: output}
|
|
9
|
+
- {num: 3, name: 2A, type: input}
|
|
10
|
+
- {num: 4, name: 2Y, type: output}
|
|
11
|
+
- {num: 5, name: 3A, type: input}
|
|
12
|
+
- {num: 6, name: 3Y, type: output}
|
|
13
|
+
- {num: 7, name: GND, type: ground}
|
|
14
|
+
- {num: 8, name: 4Y, type: output}
|
|
15
|
+
- {num: 9, name: 4A, type: input}
|
|
16
|
+
- {num: 10, name: 5Y, type: output}
|
|
17
|
+
- {num: 11, name: 5A, type: input}
|
|
18
|
+
- {num: 12, name: 6Y, type: output}
|
|
19
|
+
- {num: 13, name: 6A, type: input}
|
|
20
|
+
- {num: 14, name: VCC, type: power}
|
|
21
|
+
supply_range: [2, 6]
|
|
22
|
+
render: {shape: dip, label: 74HC14}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# https://www.ti.com/lit/ds/symlink/sn74hc165.pdf
|
|
2
|
+
id: 74hc165
|
|
3
|
+
category: ic
|
|
4
|
+
placement: dip
|
|
5
|
+
package: {pins: 16}
|
|
6
|
+
pins:
|
|
7
|
+
- {num: 1, name: SH_LD, type: input}
|
|
8
|
+
- {num: 2, name: CLK, type: input}
|
|
9
|
+
- {num: 3, name: E, type: input}
|
|
10
|
+
- {num: 4, name: F, type: input}
|
|
11
|
+
- {num: 5, name: G, type: input}
|
|
12
|
+
- {num: 6, name: H, type: input}
|
|
13
|
+
- {num: 7, name: QH_INV, type: output}
|
|
14
|
+
- {num: 8, name: GND, type: ground}
|
|
15
|
+
- {num: 9, name: QH, type: output}
|
|
16
|
+
- {num: 10, name: SER, type: input}
|
|
17
|
+
- {num: 11, name: A, type: input}
|
|
18
|
+
- {num: 12, name: B, type: input}
|
|
19
|
+
- {num: 13, name: C, type: input}
|
|
20
|
+
- {num: 14, name: D, type: input}
|
|
21
|
+
- {num: 15, name: CLK_INH, type: input}
|
|
22
|
+
- {num: 16, name: VCC, type: power}
|
|
23
|
+
supply_range: [2, 6]
|
|
24
|
+
render: {shape: dip, label: 74HC165}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# https://www.ti.com/lit/ds/symlink/sn74hc32.pdf
|
|
2
|
+
id: 74hc32
|
|
3
|
+
category: ic
|
|
4
|
+
placement: dip
|
|
5
|
+
package: {pins: 14}
|
|
6
|
+
pins:
|
|
7
|
+
- {num: 1, name: 1A, type: input}
|
|
8
|
+
- {num: 2, name: 1B, type: input}
|
|
9
|
+
- {num: 3, name: 1Y, type: output}
|
|
10
|
+
- {num: 4, name: 2A, type: input}
|
|
11
|
+
- {num: 5, name: 2B, type: input}
|
|
12
|
+
- {num: 6, name: 2Y, type: output}
|
|
13
|
+
- {num: 7, name: GND, type: ground}
|
|
14
|
+
- {num: 8, name: 3Y, type: output}
|
|
15
|
+
- {num: 9, name: 3A, type: input}
|
|
16
|
+
- {num: 10, name: 3B, type: input}
|
|
17
|
+
- {num: 11, name: 4Y, type: output}
|
|
18
|
+
- {num: 12, name: 4A, type: input}
|
|
19
|
+
- {num: 13, name: 4B, type: input}
|
|
20
|
+
- {num: 14, name: VCC, type: power}
|
|
21
|
+
supply_range: [2, 6]
|
|
22
|
+
render: {shape: dip, label: 74HC32}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# https://www.ti.com/lit/ds/symlink/sn74hc595.pdf
|
|
2
|
+
id: 74hc595
|
|
3
|
+
category: ic
|
|
4
|
+
placement: dip
|
|
5
|
+
package: {pins: 16}
|
|
6
|
+
pins:
|
|
7
|
+
- {num: 1, name: QB, type: output}
|
|
8
|
+
- {num: 2, name: QC, type: output}
|
|
9
|
+
- {num: 3, name: QD, type: output}
|
|
10
|
+
- {num: 4, name: QE, type: output}
|
|
11
|
+
- {num: 5, name: QF, type: output}
|
|
12
|
+
- {num: 6, name: QG, type: output}
|
|
13
|
+
- {num: 7, name: QH, type: output}
|
|
14
|
+
- {num: 8, name: GND, type: ground}
|
|
15
|
+
- {num: 9, name: QH_SERIAL, type: output}
|
|
16
|
+
- {num: 10, name: SRCLR, type: input}
|
|
17
|
+
- {num: 11, name: SRCLK, type: input}
|
|
18
|
+
- {num: 12, name: RCLK, type: input}
|
|
19
|
+
- {num: 13, name: OE, type: input}
|
|
20
|
+
- {num: 14, name: SER, type: input}
|
|
21
|
+
- {num: 15, name: QA, type: output}
|
|
22
|
+
- {num: 16, name: VCC, type: power}
|
|
23
|
+
supply_range: [2, 6]
|
|
24
|
+
render: {shape: dip, label: 74HC595}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Advanced Monolithic Systems fixed 3.3 V SOT-223 device; surface-mount only.
|
|
2
|
+
# https://www.electronica-pt.com/pdf/AMS1117.pdf
|
|
3
|
+
id: ams1117_3v3
|
|
4
|
+
category: regulator
|
|
5
|
+
placement: offboard
|
|
6
|
+
pins:
|
|
7
|
+
- {num: 1, name: GND, type: ground}
|
|
8
|
+
- {num: 2, name: VOUT, type: power}
|
|
9
|
+
- {num: 3, name: VIN, type: power}
|
|
10
|
+
- {num: 4, name: TAB, type: power}
|
|
11
|
+
internal: [[VOUT, TAB]]
|
|
12
|
+
render: {shape: offboard, label: AMS1117-3.3}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# https://docs.arduino.cc/resources/pinouts/A000005-full-pinout.pdf
|
|
2
|
+
# Synthetic pin numbers: left header top to bottom, then right header bottom to top.
|
|
3
|
+
id: arduino_nano
|
|
4
|
+
category: module
|
|
5
|
+
placement: footprint
|
|
6
|
+
straddle: true
|
|
7
|
+
pins:
|
|
8
|
+
- {num: 1, name: D13, type: gpio, max_voltage: 5, output_capable: true}
|
|
9
|
+
- {num: 2, name: 3V3, type: power}
|
|
10
|
+
- {num: 3, name: AREF, type: analog}
|
|
11
|
+
- {num: 4, name: A0, type: gpio, max_voltage: 5, output_capable: true}
|
|
12
|
+
- {num: 5, name: A1, type: gpio, max_voltage: 5, output_capable: true}
|
|
13
|
+
- {num: 6, name: A2, type: gpio, max_voltage: 5, output_capable: true}
|
|
14
|
+
- {num: 7, name: A3, type: gpio, max_voltage: 5, output_capable: true}
|
|
15
|
+
- {num: 8, name: A4, type: gpio, max_voltage: 5, output_capable: true}
|
|
16
|
+
- {num: 9, name: A5, type: gpio, max_voltage: 5, output_capable: true}
|
|
17
|
+
- {num: 10, name: A6, type: analog}
|
|
18
|
+
- {num: 11, name: A7, type: analog}
|
|
19
|
+
- {num: 12, name: 5V, type: power}
|
|
20
|
+
- {num: 13, name: RESET1, type: reset}
|
|
21
|
+
- {num: 14, name: GND1, type: ground, aliases: [GND]}
|
|
22
|
+
- {num: 15, name: VIN, type: power}
|
|
23
|
+
- {num: 16, name: D1, type: gpio, aliases: [TX], max_voltage: 5, output_capable: true}
|
|
24
|
+
- {num: 17, name: D0, type: gpio, aliases: [RX], max_voltage: 5, output_capable: true}
|
|
25
|
+
- {num: 18, name: RESET2, type: reset}
|
|
26
|
+
- {num: 19, name: GND2, type: ground}
|
|
27
|
+
- {num: 20, name: D2, type: gpio, max_voltage: 5, output_capable: true}
|
|
28
|
+
- {num: 21, name: D3, type: gpio, max_voltage: 5, output_capable: true}
|
|
29
|
+
- {num: 22, name: D4, type: gpio, max_voltage: 5, output_capable: true}
|
|
30
|
+
- {num: 23, name: D5, type: gpio, max_voltage: 5, output_capable: true}
|
|
31
|
+
- {num: 24, name: D6, type: gpio, max_voltage: 5, output_capable: true}
|
|
32
|
+
- {num: 25, name: D7, type: gpio, max_voltage: 5, output_capable: true}
|
|
33
|
+
- {num: 26, name: D8, type: gpio, max_voltage: 5, output_capable: true}
|
|
34
|
+
- {num: 27, name: D9, type: gpio, max_voltage: 5, output_capable: true}
|
|
35
|
+
- {num: 28, name: D10, type: gpio, max_voltage: 5, output_capable: true}
|
|
36
|
+
- {num: 29, name: D11, type: gpio, max_voltage: 5, output_capable: true}
|
|
37
|
+
- {num: 30, name: D12, type: gpio, max_voltage: 5, output_capable: true}
|
|
38
|
+
internal: [[GND1, GND2], [RESET1, RESET2]]
|
|
39
|
+
footprint:
|
|
40
|
+
"1": [0, 0]
|
|
41
|
+
"2": [1, 0]
|
|
42
|
+
"3": [2, 0]
|
|
43
|
+
"4": [3, 0]
|
|
44
|
+
"5": [4, 0]
|
|
45
|
+
"6": [5, 0]
|
|
46
|
+
"7": [6, 0]
|
|
47
|
+
"8": [7, 0]
|
|
48
|
+
"9": [8, 0]
|
|
49
|
+
"10": [9, 0]
|
|
50
|
+
"11": [10, 0]
|
|
51
|
+
"12": [11, 0]
|
|
52
|
+
"13": [12, 0]
|
|
53
|
+
"14": [13, 0]
|
|
54
|
+
"15": [14, 0]
|
|
55
|
+
"16": [14, 6]
|
|
56
|
+
"17": [13, 6]
|
|
57
|
+
"18": [12, 6]
|
|
58
|
+
"19": [11, 6]
|
|
59
|
+
"20": [10, 6]
|
|
60
|
+
"21": [9, 6]
|
|
61
|
+
"22": [8, 6]
|
|
62
|
+
"23": [7, 6]
|
|
63
|
+
"24": [6, 6]
|
|
64
|
+
"25": [5, 6]
|
|
65
|
+
"26": [4, 6]
|
|
66
|
+
"27": [3, 6]
|
|
67
|
+
"28": [2, 6]
|
|
68
|
+
"29": [1, 6]
|
|
69
|
+
"30": [0, 6]
|
|
70
|
+
render: {shape: module, label: Arduino Nano, size_mm: [45, 18], fill: "#2C2C2A", stroke: "#171715", text_color: "#FFFFFF"}
|
data/data/parts/arduino_uno.yml
CHANGED
|
@@ -2,33 +2,36 @@ id: arduino_uno
|
|
|
2
2
|
category: offboard
|
|
3
3
|
placement: offboard
|
|
4
4
|
pins:
|
|
5
|
-
- {num: 1, name: D0}
|
|
6
|
-
- {num: 2, name: D1}
|
|
7
|
-
- {num: 3, name: D2}
|
|
8
|
-
- {num: 4, name: D3}
|
|
9
|
-
- {num: 5, name: D4}
|
|
10
|
-
- {num: 6, name: D5}
|
|
11
|
-
- {num: 7, name: D6}
|
|
12
|
-
- {num: 8, name: D7}
|
|
13
|
-
- {num: 9, name: D8}
|
|
14
|
-
- {num: 10, name: D9}
|
|
15
|
-
- {num: 11, name: D10}
|
|
16
|
-
- {num: 12, name: D11}
|
|
17
|
-
- {num: 13, name: D12}
|
|
18
|
-
- {num: 14, name: D13}
|
|
19
|
-
- {num: 15, name: GND,
|
|
20
|
-
- {num: 16, name: 5V,
|
|
21
|
-
- {num: 17, name: A0}
|
|
22
|
-
- {num: 18, name: A1}
|
|
23
|
-
- {num: 19, name: A2}
|
|
24
|
-
- {num: 20, name: A3}
|
|
25
|
-
- {num: 21, name: A4}
|
|
26
|
-
- {num: 22, name: A5}
|
|
27
|
-
- {num: 23, name: 3V3,
|
|
28
|
-
- {num: 24, name: VIN,
|
|
29
|
-
- {num: 25, name: GND2,
|
|
30
|
-
- {num: 26, name: GND3,
|
|
5
|
+
- {num: 1, name: D0, type: gpio, max_voltage: 5}
|
|
6
|
+
- {num: 2, name: D1, type: gpio, max_voltage: 5}
|
|
7
|
+
- {num: 3, name: D2, type: gpio, max_voltage: 5}
|
|
8
|
+
- {num: 4, name: D3, type: gpio, max_voltage: 5}
|
|
9
|
+
- {num: 5, name: D4, type: gpio, max_voltage: 5}
|
|
10
|
+
- {num: 6, name: D5, type: gpio, max_voltage: 5}
|
|
11
|
+
- {num: 7, name: D6, type: gpio, max_voltage: 5}
|
|
12
|
+
- {num: 8, name: D7, type: gpio, max_voltage: 5}
|
|
13
|
+
- {num: 9, name: D8, type: gpio, max_voltage: 5}
|
|
14
|
+
- {num: 10, name: D9, type: gpio, max_voltage: 5}
|
|
15
|
+
- {num: 11, name: D10, type: gpio, max_voltage: 5}
|
|
16
|
+
- {num: 12, name: D11, type: gpio, max_voltage: 5}
|
|
17
|
+
- {num: 13, name: D12, type: gpio, max_voltage: 5}
|
|
18
|
+
- {num: 14, name: D13, type: gpio, max_voltage: 5}
|
|
19
|
+
- {num: 15, name: GND, type: ground}
|
|
20
|
+
- {num: 16, name: 5V, type: power}
|
|
21
|
+
- {num: 17, name: A0, type: gpio, max_voltage: 5}
|
|
22
|
+
- {num: 18, name: A1, type: gpio, max_voltage: 5}
|
|
23
|
+
- {num: 19, name: A2, type: gpio, max_voltage: 5}
|
|
24
|
+
- {num: 20, name: A3, type: gpio, max_voltage: 5}
|
|
25
|
+
- {num: 21, name: A4, type: gpio, max_voltage: 5}
|
|
26
|
+
- {num: 22, name: A5, type: gpio, max_voltage: 5}
|
|
27
|
+
- {num: 23, name: 3V3, type: power}
|
|
28
|
+
- {num: 24, name: VIN, type: power}
|
|
29
|
+
- {num: 25, name: GND2, type: ground}
|
|
30
|
+
- {num: 26, name: GND3, type: ground}
|
|
31
31
|
- {num: 27, name: RESET}
|
|
32
32
|
- {num: 28, name: AREF}
|
|
33
33
|
internal: [[15, 25], [15, 26]]
|
|
34
|
+
provides:
|
|
35
|
+
- {positive: 5V, negative: GND, voltage: 5}
|
|
36
|
+
- {positive: 3V3, negative: GND, voltage: 3.3}
|
|
34
37
|
render: {shape: offboard, label: Arduino Uno}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# https://ww1.microchip.com/downloads/aemDocuments/documents/MCU08/ProductDocuments/DataSheets/ATmega48A-PA-88A-PA-168A-PA-328-P-DS-DS40002061B.pdf
|
|
2
|
+
id: atmega328p
|
|
3
|
+
category: mcu
|
|
4
|
+
placement: dip
|
|
5
|
+
package: {pins: 28}
|
|
6
|
+
pins:
|
|
7
|
+
- {num: 1, name: PC6_RESET, type: reset, aliases: [RESET]}
|
|
8
|
+
- {num: 2, name: PD0, type: gpio}
|
|
9
|
+
- {num: 3, name: PD1, type: gpio}
|
|
10
|
+
- {num: 4, name: PD2, type: gpio}
|
|
11
|
+
- {num: 5, name: PD3, type: gpio}
|
|
12
|
+
- {num: 6, name: PD4, type: gpio}
|
|
13
|
+
- {num: 7, name: VCC, type: power}
|
|
14
|
+
- {num: 8, name: GND1, type: ground}
|
|
15
|
+
- {num: 9, name: PB6, type: gpio}
|
|
16
|
+
- {num: 10, name: PB7, type: gpio}
|
|
17
|
+
- {num: 11, name: PD5, type: gpio}
|
|
18
|
+
- {num: 12, name: PD6, type: gpio}
|
|
19
|
+
- {num: 13, name: PD7, type: gpio}
|
|
20
|
+
- {num: 14, name: PB0, type: gpio}
|
|
21
|
+
- {num: 15, name: PB1, type: gpio}
|
|
22
|
+
- {num: 16, name: PB2, type: gpio}
|
|
23
|
+
- {num: 17, name: PB3, type: gpio}
|
|
24
|
+
- {num: 18, name: PB4, type: gpio}
|
|
25
|
+
- {num: 19, name: PB5, type: gpio}
|
|
26
|
+
- {num: 20, name: AVCC, type: power}
|
|
27
|
+
- {num: 21, name: AREF, type: input}
|
|
28
|
+
- {num: 22, name: GND2, type: ground}
|
|
29
|
+
- {num: 23, name: PC0, type: gpio}
|
|
30
|
+
- {num: 24, name: PC1, type: gpio}
|
|
31
|
+
- {num: 25, name: PC2, type: gpio}
|
|
32
|
+
- {num: 26, name: PC3, type: gpio}
|
|
33
|
+
- {num: 27, name: PC4, type: gpio}
|
|
34
|
+
- {num: 28, name: PC5, type: gpio}
|
|
35
|
+
internal: [[GND1, GND2]]
|
|
36
|
+
supply_range: [1.8, 5.5]
|
|
37
|
+
render: {shape: dip, label: ATMEGA328P}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# https://ww1.microchip.com/downloads/en/devicedoc/atmel-2586-avr-8-bit-microcontroller-attiny25-attiny45-attiny85_datasheet.pdf
|
|
2
|
+
id: attiny85
|
|
3
|
+
category: mcu
|
|
4
|
+
placement: dip
|
|
5
|
+
package: {pins: 8}
|
|
6
|
+
pins:
|
|
7
|
+
- {num: 1, name: PB5_RESET, type: reset, aliases: [RESET]}
|
|
8
|
+
- {num: 2, name: PB3, type: gpio}
|
|
9
|
+
- {num: 3, name: PB4, type: gpio}
|
|
10
|
+
- {num: 4, name: GND, type: ground}
|
|
11
|
+
- {num: 5, name: PB0, type: gpio}
|
|
12
|
+
- {num: 6, name: PB1, type: gpio}
|
|
13
|
+
- {num: 7, name: PB2, type: gpio}
|
|
14
|
+
- {num: 8, name: VCC, type: power}
|
|
15
|
+
supply_range: [2.7, 5.5]
|
|
16
|
+
render: {shape: dip, label: ATTINY85}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# https://www.ti.com/lit/ds/symlink/cd4017b.pdf
|
|
2
|
+
id: cd4017
|
|
3
|
+
category: ic
|
|
4
|
+
placement: dip
|
|
5
|
+
package: {pins: 16}
|
|
6
|
+
pins:
|
|
7
|
+
- {num: 1, name: Q5, type: output}
|
|
8
|
+
- {num: 2, name: Q1, type: output}
|
|
9
|
+
- {num: 3, name: Q0, type: output}
|
|
10
|
+
- {num: 4, name: Q2, type: output}
|
|
11
|
+
- {num: 5, name: Q6, type: output}
|
|
12
|
+
- {num: 6, name: Q7, type: output}
|
|
13
|
+
- {num: 7, name: Q3, type: output}
|
|
14
|
+
- {num: 8, name: VSS, type: ground}
|
|
15
|
+
- {num: 9, name: Q8, type: output}
|
|
16
|
+
- {num: 10, name: Q4, type: output}
|
|
17
|
+
- {num: 11, name: Q9, type: output}
|
|
18
|
+
- {num: 12, name: CARRY, type: output}
|
|
19
|
+
- {num: 13, name: CLOCK_INH, type: input}
|
|
20
|
+
- {num: 14, name: CLOCK, type: input}
|
|
21
|
+
- {num: 15, name: RESET, type: input}
|
|
22
|
+
- {num: 16, name: VDD, type: power}
|
|
23
|
+
supply_range: [3, 18]
|
|
24
|
+
render: {shape: dip, label: CD4017}
|