circuitscript 0.0.22 → 0.0.25

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 (180) hide show
  1. package/dist/cjs/BaseVisitor.js +487 -0
  2. package/dist/cjs/SemanticTokenVisitor.js +218 -0
  3. package/dist/cjs/SymbolValidatorVisitor.js +233 -0
  4. package/dist/cjs/antlr/CircuitScriptLexer.js +302 -0
  5. package/dist/cjs/antlr/CircuitScriptParser.js +5128 -0
  6. package/dist/cjs/antlr/CircuitScriptVisitor.js +7 -0
  7. package/dist/cjs/draw_symbols.js +819 -0
  8. package/dist/cjs/execute.js +778 -0
  9. package/{src/export.ts → dist/cjs/export.js} +34 -56
  10. package/dist/cjs/fonts.js +4 -0
  11. package/dist/cjs/geometry.js +450 -0
  12. package/dist/cjs/globals.js +60 -0
  13. package/dist/cjs/helpers.js +269 -0
  14. package/dist/cjs/index.js +31 -0
  15. package/{src/layout.ts → dist/cjs/layout.js} +421 -1002
  16. package/dist/cjs/lexer.js +111 -0
  17. package/dist/cjs/logger.js +17 -0
  18. package/dist/cjs/main.js +82 -0
  19. package/dist/cjs/objects/ClassComponent.js +145 -0
  20. package/dist/cjs/objects/ExecutionScope.js +135 -0
  21. package/dist/cjs/objects/Frame.js +22 -0
  22. package/{src/objects/Net.ts → dist/cjs/objects/Net.js} +9 -24
  23. package/dist/cjs/objects/ParamDefinition.js +42 -0
  24. package/dist/cjs/objects/PinDefinition.js +31 -0
  25. package/dist/cjs/objects/PinTypes.js +11 -0
  26. package/dist/cjs/objects/Wire.js +9 -0
  27. package/dist/cjs/objects/types.js +15 -0
  28. package/dist/cjs/parser.js +70 -0
  29. package/dist/cjs/regenerate-tests.js +23 -0
  30. package/dist/cjs/render.js +155 -0
  31. package/{src/server.ts → dist/cjs/server.js} +15 -21
  32. package/dist/cjs/sizing.js +105 -0
  33. package/{src/utils.ts → dist/cjs/utils.js} +25 -35
  34. package/dist/cjs/validate.js +81 -0
  35. package/dist/cjs/visitor.js +844 -0
  36. package/dist/esm/BaseVisitor.mjs +488 -0
  37. package/dist/esm/SemanticTokenVisitor.mjs +215 -0
  38. package/dist/esm/SymbolValidatorVisitor.mjs +222 -0
  39. package/dist/esm/antlr/CircuitScriptLexer.mjs +276 -0
  40. package/dist/esm/antlr/CircuitScriptParser.mjs +5038 -0
  41. package/{build/src/antlr/CircuitScriptVisitor.js → dist/esm/antlr/CircuitScriptVisitor.mjs} +8 -3
  42. package/{build/src/draw_symbols.js → dist/esm/draw_symbols.mjs} +78 -33
  43. package/{build/src/execute.js → dist/esm/execute.mjs} +59 -60
  44. package/{build/src/export.js → dist/esm/export.mjs} +2 -2
  45. package/{build/src/geometry.js → dist/esm/geometry.mjs} +31 -15
  46. package/dist/esm/helpers.mjs +252 -0
  47. package/dist/esm/index.mjs +15 -0
  48. package/{build/src/layout.js → dist/esm/layout.mjs} +19 -11
  49. package/{build/src/lexer.js → dist/esm/lexer.mjs} +10 -10
  50. package/{build/src/main.js → dist/esm/main.mjs} +9 -14
  51. package/{build/src/objects/ClassComponent.js → dist/esm/objects/ClassComponent.mjs} +6 -3
  52. package/{build/src/objects/ExecutionScope.js → dist/esm/objects/ExecutionScope.mjs} +1 -0
  53. package/{build/src/objects/PinDefinition.js → dist/esm/objects/PinDefinition.mjs} +1 -1
  54. package/dist/esm/objects/types.mjs +12 -0
  55. package/dist/esm/parser.mjs +64 -0
  56. package/{build/src/regenerate-tests.js → dist/esm/regenerate-tests.mjs} +1 -1
  57. package/{build/src/render.js → dist/esm/render.mjs} +7 -24
  58. package/{build/src/sizing.js → dist/esm/sizing.mjs} +22 -8
  59. package/{src/main.ts → dist/esm/validate.mjs} +31 -62
  60. package/dist/esm/visitor.mjs +838 -0
  61. package/dist/types/BaseVisitor.d.ts +69 -0
  62. package/dist/types/SemanticTokenVisitor.d.ts +36 -0
  63. package/dist/types/SymbolValidatorVisitor.d.ts +61 -0
  64. package/{build/src → dist/types}/antlr/CircuitScriptLexer.d.ts +28 -27
  65. package/dist/types/antlr/CircuitScriptParser.d.ts +719 -0
  66. package/{build/src → dist/types}/antlr/CircuitScriptVisitor.d.ts +69 -59
  67. package/{build/src → dist/types}/draw_symbols.d.ts +11 -2
  68. package/{build/src → dist/types}/execute.d.ts +6 -9
  69. package/{build/src → dist/types}/geometry.d.ts +5 -1
  70. package/dist/types/helpers.d.ts +40 -0
  71. package/dist/types/index.d.ts +15 -0
  72. package/{build/src → dist/types}/layout.d.ts +10 -10
  73. package/{build/src → dist/types}/lexer.d.ts +2 -2
  74. package/{build/src → dist/types}/objects/ClassComponent.d.ts +2 -2
  75. package/{build/src → dist/types}/objects/ExecutionScope.d.ts +4 -1
  76. package/{build/src → dist/types}/objects/PinDefinition.d.ts +1 -1
  77. package/{build/src → dist/types}/objects/types.d.ts +5 -0
  78. package/dist/types/parser.d.ts +25 -0
  79. package/{build/src → dist/types}/render.d.ts +1 -1
  80. package/{build/src → dist/types}/sizing.d.ts +3 -1
  81. package/dist/types/validate.d.ts +2 -0
  82. package/dist/types/visitor.d.ts +80 -0
  83. package/libs/lib.cst +0 -2
  84. package/package.json +38 -15
  85. package/.editorconfig +0 -15
  86. package/.eslintignore +0 -1
  87. package/.eslintrc.json +0 -27
  88. package/.gitlab-ci.yml +0 -81
  89. package/.prettierignore +0 -8
  90. package/.prettierrc +0 -16
  91. package/__tests__/expectedResults.ts +0 -657
  92. package/__tests__/helpers.ts +0 -82
  93. package/__tests__/parseScripts.ts +0 -593
  94. package/__tests__/renderData/script1.cst +0 -58
  95. package/__tests__/renderData/script1.cst.svg +0 -1
  96. package/__tests__/renderData/script2.cst +0 -16
  97. package/__tests__/renderData/script2.cst.svg +0 -1
  98. package/__tests__/renderData/script3.cst +0 -30
  99. package/__tests__/renderData/script3.cst.svg +0 -1
  100. package/__tests__/renderData/script4.cst +0 -54
  101. package/__tests__/renderData/script4.cst.svg +0 -1
  102. package/__tests__/renderData/script5.cst +0 -23
  103. package/__tests__/renderData/script5.cst.svg +0 -1
  104. package/__tests__/renderData/script6.cst +0 -28
  105. package/__tests__/renderData/script6.cst.svg +0 -1
  106. package/__tests__/renderData/script7.cst +0 -26
  107. package/__tests__/renderData/script7.cst.svg +0 -1
  108. package/__tests__/renderData/script8.cst +0 -37
  109. package/__tests__/renderData/script8.cst.svg +0 -1
  110. package/__tests__/testCLI.ts +0 -68
  111. package/__tests__/testMathOps.ts +0 -36
  112. package/__tests__/testMergeWires.ts +0 -141
  113. package/__tests__/testParse.ts +0 -263
  114. package/__tests__/testRender.ts +0 -38
  115. package/build/src/antlr/CircuitScriptLexer.js +0 -287
  116. package/build/src/antlr/CircuitScriptParser.d.ts +0 -674
  117. package/build/src/antlr/CircuitScriptParser.js +0 -4841
  118. package/build/src/helpers.d.ts +0 -1
  119. package/build/src/helpers.js +0 -73
  120. package/build/src/objects/types.js +0 -6
  121. package/build/src/parser.js +0 -69
  122. package/build/src/visitor.d.ts +0 -133
  123. package/build/src/visitor.js +0 -1154
  124. package/documentation.md +0 -238
  125. package/examples/example_arduino_uno.cst +0 -1146
  126. package/examples/example_garden_pump.cst +0 -567
  127. package/examples/lib.cst +0 -185
  128. package/jest.config.js +0 -23
  129. package/refresh.html +0 -42
  130. package/server.cjs +0 -50
  131. package/src/antlr/CircuitScript.g4 +0 -209
  132. package/src/antlr/CircuitScriptLexer.ts +0 -317
  133. package/src/antlr/CircuitScriptParser.ts +0 -4979
  134. package/src/antlr/CircuitScriptVisitor.ts +0 -420
  135. package/src/draw_symbols.ts +0 -1085
  136. package/src/execute.ts +0 -1227
  137. package/src/fonts.ts +0 -1
  138. package/src/geometry.ts +0 -638
  139. package/src/globals.ts +0 -67
  140. package/src/helpers.ts +0 -114
  141. package/src/lexer.ts +0 -151
  142. package/src/logger.ts +0 -17
  143. package/src/objects/ClassComponent.ts +0 -223
  144. package/src/objects/ExecutionScope.ts +0 -201
  145. package/src/objects/Frame.ts +0 -20
  146. package/src/objects/ParamDefinition.ts +0 -49
  147. package/src/objects/PinDefinition.ts +0 -49
  148. package/src/objects/PinTypes.ts +0 -7
  149. package/src/objects/Wire.ts +0 -19
  150. package/src/objects/types.ts +0 -66
  151. package/src/parser.ts +0 -106
  152. package/src/regenerate-tests.ts +0 -25
  153. package/src/render.ts +0 -260
  154. package/src/sizing.ts +0 -96
  155. package/src/visitor.ts +0 -1691
  156. package/tsconfig.json +0 -27
  157. package/tsconfig.release.json +0 -8
  158. /package/{build/src/fonts.js → dist/esm/fonts.mjs} +0 -0
  159. /package/{build/src/globals.js → dist/esm/globals.mjs} +0 -0
  160. /package/{build/src/logger.js → dist/esm/logger.mjs} +0 -0
  161. /package/{build/src/objects/Frame.js → dist/esm/objects/Frame.mjs} +0 -0
  162. /package/{build/src/objects/Net.js → dist/esm/objects/Net.mjs} +0 -0
  163. /package/{build/src/objects/ParamDefinition.js → dist/esm/objects/ParamDefinition.mjs} +0 -0
  164. /package/{build/src/objects/PinTypes.js → dist/esm/objects/PinTypes.mjs} +0 -0
  165. /package/{build/src/objects/Wire.js → dist/esm/objects/Wire.mjs} +0 -0
  166. /package/{build/src/server.js → dist/esm/server.mjs} +0 -0
  167. /package/{build/src/utils.js → dist/esm/utils.mjs} +0 -0
  168. /package/{build/src → dist/types}/export.d.ts +0 -0
  169. /package/{build/src → dist/types}/fonts.d.ts +0 -0
  170. /package/{build/src → dist/types}/globals.d.ts +0 -0
  171. /package/{build/src → dist/types}/logger.d.ts +0 -0
  172. /package/{build/src → dist/types}/main.d.ts +0 -0
  173. /package/{build/src → dist/types}/objects/Frame.d.ts +0 -0
  174. /package/{build/src → dist/types}/objects/Net.d.ts +0 -0
  175. /package/{build/src → dist/types}/objects/ParamDefinition.d.ts +0 -0
  176. /package/{build/src → dist/types}/objects/PinTypes.d.ts +0 -0
  177. /package/{build/src → dist/types}/objects/Wire.d.ts +0 -0
  178. /package/{build/src → dist/types}/regenerate-tests.d.ts +0 -0
  179. /package/{build/src → dist/types}/server.d.ts +0 -0
  180. /package/{build/src → dist/types}/utils.d.ts +0 -0
@@ -1,1146 +0,0 @@
1
- # Schematic for Arduino UNO
2
-
3
- import lib
4
-
5
- def fuse(value):
6
- width = 40
7
- height = 20
8
- return create component:
9
- pins: 2
10
- type: "F"
11
- display: create graphic:
12
- rect: 0, 0, width, height
13
- pin: 1, -width/2-20, 0, -width/2, 0
14
- pin: 2, width/2+20, 0, width/2, 0
15
- hline: -width/2, 0, width
16
- label: "refdes", -width/2, -height/2 - 5, "?"
17
- label: "value", -width/2, height/2 + 2, "?", fontSize=8, vanchor="top"
18
- params:
19
- value: value
20
-
21
- def esd():
22
- width = 40
23
- height = 20
24
-
25
- return create component:
26
- pins: 2
27
- type: "Z"
28
- display: create graphic:
29
- fill: "#333"
30
- triangle: -width/2, 0, 0, 0, 20
31
- triangle: width/2, 0, 0, 0, 20
32
- path: "M", 5, -height/2-5, "L", 0, -height/2, "L", 0, height/2, "L", -5, height/2+5
33
- pin: 1, -width/2 - 20, 0, -width/2, 0
34
- pin: 2, width/2+20, 0, width/2, 0
35
- label: "refdes", 0, -height/2 - 10, "?", anchor="middle"
36
- label: "mpn", 0, height/2 + 15, "PGB1010604", anchor="middle"
37
-
38
-
39
- def gnd_connect():
40
- return create component:
41
- pins: 2
42
-
43
- def xtal(frequency):
44
- width = 30
45
- height = 10
46
-
47
- return create component:
48
- type: "X"
49
- pins: 3
50
- display: create graphic:
51
- rect: 0, 0, width, height
52
- hline: -width/2 -2, -height/2-4, width + 4
53
- hline: -width/2 -2, height/2+4, width + 4
54
- hline: 0, -20, -10
55
- vline: -10, -25, 10
56
- vline: -15, -25, 10
57
- hline: 0, 20, -10
58
- vline: -10, 15, 10
59
- vline: -15, 15, 10
60
- hline: -15, -20, -25
61
- hline: -15, 20, -25
62
- vline: -40, -20, 40
63
-
64
- label: "refdes", width/2 + 5, 0, "?"
65
- label: "frequency", width/2 + 5, 10, "?"
66
-
67
- pin: 1, 0, -20, 0, -height/2 - 4
68
- pin: 2, 0, 20, 0, height/2 + 4
69
- pin: 3, -60, 0, -40, 0
70
-
71
- params:
72
- frequency: frequency
73
-
74
- def xtal_2(freq):
75
- # only have 2 pins
76
- width = 20
77
- height = 40
78
-
79
- return create component:
80
- type: "X"
81
- pins: 2
82
- display: create graphic:
83
- rect: 0, 0, width, height
84
- fill: "#333"
85
- rect: -width/2 - 5, 0, 1, height
86
- rect: width/2 + 5, 0, 1, height
87
- fill: "none"
88
- pin: 1, -width/2 - 20, 0, -width/2-5, 0
89
- pin: 2, width/2 + 20, 0, width/2+5, 0
90
- label: "refdes", 0, -height/2 - 5, "?", anchor="middle"
91
- label: "freq", 0, height/2 + 5, freq, vanchor="top", anchor="middle"
92
- params:
93
- freq: freq
94
-
95
- def solder_bridge():
96
- width = 20
97
- height = 20
98
-
99
- return create component:
100
- type: "S"
101
- pins: 2
102
- display: create graphic:
103
- arc: -width/2+5, 0, 10, 90, 270
104
- arc: width/2-5, 0, 10, 270, 90
105
- vline: -width/2 + 5, -height/2, height
106
- vline: width/2-5, -height/2, height
107
- pin: 1, -width/2-20, 0, -width/2-5, 0
108
- pin: 2, width/2+20, 0, width/2+5, 0
109
- label: "refdes", 0, -width/2 - 5, "?", anchor="middle"
110
-
111
- def reset_button_block():
112
- btn = reset_btn()
113
-
114
- wire up 20
115
- branch:
116
- wire up 20
117
- to btn pin 1
118
- wire right 20 up 20
119
- to btn pin 2
120
-
121
- at btn pin 4
122
- wire up 20
123
- branch:
124
- wire auto_
125
- to btn pin 3
126
- wire up 20 right 40 down 20
127
- to gnd
128
-
129
-
130
- def reset_btn():
131
- return create component:
132
- pins: 5
133
- display: create graphic:
134
-
135
- hline: 0, 0, 20
136
- hline: 0, -40, 20
137
- vline: 20, -30, 20
138
- path: "M", 20, -20, "L", 40, -20, "L", 40, 0
139
- path: "M", -15, -30, "L", -20, -30, "L", -20, -10, "L", -15, -10
140
- hline: -20, -20, 3
141
- hline: -15, -20, 3
142
- hline: -10, -20, 3
143
- hline: -5, -20, 2
144
- path: "M", 0, 0, "L", -5, -30
145
-
146
- fill: "#333"
147
- circle: 0, 0, 2
148
- fill: "none"
149
-
150
- pin: 1, 0, 20, 0, 0
151
- pin: 2, 20, 20, 20, 0
152
- pin: 5, 40, 20, 40, 0
153
- pin: 3, 0, -60, 0, -40
154
- pin: 4, 20, -60, 20, -40
155
-
156
-
157
- gnd = dgnd()
158
- v3v3 = supply("3V3")
159
- v5v = supply("5V")
160
-
161
- atmega = create component:
162
- type: "ic"
163
- pins:
164
- 1: "XTAL1"
165
- 2: "XTAL2"
166
- 3: "GND"
167
- 4: "VCC"
168
-
169
- 32: "AVCC"
170
-
171
- 5: "PC2"
172
- 26: "PC4"
173
- 25: "PC5"
174
- 23: "PC6"
175
- 22: "PC7"
176
-
177
- 6: "PD0"
178
- 7: "PD1"
179
- 8: "PD2"
180
- 9: "PD3"
181
- 10: "PD4"
182
- 11: "PD5"
183
- 12: "PD6"
184
- 13: "PD7"
185
-
186
- 24: "RESET"
187
-
188
- 14: "PB0"
189
- 15: "PB1"
190
- 16: "PB2"
191
- 17: "PB3"
192
- 18: "PB4"
193
- 19: "PB5"
194
- 20: "PB6"
195
- 21: "PB7"
196
-
197
- 28: "UGND"
198
- 27: "UCAP"
199
- 31: "UVCC"
200
-
201
- 30: "D-"
202
- 29: "D+"
203
-
204
- 100: "EXP"
205
-
206
- width: 200
207
- arrange:
208
- left: 24, [2], 2, [2], 1, [6], 32, 4, 3, [5], 27, 31, 30, 29, 28, [2], 100
209
- right: 21,20,19,18,17,16,15,14, [2], 22,23,25,26,5, [2], 13,12,11,10,9,8,7,6
210
- params:
211
- mpn: "ATMEGA8U2-MU"
212
-
213
-
214
- atmega8 = create component:
215
- type: "ic"
216
- pins:
217
- 1: "RESET"
218
-
219
- 7: "VCC"
220
- 8: "GND"
221
-
222
- 20: "AVCC"
223
- 21: "AREF"
224
- 22: "AGND"
225
-
226
- 9: "XTAL1"
227
- 10: "XTAL2"
228
-
229
- 2: "PD0"
230
- 3: "PD1"
231
- 4: "PD2"
232
- 5: "PD3"
233
- 6: "PD4"
234
- 11: "PD4"
235
- 12: "PD6"
236
- 13: "PD7"
237
-
238
- 23: "PC0"
239
- 24: "PC1"
240
- 25: "PC2"
241
- 26: "PC3"
242
- 27: "PC4"
243
- 28: "PC5"
244
-
245
- 14: "PB0"
246
- 15: "PB1"
247
- 16: "PB2"
248
- 17: "PB3"
249
- 18: "PB4"
250
- 19: "PB5"
251
-
252
- width: 200
253
- arrange:
254
- left: 1, [3], 10, [1], 9, [2], 21, 20, 22, [2], 7,8
255
- right: 19,18,17,16,15,14, [3], 28,27,26,25,24,23, [3], 13, 12, 11, 6,5,4,3,2
256
- params:
257
- mpn: "ATMEGA8"
258
-
259
- # Oscillator component
260
- osc1 = xtal("16MHz")
261
- osc2 = xtal("16MHz")
262
-
263
- def conn3x2():
264
- width = 60
265
- height = 80
266
-
267
- return create component:
268
- pins: 6
269
- display: create graphic:
270
- rect: 0, 0, width, height
271
- pin: 1, "1", -width/2 - 20, -20, -width/2, -20
272
- pin: 3, "3", -width/2 - 20, 0, -width/2, 0
273
- pin: 5, "5", -width/2 - 20, 20, -width/2, 20
274
- pin: 2, "2", width/2 + 20, -20, width/2, -20
275
- pin: 4, "4", width/2 + 20, 0, width/2, 0
276
- pin: 6, "6", width/2 + 20, 20, width/2, 20
277
- label: "refdes", -width/2, -height/2 - 5, "?", fontSize=10, anchor="left", vanchor="bottom"
278
- circle: -10, -20, 8
279
- circle: -10, 0, 8
280
- circle: -10, 20, 8
281
- circle: 10, -20, 8
282
- circle: 10, 0, 8
283
- circle: 10, 20, 8
284
-
285
- def usb_conn_():
286
- width = 40
287
- height = 100
288
-
289
- return create component:
290
- pins: 6
291
- display: create graphic:
292
- #rect: 0, 0, width, 100
293
- path: "M", -20, -40, "L", 20, -40, "L", 20, 60, "L", -20, 60
294
-
295
- label: "", 0, 15, "USB", anchor="middle", fontSize=20, angle=-90
296
-
297
- pin: 1, width/2 + 20, -20, width/2, -20
298
- pin: 2, width/2 + 20, 0, width/2, 0
299
- pin: 3, width/2 + 20, 20, width/2, 20
300
- pin: 4, width/2 + 20, 40, width/2, 40
301
-
302
- pin: 5, -20, 60+ 20, -20, 60
303
- pin: 6, 0, 60 + 20, 0, 60
304
-
305
- def conn8():
306
- return create component:
307
- type: "conn"
308
- pins: 8
309
- display: create graphic:
310
- rect: 0, -70, 40, 180
311
- circle: 0, 0, 8
312
- circle: 0, -20, 8
313
- circle: 0, -40, 8
314
- circle: 0, -60, 8
315
- circle: 0, -80, 8
316
- circle: 0, -100, 8
317
- circle: 0, -120, 8
318
- circle: 0, -140, 8
319
-
320
- label: "refdes", -20, -160-4, "?"
321
- label: "mpn", -20, 20 + 4, "?", vanchor="top"
322
-
323
- pin: 1, -40, 0, -20, 0
324
- pin: 2, -40, -20, -20, -20
325
- pin: 3, -40, -40, -20, -40
326
- pin: 4, -40, -60, -20, -60
327
- pin: 5, -40, -80, -20, -80
328
- pin: 6, -40, -100, -20, -100
329
- pin: 7, -40, -120, -20, -120
330
- pin: 8, -40, -140, -20, -140
331
-
332
- def conn6_flipped():
333
- return create component:
334
- type: "conn"
335
- pins: 6
336
- display: create graphic:
337
- rect: 0, 2.5 * -20, 40, (6+1) * 20
338
- circle: 0, 0, 8
339
- circle: 0, -20, 8
340
- circle: 0, -40, 8
341
- circle: 0, -60, 8
342
- circle: 0, -80, 8
343
- circle: 0, -100, 8
344
-
345
- label: "refdes", -20, 6 * -20 - 5, "?"
346
- label: "mpn", -20, 20 + 4, "?", vanchor="top"
347
-
348
- pin: 6, -40, 0, -20, 0
349
- pin: 5, -40, -20, -20, -20
350
- pin: 4, -40, -40, -20, -40
351
- pin: 3, -40, -60, -20, -60
352
- pin: 2, -40, -80, -20, -80
353
- pin: 1, -40, -100, -20, -100
354
-
355
- def conn6():
356
- return create component:
357
- type: "conn"
358
- pins: 6
359
- display: create graphic:
360
- rect: 0, 2.5 * -20, 40, (6+1) * 20
361
- circle: 0, 0, 8
362
- circle: 0, -20, 8
363
- circle: 0, -40, 8
364
- circle: 0, -60, 8
365
- circle: 0, -80, 8
366
- circle: 0, -100, 8
367
-
368
- label: "refdes", -20, 6 * -20 - 5, "?"
369
- label: "mpn", -20, 20 + 4, "?", vanchor="top"
370
-
371
- pin: 1, -40, 0, -20, 0
372
- pin: 2, -40, -20, -20, -20
373
- pin: 3, -40, -40, -20, -40
374
- pin: 4, -40, -60, -20, -60
375
- pin: 5, -40, -80, -20, -80
376
- pin: 6, -40, -100, -20, -100
377
-
378
- iol_conn = conn8()
379
- iol_conn.mpn = "IOL"
380
-
381
- ioh_conn = conn8()
382
- ioh_conn.mpn = "IOH"
383
-
384
- ad_conn = conn6()
385
- ad_conn.mpn = "AD"
386
-
387
- # USB connector
388
- usb_conn = usb_conn_()
389
-
390
- # ICSP connector
391
- icsp_conn2 = conn3x2()
392
- icsp_conn = conn3x2()
393
-
394
- at icsp_conn:
395
- 6:
396
- wire right 20 down 20
397
- to gnd
398
- 2:
399
- wire right 20 up 20
400
- to v5v
401
-
402
-
403
- at atmega:
404
- 32:
405
- wire left 40
406
- branch:
407
- wire up 20
408
- to v5v
409
- wire down 20
410
- branch:
411
- wire auto
412
- to atmega pin 4
413
- wire left 40 down 20
414
- add cap(100n)
415
- wire down 20
416
- to gnd
417
-
418
- 3:
419
- wire left 20 down 20
420
- to gnd
421
-
422
- 24:
423
- wire left 40
424
- branch:
425
- wire left 160 up 200 right 20
426
- to icsp_conn2 pin 5
427
-
428
- branch:
429
- wire up 20
430
- add res(10k) up
431
-
432
- point:
433
- at v5v
434
- branch:
435
- wire down 20 left 40
436
- to icsp_conn2 pin 2
437
-
438
- wire auto
439
- to point
440
-
441
- 17:
442
- wire right 20
443
- add label("MISO2")
444
- wire right 60 up 200 left 560 auto
445
- to icsp_conn2 pin 1
446
-
447
- 16:
448
- wire right 20
449
- add label("MOSI2")
450
- wire right 80 auto_
451
- to icsp_conn2 pin 4
452
-
453
- 15:
454
- wire right 20
455
- add label("SCK2")
456
- wire right 100 up 260 left 580 auto
457
- to icsp_conn2 pin 3
458
-
459
- at icsp_conn2 pin 6
460
- wire right 20 down 20
461
- to gnd
462
-
463
- 31:
464
- wire left 100
465
- add label("USBVCC")
466
-
467
- wire left 160 up 220 left 60
468
- add fuse(500m) pin 2
469
- wire left 100 down 40 left 60
470
- add label("XUSB")
471
- wire left 80
472
- to usb_conn pin 1
473
-
474
- 100:
475
- wire left 20 down 20
476
- to gnd
477
-
478
- join:
479
- at atmega pin 30
480
- wire left 100
481
- add label("RD-")
482
-
483
- wire left 180 up 180 left 40
484
- add res(22) pin 2
485
- wire left 20
486
- add label("D-")
487
- wire left 60
488
- branch:
489
- wire auto
490
- to usb_conn pin 2
491
-
492
- wire down 100
493
- add esd() ..angle=90
494
- wire down 20 left 80
495
-
496
- join:
497
- at atmega pin 29
498
- wire left 100
499
- add label("RD+")
500
-
501
- wire left 200 up 140 left 20
502
- add res(22) pin 2
503
- wire left 20
504
- add label("D+")
505
-
506
- wire left 20 up 40
507
- wire left 120
508
- branch:
509
- wire auto
510
- to usb_conn pin 3
511
- wire down 80
512
- add esd() ..angle=90
513
- wire auto
514
-
515
- point:
516
- at usb_conn pin 5
517
- wire down 20
518
- branch:
519
- wire auto_
520
- to usb_conn pin 6
521
-
522
- wire down 20
523
- add label("USHIELD") down
524
- wire auto_
525
- to point
526
-
527
- wire down 20
528
- add ind(1u) down
529
- wire down 20
530
-
531
- point:
532
- at usb_conn pin 4
533
- wire right 20 down 40
534
- add label("UGND") down
535
- wire auto_
536
- to point
537
-
538
- point:
539
- at atmega pin 27
540
- wire left 100
541
- add label("VUCAP")
542
- wire left 100 down 100
543
- add cap(1u)
544
- wire down 40
545
-
546
- point:
547
- at atmega pin 28
548
- wire left 100
549
- add label("UGND")
550
- wire auto
551
- to point
552
- wire down 20
553
- add solder_bridge() down
554
- ..refdes = "GROUND"
555
- wire down 20
556
- to gnd
557
-
558
- wire left 360
559
- to point
560
-
561
- join:
562
- at atmega pin 2
563
- wire left 120
564
- branch:
565
- wire left 20
566
- to osc1 pin 1
567
-
568
- wire up 40 left 160 wire down 20
569
- add res(1M) down
570
-
571
- join:
572
- at atmega pin 1
573
- wire left 20
574
- add res(27) pin 2
575
- wire left 20
576
-
577
- branch:
578
- wire auto_
579
- to osc1 pin 2
580
-
581
- wire down 20 auto
582
-
583
- at osc1 pin 3
584
- wire left 20 down 20
585
- to gnd
586
-
587
- at atmega:
588
- 8:
589
- wire right 40
590
- add label("M8TXD")
591
- wire right 60 down 160 right 540
592
- add label("M8TXD")
593
- wire right 60
594
- add res(1k)
595
- wire right 100 up 140
596
- branch:
597
- wire left 40
598
- to atmega8 pin 3
599
-
600
- wire right 60
601
- to iol_conn pin 2
602
-
603
- 9:
604
- wire right 40
605
- add label("M8RXD")
606
- wire right 80 down 140 right 520
607
- add label("M8RXD")
608
- wire right 60
609
- add res(1k)
610
- wire right 80 auto_
611
- to atmega8 pin 2
612
-
613
- wire auto
614
- to iol_conn pin 1
615
-
616
- def led_with_res():
617
- add led("yellow") pin 2 right
618
- wire right 20
619
- add res(1k)
620
- wire right 20
621
-
622
- join:
623
- at atmega pin 11
624
- wire right 40
625
- add label("TXLED")
626
- wire right 140
627
- led_with_res()
628
-
629
- join:
630
- at atmega pin 10
631
- wire right 40
632
- add label("RXLED")
633
- wire right 100 down 40 right 40
634
- led_with_res()
635
- wire up 60
636
-
637
- wire up 20
638
- to v5v
639
-
640
- #power_conn2 = create component:
641
- # pins: 6
642
- # arrange:
643
- # left: 1,2,3,4,5,6
644
-
645
- power_conn2 = conn6_flipped()
646
- power_conn2.mpn = "POWER"
647
-
648
- at power_conn2:
649
- 2:
650
- wire left 60 up 80
651
- add v3v3
652
- 3:
653
- wire left 100 up 100
654
- to v5v
655
-
656
- 4:
657
- wire left 20 down 20
658
- branch:
659
- wire right 20
660
- to power_conn2 pin 5
661
- wire left 60 down 40
662
- to gnd
663
-
664
- 6:
665
- wire left 40
666
- add label("VIN")
667
-
668
-
669
- at atmega8:
670
- 7:
671
- wire left 40
672
- branch:
673
- wire auto to atmega8 pin 20
674
- wire left 40
675
- branch:
676
- wire up 20
677
- to v5v
678
- wire down 20
679
- add cap(100n)
680
- wire down 20
681
- to gnd
682
- 8:
683
- wire left 20
684
- branch:
685
- wire auto to atmega8 pin 22
686
- wire down 60
687
- to gnd
688
-
689
- 10:
690
- wire left 20 up 60 left 60
691
- branch:
692
- wire down 20
693
- add res(1M) ..angle=90
694
- wire down 20
695
- branch:
696
- wire right 60 auto
697
- to atmega8 pin 9
698
- wire left 60
699
- to osc2 pin 2
700
- wire left 40 auto
701
- to osc2 pin 1
702
-
703
- at osc2 pin 3
704
- wire left 20 down 20
705
- to gnd
706
-
707
- 21:
708
- wire left 40
709
- add label("AREF")
710
-
711
- 4:
712
- wire auto to iol_conn pin 3
713
- 5:
714
- wire auto to iol_conn pin 4
715
- 6:
716
- wire auto to iol_conn pin 5
717
- 11:
718
- wire auto to iol_conn pin 6
719
- 12:
720
- wire auto to iol_conn pin 7
721
- 13:
722
- wire auto to iol_conn pin 8
723
-
724
- 23:
725
- wire right 100 to ad_conn pin 1
726
- 24:
727
- wire auto to ad_conn pin 2
728
- 25:
729
- wire auto to ad_conn pin 3
730
- 26:
731
- wire auto to ad_conn pin 4
732
- 27:
733
- wire auto to ad_conn pin 5
734
- 28:
735
- wire auto to ad_conn pin 6
736
-
737
- 14:
738
- wire right 200 to ioh_conn pin 1
739
- 15:
740
- wire auto to ioh_conn pin 2
741
- 16:
742
- wire right 20
743
- add label("SS")
744
- wire auto to ioh_conn pin 3
745
- 17:
746
- wire right 60
747
- branch:
748
- wire auto to ioh_conn pin 4
749
- wire up 200 left 40
750
- to icsp_conn pin 4
751
-
752
- 18:
753
- wire right 40
754
- branch:
755
- wire auto to ioh_conn pin 5
756
-
757
- wire up 100 left 200 auto
758
- to icsp_conn pin 1
759
-
760
- 19:
761
- wire right 20
762
- branch:
763
- wire auto to ioh_conn pin 6
764
- wire up 60 left 160 auto
765
- to icsp_conn pin 3
766
-
767
- 1:
768
- wire left 20
769
-
770
- point:
771
- at icsp_conn pin 5
772
- wire left 140
773
- branch:
774
- reset_button_block()
775
- wire auto_
776
- to point
777
-
778
- wire left 120
779
- branch:
780
- wire up 20
781
- add res(10k) up
782
- wire up 20
783
- to v5v
784
- branch:
785
- wire left 40 up 460 right 120
786
- to power_conn2 pin 1
787
-
788
- wire left 40
789
- add label("RESET")
790
-
791
- wire left 60
792
-
793
- parallel:
794
- wire left 60
795
- add solder_bridge() left
796
- ..refdes = "RESET-EN"
797
- wire left 60 down 40
798
- parallel:
799
- wire auto
800
-
801
- wire down 20
802
- add cap(100n)
803
- wire down 200
804
- branch:
805
- wire right 20
806
- add solder_bridge()
807
- ..refdes = "UBOOT"
808
- wire right 20 down 20 to gnd
809
-
810
- wire auto
811
- to atmega pin 13
812
-
813
- at ioh_conn:
814
- 7:
815
- wire left 80
816
- add label("GND")
817
- 8:
818
- wire left 40
819
- branch:
820
- wire left 40
821
- add label("AREF")
822
-
823
- wire up 40
824
- add cap(100n) pin 2
825
- wire up 20 right 80 down 20
826
- to gnd
827
-
828
- 6:
829
- wire left 80
830
- add label("SCK")
831
- wire left 20 up 200
832
-
833
- parallel:
834
- wire up 20
835
- add res(1k) up
836
- wire up 20
837
- parallel:
838
- wire right 60 up 20
839
- add res(1k) up
840
- wire auto_
841
-
842
- wire up 20
843
- add led("yellow") up
844
- wire up 40 right 60 down 20
845
- to gnd
846
-
847
- 5:
848
- wire left 80
849
- add label("MISO")
850
- 4:
851
- wire left 80
852
- add label("MOSI")
853
-
854
-
855
-
856
-
857
- # 3V3 output converter
858
- dcdc_3v3 = create component:
859
- type: "ic"
860
- pins:
861
- 1: "IN"
862
- 2: "GND"
863
- 3: "\EN"
864
- 5: "OUT"
865
- 4: "NC/FB"
866
- params:
867
- manufacturer_pn: "LP2985-33DBVR"
868
- arrange:
869
- left: 1,3,2
870
- right: 5, [1], 4
871
-
872
- dcdc_5V = create component:
873
- type: "ic"
874
- pins:
875
- 1: input, "ADJ"
876
- 2: power, "VO"
877
- 3: power, "VI"
878
- arrange:
879
- left: 3, 1
880
- right: 2
881
- params:
882
- manufacturer_pn: "MC33269D-5.0"
883
-
884
- dcdc_5V_2 = create component:
885
- type: "ic"
886
- pins:
887
- 1: power, "GND"
888
- 2: power, "OUT"
889
- 4: power, "OUT"
890
- 3: power, "IN"
891
- arrange:
892
- left: 3, 1
893
- right: 4,2
894
- params:
895
- manufacturer_pn: "MC33269ST-5.0T3"
896
-
897
- def opamp():
898
- width = 60
899
- height = 60
900
-
901
- return create component:
902
- type: "ic"
903
- pins: 3
904
- params:
905
- manufacturer_pn: "LM358D"
906
- display: create graphic:
907
- triangle: -width/2, 0, width/2, 0, height
908
- pin: 1, width/2 + 20, 0, width/2, 0
909
- pin: 2, "-", -width/2 - 20, 20, -width/2, 20
910
- pin: 3, "+", -width/2 - 20, -20, -width/2, -20
911
- label: "refdes", 0, -height/2, "?"
912
- label: "manufacturer_pn", 0, height/2, "?"
913
-
914
- # Block for power
915
- opamp_1 = opamp()
916
-
917
- def fet_():
918
- return create component:
919
- pins: 3
920
- type: "T"
921
- display: create graphic:
922
- hline: -15, -5, 35
923
- fill: "#333"
924
- rect: 0, 0, 10, 3
925
- rect: 15, 0, 10, 3
926
- rect: -15, 0, 10, 3
927
- vline: 15, 0, 20
928
- vline: -15, 0, 20
929
- vline: 0, 0, 20
930
- triangle: 0, 15, 0, 20, 5
931
- hline: 0, 20, 20
932
- hline: -20, 20, 5
933
- path: "M", -20, 20, "L", -20, 30, "L", 20, 30, "L", 20, 20
934
- triangle: -2.5, 30, 2.5, 30, 5
935
- vline: 2.5, 30-4, 8
936
-
937
- label: "refdes", 0, 45, "?", anchor="middle"
938
- label: "manufacturer_pn", 0, 55, "?", anchor="middle"
939
-
940
- pin: 1, -40, 20, -20, 20
941
- pin: 2, 40, 20, 20, 20
942
- pin: 3, 20, -20, 20, -5
943
- params:
944
- manufacturer_pn: "FDN304V"
945
-
946
- fetx = create component:
947
- pins: 3
948
- arrange:
949
- left: 1
950
- right: 2,3
951
- params:
952
- manufacturer_pn: "FDN304V"
953
-
954
- fet = fet_()
955
-
956
- frame:
957
- ..title = "Supply generation"
958
- ..direction = "row"
959
-
960
- frame:
961
- ..title = "3V3 power"
962
-
963
- at label("VIN")
964
- wire right 40 down 20
965
- add res(10k) ..angle=90
966
- wire down 20
967
- branch:
968
- wire down 20
969
- add res(10k) ..angle=90
970
- to gnd
971
- wire right 80
972
- add label("CMP")
973
- wire right 20
974
- to opamp_1 pin 3
975
-
976
- at v3v3 left
977
- wire right 20
978
- to opamp_1 pin 2
979
-
980
- at label("USBVCC")
981
- wire right 40 to fet pin 1
982
-
983
- at opamp_1 pin 1
984
- wire right 80 down 100 left 20
985
- to fet pin 2
986
-
987
- at fet pin 3
988
- wire right 60
989
- branch:
990
- wire up 20
991
- to v5v
992
- wire right 60
993
- branch:
994
- wire right 20
995
- to dcdc_3v3 pin 1
996
- wire auto_
997
- to dcdc_3v3 pin 3
998
-
999
- at dcdc_3v3:
1000
- 2:
1001
- wire left 20 down 40
1002
- to gnd
1003
-
1004
- 5:
1005
- wire right 40
1006
- branch:
1007
- wire up 20
1008
- to v3v3
1009
- wire down 20
1010
- add cap(1u)
1011
- wire down 20
1012
- to gnd
1013
-
1014
-
1015
- frame:
1016
- ..title = "5V power"
1017
-
1018
- # Block for 5V power
1019
- power_conn = create component:
1020
- type: "conn"
1021
- pins: 3
1022
- display: create graphic:
1023
- rect: 0, 0, 80, 40
1024
- pin: 1, -20, 40, -20, 20
1025
- pin: 2, 20, 40, 20, 20
1026
- pin: 3, 60, 0, 40, 0
1027
- label: "refdes", -40, -20 - 4, "?"
1028
-
1029
- at power_conn:
1030
- 1:
1031
- wire down 20
1032
- branch:
1033
- wire auto_
1034
- to power_conn pin 3
1035
- wire down 20
1036
- to gnd
1037
- 2:
1038
- wire right 20
1039
- add label("PWRIN")
1040
- wire right 40
1041
- add diode()
1042
- wire right 20
1043
- branch:
1044
- wire down 20
1045
- add cap(47u)
1046
- wire down 20
1047
- to gnd
1048
- wire right 20
1049
- point:
1050
- at dcdc_5V pin 3
1051
- wire left 80
1052
- to point
1053
-
1054
- wire up 20
1055
- branch:
1056
- wire right 20
1057
- add label("VIN")
1058
- wire right 40
1059
- wire up 100 right 80
1060
- to dcdc_5V_2 pin 3
1061
-
1062
- at dcdc_5V:
1063
- 1:
1064
- wire left 20 down 20
1065
- to gnd
1066
- 2:
1067
- wire right 20
1068
- point:
1069
- at dcdc_5V_2 pin 4
1070
- wire right 20 down 20
1071
- branch:
1072
- wire auto
1073
- to dcdc_5V_2 pin 2
1074
- wire auto
1075
- to point
1076
-
1077
- wire right 20
1078
-
1079
- branch:
1080
- wire down 20
1081
- add cap(47u)
1082
- to gnd
1083
- wire right 60
1084
- branch:
1085
- wire down 20
1086
- add cap(100n)
1087
- to gnd
1088
- wire up 20
1089
- to v5v
1090
-
1091
-
1092
- at dcdc_5V_2 pin 1
1093
- wire left 20 down 20
1094
- to gnd
1095
-
1096
- frame:
1097
- ..title = "5V indication"
1098
- ..border = 0
1099
-
1100
- # Block for 5V leds
1101
- at v5v
1102
- wire down 20
1103
-
1104
- parallel:
1105
- wire right 20
1106
- add res(1k)
1107
- wire right 20
1108
- parallel:
1109
- wire down 40 right 20
1110
- add res(1k)
1111
- wire auto_
1112
-
1113
- wire right 20
1114
-
1115
- add led("green")
1116
- wire right 20 down 20
1117
- to gnd
1118
-
1119
- def osc_block(frequency, net1, net2):
1120
- xtal = xtal_2(frequency)
1121
-
1122
- join:
1123
- at xtal pin 1
1124
- wire left 40
1125
- add label(net1)
1126
- wire left 20 down 20
1127
- add cap(22p)
1128
- wire down 20
1129
-
1130
- join:
1131
- at xtal pin 2
1132
- wire right 20
1133
- add label(net2)
1134
- wire right 20 down 20
1135
- add cap(22p)
1136
- wire auto
1137
-
1138
- wire down 20
1139
- to gnd
1140
-
1141
- frame:
1142
- ..title = "Alternative XTALs"
1143
- ..direction = "row"
1144
-
1145
- osc_block("16MHz", "XT2", "XT1")
1146
- osc_block("16MHz", "XTAL2", "XTAL1")