├── .gitignore
├── .gitmodules
├── 3D
├── v01
│ ├── Zigbee网关-A.STL
│ ├── Zigbee网关-B.STL
│ └── Zigbee网关-C.STL
└── v02p1
│ ├── Zigbee网关-A.STL
│ ├── Zigbee网关-B.STL
│ └── Zigbee网关-C.STL
├── CC-BY-SA-4.0
├── README.md
├── README_zh.md
├── datasheets
├── 1811131825_Korean-Hroparts-Elec-TYPE-C-31-M-12_C165948.pdf
├── 74LVC1G66.pdf
├── C181158_S8050_2018-01-31.pdf
├── CH340DS1.PDF
├── CSTCE12M0G52-R0.pdf
├── E18-MS1PA1-IPX_UserManual-H_CN_v1.1.pdf
├── E18-MS1PA1-IPX_Usermanual_EN_v1.1.pdf
├── ESP-WROOM-02D_datasheet_cn.pdf
├── WS2812B_cn.pdf
└── cd4051b.pdf
├── documents
├── bom.md
├── signal.md
└── tty.md
├── firmware
├── bin
│ ├── espFW
│ │ ├── cclib.bin
│ │ └── ser2net.bin
│ └── zigbeeFW
│ │ ├── CC2530ZNP-SB.hex
│ │ ├── normal_21db
│ │ ├── CC2530ZNP-Prod.bin
│ │ └── CC2530ZNP-Prod.hex
│ │ └── source_routing_21db
│ │ ├── CC2530ZNP-Prod.bin
│ │ └── CC2530ZNP-Prod.hex
└── esp
│ ├── cclib
│ ├── .gitignore
│ ├── CCDebugger.cpp
│ ├── CCDebugger.h
│ ├── CCLib_proxy.ino
│ └── platformio.ini
│ └── ser2net
│ ├── .gitignore
│ ├── data
│ └── config.json
│ ├── platformio.ini
│ └── src
│ ├── ESP-Serial-Bridge.cpp
│ └── config.h
├── images
├── 3Dfinal.jpg
├── bottom_view.png
├── flash
│ └── info.png
├── front_hw.jpeg
├── pay
│ ├── alipay.png
│ └── wechat.png
├── sch_v2p1.png
├── signal
│ ├── 14db.png
│ ├── 18db.png
│ └── 26db.png
├── tasmota
│ ├── AP_SSID.jpg
│ ├── console1.jpg
│ ├── set_debug.jpg
│ ├── updata_zigbee_c.jpg
│ ├── wifi_config.jpg
│ └── wifi_config2.jpg
├── top_view.png
└── ttyv01.png
├── project
├── bom
│ └── ibom.html
├── fp-info-cache
├── gerber
│ ├── z2m_partner-Bottom_Cu.gbr
│ ├── z2m_partner-Bottom_Mask.gbr
│ ├── z2m_partner-Bottom_Paste.gbr
│ ├── z2m_partner-Bottom_Silk.gbr
│ ├── z2m_partner-EdgeCuts.gbr
│ ├── z2m_partner-NPTH.drl
│ ├── z2m_partner-PTH.drl
│ ├── z2m_partner-Top_Cu.gbr
│ ├── z2m_partner-Top_Mask.gbr
│ ├── z2m_partner-Top_Paste.gbr
│ ├── z2m_partner-Top_Silk.gbr
│ └── z2m_partner_gerber.zip
├── z2m_partner-bottom.pos
├── z2m_partner-cache.lib
├── z2m_partner-top.pos
├── z2m_partner.kicad_pcb
├── z2m_partner.kicad_pcb-bak
├── z2m_partner.net
├── z2m_partner.pdf
├── z2m_partner.pretty
│ ├── E18-MS1PA1-IPX-24PIN.kicad_mod
│ ├── E18-MS1PA1-IPX.kicad_mod
│ └── SK6812_4020.kicad_mod
├── z2m_partner.pro
├── z2m_partner.sch
├── z2m_partner.sch-bak
├── z2m_partner_BOM.csv
└── z2m_partner_POS.csv
└── sponsor.md
/.gitignore:
--------------------------------------------------------------------------------
1 | .pio
2 | .vscode
3 | *.patch
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "firmware/esp/Tasmota"]
2 | path = firmware/esp/Tasmota
3 | url = https://github.com/SchumyHao/Tasmota
4 |
--------------------------------------------------------------------------------
/3D/v01/Zigbee网关-A.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/3D/v01/Zigbee网关-A.STL
--------------------------------------------------------------------------------
/3D/v01/Zigbee网关-B.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/3D/v01/Zigbee网关-B.STL
--------------------------------------------------------------------------------
/3D/v01/Zigbee网关-C.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/3D/v01/Zigbee网关-C.STL
--------------------------------------------------------------------------------
/3D/v02p1/Zigbee网关-A.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/3D/v02p1/Zigbee网关-A.STL
--------------------------------------------------------------------------------
/3D/v02p1/Zigbee网关-B.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/3D/v02p1/Zigbee网关-B.STL
--------------------------------------------------------------------------------
/3D/v02p1/Zigbee网关-C.STL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/3D/v02p1/Zigbee网关-C.STL
--------------------------------------------------------------------------------
/CC-BY-SA-4.0:
--------------------------------------------------------------------------------
1 | Attribution-ShareAlike 4.0 International
2 |
3 | =======================================================================
4 |
5 | Creative Commons Corporation ("Creative Commons") is not a law firm and
6 | does not provide legal services or legal advice. Distribution of
7 | Creative Commons public licenses does not create a lawyer-client or
8 | other relationship. Creative Commons makes its licenses and related
9 | information available on an "as-is" basis. Creative Commons gives no
10 | warranties regarding its licenses, any material licensed under their
11 | terms and conditions, or any related information. Creative Commons
12 | disclaims all liability for damages resulting from their use to the
13 | fullest extent possible.
14 |
15 | Using Creative Commons Public Licenses
16 |
17 | Creative Commons public licenses provide a standard set of terms and
18 | conditions that creators and other rights holders may use to share
19 | original works of authorship and other material subject to copyright
20 | and certain other rights specified in the public license below. The
21 | following considerations are for informational purposes only, are not
22 | exhaustive, and do not form part of our licenses.
23 |
24 | Considerations for licensors: Our public licenses are
25 | intended for use by those authorized to give the public
26 | permission to use material in ways otherwise restricted by
27 | copyright and certain other rights. Our licenses are
28 | irrevocable. Licensors should read and understand the terms
29 | and conditions of the license they choose before applying it.
30 | Licensors should also secure all rights necessary before
31 | applying our licenses so that the public can reuse the
32 | material as expected. Licensors should clearly mark any
33 | material not subject to the license. This includes other CC-
34 | licensed material, or material used under an exception or
35 | limitation to copyright. More considerations for licensors:
36 | wiki.creativecommons.org/Considerations_for_licensors
37 |
38 | Considerations for the public: By using one of our public
39 | licenses, a licensor grants the public permission to use the
40 | licensed material under specified terms and conditions. If
41 | the licensor's permission is not necessary for any reason--for
42 | example, because of any applicable exception or limitation to
43 | copyright--then that use is not regulated by the license. Our
44 | licenses grant only permissions under copyright and certain
45 | other rights that a licensor has authority to grant. Use of
46 | the licensed material may still be restricted for other
47 | reasons, including because others have copyright or other
48 | rights in the material. A licensor may make special requests,
49 | such as asking that all changes be marked or described.
50 | Although not required by our licenses, you are encouraged to
51 | respect those requests where reasonable. More_considerations
52 | for the public:
53 | wiki.creativecommons.org/Considerations_for_licensees
54 |
55 | =======================================================================
56 |
57 | Creative Commons Attribution-ShareAlike 4.0 International Public
58 | License
59 |
60 | By exercising the Licensed Rights (defined below), You accept and agree
61 | to be bound by the terms and conditions of this Creative Commons
62 | Attribution-ShareAlike 4.0 International Public License ("Public
63 | License"). To the extent this Public License may be interpreted as a
64 | contract, You are granted the Licensed Rights in consideration of Your
65 | acceptance of these terms and conditions, and the Licensor grants You
66 | such rights in consideration of benefits the Licensor receives from
67 | making the Licensed Material available under these terms and
68 | conditions.
69 |
70 |
71 | Section 1 -- Definitions.
72 |
73 | a. Adapted Material means material subject to Copyright and Similar
74 | Rights that is derived from or based upon the Licensed Material
75 | and in which the Licensed Material is translated, altered,
76 | arranged, transformed, or otherwise modified in a manner requiring
77 | permission under the Copyright and Similar Rights held by the
78 | Licensor. For purposes of this Public License, where the Licensed
79 | Material is a musical work, performance, or sound recording,
80 | Adapted Material is always produced where the Licensed Material is
81 | synched in timed relation with a moving image.
82 |
83 | b. Adapter's License means the license You apply to Your Copyright
84 | and Similar Rights in Your contributions to Adapted Material in
85 | accordance with the terms and conditions of this Public License.
86 |
87 | c. BY-SA Compatible License means a license listed at
88 | creativecommons.org/compatiblelicenses, approved by Creative
89 | Commons as essentially the equivalent of this Public License.
90 |
91 | d. Copyright and Similar Rights means copyright and/or similar rights
92 | closely related to copyright including, without limitation,
93 | performance, broadcast, sound recording, and Sui Generis Database
94 | Rights, without regard to how the rights are labeled or
95 | categorized. For purposes of this Public License, the rights
96 | specified in Section 2(b)(1)-(2) are not Copyright and Similar
97 | Rights.
98 |
99 | e. Effective Technological Measures means those measures that, in the
100 | absence of proper authority, may not be circumvented under laws
101 | fulfilling obligations under Article 11 of the WIPO Copyright
102 | Treaty adopted on December 20, 1996, and/or similar international
103 | agreements.
104 |
105 | f. Exceptions and Limitations means fair use, fair dealing, and/or
106 | any other exception or limitation to Copyright and Similar Rights
107 | that applies to Your use of the Licensed Material.
108 |
109 | g. License Elements means the license attributes listed in the name
110 | of a Creative Commons Public License. The License Elements of this
111 | Public License are Attribution and ShareAlike.
112 |
113 | h. Licensed Material means the artistic or literary work, database,
114 | or other material to which the Licensor applied this Public
115 | License.
116 |
117 | i. Licensed Rights means the rights granted to You subject to the
118 | terms and conditions of this Public License, which are limited to
119 | all Copyright and Similar Rights that apply to Your use of the
120 | Licensed Material and that the Licensor has authority to license.
121 |
122 | j. Licensor means the individual(s) or entity(ies) granting rights
123 | under this Public License.
124 |
125 | k. Share means to provide material to the public by any means or
126 | process that requires permission under the Licensed Rights, such
127 | as reproduction, public display, public performance, distribution,
128 | dissemination, communication, or importation, and to make material
129 | available to the public including in ways that members of the
130 | public may access the material from a place and at a time
131 | individually chosen by them.
132 |
133 | l. Sui Generis Database Rights means rights other than copyright
134 | resulting from Directive 96/9/EC of the European Parliament and of
135 | the Council of 11 March 1996 on the legal protection of databases,
136 | as amended and/or succeeded, as well as other essentially
137 | equivalent rights anywhere in the world.
138 |
139 | m. You means the individual or entity exercising the Licensed Rights
140 | under this Public License. Your has a corresponding meaning.
141 |
142 |
143 | Section 2 -- Scope.
144 |
145 | a. License grant.
146 |
147 | 1. Subject to the terms and conditions of this Public License,
148 | the Licensor hereby grants You a worldwide, royalty-free,
149 | non-sublicensable, non-exclusive, irrevocable license to
150 | exercise the Licensed Rights in the Licensed Material to:
151 |
152 | a. reproduce and Share the Licensed Material, in whole or
153 | in part; and
154 |
155 | b. produce, reproduce, and Share Adapted Material.
156 |
157 | 2. Exceptions and Limitations. For the avoidance of doubt, where
158 | Exceptions and Limitations apply to Your use, this Public
159 | License does not apply, and You do not need to comply with
160 | its terms and conditions.
161 |
162 | 3. Term. The term of this Public License is specified in Section
163 | 6(a).
164 |
165 | 4. Media and formats; technical modifications allowed. The
166 | Licensor authorizes You to exercise the Licensed Rights in
167 | all media and formats whether now known or hereafter created,
168 | and to make technical modifications necessary to do so. The
169 | Licensor waives and/or agrees not to assert any right or
170 | authority to forbid You from making technical modifications
171 | necessary to exercise the Licensed Rights, including
172 | technical modifications necessary to circumvent Effective
173 | Technological Measures. For purposes of this Public License,
174 | simply making modifications authorized by this Section 2(a)
175 | (4) never produces Adapted Material.
176 |
177 | 5. Downstream recipients.
178 |
179 | a. Offer from the Licensor -- Licensed Material. Every
180 | recipient of the Licensed Material automatically
181 | receives an offer from the Licensor to exercise the
182 | Licensed Rights under the terms and conditions of this
183 | Public License.
184 |
185 | b. Additional offer from the Licensor -- Adapted Material.
186 | Every recipient of Adapted Material from You
187 | automatically receives an offer from the Licensor to
188 | exercise the Licensed Rights in the Adapted Material
189 | under the conditions of the Adapter's License You apply.
190 |
191 | c. No downstream restrictions. You may not offer or impose
192 | any additional or different terms or conditions on, or
193 | apply any Effective Technological Measures to, the
194 | Licensed Material if doing so restricts exercise of the
195 | Licensed Rights by any recipient of the Licensed
196 | Material.
197 |
198 | 6. No endorsement. Nothing in this Public License constitutes or
199 | may be construed as permission to assert or imply that You
200 | are, or that Your use of the Licensed Material is, connected
201 | with, or sponsored, endorsed, or granted official status by,
202 | the Licensor or others designated to receive attribution as
203 | provided in Section 3(a)(1)(A)(i).
204 |
205 | b. Other rights.
206 |
207 | 1. Moral rights, such as the right of integrity, are not
208 | licensed under this Public License, nor are publicity,
209 | privacy, and/or other similar personality rights; however, to
210 | the extent possible, the Licensor waives and/or agrees not to
211 | assert any such rights held by the Licensor to the limited
212 | extent necessary to allow You to exercise the Licensed
213 | Rights, but not otherwise.
214 |
215 | 2. Patent and trademark rights are not licensed under this
216 | Public License.
217 |
218 | 3. To the extent possible, the Licensor waives any right to
219 | collect royalties from You for the exercise of the Licensed
220 | Rights, whether directly or through a collecting society
221 | under any voluntary or waivable statutory or compulsory
222 | licensing scheme. In all other cases the Licensor expressly
223 | reserves any right to collect such royalties.
224 |
225 |
226 | Section 3 -- License Conditions.
227 |
228 | Your exercise of the Licensed Rights is expressly made subject to the
229 | following conditions.
230 |
231 | a. Attribution.
232 |
233 | 1. If You Share the Licensed Material (including in modified
234 | form), You must:
235 |
236 | a. retain the following if it is supplied by the Licensor
237 | with the Licensed Material:
238 |
239 | i. identification of the creator(s) of the Licensed
240 | Material and any others designated to receive
241 | attribution, in any reasonable manner requested by
242 | the Licensor (including by pseudonym if
243 | designated);
244 |
245 | ii. a copyright notice;
246 |
247 | iii. a notice that refers to this Public License;
248 |
249 | iv. a notice that refers to the disclaimer of
250 | warranties;
251 |
252 | v. a URI or hyperlink to the Licensed Material to the
253 | extent reasonably practicable;
254 |
255 | b. indicate if You modified the Licensed Material and
256 | retain an indication of any previous modifications; and
257 |
258 | c. indicate the Licensed Material is licensed under this
259 | Public License, and include the text of, or the URI or
260 | hyperlink to, this Public License.
261 |
262 | 2. You may satisfy the conditions in Section 3(a)(1) in any
263 | reasonable manner based on the medium, means, and context in
264 | which You Share the Licensed Material. For example, it may be
265 | reasonable to satisfy the conditions by providing a URI or
266 | hyperlink to a resource that includes the required
267 | information.
268 |
269 | 3. If requested by the Licensor, You must remove any of the
270 | information required by Section 3(a)(1)(A) to the extent
271 | reasonably practicable.
272 |
273 | b. ShareAlike.
274 |
275 | In addition to the conditions in Section 3(a), if You Share
276 | Adapted Material You produce, the following conditions also apply.
277 |
278 | 1. The Adapter's License You apply must be a Creative Commons
279 | license with the same License Elements, this version or
280 | later, or a BY-SA Compatible License.
281 |
282 | 2. You must include the text of, or the URI or hyperlink to, the
283 | Adapter's License You apply. You may satisfy this condition
284 | in any reasonable manner based on the medium, means, and
285 | context in which You Share Adapted Material.
286 |
287 | 3. You may not offer or impose any additional or different terms
288 | or conditions on, or apply any Effective Technological
289 | Measures to, Adapted Material that restrict exercise of the
290 | rights granted under the Adapter's License You apply.
291 |
292 |
293 | Section 4 -- Sui Generis Database Rights.
294 |
295 | Where the Licensed Rights include Sui Generis Database Rights that
296 | apply to Your use of the Licensed Material:
297 |
298 | a. for the avoidance of doubt, Section 2(a)(1) grants You the right
299 | to extract, reuse, reproduce, and Share all or a substantial
300 | portion of the contents of the database;
301 |
302 | b. if You include all or a substantial portion of the database
303 | contents in a database in which You have Sui Generis Database
304 | Rights, then the database in which You have Sui Generis Database
305 | Rights (but not its individual contents) is Adapted Material,
306 |
307 | including for purposes of Section 3(b); and
308 | c. You must comply with the conditions in Section 3(a) if You Share
309 | all or a substantial portion of the contents of the database.
310 |
311 | For the avoidance of doubt, this Section 4 supplements and does not
312 | replace Your obligations under this Public License where the Licensed
313 | Rights include other Copyright and Similar Rights.
314 |
315 |
316 | Section 5 -- Disclaimer of Warranties and Limitation of Liability.
317 |
318 | a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
319 | EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
320 | AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
321 | ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
322 | IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
323 | WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
324 | PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
325 | ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
326 | KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
327 | ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
328 |
329 | b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
330 | TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
331 | NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
332 | INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
333 | COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
334 | USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
335 | ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
336 | DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
337 | IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
338 |
339 | c. The disclaimer of warranties and limitation of liability provided
340 | above shall be interpreted in a manner that, to the extent
341 | possible, most closely approximates an absolute disclaimer and
342 | waiver of all liability.
343 |
344 |
345 | Section 6 -- Term and Termination.
346 |
347 | a. This Public License applies for the term of the Copyright and
348 | Similar Rights licensed here. However, if You fail to comply with
349 | this Public License, then Your rights under this Public License
350 | terminate automatically.
351 |
352 | b. Where Your right to use the Licensed Material has terminated under
353 | Section 6(a), it reinstates:
354 |
355 | 1. automatically as of the date the violation is cured, provided
356 | it is cured within 30 days of Your discovery of the
357 | violation; or
358 |
359 | 2. upon express reinstatement by the Licensor.
360 |
361 | For the avoidance of doubt, this Section 6(b) does not affect any
362 | right the Licensor may have to seek remedies for Your violations
363 | of this Public License.
364 |
365 | c. For the avoidance of doubt, the Licensor may also offer the
366 | Licensed Material under separate terms or conditions or stop
367 | distributing the Licensed Material at any time; however, doing so
368 | will not terminate this Public License.
369 |
370 | d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
371 | License.
372 |
373 |
374 | Section 7 -- Other Terms and Conditions.
375 |
376 | a. The Licensor shall not be bound by any additional or different
377 | terms or conditions communicated by You unless expressly agreed.
378 |
379 | b. Any arrangements, understandings, or agreements regarding the
380 | Licensed Material not stated herein are separate from and
381 | independent of the terms and conditions of this Public License.
382 |
383 |
384 | Section 8 -- Interpretation.
385 |
386 | a. For the avoidance of doubt, this Public License does not, and
387 | shall not be interpreted to, reduce, limit, restrict, or impose
388 | conditions on any use of the Licensed Material that could lawfully
389 | be made without permission under this Public License.
390 |
391 | b. To the extent possible, if any provision of this Public License is
392 | deemed unenforceable, it shall be automatically reformed to the
393 | minimum extent necessary to make it enforceable. If the provision
394 | cannot be reformed, it shall be severed from this Public License
395 | without affecting the enforceability of the remaining terms and
396 | conditions.
397 |
398 | c. No term or condition of this Public License will be waived and no
399 | failure to comply consented to unless expressly agreed to by the
400 | Licensor.
401 |
402 | d. Nothing in this Public License constitutes or may be interpreted
403 | as a limitation upon, or waiver of, any privileges and immunities
404 | that apply to the Licensor or You, including from the legal
405 | processes of any jurisdiction or authority.
406 |
407 |
408 | =======================================================================
409 |
410 | Creative Commons is not a party to its public
411 | licenses. Notwithstanding, Creative Commons may elect to apply one of
412 | its public licenses to material it publishes and in those instances
413 | will be considered the “Licensor.” The text of the Creative Commons
414 | public licenses is dedicated to the public domain under the CC0 Public
415 | Domain Dedication. Except for the limited purpose of indicating that
416 | material is shared under a Creative Commons public license or as
417 | otherwise permitted by the Creative Commons policies published at
418 | creativecommons.org/policies, Creative Commons does not authorize the
419 | use of the trademark "Creative Commons" or any other trademark or logo
420 | of Creative Commons without its prior written consent including,
421 | without limitation, in connection with any unauthorized modifications
422 | to any of its public licenses or any other arrangements,
423 | understandings, or agreements concerning use of licensed material. For
424 | the avoidance of doubt, this paragraph does not form part of the
425 | public licenses.
426 |
427 | Creative Commons may be contacted at creativecommons.org.
428 |
429 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # [中文文档](https://bbs.iobroker.cn/t/topic/882)
2 |
3 | # z2m hardware module
4 |
5 | This is hardware module for [iobroker.zigbee](https://github.com/ioBroker/ioBroker.zigbee) and [zigbee2mqtt](https://github.com/Koenkk/zigbee2mqtt) or [Zigbee to Tasmota](https://github.com/arendst/Tasmota/wiki/Zigbee).
6 | If you can speak Chinese and be interested with this project, please look at this [post](https://bbs.iobroker.cn/t/topic/882/33) in [ioBroker China BBS](https://bbs.iobroker.cn/)
7 |
8 | ## **V2P1 version is ready to ship**
9 |
10 | ## What's the difference
11 |
12 | - Use [E18-MS1PA1-IPX](http://www.ebyte.com/en/product-view-news.aspx?id=123) zigbee module. 20dBm power can make sure zigbee net work signal is strong.
13 | - Add an ESP8266 module. Give you another option that can connect zigbee module though wifi-to-serial (I was using this [project](https://github.com/smarthomefans/ESP32-Serial-Bridge)).
14 | If your machine running smarthome platform, such as ioBroker or homeassistant, is put in a hidden corner, for better signal coverage, you can put your zigbee module in some where else.
15 | - ESP8266 connected to E18 firmware download pins, give you a chance that can update E18 though ESP8266, no need to use CC-DEBUG.
16 | - There will be 4 options for different TTY connection:
17 | - USB TTY <==> ESP 8266 TTY. This option is used for download firmware for E18.
18 | - USB TTY <==> E18 TTY. If you can connect your module though USB wire, this is more stable.
19 | - USB TTY <==> ESP 8266 debug port. ESP 8266 TTY <==> E18 TTY. Connect though wifi, and you can capture debug infomation though USB TTY.
20 | - ESP 8266 TTY <==> E18 TTY. Connect though TTY.
21 |
22 | ## Hardware module images
23 |
24 | 
25 |
26 | ## 3D cover
27 |
28 | 
29 |
30 | ## [SCH](https://github.com/smarthomefans/z2m_partner/raw/master/project/z2m_partner.pdf) preview
31 | 
32 |
33 | ## PCB preview
34 |
35 | 
36 | 
37 |
38 | ## BOM list
39 | [BOM](https://github.com/smarthomefans/z2m_partner/blob/master/documents/bom.md) can get from here.
40 |
41 | ## Thanks to
42 |
43 | - [modkam](https://modkam.ru/), [kirovilya](https://github.com/kirovilya), [Koenkk](https://github.com/Koenkk).
44 |
--------------------------------------------------------------------------------
/README_zh.md:
--------------------------------------------------------------------------------
1 | # z2m zigbee网关
2 |
3 | 此项目是一个开源zigbee网关项目, 所有的硬件和软件都会开放给大家使用. 请大家遵守[CC-BY-SA-4.0](https://github.com/smarthomefans/z2m_partner/blob/master/CC-BY-SA-4.0)协议.
4 |
5 | 此硬件模组可以结合[iobroker.zigbee](https://github.com/ioBroker/ioBroker.zigbee)项目, [zigbee2mqtt](https://github.com/Koenkk/zigbee2mqtt)项目, [Zigbee to Tasmota](https://github.com/arendst/Tasmota/wiki/Zigbee)项目或者其他开源的基于TI CC2530 zigbee SoC的项目使用.
6 |
7 | 其他有关这个项目的内容, 可以从[ioBroker China](https://bbs.iobroker.cn/)论坛的[此帖子](https://bbs.iobroker.cn/thread-361-1-1.html)获得, 欢迎大家来一起玩智能家居.
8 |
9 | ## 声明
10 |
11 | - **此项目还处于早期版本**.
12 | - EDA使用[kicad](http://www.kicad-pcb.org/)开发, 不存在软件版权问题.
13 | - DIY硬件有风险, 请大家注意用电安全. 如有风险, 后果自负.
14 |
15 | ## 项目特点
16 |
17 | - 使用[E18-MS1PA1-IPX](http://www.ebyte.com/en/product-view-news.aspx?id=123) zigbee模组, 模组使用CC2592PA, 发射功率可以达到21dBm. 也可以使用[E18-2G4Z27SI](http://www.ebyte.com/en/product-view-news.aspx?id=522)替换pin2pin兼容的[E18-MS1PA1-IPX](http://www.ebyte.com/en/product-view-news.aspx?id=123)模组, 如何设置和实测信号发射功率请参考[此链接](https://github.com/smarthomefans/z2m_partner/blob/master/documents/signal.md).
18 | - 模块自带ESP8266模组. 可以通过WiFi转串口接入智能家居系统, 不再受到主机摆放位置的约束而导致信号覆盖差. 而且可以配合使用[Zigbee to Tasmota](https://github.com/arendst/Tasmota/wiki/Zigbee)项目, 完全不需要上位机, 自己本身就是一个zigbee-wifi网关.
19 | - ESP8266模组和E18模组的CC-DEBUG程序下载引脚连接, 可以通过[CCLib](https://github.com/s-hadinger/CCLib)项目, 直接给E18 zigbee模组下载固件, 不需要另外购买CC-DEBUG在线仿真器.
20 | - 可以通过拨码开关配置多种串口连接方式:
21 | - USB TTY <==> ESP 8266 TTY. 用于ESP模组和Zigbee模组下载固件.
22 | - USB TTY <==> E18 TTY. USB直连Zigbee模组, 上位机配置更加简单, 稳定性更强.
23 | - ESP 8266 TTY <==> E18 TTY. Connect though TTY. ESP模组和Zigbee模组对接, 可以刷WiFi串口固件, 实现WiFi接入上位机智能家居系统, 具体方法参考[此链接](#%e5%88%b7%e6%9c%ba%e6%95%99%e7%a8%8b). 或者直接配合[Zigbee to Tasmota](https://github.com/arendst/Tasmota/wiki/Zigbee)项目做独立的Zigbee网关.
24 | - USB TTY <==> ESP 8266 debug port. ESP 8266 TTY <==> E18 TTY. 和上一种连接方式一样, 多增加了一个debug串口.
25 | - 使用USB **Type-C**接口. 紧跟时代潮流.
26 | - 不管你怎么看, 我认为这个比USB dongle要好看几个数量级. 颜值即正义.
27 |
28 | ## 硬件图片
29 |
30 | 
31 | 
32 |
33 | ## 3D打印外壳
34 |
35 | 
36 |
37 | ## PCB预览
38 |
39 | 
40 |
41 | 
42 |
43 | ## 刷机教程
44 |
45 | ### 准备材料
46 |
47 | - windows电脑一台
48 | - usb typeC数据线一条(数据线, 别弄一个充电线过来)
49 | - z2m网关硬件V01版本一个, 将USB串口配置到ESP模块上. 请[参考](https://github.com/smarthomefans/z2m_partner/blob/master/documents/tty.md).
50 | - 刷机所需要的[固件](https://github.com/smarthomefans/z2m_partner/archive/master.zip). [源码](https://github.com/smarthomefans/z2m_partner/tree/master/firmware/esp)也在本项目中.
51 | - 专门为此项目开发的[刷机工具](https://github.com/smarthomefans/esphome-flasher/releases/download/0.1.0/ESPHome-Flasher.exe)
52 | - 空闲的**30**分钟(不夸张, 真的很久)
53 |
54 | ### 刷机过程
55 |
56 | 1. 打开刷机工具, 选择固件, 配置个人的wifi, 设备hostname以及tcp串口的串口号. (MQTT相关的信息还没有测试).
57 | 
58 | 1. **按住设备的flash按钮, 同时点一下reset按钮**. 让ESP模块进入刷机模式.
59 | 1. 点击刷机工具的**All**图标.
60 | 1. 此阶段正在给ESP模块刷cclib固件, 为下一阶段给zigbee模块刷机做准备(用时大约30秒).
61 | 1. 注意console界面, 出现`Please press reset button`的5秒倒计时时, 要按一下模块的reset按钮.
62 | 1. 接下来程序将给zigbee刷固件, 耗时**20**分钟!!!!(该喝茶, 该买咖啡买咖啡, 注意到点回来就行)
63 | 1. 刷完zigbee固件后, 需要再次让ESP模块进入刷机模式, **按住设备的flash按钮, 同时点一下reset按钮**. 刷ESP wifi串口固件(用时约30秒).
64 | 1. 刷完后还需要让ESP模块进入刷机模式, **按住设备的flash按钮, 同时点一下reset按钮**. 刷WiFi等配置信息(用时5秒).
65 |
66 | ### 注意事项
67 |
68 | - 因为V01版本的ESP刷机模式做的不是很好, 还需要在特定时间手动按按钮, 所以一定要熟悉整个流程, 在关键时刻出手. 如果刷机失败, 拔掉USB线, 从头来过. (V02版本硬件应该会做到自动化).
69 | - Zigbee刷机真的要很长时间, 也可以用TI的SBL工具刷机.
70 | - 用刷机工具刷机, Zigbee固件要选择**hex**后缀的固件. 使用TI SBL工具刷机才使用**bin**后缀的固件.
71 | - Zigbee固件CC2530ZNP-SB.hex是SBL的bootloader. normal_21db文件夹下面是normal模式的固件(推荐就用这个吧, 小米设备支持更好). source_routing_21db文件夹下面是支持source_routing的固件(这个功能小米的设备支持不好, 总有很多错误log).
72 |
73 | ### 刷机视频
74 |
75 | 可以从[这里]()看一下刷机视频, 熟悉一下操作流程.
76 |
77 | ## 改版计划
78 |
79 | - [x] USB串口芯片自动控制ESP flash和reset引脚, 无需再按键.
80 | - [x] LED灯交给ESP芯片控制, 可调节开关和显示效果.
81 | - [x] 优化拨码开关的丝印提示.
82 | - 可能更新CC2538模组(30%可能性吧).
83 |
84 | ## 致谢
85 |
86 | - 各位大佬[modkam](https://modkam.ru/), [kirovilya](https://github.com/kirovilya), [Koenkk](https://github.com/Koenkk).
87 | - 小F, 帮忙设计“碉堡”的外壳.
88 | - 萝卜哥, 花神以及热爱智能家居的每一位.
89 |
90 | 如果您使用了本项目并且感觉不错, 请打赏一杯咖啡钱吧~
91 | 
92 | 
93 |
--------------------------------------------------------------------------------
/datasheets/1811131825_Korean-Hroparts-Elec-TYPE-C-31-M-12_C165948.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/datasheets/1811131825_Korean-Hroparts-Elec-TYPE-C-31-M-12_C165948.pdf
--------------------------------------------------------------------------------
/datasheets/74LVC1G66.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/datasheets/74LVC1G66.pdf
--------------------------------------------------------------------------------
/datasheets/C181158_S8050_2018-01-31.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/datasheets/C181158_S8050_2018-01-31.pdf
--------------------------------------------------------------------------------
/datasheets/CH340DS1.PDF:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/datasheets/CH340DS1.PDF
--------------------------------------------------------------------------------
/datasheets/CSTCE12M0G52-R0.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/datasheets/CSTCE12M0G52-R0.pdf
--------------------------------------------------------------------------------
/datasheets/E18-MS1PA1-IPX_UserManual-H_CN_v1.1.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/datasheets/E18-MS1PA1-IPX_UserManual-H_CN_v1.1.pdf
--------------------------------------------------------------------------------
/datasheets/E18-MS1PA1-IPX_Usermanual_EN_v1.1.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/datasheets/E18-MS1PA1-IPX_Usermanual_EN_v1.1.pdf
--------------------------------------------------------------------------------
/datasheets/ESP-WROOM-02D_datasheet_cn.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/datasheets/ESP-WROOM-02D_datasheet_cn.pdf
--------------------------------------------------------------------------------
/datasheets/WS2812B_cn.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/datasheets/WS2812B_cn.pdf
--------------------------------------------------------------------------------
/datasheets/cd4051b.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/datasheets/cd4051b.pdf
--------------------------------------------------------------------------------
/documents/bom.md:
--------------------------------------------------------------------------------
1 | ## BOM单
2 |
3 | ### 做WiFi/USB有线接入的Zigbee网关
4 |
5 | 名称|封装|数值|数量|标号|立创商城货号
6 | ---|---|---|---|---|---
7 | 贴片钽电容|TypeB|10uF|2|C5, C6|[C128257](https://item.szlcsc.com/139542.html)
8 | 贴片电容|0603|100nF|3|C3, C4, C7|[C149620](https://item.szlcsc.com/160954.html)
9 | 自恢复限流保险|1812|MF-MSMF050|1|F1|[C17313](https://item.szlcsc.com/17998.html)
10 | 贴片电阻|0603|5.1k|2|R1, R2|[C26000](https://item.szlcsc.com/26743.html)
11 | 贴片电阻|0603|10k|8|R3, R4, R5, R7, R9-R12|[C15401](https://item.szlcsc.com/16079.html)
12 | 微动开关|SW_SPST_PTS810|SW_Push|2|SW2, SW3|[C221896](https://item.szlcsc.com/222326.html)
13 | USB串口芯片|SOP16|CH340C|1|U1|[C84681](https://item.szlcsc.com/85852.html)
14 | 模拟开关芯片|SOP16|CD4052B|1|U2|[C6521](https://item.szlcsc.com/6986.html)
15 | Zigbee模块|E18-MS1PA1-IPX|E18-MS1PA1-IPX|1|U3|[C108551](https://item.szlcsc.com/109770.html)
16 | 模拟开关芯片|SOT-353|74LVC1G66|2|U4, U5|[C113518](https://list.szlcsc.com/catalog/488.html)
17 | 低压差线性稳压器|SOT-223-3|1117-33|1|U6|[C369933](https://list.szlcsc.com/catalog/387.html)
18 | WiFi模块|ESP-WROOM-02|ESP-WROOM-02|1|U7|[C81770](https://item.szlcsc.com/82923.html)
19 | SMA转I-PEX|||1||[C403729](https://item.szlcsc.com/389816.html)
20 | TypeC座|||1||[C165948](https://item.szlcsc.com/177331.html)
21 | 三极管|SOT-23|S8050|2|Q1,Q2|[C181158](https://item.szlcsc.com/192555.html)
22 | 胶棒天线||2.4G|1||[C381198](https://item.szlcsc.com/353456.html)
23 |
24 | 参考价格来自立创商城. 加上PCB成本, 总计成本约**68.236**元.
--------------------------------------------------------------------------------
/documents/signal.md:
--------------------------------------------------------------------------------
1 | # E18系列模组信号测量结果
2 |
3 | 我使用频谱仪实际测量了不同的固件情况下, E18两款模组[E18-MS1PA1-IPX](http://www.ebyte.com/en/product-view-news.aspx?id=123)和[E18-2G4Z27SI](http://www.ebyte.com/en/product-view-news.aspx?id=522)发射时实际功率值.
4 |
5 | 在[Koenkk zigbee2mqtt](https://github.com/Koenkk/Z-Stack-firmware/tree/master/coordinator/Z-Stack_Home_1.2)使用的修订版ZNP固件中, 默认提供的CC2530+CC2592固件, 设置TX发射功率为[TX_PWR_PLUS_19](https://github.com/Koenkk/Z-Stack-firmware/blob/master/coordinator/Z-Stack_Home_1.2/firmware.patch#L328). 但是CC2592的手册说明此PA是可以21dBm发射的.
6 |
7 | 我发现TI源码中, 设置Tx发射功率的enum数据类型最大只定义到了19dBm, 揣测可能Koenkk就是使用了默认的最大值, 而没有根据不同PA进行设置.
8 |
9 | 我修改ZNP源码并编译, 得到了不同情况下的发射信号功率图.
10 |
11 | ## 默认固件
12 |
13 | [E18-MS1PA1-IPX](http://www.ebyte.com/en/product-view-news.aspx?id=123)和[E18-2G4Z27SI](http://www.ebyte.com/en/product-view-news.aspx?id=522)情况一样. 实测发射功率为14.202dBm.
14 | 
15 |
16 | ## 修改21dBm
17 |
18 | [E18-MS1PA1-IPX](http://www.ebyte.com/en/product-view-news.aspx?id=123)模组, 设置发射功率为2592最大功率21dBm. 代码修改如下:
19 |
20 | ```C
21 | - ZMacSetTransmitPower(TX_PWR_PLUS_19);
22 | + ZMacSetTransmitPower(21);
23 | ```
24 |
25 | 实测发射功率18.495dBm.
26 | 
27 |
28 | ## 修改27dBm
29 |
30 | [E18-2G4Z27SI](http://www.ebyte.com/en/product-view-news.aspx?id=522)模组, 设置模组最大功率27dBm. 代码修改如下:
31 |
32 | ```C
33 | - ZMacSetTransmitPower(TX_PWR_PLUS_19);
34 | + ZMacSetTransmitPower(27);
35 | ```
36 |
37 | 实测发射功率26.809dBm.
38 | 
39 |
40 | ## 总结
41 |
42 | 从频谱仪的实测结果来看, 要达到最大发射功率的话, 必须要修改固件源码才行. 我并不是专业硬件人员, 对于这个结果, 我又两点疑问:
43 |
44 | 1. 最大发射功率情况下, 明显能看到谐波的毛刺, 这个毛刺会不会对数据有干扰?
45 | 2. 修改的都是最大发射功率, 但是实际使用时, zigbee传感器会向网关发数据, 这时候网关是接收状态. 我们没办法修改小米等zigbee传感器, 是不是在这个情况下, 只增大网关的发射功率, 对双向传输的zigbee协议, 是不是太大帮助?
46 |
47 | 如果有专业人士可以帮忙解答, 麻烦提issue回答一下, 先表感谢.
48 |
--------------------------------------------------------------------------------
/documents/tty.md:
--------------------------------------------------------------------------------
1 | # Z2M USB串口复用控制
2 |
3 | ## V01版本
4 |
5 | 
6 |
7 | ### 开关名称和状态定义
8 |
9 | - 定义开关为上、下两个开关.
10 | - 开关分别有左、右两种状态.
11 |
12 | (就是别看板子上的丝印了)
13 |
14 | ### 工作模式对照表
15 |
16 | -|上左|上右
17 | ---|---|---
18 | 下左|ESP连Zigbee, USB串口没有输出|ESP连Zigbee, USB串口输出调试信息
19 | 下右|USB串口连接Zigbee|USB串口连接ESP
20 |
21 | ## V02版本(未测试)
22 |
23 | 此版本目的是要不需要用户控制, 完全用ESP模块来控制串口复用状态.
24 | 所以, 请不焊接SW1, R13, R14, R3, R4.
25 | 如果焊接了SW1, 也别焊接R3, R4, 并且保持SW1的两个开关都处于左测.
26 |
--------------------------------------------------------------------------------
/firmware/bin/espFW/cclib.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/firmware/bin/espFW/cclib.bin
--------------------------------------------------------------------------------
/firmware/bin/espFW/ser2net.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/firmware/bin/espFW/ser2net.bin
--------------------------------------------------------------------------------
/firmware/bin/zigbeeFW/CC2530ZNP-SB.hex:
--------------------------------------------------------------------------------
1 | :020000040000FA
2 | :100000000212F6022003FFFFFFFFFF02200BFFFF9B
3 | :10001000FFFFFF020E56FFFFFFFFFF02201BFFFF47
4 | :10002000FFFFFF022023FFFFFFFFFF02202BFFFF48
5 | :10003000FFFFFF022033FFFFFFFFFF020E99FFFFCC
6 | :10004000FFFFFF022043FFFFFFFFFF02204BFFFFE8
7 | :10005000FFFFFF022053FFFFFFFFFF02205BFFFFB8
8 | :10006000FFFFFF022063FFFFFFFFFF02206BFFFF88
9 | :10007000FFFFFF022073FFFFFFFFFF02207BFFFF58
10 | :10008000FFFFFF022083FFFFFFFFFF02208BFFFF28
11 | :10009000FFFF70DFFFFF040000000002000000C847
12 | :1000A0000300030369A5020269A501000000000026
13 | :1000B00004003273000074F812103D900393E06066
14 | :1000C0001590030274FEF0900304744DF0A37405C0
15 | :1000D000F07A011206877F0102115A74F712103D5F
16 | :1000E00074FF1212627E00801F851882851983E0DA
17 | :1000F00064FE70069003877401F085188285198369
18 | :10010000E0F8900384E068F07C017D00AA18AB1948
19 | :10011000120E118B09EA450970030201E985188264
20 | :10012000851983E064EF70027E07E0C0E0900387EA
21 | :10013000E0F8900385E0FAE82AF8E434001206D7E4
22 | :10014000D0E0F0900387E060A014600E14602A14E1
23 | :10015000603A14605014606680A0900384E4F085D7
24 | :100160001882851983E0900386F0C39480900387FA
25 | :100170004003E4808474028080851882851983E0BE
26 | :10018000900382F090038774030200F9851882853A
27 | :100190001983E0900383F0900386E0601990038751
28 | :1001A00074040200F9900385E004F0F8900386E0FF
29 | :1001B0006860030200FA90038774050200F9900357
30 | :1001C00085E4F0900387F0900384E0F88518828539
31 | :1001D0001983E06860030200FA900382E0644D60D6
32 | :1001E000030200FA12031E8002EEF9740112122EAD
33 | :1001F0007F0202115A74F712103D74FB121262EA68
34 | :10020000FEEBFF75080475090078081212C6740227
35 | :100210001212DF7A907B007904120EBA7402121265
36 | :100220002E120679121330E0687003A3E069701291
37 | :10023000851882851983E0F47003A3E0F46003025B
38 | :1002400002FE74041212D71206E38A088B09A8086A
39 | :10025000A9097402121330E8F0A3E9F07404121330
40 | :1002600030E0600879011200B60203178518828514
41 | :100270001983E0687003A3E0697076851882851998
42 | :1002800083E0F47003A3E0F4701974021213307465
43 | :1002900010F0A37420F08518828519837410F0A3E0
44 | :1002A0007420F075080175090078081212C67402EE
45 | :1002B0001212DF7A247B08120F3E740212122E757E
46 | :1002C000080478081212C674021212DF7A907B00BA
47 | :1002D0007904120EBA740212122E12067912133019
48 | :1002E000E0687003A3E069700479028006790480F5
49 | :1002F0000279031200B68E828F83741E80058E826F
50 | :100300008F83E4F0120679121330E0687003A3E0E3
51 | :1003100069700479018002790074050201ED74EBC3
52 | :1003200012103D74F8121262900307E0FA9003066F
53 | :10033000E0FBFCEAF8E4C8F9EC28FEE93408FF75B4
54 | :100340001001750D00750C068E088F09740278086F
55 | :1003500012128DC39508F8E49509F9740228F50E78
56 | :10036000740339F50FE50E2497F514E50F3420F5E5
57 | :1003700015EE2410F508E43FF5098E128F13740969
58 | :1003800078121212E785120A900383E01460541465
59 | :1003900070030204601470030204E114601024FE70
60 | :1003A000700302059C14700302064C02065C750C77
61 | :1003B00003794E120C4F90030712066F7402F0A3DC
62 | :1003C000744012066D740812066DF0A3F0751012D9
63 | :1003D000AA10A90D120687A90C740812122E7F0EFE
64 | :1003E00002115A750C04794E120C4FEEF8EF5401BD
65 | :1003F000F9E8497005A90A120FA6C3EE9425EF94F7
66 | :1004000008503FC3E5089424E50994084034E50EFC
67 | :100410002496F8E50F3420F988828983E0701E85E0
68 | :100420001482851583E070159003887401F088822A
69 | :10043000898374A5F08514828515838004900388D0
70 | :10044000E4F075081075090078081212C67C087D62
71 | :1004500003EEFAEFFB120F3E740212122E0203D0CB
72 | :10046000750C05C3E50A947995E04006750D010207
73 | :1004700003D0750E40750F00780E1212C67C097DF0
74 | :10048000038E0E8F0F7402780E12128DE50E54FC3F
75 | :10049000FAE50F5407FBA90A120EBA740212122EC3
76 | :1004A000900307E0A3F0900306E0A3F0751043C3A8
77 | :1004B000EE9425EF940840030203D0C3E50894248A
78 | :1004C000E509940850030203D0900388E07003020A
79 | :1004D00003D0A814A91588828983E4F0A3F002034D
80 | :1004E000D075080475090078081212C67402121239
81 | :1004F000DF7A907B007904120EBA740212122E7405
82 | :1005000002121330E0F8A3E0F9851882851983E020
83 | :10051000687003A3E069851882851983700BE0F485
84 | :100520007003A3E0F470578009E0F47003A3E0F4D3
85 | :10053000700D8518828519837410F0A37420F01251
86 | :100540000679121330E8F0A3E9F075080178081273
87 | :1005500012C674021212DF7A247B08120F3E740254
88 | :1005600012122E75080478081212C674021212DFD5
89 | :100570007A907B007904120EBA740212122E1206BF
90 | :1005800079121330E0687003A3E0697006750C01FE
91 | :100590000203D0750C02750D070203D0900391E0A1
92 | :1005A0006007640260030203D0EAFF7A0179001257
93 | :1005B0000687E060030206408003120D11120D1B36
94 | :1005C000E970F774041213301206617404121330C8
95 | :1005D000780812131485080C85090D850A0E850B01
96 | :1005E0000F9005A2780C1212B37404121330780C19
97 | :1005F000121305E5084509450A450B70CE8EC2E584
98 | :10060000C554E04FF5C5740412133012066174042A
99 | :10061000121330780812131485080C85090D850A09
100 | :100620000E850B0F9005A2780C1212B374041213EE
101 | :1006300030780C121305E5084509450A450B70CEC4
102 | :100640007A01790012068779080203D9EB900393A7
103 | :10065000F070030203D0750C090203D0790602037F
104 | :10066000D9E4F0A37426F0A3E4F0A3F022F0A3E40D
105 | :10067000F0A3F0A3F0A3F0A322851882851983E0EC
106 | :10068000F8A3E0F974022274F812103DEAFE900318
107 | :1006900005E0D2E7F0E9A3F0EE900303F08E0874D2
108 | :1006A000042AFE7A028004E062080AEAF83395E040
109 | :1006B0001206D7EEFCC3E89CE99400A2D265D033C1
110 | :1006C00040E5E508F0740128FC3395E0FD7A027BF3
111 | :1006D00003120E410200D6F9740228F58274033920
112 | :1006E000F5832274E912103D7582007583FE1211A4
113 | :1006F000F58A168B177514007515008A828B83E4B2
114 | :10070000F0900391E07006D2AAD2AF800464027028
115 | :100710000579001200B6750C00750D20750E007578
116 | :100720000F00900391E0600464027015120D111225
117 | :1007300000DBE9F87409686003020813790012000D
118 | :10074000B675080075090278081212C674021212F2
119 | :10075000DF850C08850D09AA08E5095407FB850EFD
120 | :100760000A850F0B740B7808121249A908120EBAE9
121 | :10077000740212122E7E007F009005AAC0828E1095
122 | :10078000EFF5113395E0F512F513850C08850D0989
123 | :10079000850E0A850F0B780879101212A09005A615
124 | :1007A00078081212B3758305D08278081211D650DA
125 | :1007B0001D851882851983E5822EF582E5833FF534
126 | :1007C00083E0F9AA14AB151208428A148B150EEEB9
127 | :1007D00070010FC3EF940240A09005AE780C121286
128 | :1007E000B39005B2780C1211D640030207227900AB
129 | :1007F000AA14AB1512084279001208428B15900317
130 | :1008000091E07004C2AFC2AAEA451570277AA57BB1
131 | :10081000A58021E87003020741740668700302078F
132 | :100820004174076870030207418516828517837437
133 | :1008300001F080BA7582007583021211F57F1002F3
134 | :10084000115A7808EB54806004D2F08002C2F0EABA
135 | :1008500025E0FAEB33FBE9A2E7500474014AFAA25F
136 | :10086000F0500874216AFA74106BFBE9C333F9186D
137 | :10087000E870D12274F812103D780079008022745B
138 | :10088000942EF582E43403F583E08A828B83F09022
139 | :1008900004141209EF4005900414E4F008E8700114
140 | :1008A00009900414E0FEA3E06E6007C3E89CE99D94
141 | :1008B00040CDE8FAE9FB7F0102115A74F712103DAE
142 | :1008C000900498E0FFA3E0FEF8EFC398F895E0F9F4
143 | :1008D000EEC39FE8500B120AD170117800790080A6
144 | :1008E0001B247F500109C39CE99D50EF7A007B00D7
145 | :1008F0008041E004F0D2E908E8700109C3E89CE90E
146 | :100900009D502C8A828B83E0C0E0900499E0FE74B5
147 | :10091000182EF582E43404F583D0E0120AC1900465
148 | :100920009AE4F0900499E0C3947F40C6E480C5E85F
149 | :10093000FAE9FB7F0202115AC082C083C2E9900427
150 | :1009400098E0F8A3E0686017741828F582E434048E
151 | :10095000F583E0F5C1900498120AE84002E4F00241
152 | :100960000D2F74F812103D7800790090051DE0708D
153 | :1009700055A3E0705175F900C28FC284A28340FC78
154 | :10098000A28F4004A28350F8AEF9C28FA283500414
155 | :10099000D2848032EEC0E0E0FE1209E4D0E0F090B4
156 | :1009A000051E120AE840D9E4F080D51209E4E08A75
157 | :1009B000828B83F090051D1209EF400590051DE420
158 | :1009C000F008E870010990051DE0FEA3E06E6007E5
159 | :1009D000C3E89CE99D40D4E8497006E4F090051D09
160 | :1009E000F00208B2749D2EF582E43404F58322E00F
161 | :1009F00004120AC5C394802274F812103D9005A019
162 | :100A0000E0FEF890059FE0FFEEC39FE0500DC39815
163 | :100A1000F895E0F9120AD070188012C398F895E0A2
164 | :100A2000F9E8247F500109C39CE99D4004EC4D7016
165 | :100A3000077A007B00020ABE8A828B83E0F5F9A365
166 | :100A4000AA82AB83780179008008E004F008E8709E
167 | :100A50000109C3E89CE99D50278A828B83E0C0E0AE
168 | :100A60009005A0E0FE741F2EF582E43405F583D0D6
169 | :100A7000E0120AC19005A0E0C3947F40CDE480CC91
170 | :100A8000C28FA28340FCC284A28F4004A28350F88C
171 | :100A900090059F120ADBE0F5F9C28F90059FE0FAFE
172 | :100AA000A3E06A90059F7005120ADB8005120AE830
173 | :100AB0004002E4F0A28350D0D284E8FAE9FB0208B5
174 | :100AC000B6120AC522F08A828B83A3AA82AB832244
175 | :100AD000E824FF18E934FFF9E84922E0FA741F2AF4
176 | :100AE000F582E43405F58322E004F0C39480227497
177 | :100AF000FB121262C2009005CA7808121314900506
178 | :100B0000CA7401F0A3F0A37469F0A374A5F0900572
179 | :100B1000B678081212787004D20080159005BA7861
180 | :100B2000081212786008E59D5418641070030220C2
181 | :100B300000120C75A2005003020BF2AA18AB191296
182 | :100B400001F5E97003020BF2851882851983E0C371
183 | :100B5000943C500CE0F8743CC398FA95E0FB800498
184 | :100B60007A007B00120D34E97003020BF2900391BE
185 | :100B7000E06401700C75F800C2AB539AF7D2EA80BA
186 | :100B80005E79071200B68003120D11120D1BE97079
187 | :100B9000F77401121330E4F0A37426F0A3E4F0A379
188 | :100BA000F07401121330780812131485080C8509AB
189 | :100BB0000D850A0E850B0F9005A2780C1212B374E6
190 | :100BC00001121330780C121305E5084509450A4552
191 | :100BD0000B70CE758600C2AAC28B539AFBC2E990F5
192 | :100BE000000174CDF0022000C2AF75C9AB75C95BBE
193 | :100BF00080FE750800750900750A00750B009003EA
194 | :100C000091E0701BD2AAD2AF79051200B6E0700352
195 | :100C1000120D111200DBE9F8740968700980E97996
196 | :100C20004E120C4F80ED74016870E2E07017120DE7
197 | :100C3000119005BE78081212B39005C278081211FF
198 | :100C4000D650EBC2AAC2AF75C9AB75C95B80FEC0F6
199 | :100C500082C08378109005A1E0C399501575B60F36
200 | :100C6000E5B4A2E750FAE5BBC39940F118E870ED8E
201 | :100C7000E9F0020D2FC082C08353BEFBE59DA2E6C2
202 | :100C800050FA0078F8790100120AD070FA75C6801F
203 | :100C90007480659E70FA43BE049062707408F079A7
204 | :100CA0004A120C4F90000174F5F07403F5D5748965
205 | :100CB000F5D4A2A0E433900391F0A2E05029D284AD
206 | :100CC00053F3F753F3EF53FDF743FD10538FF753EF
207 | :100CD000F7DF43FC2043F10253F5DF75F82043F4BE
208 | :100CE000F0D2FED2AB802853FF3F85FFFF53F1FEC9
209 | :100CF00043F30C53F2F375868075C48090049BE433
210 | :100D0000F0A3F075C2D875C50B75C4024386408048
211 | :100D10001E8003120938A2E940F922C082C08390E4
212 | :100D20000498E0F8A3E0686004790180027900D0BB
213 | :100D300083D0822274F112103D74FF1212627E0081
214 | :100D4000900391E06401706CC2849003927401F08E
215 | :100D50007508388E098E0A8E0B7C017D00AA18ABAF
216 | :100D600019120E118B0DEA450D6018851882851930
217 | :100D700083E06410602DE064EF70088E088E098EA9
218 | :100D80000A8E0B85080C85090D850A0E850B0F90C0
219 | :100D900005A278081212B3E50C450D450E450F70FB
220 | :100DA000347E01900391E064017056D284900392E6
221 | :100DB000E4F08051D2AAD2AF8A088B09E4F50AF593
222 | :100DC0000B9005C6780C1213147808790C120FBD1D
223 | :100DD00079061200B6900391E06003020D59120DDE
224 | :100DE000111200DBE9F8740968700779061200B681
225 | :100DF00080917407686084E8608974066870A480D4
226 | :100E000082C2AFC2AAEEF9740112122E7F0802113B
227 | :100E10005AC082C083900391E07005120874801E4E
228 | :100E2000900392E06015A28F500BE5F98A828B83C4
229 | :100E3000F07A0180027A007B008003120962020DC1
230 | :100E40002FC082C083900391E070051208BB80031D
231 | :100E50001209F8020D2FC0E074F21210A3900001E5
232 | :100E6000E064CD7005122013802AE064F57024E55B
233 | :100E7000C1C28BC0E0900415E0F8749428F582E4B8
234 | :100E80003403F583D0E0F0900415120AE84005E43D
235 | :100E9000F08001007F01021102C0E074F21210A381
236 | :100EA000900001E064CD700512203B800BE064F5FA
237 | :100EB000700512093880010080DA74F512103D893E
238 | :100EC00008740F5508F50A750B00740B780A121296
239 | :100ED0008DEA2400F8EB3480F9E82400E9350BF9B9
240 | :100EE00085C70AA2AFE433F509C2AFE508C4540FC1
241 | :100EF000FAE5C754F84AF5C7740B121330E0FAA3A9
242 | :100F0000E0FB801C88828983E08C828D83F088825C
243 | :100F10008983A3A882A9838C828D83A3AC82AD83AD
244 | :100F2000EAFEEBFFEE24FF1AEF34FFFBEE4F70D426
245 | :100F3000850AC7E509A2E092AF7F0402115A74F74F
246 | :100F400012103DECFEED900389F0EEA3F0A3746265
247 | :100F5000F0A37473F0A3E0541FF07409121330E08F
248 | :100F6000F508A3E0F509E508333354FC90038EF04F
249 | :100F7000740678081212E7E50890038DF090038F4D
250 | :100F80007412F0A37442F075D1FE75D601EA906236
251 | :100F900071F0EBA3F0906270E0D2E1F0E0A2E740E4
252 | :100FA000FB7F0202115AC082C083E9C33390627290
253 | :100FB000F0906270E0D2E0F0D083D082220808087E
254 | :100FC000EAC0E0EBC0E086F0E7A4FA180986F0E793
255 | :100FD000A42AFA180986F0E7A42AFA180986F0E785
256 | :100FE000A42AFA1986F0E7A4FBE5F02AFA19088684
257 | :100FF000F0E7A42BFBE5F03AFA190886F0E7A42BFA
258 | :10100000FBE5F03AFA18180986F0E7A4C5F02BFBC7
259 | :10101000E43AFA1908E7C5F0C6A426F6E5F03BFB6A
260 | :10102000E43AFA1886F0E7A4F6E5F00826F6E43B81
261 | :1010300008F6E43A08F6D0E0FBD0E0FA222518C51D
262 | :1010400082C0E0E51934FFC583C0E0E518C395828E
263 | :1010500024F910AF088583198582188008858319C3
264 | :10106000858218D2AFCEF0A3E520F0A37808E60879
265 | :10107000F0A3DEFAEFF0A3E58124FBF8E608F0A385
266 | :10108000E608F0A30808E608F0A3E608F0A3158137
267 | :101090001581D0E0FED0E0F815811581E8C0E0EEC2
268 | :1010A000C0E022C0D02518C582C0E0E51934FFC5D4
269 | :1010B00083C0E0E518C3958224F310AF0885831937
270 | :1010C0008582188008858319858218D2AFC8F0A35D
271 | :1010D000E9F0A3EAF0A3EBF0A37908E709F0A3D8BD
272 | :1010E000FAECF0A3EDF0A3EEF0A3EFF0A3D0E0F064
273 | :1010F000A3D0E0F0A3D0E0F0A3E520F0A3E5F0F06A
274 | :10110000A322851983851882E0C0E0A3E0F9A3E05B
275 | :10111000FAA3E0FBA37808E0F608A3DFFAE0FCA35B
276 | :10112000E0FDA3E0FEA3E0FFA3E0C0E0A3E0C0E099
277 | :10113000A3E0F5D0A3E0F520A3E0A3F5F010AF08FD
278 | :101140008583198582188008858319858218D2AF16
279 | :10115000D082D083D0E0F8D0E03285198385188220
280 | :10116000E0A3FEE0A3F5207808E0A3F608DFFAE0AC
281 | :10117000A3FFE0A3C0E0E0A3C0E0E0A3C0E0E0A3E1
282 | :10118000C0E010AF08858218858319800885821811
283 | :10119000858319D2AFD083D08222E490030278A154
284 | :1011A00079038002F0A3D8FCD9FA7AA27B059000DB
285 | :1011B0008E782979018015E493A3AD82AE838A826B
286 | :1011C0008B83F0A3AA82AB838D828E83D8E9D9E783
287 | :1011D000120AEF12133AC008C3E096F50808A3E01C
288 | :1011E00096420808A3E096420808A3E096450870D6
289 | :1011F00001D3D00822C5822518C582C583351910B0
290 | :10120000AF07F5198582188007F519858218D2AFC6
291 | :10121000C583222518F58210AF08F518400C151962
292 | :101220008008F51840021519D2AF8519832200C035
293 | :10123000D0251810AF08F518500C05198008F518BE
294 | :1012400050020519D2AFD0D0226016080808C6C3D4
295 | :1012500013C618C613C618C613C618C613C6D5E0DB
296 | :10126000EA22251810AF08F518400C15198008F56A
297 | :101270001840021519D2AF22E066701008A3E0668C
298 | :10128000700A08A3E066700408A3E06622700422D6
299 | :10129000600D18C6C333C608C633C6D5E0F418229D
300 | :1012A000E627F60809E637F60809E637F60809E6FC
301 | :1012B00037F622E026F608A3E036F608A3E036F675
302 | :1012C00008A3E036F62274028000C0E0F404121293
303 | :1012D00013D0E0121323222518FAE43519FB222536
304 | :1012E00018FCE43519FD22600C08C6C313C618C6E5
305 | :1012F00013C6D5E0F42275D00075813F75180275CC
306 | :10130000190302119AE6F008A3E6F008A3E6F00834
307 | :10131000A3E6F022E0F608A3E0F608A3E0F608A3AF
308 | :10132000E0F622CAC0E0E6F0A308DAFAD0E0FA223A
309 | :101330002518F582E43519F5832200000080FBFFB3
310 | :10134000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD
311 | :10135000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9D
312 | :10136000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D
313 | :10137000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7D
314 | :10138000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D
315 | :10139000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D
316 | :1013A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D
317 | :1013B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3D
318 | :1013C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D
319 | :1013D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1D
320 | :1013E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D
321 | :1013F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD
322 | :10140000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC
323 | :10141000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDC
324 | :10142000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC
325 | :10143000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBC
326 | :10144000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC
327 | :10145000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C
328 | :10146000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C
329 | :10147000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7C
330 | :10148000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C
331 | :10149000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C
332 | :1014A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C
333 | :1014B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C
334 | :1014C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C
335 | :1014D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1C
336 | :1014E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C
337 | :1014F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC
338 | :10150000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB
339 | :10151000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDB
340 | :10152000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB
341 | :10153000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBB
342 | :10154000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB
343 | :10155000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9B
344 | :10156000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B
345 | :10157000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7B
346 | :10158000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B
347 | :10159000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5B
348 | :1015A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B
349 | :1015B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3B
350 | :1015C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B
351 | :1015D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1B
352 | :1015E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B
353 | :1015F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB
354 | :10160000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA
355 | :10161000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDA
356 | :10162000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA
357 | :10163000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBA
358 | :10164000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA
359 | :10165000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9A
360 | :10166000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A
361 | :10167000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7A
362 | :10168000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A
363 | :10169000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5A
364 | :1016A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A
365 | :1016B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3A
366 | :1016C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A
367 | :1016D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A
368 | :1016E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A
369 | :1016F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA
370 | :10170000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9
371 | :10171000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD9
372 | :10172000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9
373 | :10173000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB9
374 | :10174000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9
375 | :10175000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99
376 | :10176000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89
377 | :10177000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF79
378 | :10178000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69
379 | :10179000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF59
380 | :1017A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49
381 | :1017B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF39
382 | :1017C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29
383 | :1017D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF19
384 | :1017E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09
385 | :1017F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9
386 | :10180000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8
387 | :10181000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8
388 | :10182000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8
389 | :10183000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB8
390 | :10184000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8
391 | :10185000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF98
392 | :10186000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88
393 | :10187000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF78
394 | :10188000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68
395 | :10189000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF58
396 | :1018A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48
397 | :1018B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF38
398 | :1018C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28
399 | :1018D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF18
400 | :1018E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08
401 | :1018F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8
402 | :10190000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
403 | :10191000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD7
404 | :10192000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
405 | :10193000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB7
406 | :10194000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7
407 | :10195000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF97
408 | :10196000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87
409 | :10197000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77
410 | :10198000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67
411 | :10199000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF57
412 | :1019A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47
413 | :1019B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF37
414 | :1019C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27
415 | :1019D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17
416 | :1019E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07
417 | :1019F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7
418 | :101A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6
419 | :101A1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD6
420 | :101A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6
421 | :101A3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB6
422 | :101A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6
423 | :101A5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF96
424 | :101A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86
425 | :101A7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76
426 | :101A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66
427 | :101A9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF56
428 | :101AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46
429 | :101AB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF36
430 | :101AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26
431 | :101AD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF16
432 | :101AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06
433 | :101AF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6
434 | :101B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5
435 | :101B1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5
436 | :101B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5
437 | :101B3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB5
438 | :101B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5
439 | :101B5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF95
440 | :101B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85
441 | :101B7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF75
442 | :101B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65
443 | :101B9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF55
444 | :101BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45
445 | :101BB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF35
446 | :101BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25
447 | :101BD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF15
448 | :101BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05
449 | :101BF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5
450 | :101C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4
451 | :101C1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD4
452 | :101C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4
453 | :101C3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4
454 | :101C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4
455 | :101C5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF94
456 | :101C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84
457 | :101C7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF74
458 | :101C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64
459 | :101C9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF54
460 | :101CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44
461 | :101CB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF34
462 | :101CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24
463 | :101CD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF14
464 | :101CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04
465 | :101CF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4
466 | :101D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3
467 | :101D1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD3
468 | :101D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3
469 | :101D3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB3
470 | :101D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3
471 | :101D5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF93
472 | :101D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83
473 | :101D7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF73
474 | :101D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63
475 | :101D9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF53
476 | :101DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43
477 | :101DB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF33
478 | :101DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23
479 | :101DD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF13
480 | :101DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03
481 | :101DF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3
482 | :101E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2
483 | :101E1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2
484 | :101E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2
485 | :101E3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB2
486 | :101E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2
487 | :101E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF92
488 | :101E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82
489 | :101E7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72
490 | :101E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62
491 | :101E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF52
492 | :101EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42
493 | :101EB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32
494 | :101EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22
495 | :101ED000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12
496 | :101EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02
497 | :101EF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2
498 | :101F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1
499 | :101F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD1
500 | :101F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1
501 | :101F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB1
502 | :101F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1
503 | :101F5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91
504 | :101F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81
505 | :101F7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71
506 | :101F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61
507 | :101F9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF51
508 | :101FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41
509 | :101FB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF31
510 | :101FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21
511 | :101FD000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11
512 | :101FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01
513 | :0A1FF600CA05094338860000000008
514 | :020000040003F7
515 | :01FFF000F020
516 | :04000005000012F6EF
517 | :00000001FF
518 |
--------------------------------------------------------------------------------
/firmware/bin/zigbeeFW/normal_21db/CC2530ZNP-Prod.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/firmware/bin/zigbeeFW/normal_21db/CC2530ZNP-Prod.bin
--------------------------------------------------------------------------------
/firmware/bin/zigbeeFW/source_routing_21db/CC2530ZNP-Prod.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/firmware/bin/zigbeeFW/source_routing_21db/CC2530ZNP-Prod.bin
--------------------------------------------------------------------------------
/firmware/esp/cclib/.gitignore:
--------------------------------------------------------------------------------
1 | ## OS specific ########
2 | .DS_Store
3 | .fuse_hidden*
4 |
5 | ## Project files ######
6 | .pio
7 | .pioenvs
8 | .piolibdeps
9 | .clang_complete
10 | .gcc-flags.json
11 | .cache
12 |
13 | # Compiled Object files
14 | *.slo
15 | *.lo
16 | *.o
17 | *.obj
18 |
19 | # Compiled Dynamic libraries
20 | *.so
21 | *.dylib
22 | *.dll
23 |
24 | # Compiled Static libraries
25 | *.lai
26 | *.la
27 | *.a
28 | *.lib
29 |
30 | # Executables
31 | *.exe
32 | *.out
33 | *.app
34 |
35 | *.pyc
36 |
37 | Python/test.py
38 |
--------------------------------------------------------------------------------
/firmware/esp/cclib/CCDebugger.cpp:
--------------------------------------------------------------------------------
1 | /**
2 | *
3 | * CC-Debugger Protocol Library for Arduino
4 | * Copyright (c) 2014-2016 Ioannis Charalampidis
5 | * Copyright (c) 2015 Simon Schulz - github.com/fishpepper
6 | *
7 | * This program is free software: you can redistribute it and/or modify
8 | * it under the terms of the GNU General Public License as published by
9 | * the Free Software Foundation, either version 3 of the License, or
10 | * (at your option) any later version.
11 | *
12 | * This program is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU General Public License for more details.
16 | *
17 | * You should have received a copy of the GNU General Public License
18 | * along with this program. If not, see .
19 | */
20 |
21 | #include "CCDebugger.h"
22 |
23 | /**
24 | * Instruction table indices
25 | */
26 | #define INSTR_VERSION 0
27 | #define I_HALT 1
28 | #define I_RESUME 2
29 | #define I_RD_CONFIG 3
30 | #define I_WR_CONFIG 4
31 | #define I_DEBUG_INSTR_1 5
32 | #define I_DEBUG_INSTR_2 6
33 | #define I_DEBUG_INSTR_3 7
34 | #define I_GET_CHIP_ID 8
35 | #define I_GET_PC 9
36 | #define I_READ_STATUS 10
37 | #define I_STEP_INSTR 11
38 | #define I_CHIP_ERASE 12
39 |
40 | /////////////////////////////////////////////////////////////////////
41 | /////////////////////////////////////////////////////////////////////
42 | //// CONSTRUCTOR & CONFIGURATORS ////
43 | /////////////////////////////////////////////////////////////////////
44 | /////////////////////////////////////////////////////////////////////
45 |
46 | /**
47 | * Initialize CC Debugger class
48 | */
49 | CCDebugger::CCDebugger( int pinRST, int pinDC, int pinDD)
50 | {
51 |
52 | // Keep references
53 | this->pinRST = pinRST;
54 | this->pinDC = pinDC;
55 | this->pinDD = pinDD;
56 |
57 | // Prepare CC Pins
58 | pinMode(pinDC, OUTPUT);
59 | pinMode(pinDD, INPUT);
60 | pinMode(pinRST, OUTPUT);
61 | digitalWrite(pinDC, LOW);
62 | digitalWrite(pinDD, LOW); // No pull-up
63 | digitalWrite(pinRST, LOW);
64 |
65 | // Prepare default direction
66 | setDDDirection(INPUT);
67 |
68 | // Default CCDebug instruction set for CC254x
69 | instr[INSTR_VERSION] = 1;
70 | instr[I_HALT] = 0x40;
71 | instr[I_RESUME] = 0x48;
72 | instr[I_RD_CONFIG] = 0x20;
73 | instr[I_WR_CONFIG] = 0x18;
74 | instr[I_DEBUG_INSTR_1] = 0x51;
75 | instr[I_DEBUG_INSTR_2] = 0x52;
76 | instr[I_DEBUG_INSTR_3] = 0x53;
77 | instr[I_GET_CHIP_ID] = 0x68;
78 | instr[I_GET_PC] = 0x28;
79 | instr[I_READ_STATUS] = 0x30;
80 | instr[I_STEP_INSTR] = 0x58;
81 | instr[I_CHIP_ERASE] = 0x10;
82 |
83 | // We are active by default
84 | active = true;
85 |
86 | };
87 |
88 |
89 | /**
90 | * Activate/Deactivate debugger
91 | */
92 | void CCDebugger::setActive( boolean on )
93 | {
94 |
95 | // Reset error flag
96 | errorFlag = CC_ERROR_NONE;
97 |
98 | // Continue only if active
99 | if (on == this->active) return;
100 | this->active = on;
101 |
102 | if (on) {
103 |
104 | // Prepare CC Pins
105 | pinMode(pinDC, OUTPUT);
106 | pinMode(pinDD, INPUT);
107 | pinMode(pinRST, OUTPUT);
108 | digitalWrite(pinDC, LOW);
109 | digitalWrite(pinDD, LOW); // No pull-up
110 | digitalWrite(pinRST, LOW);
111 |
112 | // Default direction is INPUT
113 | setDDDirection(INPUT);
114 |
115 | } else {
116 |
117 | // Before deactivating, exit debug mode
118 | if (inDebugMode)
119 | this->exit();
120 |
121 | // Put everything in inactive mode
122 | pinMode(pinDC, INPUT);
123 | pinMode(pinDD, INPUT);
124 | pinMode(pinRST, INPUT);
125 | digitalWrite(pinDC, LOW);
126 | digitalWrite(pinDD, LOW);
127 | digitalWrite(pinRST, LOW);
128 |
129 | }
130 | }
131 |
132 | /**
133 | * Return the error flag
134 | */
135 | byte CCDebugger::error()
136 | {
137 | return errorFlag;
138 | }
139 |
140 | /////////////////////////////////////////////////////////////////////
141 | /////////////////////////////////////////////////////////////////////
142 | //// LOW LEVEL FUNCTIONS ////
143 | /////////////////////////////////////////////////////////////////////
144 | /////////////////////////////////////////////////////////////////////
145 |
146 | /**
147 | * Delay a particular number of cycles
148 | */
149 | void cc_delay( unsigned char d )
150 | {
151 | volatile unsigned char i = d;
152 | while( i-- );
153 | }
154 |
155 | /**
156 | * Enter debug mode
157 | */
158 | byte CCDebugger::enter()
159 | {
160 | if (!active) {
161 | errorFlag = CC_ERROR_NOT_ACTIVE;
162 | return 0;
163 | }
164 | // =============
165 |
166 | // Reset error flag
167 | errorFlag = CC_ERROR_NONE;
168 |
169 | // Enter debug mode
170 | digitalWrite(pinRST, LOW);
171 | cc_delay(200);
172 | digitalWrite(pinDC, HIGH);
173 | cc_delay(3);
174 | digitalWrite(pinDC, LOW);
175 | cc_delay(3);
176 | digitalWrite(pinDC, HIGH);
177 | cc_delay(3);
178 | digitalWrite(pinDC, LOW);
179 | cc_delay(200);
180 | digitalWrite(pinRST, HIGH);
181 | cc_delay(200);
182 |
183 | // We are now in debug mode
184 | inDebugMode = 1;
185 |
186 | // =============
187 |
188 | // Success
189 | return 0;
190 |
191 | };
192 |
193 | /**
194 | * Write a byte to the debugger
195 | */
196 | byte CCDebugger::write( byte data )
197 | {
198 | if (!active) {
199 | errorFlag = CC_ERROR_NOT_ACTIVE;
200 | return 0;
201 | };
202 | if (!inDebugMode) {
203 | errorFlag = CC_ERROR_NOT_DEBUGGING;
204 | return 0;
205 | }
206 | // =============
207 |
208 | byte cnt;
209 |
210 | // Make sure DD is on output
211 | setDDDirection(OUTPUT);
212 |
213 | // Sent bytes
214 | for (cnt = 8; cnt; cnt--) {
215 |
216 | // First put data bit on bus
217 | if (data & 0x80)
218 | digitalWrite(pinDD, HIGH);
219 | else
220 | digitalWrite(pinDD, LOW);
221 |
222 | // Place clock on high (other end reads data)
223 | digitalWrite(pinDC, HIGH);
224 |
225 | // Shift & Delay
226 | data <<= 1;
227 | cc_delay(2);
228 |
229 | // Place clock down
230 | digitalWrite(pinDC, LOW);
231 | cc_delay(2);
232 |
233 | }
234 |
235 | // =============
236 | return 0;
237 | }
238 |
239 | /**
240 | * Wait until input is ready for reading
241 | */
242 | byte CCDebugger::switchRead(byte maxWaitCycles)
243 | {
244 | if (!active) {
245 | errorFlag = CC_ERROR_NOT_ACTIVE;
246 | return 0;
247 | }
248 | if (!inDebugMode) {
249 | errorFlag = CC_ERROR_NOT_DEBUGGING;
250 | return 0;
251 | }
252 | // =============
253 |
254 | byte cnt;
255 | byte didWait = 0;
256 |
257 | // Switch to input
258 | setDDDirection(INPUT);
259 |
260 | // Wait at least 83 ns before checking state t(dir_change)
261 | cc_delay(2);
262 |
263 | // Wait for DD to go LOW (Chip is READY)
264 | while (digitalRead(pinDD) == HIGH) {
265 |
266 | // Do 8 clock cycles
267 | for (cnt = 8; cnt; cnt--) {
268 | digitalWrite(pinDC, HIGH);
269 | cc_delay(2);
270 | digitalWrite(pinDC, LOW);
271 | cc_delay(2);
272 | }
273 |
274 | // Let next function know that we did wait
275 | didWait = 1;
276 |
277 | // Check if we ran out if wait cycles
278 | if (!--maxWaitCycles) {
279 |
280 | // If we are waiting for too long, we have lost the chip,
281 | // so also assume we are out of debugging mode
282 | errorFlag = CC_ERROR_NOT_WIRED;
283 | inDebugMode = 0;
284 |
285 | return 0;
286 | }
287 | }
288 |
289 | // Wait t(sample_wait)
290 | if (didWait) cc_delay(2);
291 |
292 | // =============
293 | return 0;
294 | }
295 |
296 | /**
297 | * Switch to output
298 | */
299 | byte CCDebugger::switchWrite()
300 | {
301 | setDDDirection(OUTPUT);
302 | return 0;
303 | }
304 |
305 | /**
306 | * Read an input byte
307 | */
308 | byte CCDebugger::read()
309 | {
310 | if (!active) {
311 | errorFlag = CC_ERROR_NOT_ACTIVE;
312 | return 0;
313 | }
314 | // =============
315 |
316 | byte cnt;
317 | byte data = 0;
318 |
319 | // Switch to input
320 | setDDDirection(INPUT);
321 |
322 | // Send 8 clock pulses if we are HIGH
323 | for (cnt = 8; cnt; cnt--) {
324 | digitalWrite(pinDC, HIGH);
325 | cc_delay(2);
326 |
327 | // Shift and read
328 | data <<= 1;
329 | if (digitalRead(pinDD) == HIGH)
330 | data |= 0x01;
331 |
332 | digitalWrite(pinDC, LOW);
333 | cc_delay(2);
334 | }
335 |
336 | // =============
337 |
338 | return data;
339 | }
340 |
341 | /**
342 | * Switch reset pin
343 | */
344 | void CCDebugger::setDDDirection( byte direction )
345 | {
346 |
347 | // Switch direction if changed
348 | if (direction == ddIsOutput) return;
349 | ddIsOutput = direction;
350 |
351 | // Handle new direction
352 | if (ddIsOutput) {
353 | pinMode(pinDD, OUTPUT); // Enable output
354 | digitalWrite(pinDD, LOW); // Switch to low
355 | } else {
356 | pinMode(pinDD, INPUT); // Disable output
357 | digitalWrite(pinDD, LOW); // Don't use output pull-up
358 | }
359 |
360 | }
361 |
362 | /////////////////////////////////////////////////////////////////////
363 | /////////////////////////////////////////////////////////////////////
364 | //// HIGH LEVEL FUNCTIONS ////
365 | /////////////////////////////////////////////////////////////////////
366 | /////////////////////////////////////////////////////////////////////
367 |
368 |
369 | /**
370 | * Exit from debug mode
371 | */
372 | byte CCDebugger::exit()
373 | {
374 | if (!active) {
375 | errorFlag = CC_ERROR_NOT_ACTIVE;
376 | return 0;
377 | }
378 | if (!inDebugMode) {
379 | errorFlag = CC_ERROR_NOT_DEBUGGING;
380 | return 0;
381 | }
382 |
383 | byte bAns;
384 | (void)bAns; // avoid warning about variable not being used
385 |
386 | write( instr[I_RESUME] ); // RESUME
387 | switchRead();
388 | bAns = read(); // debug status
389 | switchWrite();
390 |
391 | inDebugMode = 0;
392 |
393 | return 0;
394 | }
395 | /**
396 | * Get debug configuration
397 | */
398 | byte CCDebugger::getConfig() {
399 | if (!active) {
400 | errorFlag = CC_ERROR_NOT_ACTIVE;
401 | return 0;
402 | }
403 | if (!inDebugMode) {
404 | errorFlag = CC_ERROR_NOT_DEBUGGING;
405 | return 0;
406 | }
407 |
408 | byte bAns;
409 |
410 | write( instr[I_RD_CONFIG] ); // RD_CONFIG
411 | switchRead();
412 | bAns = read(); // Config
413 | switchWrite();
414 |
415 | return bAns;
416 | }
417 |
418 | /**
419 | * Set debug configuration
420 | */
421 | byte CCDebugger::setConfig( byte config ) {
422 | if (!active) {
423 | errorFlag = CC_ERROR_NOT_ACTIVE;
424 | return 0;
425 | }
426 | if (!inDebugMode) {
427 | errorFlag = CC_ERROR_NOT_DEBUGGING;
428 | return 0;
429 | }
430 |
431 | byte bAns;
432 |
433 | write( instr[I_WR_CONFIG] ); // WR_CONFIG
434 | write( config );
435 | switchRead();
436 | bAns = read(); // Config
437 | switchWrite();
438 |
439 | return bAns;
440 | }
441 |
442 | /**
443 | * Invoke a debug instruction with 1 opcode
444 | */
445 | byte CCDebugger::exec( byte oc0 )
446 | {
447 | if (!active) {
448 | errorFlag = CC_ERROR_NOT_ACTIVE;
449 | return 0;
450 | }
451 | if (!inDebugMode) {
452 | errorFlag = CC_ERROR_NOT_DEBUGGING;
453 | return 0;
454 | }
455 |
456 | byte bAns;
457 |
458 | write( instr[I_DEBUG_INSTR_1] ); // DEBUG_INSTR + 1b
459 | write( oc0 );
460 | switchRead();
461 | bAns = read(); // Accumulator
462 | switchWrite();
463 |
464 | return bAns;
465 | }
466 |
467 | /**
468 | * Invoke a debug instruction with 2 opcodes
469 | */
470 | byte CCDebugger::exec( byte oc0, byte oc1 )
471 | {
472 | if (!active) {
473 | errorFlag = CC_ERROR_NOT_ACTIVE;
474 | return 0;
475 | }
476 | if (!inDebugMode) {
477 | errorFlag = CC_ERROR_NOT_DEBUGGING;
478 | return 0;
479 | }
480 |
481 | byte bAns;
482 |
483 | write( instr[I_DEBUG_INSTR_2] ); // DEBUG_INSTR + 2b
484 | write( oc0 );
485 | write( oc1 );
486 | switchRead();
487 | bAns = read(); // Accumulator
488 | switchWrite();
489 |
490 | return bAns;
491 | }
492 |
493 | /**
494 | * Invoke a debug instruction with 3 opcodes
495 | */
496 | byte CCDebugger::exec( byte oc0, byte oc1, byte oc2 )
497 | {
498 | if (!active) {
499 | errorFlag = CC_ERROR_NOT_ACTIVE;
500 | return 0;
501 | }
502 | if (!inDebugMode) {
503 | errorFlag = CC_ERROR_NOT_DEBUGGING;
504 | return 0;
505 | }
506 |
507 | byte bAns;
508 |
509 | write( instr[I_DEBUG_INSTR_3] ); // DEBUG_INSTR + 3b
510 | write( oc0 );
511 | write( oc1 );
512 | write( oc2 );
513 | switchRead();
514 | bAns = read(); // Accumulator
515 | switchWrite();
516 |
517 | return bAns;
518 | }
519 |
520 | /**
521 | * Invoke a debug instruction with 1 opcode + 16-bit immediate
522 | */
523 | byte CCDebugger::execi( byte oc0, unsigned short c0 )
524 | {
525 | if (!active) {
526 | errorFlag = CC_ERROR_NOT_ACTIVE;
527 | return 0;
528 | }
529 | if (!inDebugMode) {
530 | errorFlag = CC_ERROR_NOT_DEBUGGING;
531 | return 0;
532 | }
533 |
534 | byte bAns;
535 |
536 | write( instr[I_DEBUG_INSTR_3] ); // DEBUG_INSTR + 3b
537 | write( oc0 );
538 | write( (c0 >> 8) & 0xFF );
539 | write( c0 & 0xFF );
540 | switchRead();
541 | bAns = read(); // Accumulator
542 | switchWrite();
543 |
544 | return bAns;
545 | }
546 |
547 | /**
548 | * Return chip ID
549 | */
550 | unsigned short CCDebugger::getChipID() {
551 | if (!active) {
552 | errorFlag = CC_ERROR_NOT_ACTIVE;
553 | return 0;
554 | }
555 | if (!inDebugMode) {
556 | errorFlag = CC_ERROR_NOT_DEBUGGING;
557 | return 0;
558 | }
559 |
560 | unsigned short bAns;
561 | byte bRes;
562 |
563 | write( instr[I_GET_CHIP_ID] ); // GET_CHIP_ID
564 | switchRead();
565 | bRes = read(); // High order
566 | bAns = bRes << 8;
567 | bRes = read(); // Low order
568 | bAns |= bRes;
569 | switchWrite();
570 |
571 | return bAns;
572 | }
573 |
574 | /**
575 | * Return PC
576 | */
577 | unsigned short CCDebugger::getPC() {
578 | if (!active) {
579 | errorFlag = CC_ERROR_NOT_ACTIVE;
580 | return 0;
581 | }
582 | if (!inDebugMode) {
583 | errorFlag = CC_ERROR_NOT_DEBUGGING;
584 | return 0;
585 | }
586 |
587 | unsigned short bAns;
588 | byte bRes;
589 |
590 | write( instr[I_GET_PC] ); // GET_PC
591 | switchRead();
592 | bRes = read(); // High order
593 | bAns = bRes << 8;
594 | bRes = read(); // Low order
595 | bAns |= bRes;
596 | switchWrite();
597 |
598 | return bAns;
599 | }
600 |
601 | /**
602 | * Return debug status
603 | */
604 | byte CCDebugger::getStatus() {
605 | if (!active) {
606 | errorFlag = CC_ERROR_NOT_ACTIVE;
607 | return 0;
608 | }
609 | if (!inDebugMode) {
610 | errorFlag = CC_ERROR_NOT_DEBUGGING;
611 | return 0;
612 | }
613 |
614 | byte bAns;
615 |
616 | write( instr[I_READ_STATUS] ); // READ_STATUS
617 | switchRead();
618 | bAns = read(); // debug status
619 | switchWrite();
620 |
621 | return bAns;
622 | }
623 |
624 | /**
625 | * Step instruction
626 | */
627 | byte CCDebugger::step() {
628 | if (!active) {
629 | errorFlag = CC_ERROR_NOT_ACTIVE;
630 | return 0;
631 | }
632 | if (!inDebugMode) {
633 | errorFlag = CC_ERROR_NOT_DEBUGGING;
634 | return 0;
635 | }
636 |
637 | byte bAns;
638 |
639 | write( instr[I_STEP_INSTR] ); // STEP_INSTR
640 | switchRead();
641 | bAns = read(); // Accumulator
642 | switchWrite();
643 |
644 | return bAns;
645 | }
646 |
647 | /**
648 | * resume instruction
649 | */
650 | byte CCDebugger::resume() {
651 | if (!active) {
652 | errorFlag = CC_ERROR_NOT_ACTIVE;
653 | return 0;
654 | }
655 | if (!inDebugMode) {
656 | errorFlag = CC_ERROR_NOT_DEBUGGING;
657 | return 0;
658 | }
659 |
660 | byte bAns;
661 |
662 | write( instr[I_RESUME] ); //RESUME
663 | switchRead();
664 | bAns = read(); // Accumulator
665 | switchWrite();
666 |
667 | return bAns;
668 | }
669 |
670 | /**
671 | * halt instruction
672 | */
673 | byte CCDebugger::halt() {
674 | if (!active) {
675 | errorFlag = CC_ERROR_NOT_ACTIVE;
676 | return 0;
677 | }
678 | if (!inDebugMode) {
679 | errorFlag = CC_ERROR_NOT_DEBUGGING;
680 | return 0;
681 | }
682 |
683 | byte bAns;
684 |
685 | write( instr[I_HALT] ); //HALT
686 | switchRead();
687 | bAns = read(); // Accumulator
688 | switchWrite();
689 |
690 | return bAns;
691 | }
692 |
693 | /**
694 | * Mass-erase all chip configuration & Lock Bits
695 | */
696 | byte CCDebugger::chipErase()
697 | {
698 | if (!active) {
699 | errorFlag = CC_ERROR_NOT_ACTIVE;
700 | return 0;
701 | };
702 | if (!inDebugMode) {
703 | errorFlag = CC_ERROR_NOT_DEBUGGING;
704 | return 0;
705 | }
706 |
707 | byte bAns;
708 |
709 | write( instr[I_CHIP_ERASE] ); // CHIP_ERASE
710 | switchRead();
711 | bAns = read(); // Debug status
712 | switchWrite();
713 |
714 | return bAns;
715 | }
716 |
717 | /**
718 | * Update the debug instruction table
719 | */
720 | byte CCDebugger::updateInstructionTable( byte newTable[16] )
721 | {
722 | // Copy table entries
723 | for (byte i=0; i<16; i++)
724 | instr[i] = newTable[i];
725 | // Return the new version
726 | return instr[INSTR_VERSION];
727 | }
728 |
729 | /**
730 | * Get the instruction table version
731 | */
732 | byte CCDebugger::getInstructionTableVersion()
733 | {
734 | // Return version of instruction table
735 | return instr[INSTR_VERSION];
736 | }
737 |
--------------------------------------------------------------------------------
/firmware/esp/cclib/CCDebugger.h:
--------------------------------------------------------------------------------
1 | /**
2 | *
3 | * CC-Debugger Protocol Library for Arduino
4 | * Copyright (c) 2014 Ioannis Charalampidis
5 | * Copyright (c) 2015 Simon Schulz - github.com/fishpepper
6 | *
7 | * This program is free software: you can redistribute it and/or modify
8 | * it under the terms of the GNU General Public License as published by
9 | * the Free Software Foundation, either version 3 of the License, or
10 | * (at your option) any later version.
11 | *
12 | * This program is distributed in the hope that it will be useful,
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | * GNU General Public License for more details.
16 | *
17 | * You should have received a copy of the GNU General Public License
18 | * along with this program. If not, see .
19 | */
20 |
21 | #ifndef CCDEBUGGER_H
22 | #define CCDEBUGGER_H
23 |
24 | #define CC_ERROR_NONE 0
25 | #define CC_ERROR_NOT_ACTIVE 1
26 | #define CC_ERROR_NOT_DEBUGGING 2
27 | #define CC_ERROR_NOT_WIRED 3
28 |
29 | // For arduino bindings
30 | #include "Arduino.h"
31 |
32 | class CCDebugger {
33 | public:
34 |
35 | ////////////////////////////
36 | // Configuration
37 | ////////////////////////////
38 |
39 | /**
40 | * Initialize CC Debugger class
41 | */
42 | CCDebugger( int pinRST, int pinDC, int pinDD);
43 |
44 | /**
45 | * Activate/deactivate debugger
46 | */
47 | void setActive( boolean on );
48 |
49 | /**
50 | * Return the error flag
51 | */
52 | byte error();
53 |
54 | ////////////////////////////
55 | // High-Level interaction
56 | ////////////////////////////
57 |
58 | /**
59 | * Enter debug mode
60 | */
61 | byte enter();
62 |
63 | /**
64 | * Exit from debug mode
65 | */
66 | byte exit();
67 |
68 | /**
69 | * Execute a CPU instructuion
70 | */
71 | byte exec( byte oc0 );
72 | byte exec( byte oc0, byte oc1 );
73 | byte exec( byte oc0, byte oc1, byte oc2 );
74 | byte execi( byte oc0, unsigned short c0 );
75 |
76 | /**
77 | * Return chip ID
78 | */
79 | unsigned short getChipID();
80 |
81 | /**
82 | * Return PC
83 | */
84 | unsigned short getPC();
85 |
86 | /**
87 | * Return debug status
88 | */
89 | byte getStatus();
90 |
91 | /**
92 | * resume program exec
93 | */
94 | byte resume();
95 |
96 | /**
97 | * halt program exec
98 | */
99 | byte halt();
100 |
101 | /**
102 | * Step a single instruction
103 | */
104 | byte step();
105 |
106 | /**
107 | * Get debug configuration
108 | */
109 | byte getConfig();
110 |
111 | /**
112 | * Set debug configuration
113 | */
114 | byte setConfig( byte config );
115 |
116 | /**
117 | * Massive erasure on the chip
118 | */
119 | byte chipErase();
120 |
121 | ////////////////////////////
122 | // Low-level interaction
123 | ////////////////////////////
124 |
125 | /**
126 | * Write to the debugger
127 | */
128 | byte write( byte data );
129 |
130 | /**
131 | * Wait until we are ready to read & Switch to read mode
132 | */
133 | byte switchRead( byte maxWaitCycles = 255 );
134 |
135 | /**
136 | * Switch to write mode
137 | */
138 | byte switchWrite();
139 |
140 | /**
141 | * Read from the debugger
142 | */
143 | byte read();
144 |
145 | /**
146 | * Update the debug instruction table
147 | */
148 | byte updateInstructionTable( byte newTable[16] );
149 |
150 | /**
151 | * Get the instruction table version
152 | */
153 | byte getInstructionTableVersion();
154 |
155 |
156 | private:
157 |
158 | ////////////////////////////
159 | // Private/Helper parts
160 | ////////////////////////////
161 |
162 | /**
163 | * Switch reset pin
164 | */
165 | void setDDDirection( byte direction );
166 |
167 | /**
168 | * Software-overridable instruction table that can be used
169 | * for supporting other CCDebug-Compatible chips purely by software
170 | */
171 | byte instr[16];
172 |
173 | /**
174 | * Local properties
175 | */
176 | int pinRST;
177 | int pinDC;
178 | int pinDD;
179 | byte errorFlag;
180 | byte ddIsOutput;
181 | byte inDebugMode;
182 | boolean active;
183 |
184 | };
185 |
186 | #endif
187 |
--------------------------------------------------------------------------------
/firmware/esp/cclib/CCLib_proxy.ino:
--------------------------------------------------------------------------------
1 | /*
2 | ///////////////////////////////////////////////////////////////////////////////
3 | This example demonstrates the use of the CCDebugger class from CCLib.
4 |
5 | This is the firmware you must flash in your Wemos D1 Mini if you want to use
6 | the python library that comes with this project.
7 |
8 | ///////////////////////////////////////////////////////////////////////////////
9 | (C) Copyright 2014, Ioannis Charalampidis - Licensed under GNU/GPLv3 License.
10 | (C) Copyright 2015, Simon Schulz - github.com/fishpepper
11 | ///////////////////////////////////////////////////////////////////////////////
12 | */
13 |
14 | ////////////////////////////////////////
15 | ////////////////////////////////////////
16 |
17 | // Pinout configuration (Configured for Tasmota Zigbee)
18 | int CC_RST = 12;
19 | int CC_DC = 13;
20 | int CC_DD = 14;
21 | int SEL_0 = 16;
22 | int SEL_1 = 5;
23 |
24 | ////////////////////////////////////////
25 | ////////////////////////////////////////
26 |
27 | // Include the CCDebugger
28 | #include "CCDebugger.h"
29 |
30 | // Command constants
31 | #define CMD_ENTER byte(0x01)
32 | #define CMD_EXIT byte(0x02)
33 | #define CMD_CHIP_ID byte(0x03)
34 | #define CMD_STATUS byte(0x04)
35 | #define CMD_PC byte(0x05)
36 | #define CMD_STEP byte(0x06)
37 | #define CMD_EXEC_1 byte(0x07)
38 | #define CMD_EXEC_2 byte(0x08)
39 | #define CMD_EXEC_3 byte(0x09)
40 | #define CMD_BRUSTWR byte(0x0A)
41 | #define CMD_RD_CFG byte(0x0B)
42 | #define CMD_WR_CFG byte(0x0C)
43 | #define CMD_CHPERASE byte(0x0D)
44 | #define CMD_RESUME byte(0x0E)
45 | #define CMD_HALT byte(0x0F)
46 | #define CMD_PING byte(0xF0)
47 | #define CMD_INSTR_VER byte(0xF1)
48 | #define CMD_INSTR_UPD byte(0xF2)
49 |
50 | // Response constants
51 | #define ANS_OK byte(0x01)
52 | #define ANS_ERROR byte(0x02)
53 | #define ANS_READY byte(0x03)
54 |
55 | // Initialize properties
56 | CCDebugger * dbg;
57 | byte inByte, bAns, bIdle;
58 | byte c1, c2, c3;
59 | unsigned short s1;
60 | int iLen, iRead;
61 |
62 | /**
63 | * Initialize debugger
64 | */
65 | void setup() {
66 |
67 | // Set USB tty to ESP
68 | pinMode(SEL_0, OUTPUT);
69 | pinMode(SEL_1, OUTPUT);
70 | digitalWrite(SEL_0, HIGH);
71 | digitalWrite(SEL_1, LOW);
72 |
73 | // Create debugger
74 | dbg = new CCDebugger( CC_RST, CC_DC, CC_DD );
75 |
76 | // Initialize serial port
77 | Serial.begin(115200);
78 |
79 | // Wait for chip to initialize
80 | delay(100);
81 |
82 | // Enter debug mode
83 | dbg->enter();
84 |
85 | }
86 |
87 | /**
88 | * Send a response frame
89 | */
90 | void sendFrame( const byte ans, const byte b0=0, const byte b1=0 ) {
91 | Serial.write(ans);
92 | Serial.write(b1); // Send High-order first
93 | Serial.write(b0); // Send Low-order second
94 | Serial.flush();
95 | }
96 |
97 | /**
98 | * Check if debugger is in error state and if yes,
99 | * reply with an error code.
100 | */
101 | boolean handleError( ) {
102 | if (dbg->error()) {
103 | sendFrame(ANS_ERROR, dbg->error());
104 | return true;
105 | }
106 | return false;
107 | }
108 |
109 | /**
110 | * Main program loop
111 | */
112 | void loop() {
113 |
114 | // Wait for incoming data frame
115 | if (Serial.available() < 4)
116 | return;
117 |
118 | // Read input frame
119 | inByte = Serial.read();
120 | c1 = Serial.read();
121 | c2 = Serial.read();
122 | c3 = Serial.read();
123 |
124 | // Handle commands
125 | if (inByte == CMD_PING) {
126 | sendFrame( ANS_OK );
127 |
128 | } else if (inByte == CMD_ENTER) {
129 | bAns = dbg->enter();
130 | if (handleError()) return;
131 | sendFrame( ANS_OK );
132 |
133 | } else if (inByte == CMD_EXIT) {
134 | bAns = dbg->exit();
135 | if (handleError()) return;
136 | sendFrame( ANS_OK );
137 |
138 | } else if (inByte == CMD_CHIP_ID) {
139 | s1 = dbg->getChipID();
140 | if (handleError()) return;
141 | sendFrame( ANS_OK,
142 | s1 & 0xFF, // LOW first
143 | (s1 >> 8) & 0xFF // HIGH second
144 | );
145 |
146 | } else if (inByte == CMD_PC) {
147 | s1 = dbg->getPC();
148 | if (handleError()) return;
149 | sendFrame( ANS_OK,
150 | s1 & 0xFF, // LOW first
151 | (s1 >> 8) & 0xFF // HIGH second
152 | );
153 |
154 | } else if (inByte == CMD_STATUS) {
155 | bAns = dbg->getStatus();
156 | if (handleError()) return;
157 | sendFrame( ANS_OK, bAns );
158 |
159 | } else if (inByte == CMD_HALT) {
160 | bAns = dbg->halt();
161 | if (handleError()) return;
162 | sendFrame( ANS_OK, bAns );
163 |
164 | } else if (inByte == CMD_EXEC_1) {
165 |
166 | bAns = dbg->exec( c1 );
167 | if (handleError()) return;
168 | sendFrame( ANS_OK, bAns );
169 |
170 | } else if (inByte == CMD_EXEC_2) {
171 |
172 | bAns = dbg->exec( c1, c2 );
173 | if (handleError()) return;
174 | sendFrame( ANS_OK, bAns );
175 |
176 | } else if (inByte == CMD_EXEC_3) {
177 | bAns = dbg->exec( c1, c2, c3 );
178 | if (handleError()) return;
179 | sendFrame( ANS_OK, bAns );
180 |
181 | } else if (inByte == CMD_BRUSTWR) {
182 |
183 | // Calculate the size of the incoming brust
184 | iLen = (c1 << 8) | c2;
185 |
186 | // Validate length
187 | if (iLen > 2048) {
188 | sendFrame( ANS_ERROR, 3 );
189 | return;
190 | }
191 |
192 | // Confirm transfer
193 | sendFrame( ANS_READY );
194 |
195 | // Prepare for brust-write
196 | dbg->write( 0x80 | (c1 & 0x07) ); // High-order bits
197 | dbg->write( c2 ); // Low-order bits
198 |
199 | // Start serial loop
200 | iRead = iLen;
201 | bIdle = 0;
202 | while (iRead > 0) {
203 |
204 | // When we have data, forward them to the debugger
205 | if (Serial.available() >= 1) {
206 | inByte = Serial.read();
207 | dbg->write(inByte);
208 | bIdle = 0;
209 | iRead--;
210 | }
211 |
212 | // If we don't have any data, check for idle timeout
213 | else {
214 |
215 | // If we are idle for more than 3s, drop command
216 | if (++bIdle > 3000) {
217 |
218 | // The PC was disconnected/stale for too long
219 | // complete the command by sending 0's
220 | while (iRead > 0) {
221 | dbg->write(0);
222 | iRead--;
223 | }
224 |
225 | // Read debug status to complete the command sequence
226 | dbg->switchRead();
227 | bAns = dbg->read();
228 | dbg->switchWrite();
229 |
230 | // Send error
231 | sendFrame( ANS_ERROR, 4 );
232 | return;
233 |
234 | }
235 |
236 | // Wait for some time
237 | delay(1);
238 |
239 | }
240 | }
241 |
242 | // Read debug status
243 | dbg->switchRead();
244 | bAns = dbg->read();
245 | dbg->switchWrite();
246 |
247 | // Handle response
248 | if (handleError()) return;
249 | sendFrame( ANS_OK, bAns );
250 |
251 | } else if (inByte == CMD_RD_CFG) {
252 | bAns = dbg->getConfig();
253 | if (handleError()) return;
254 | sendFrame( ANS_OK, bAns );
255 |
256 | } else if (inByte == CMD_WR_CFG) {
257 | bAns = dbg->setConfig(c1);
258 | if (handleError()) return;
259 | sendFrame( ANS_OK, bAns );
260 |
261 | } else if (inByte == CMD_CHPERASE) {
262 | bAns = dbg->chipErase();
263 | if (handleError()) return;
264 | sendFrame( ANS_OK, bAns );
265 |
266 | } else if (inByte == CMD_STEP) {
267 | bAns = dbg->step();
268 | if (handleError()) return;
269 | sendFrame( ANS_OK, bAns );
270 |
271 | } else if (inByte == CMD_RESUME) {
272 | bAns = dbg->resume();
273 | if (handleError()) return;
274 | sendFrame( ANS_OK, bAns );
275 |
276 | } else if (inByte == CMD_INSTR_VER) {
277 | bAns = dbg->getInstructionTableVersion();
278 | if (handleError()) return;
279 | sendFrame( ANS_OK, bAns );
280 |
281 | } else if (inByte == CMD_INSTR_UPD) {
282 |
283 | // Acknowledge transfer
284 | sendFrame( ANS_READY );
285 |
286 | // Read 16 bytes from the input
287 | byte instrBuffer[16];
288 | iRead = 0;
289 | while (iRead < 16) {
290 | if (Serial.available() >= 1) {
291 | instrBuffer[iRead++] = Serial.read();
292 | }
293 | }
294 |
295 | // Update instruction buffer
296 | bAns = dbg->updateInstructionTable( instrBuffer );
297 | if (handleError()) return;
298 | sendFrame( ANS_OK, bAns );
299 |
300 | } else {
301 | sendFrame( ANS_ERROR, 0xFF );
302 |
303 | }
304 |
305 | }
306 |
--------------------------------------------------------------------------------
/firmware/esp/cclib/platformio.ini:
--------------------------------------------------------------------------------
1 | ; PlatformIO Project Configuration File
2 | ;
3 | ; Build options: build flags, source filter
4 | ; Upload options: custom upload port, speed and extra flags
5 | ; Library options: dependencies, extra library storages
6 | ; Advanced options: extra scripting
7 | ;
8 | ; Please visit documentation for the other options and examples
9 | ; http://docs.platformio.org/page/projectconf.html
10 |
11 | [platformio]
12 | src_dir = .
13 |
14 | [env:esp_wroom_02]
15 | platform = espressif8266
16 | board = esp_wroom_02
17 | framework = arduino
18 | ;monitor_speed = 19200
19 | ;upload_speed = 921600
20 |
--------------------------------------------------------------------------------
/firmware/esp/ser2net/.gitignore:
--------------------------------------------------------------------------------
1 | .pio
2 | .vscode/.browse.c_cpp.db*
3 | .vscode/c_cpp_properties.json
4 | .vscode/launch.json
5 | .vscode/ipch
6 |
--------------------------------------------------------------------------------
/firmware/esp/ser2net/data/config.json:
--------------------------------------------------------------------------------
1 | {"hostname":"z2mp","ssid":"","password":"","tcpPort":8880,"mqttServer":"","mqttPort":1883,"mqttUser":"","mqttPass":"","mqttClientID":"z2mp","mqttPubTopic":"z2mp/result","mqttSubTopic":"z2mp/cmd"}
--------------------------------------------------------------------------------
/firmware/esp/ser2net/platformio.ini:
--------------------------------------------------------------------------------
1 | ; PlatformIO Project Configuration File
2 | ;
3 | ; Build options: build flags, source filter
4 | ; Upload options: custom upload port, speed and extra flags
5 | ; Library options: dependencies, extra library storages
6 | ; Advanced options: extra scripting
7 | ;
8 | ; Please visit documentation for the other options and examples
9 | ; http://docs.platformio.org/page/projectconf.html
10 | [platformio]
11 | LIB_DIR = libraries
12 |
13 |
14 | ; You MUST inject these options into [env:] section
15 | ; using ${common_env_data.***} (see below)
16 | [common_env_data]
17 | build_flags =
18 | -D VERSION_M=0
19 | -D VERSION_N=0
20 | -D VERSION_P=6
21 | -D DEBUG=1
22 | ;lib_deps_builtin =
23 | lib_deps_external =
24 | PubSubClient
25 | ESP Async WebServer
26 | ESPAsyncWiFiManager
27 | ArduinoJson
28 | [env:esp_wroom_02]
29 | platform = espressif8266
30 | board = esp_wroom_02
31 | framework = arduino
32 | board_build.ldscript = eagle.flash.2m128.ld
33 |
34 | build_flags =
35 | ${common_env_data.build_flags}
36 |
37 | monitor_speed = 115200
38 | lib_deps =
39 | ${common_env_data.lib_deps_external}
--------------------------------------------------------------------------------
/firmware/esp/ser2net/src/ESP-Serial-Bridge.cpp:
--------------------------------------------------------------------------------
1 | #include
2 | #include "config.h"
3 |
4 | #ifdef ESP8266
5 | #include
6 | #include
7 | #else
8 | #include
9 | #include
10 | #endif
11 | #include "FS.h"
12 |
13 | #include
14 | #include
15 | #include
16 | #include
17 | #include
18 | #include
19 |
20 | void callback(char *topic, byte *payload, unsigned int length);
21 |
22 | // For debug log output/update FW
23 | #if (DEBUG)
24 | HardwareSerial *DBGCOM = &Serial1;
25 | #define LOGD(...) do {\
26 | DBGCOM->printf(__VA_ARGS__);\
27 | DBGCOM->println();\
28 | } while(0)
29 | #else
30 | #define LOGD(...)
31 | #endif
32 |
33 | struct Config {
34 | char hostname[16];
35 | char ssid[64];
36 | char password[64];
37 | int tcpPort;
38 | char mqttServer[32];
39 | int mqttPort;
40 | char mqttUser[32];
41 | char mqttPass[32];
42 | char mqttClientID[32];
43 | char mqttPubTopic[32];
44 | char mqttSubTopic[32];
45 | };
46 |
47 | struct Config config = {
48 | "z2mp",
49 | "",
50 | "",
51 | 8880,
52 | "",
53 | 1883,
54 | "",
55 | "",
56 | "z2mp",
57 | "z2mp/result",
58 | "z2mp/cmd",
59 | };
60 |
61 | HardwareSerial *COM = &Serial;
62 |
63 | uint8_t buf1[BUFFERSIZE];
64 | uint16_t i1 = 0;
65 |
66 | uint8_t buf2[BUFFERSIZE];
67 | uint16_t i2 = 0;
68 |
69 | #ifdef PROTOCOL_TCP
70 | #include
71 | WiFiServer *server;
72 | WiFiClient *TCPClient[MAX_NMEA_CLIENTS];
73 | #endif
74 | PubSubClient *client;
75 |
76 | AsyncWebServer wifiManagerServer(80);
77 | DNSServer wifiManagerDNS;
78 |
79 | void callback(char *topic, byte *payload, unsigned int length)
80 | {
81 |
82 | byte *p = (byte *)malloc(length);
83 | memcpy(p, payload, length); // Copy the payload to the new buffer
84 | client->publish(config.mqttPubTopic, p, length, retained);
85 | COM->write(p, length); // UART write buffer received via MQTT sub_topic
86 | free(p);
87 | }
88 |
89 | void reconnect()
90 | {
91 | // Loop until we're reconnected
92 | while (!client->connected())
93 | {
94 | LOGD("Attempting MQTT connection...");
95 | // Attempt to connect
96 | if (client->connect(config.mqttServer, config.mqttUser, config.mqttPass))
97 | {
98 | // Once connected, publish an announcement...
99 | client->publish(config.mqttPubTopic, "UART<-->WiFi Bridge Reconnected", false);
100 | // ... and resubscribe
101 | client->subscribe(config.mqttSubTopic, qos);
102 | }
103 | else
104 | {
105 | LOGD("failed, rc=%d try again in 5 seconds.", client->state());
106 | // Wait 5 seconds before retrying
107 | delay(5000);
108 | }
109 | }
110 | }
111 |
112 | static inline void reset_zigbee()
113 | {
114 | digitalWrite(ZGB_RST_PIN, LOW);
115 | delay(500);
116 | digitalWrite(ZGB_RST_PIN, HIGH);
117 | if (strlen(config.mqttServer) && client->connected()) {
118 | client->publish(config.mqttPubTopic, "ZNP device reset.", false);
119 | }
120 | }
121 |
122 | static void getConfigFromFile() {
123 |
124 | #define READ_STR_CONFIG_FROM_JSON(name) \
125 | if (strlen(doc[#name])) \
126 | strlcpy(config.name, doc[#name], sizeof(config.name))
127 | #define READ_INT_CONFIG_FROM_JSON(name) \
128 | if (doc[#name]) \
129 | config.name = doc[#name]
130 |
131 | StaticJsonDocument<512> doc;
132 | if (!SPIFFS.begin()) {
133 | LOGD("mount spiffs failed.");
134 | return;
135 | }
136 | File f = SPIFFS.open("/config.json", "r");
137 | if (!f) {
138 | LOGD("Config file not exist.");
139 | SPIFFS.end();
140 | return;
141 | }
142 | DeserializationError error = deserializeJson(doc, f);
143 | if (error) {
144 | LOGD("Failed to read file, using default configuration");
145 | SPIFFS.end();
146 | return;
147 | }
148 | READ_STR_CONFIG_FROM_JSON(hostname);
149 | READ_STR_CONFIG_FROM_JSON(ssid);
150 | READ_STR_CONFIG_FROM_JSON(password);
151 | READ_STR_CONFIG_FROM_JSON(mqttServer);
152 | READ_STR_CONFIG_FROM_JSON(mqttUser);
153 | READ_STR_CONFIG_FROM_JSON(mqttPass);
154 | READ_STR_CONFIG_FROM_JSON(mqttClientID);
155 | READ_STR_CONFIG_FROM_JSON(mqttPubTopic);
156 | READ_STR_CONFIG_FROM_JSON(mqttSubTopic);
157 | READ_INT_CONFIG_FROM_JSON(tcpPort);
158 | READ_INT_CONFIG_FROM_JSON(mqttPort);
159 | SPIFFS.end();
160 | }
161 |
162 | void setup()
163 | {
164 | pinMode(TTY_SEL0_PIN, OUTPUT);
165 | digitalWrite(TTY_SEL0_PIN, LOW);
166 | pinMode(TTY_SEL1_PIN, OUTPUT);
167 | digitalWrite(TTY_SEL1_PIN, HIGH);
168 | delay(500);
169 | #ifdef ESP8266
170 | COM->begin(UART_BAUD0, SERIAL_PARAM0);
171 | #else
172 | COM->begin(UART_BAUD0, SERIAL_PARAM0, SERIAL0_RXPIN, SERIAL0_TXPIN);
173 | #endif
174 | #if (DEBUG)
175 | DBGCOM->begin(115200);
176 | #endif
177 | LOGD("\n\n WiFi Serial Bridge %d.%d.%d", VERSION_M, VERSION_N, VERSION_P);
178 |
179 | getConfigFromFile();
180 |
181 | if (strlen(config.ssid) == 0)
182 | {
183 | LOGD("No SSID defined, use wifi manager.");
184 | AsyncWiFiManager wifiManager(&wifiManagerServer, &wifiManagerDNS);
185 | #if (DEBUG)
186 | wifiManager.setDebugOutput(false);
187 | #else
188 | wifiManager.setDebugOutput(false);
189 | #endif
190 | wifiManager.autoConnect(config.hostname);
191 | }
192 | else
193 | {
194 | LOGD("SSID defined, connect to %s", config.ssid);
195 | WiFi.mode(WIFI_STA);
196 | WiFi.begin(config.ssid, config.password);
197 | }
198 | while (WiFi.status() != WL_CONNECTED)
199 | {
200 | delay(500);
201 | LOGD("Connecting to %s", config.ssid);
202 | }
203 | LOGD("TCP server: %s:%d", WiFi.localIP().toString().c_str(), config.tcpPort);
204 |
205 | #ifdef PROTOCOL_TCP
206 | static WiFiServer server_0(config.tcpPort);
207 | server = &server_0;
208 | #endif
209 | static WiFiClient mqc;
210 | static PubSubClient mqttClient(config.mqttServer, config.mqttPort, callback, mqc);
211 | client = &mqttClient;
212 |
213 | // Enable MDNS
214 | MDNS.begin(config.hostname);
215 |
216 | // Enable OTA
217 |
218 | ArduinoOTA.setPort(8266);
219 | ArduinoOTA.setHostname(config.hostname);
220 | ArduinoOTA.onStart([]() {
221 | if (ArduinoOTA.getCommand() == U_FLASH)
222 | LOGD("Start updating sketch");
223 | else// U_FS
224 | LOGD("Start updating filesystem");
225 | });
226 | ArduinoOTA.onEnd([]() {
227 | LOGD("\nEnd");
228 | });
229 | ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
230 | LOGD("Progress: %u%%\r", (progress / (total / 100)));
231 | });
232 | ArduinoOTA.onError([](ota_error_t error) {
233 | LOGD("Error[%u]: ", error);
234 | if (error == OTA_AUTH_ERROR)
235 | {
236 | LOGD("Auth Failed");
237 | }
238 | else if (error == OTA_BEGIN_ERROR)
239 | {
240 | LOGD("Begin Failed");
241 | }
242 | else if (error == OTA_CONNECT_ERROR)
243 | {
244 | LOGD("Connect Failed");
245 | }
246 | else if (error == OTA_RECEIVE_ERROR)
247 | {
248 | LOGD("Receive Failed");
249 | }
250 | else if (error == OTA_END_ERROR)
251 | {
252 | LOGD("End Failed");
253 | }
254 | });
255 | ArduinoOTA.begin();
256 |
257 | if (strlen(config.mqttServer) &&
258 | client->connect(config.mqttServer, config.mqttUser, config.mqttPass)) {
259 | client->publish(config.mqttPubTopic, "UART<-->WiFi Bridge Connected", false);
260 | client->publish(config.mqttPubTopic, WiFi.localIP().toString().c_str(), false);
261 | client->subscribe(config.mqttSubTopic, qos);
262 | }
263 |
264 | #ifdef PROTOCOL_TCP
265 | LOGD("Starting TCP Server");
266 | server->begin(); // start TCP server
267 | server->setNoDelay(true);
268 | #endif
269 |
270 | #ifndef ESP8266
271 | esp_err_t esp_wifi_set_max_tx_power(50); //lower WiFi Power
272 | #endif
273 | pinMode(ZGB_RST_PIN, OUTPUT);
274 | digitalWrite(ZGB_RST_PIN, HIGH);
275 | reset_zigbee();
276 | // pinMode(12, INPUT);
277 | // pinMode(13, INPUT);
278 | // pinMode(14, INPUT);
279 | // pinMode(16, INPUT);
280 | }
281 |
282 | void loop()
283 | {
284 | if (strlen(config.mqttServer))
285 | {
286 | if (!client->connected())
287 | {
288 | reconnect();
289 | }
290 | client->loop();
291 | }
292 |
293 | #ifdef PROTOCOL_TCP
294 | for (byte i = 0; i < MAX_NMEA_CLIENTS; i++)
295 | {
296 | //find disconnected spot
297 | if (TCPClient[i] && !TCPClient[i]->connected())
298 | {
299 | TCPClient[i]->stop();
300 | delete TCPClient[i];
301 | TCPClient[i] = NULL;
302 | LOGD("Client disconnected");
303 | }
304 | }
305 | if (server->hasClient())
306 | {
307 | for (byte i = 0; i < MAX_NMEA_CLIENTS; i++)
308 | {
309 | //find free/disconnected spot
310 | if (!TCPClient[i] || !TCPClient[i]->connected())
311 | {
312 | if (TCPClient[i])
313 | {
314 | TCPClient[i]->stop();
315 | delete TCPClient[i];
316 | TCPClient[i] = NULL;
317 | LOGD("Client disconnected");
318 | }
319 | TCPClient[i] = new WiFiClient;
320 | *TCPClient[i] = server->available();
321 | LOGD("New client for COM");
322 | continue;
323 | }
324 | }
325 | //no free/disconnected spot so reject
326 | WiFiClient TmpserverClient = server->available();
327 | TmpserverClient.stop();
328 | }
329 | #endif
330 |
331 | if (COM != NULL)
332 | {
333 | for (byte cln = 0; cln < MAX_NMEA_CLIENTS; cln++)
334 | {
335 | if (TCPClient[cln])
336 | {
337 | while (TCPClient[cln]->available())
338 | {
339 | buf1[i1] = TCPClient[cln]->read(); // read char from TCP port:8880
340 | if (i1 < BUFFERSIZE - 1)
341 | i1++;
342 | }
343 | if (i1 > 0)
344 | {
345 | COM->write(buf1, i1); // now send to UART
346 | #if (DEBUG)
347 | DBGCOM->printf("TX(%d):\t", i1);
348 | for (int i = 0; i < i1; i++)
349 | DBGCOM->printf("%02x ", buf1[i]);
350 | DBGCOM->println();
351 | #endif
352 | i1 = 0;
353 | }
354 | }
355 | }
356 |
357 | if (COM->available())
358 | {
359 | while (COM->available())
360 | {
361 | buf2[i2] = COM->read(); // read char from UART
362 | if (i2 < BUFFERSIZE - 1)
363 | i2++;
364 | }
365 | // now send to WiFi:
366 | for (byte cln = 0; cln < MAX_NMEA_CLIENTS; cln++)
367 | {
368 | if (TCPClient[cln])
369 | TCPClient[cln]->write(buf2, i2); //send the buffer to TCP port:8880
370 | }
371 | if (strlen(config.mqttServer))
372 | {
373 | client->publish(config.mqttPubTopic, buf2, i2, retained); //Publish the buffer received via serial
374 | }
375 | #if (DEBUG)
376 | DBGCOM->printf("RX(%d):\t", i2);
377 | for (int i = 0; i < i2; i++)
378 | DBGCOM->printf("%02x ", buf2[i]);
379 | DBGCOM->println();
380 | #endif
381 | i2 = 0;
382 | }
383 | }
384 |
385 | #ifdef ESP8266
386 | MDNS.update();
387 | #endif
388 | ArduinoOTA.handle();
389 | }
390 |
--------------------------------------------------------------------------------
/firmware/esp/ser2net/src/config.h:
--------------------------------------------------------------------------------
1 | // config: ////////////////////////////////////////////////////////////
2 | #ifndef _ESP_SERIAL_BRIDGE_CONFIG_H_
3 | #define _ESP_SERIAL_BRIDGE_CONFIG_H_
4 |
5 | #define PROTOCOL_TCP
6 | #ifndef MAX_NMEA_CLIENTS
7 | #define MAX_NMEA_CLIENTS 1
8 | #endif
9 |
10 | unsigned char qos = 1; //subscribe qos
11 | bool retained = false;
12 |
13 | #define ZGB_RST_PIN 12
14 | #define TTY_SEL0_PIN 16
15 | #define TTY_SEL1_PIN 5
16 | /************************* COM Port 0 *******************************/
17 | #define UART_BAUD0 115200 // Baudrate UART0
18 | #ifdef ESP8266
19 | #define SERIAL_PARAM0 SERIAL_8N1 // Data/Parity/Stop UART0
20 | #else
21 | #define SERIAL_PARAM0 SERIAL_8N1 // Data/Parity/Stop UART0
22 | #define SERIAL0_RXPIN 21 // receive Pin UART0
23 | #define SERIAL0_TXPIN 1 // transmit Pin UART0
24 | #endif
25 |
26 | #define BUFFERSIZE 1024
27 |
28 | #endif
29 |
--------------------------------------------------------------------------------
/images/3Dfinal.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/images/3Dfinal.jpg
--------------------------------------------------------------------------------
/images/bottom_view.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/images/bottom_view.png
--------------------------------------------------------------------------------
/images/flash/info.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/images/flash/info.png
--------------------------------------------------------------------------------
/images/front_hw.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/images/front_hw.jpeg
--------------------------------------------------------------------------------
/images/pay/alipay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/images/pay/alipay.png
--------------------------------------------------------------------------------
/images/pay/wechat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/images/pay/wechat.png
--------------------------------------------------------------------------------
/images/sch_v2p1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/images/sch_v2p1.png
--------------------------------------------------------------------------------
/images/signal/14db.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/images/signal/14db.png
--------------------------------------------------------------------------------
/images/signal/18db.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/images/signal/18db.png
--------------------------------------------------------------------------------
/images/signal/26db.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/images/signal/26db.png
--------------------------------------------------------------------------------
/images/tasmota/AP_SSID.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/images/tasmota/AP_SSID.jpg
--------------------------------------------------------------------------------
/images/tasmota/console1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/images/tasmota/console1.jpg
--------------------------------------------------------------------------------
/images/tasmota/set_debug.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/images/tasmota/set_debug.jpg
--------------------------------------------------------------------------------
/images/tasmota/updata_zigbee_c.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/images/tasmota/updata_zigbee_c.jpg
--------------------------------------------------------------------------------
/images/tasmota/wifi_config.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/images/tasmota/wifi_config.jpg
--------------------------------------------------------------------------------
/images/tasmota/wifi_config2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/images/tasmota/wifi_config2.jpg
--------------------------------------------------------------------------------
/images/top_view.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/images/top_view.png
--------------------------------------------------------------------------------
/images/ttyv01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/images/ttyv01.png
--------------------------------------------------------------------------------
/project/gerber/z2m_partner-Bottom_Silk.gbr:
--------------------------------------------------------------------------------
1 | %TF.GenerationSoftware,KiCad,Pcbnew,(5.1.4-0-10_14)*%
2 | %TF.CreationDate,2019-11-29T01:48:41+08:00*%
3 | %TF.ProjectId,z2m_partner,7a326d5f-7061-4727-946e-65722e6b6963,rev?*%
4 | %TF.SameCoordinates,Original*%
5 | %TF.FileFunction,Legend,Bot*%
6 | %TF.FilePolarity,Positive*%
7 | %FSLAX46Y46*%
8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
9 | G04 Created by KiCad (PCBNEW (5.1.4-0-10_14)) date 2019-11-29 01:48:41*
10 | %MOMM*%
11 | %LPD*%
12 | G04 APERTURE LIST*
13 | %ADD10C,0.150000*%
14 | %ADD11C,0.120000*%
15 | G04 APERTURE END LIST*
16 | D10*
17 | X193212857Y-125672380D02*
18 | X193212857Y-124672380D01*
19 | X192784285Y-125672380D02*
20 | X192784285Y-125148571D01*
21 | X192831904Y-125053333D01*
22 | X192927142Y-125005714D01*
23 | X193070000Y-125005714D01*
24 | X193165238Y-125053333D01*
25 | X193212857Y-125100952D01*
26 | X192450952Y-125005714D02*
27 | X192070000Y-125005714D01*
28 | X192308095Y-124672380D02*
29 | X192308095Y-125529523D01*
30 | X192260476Y-125624761D01*
31 | X192165238Y-125672380D01*
32 | X192070000Y-125672380D01*
33 | X191879523Y-125005714D02*
34 | X191498571Y-125005714D01*
35 | X191736666Y-124672380D02*
36 | X191736666Y-125529523D01*
37 | X191689047Y-125624761D01*
38 | X191593809Y-125672380D01*
39 | X191498571Y-125672380D01*
40 | X191165238Y-125005714D02*
41 | X191165238Y-126005714D01*
42 | X191165238Y-125053333D02*
43 | X191070000Y-125005714D01*
44 | X190879523Y-125005714D01*
45 | X190784285Y-125053333D01*
46 | X190736666Y-125100952D01*
47 | X190689047Y-125196190D01*
48 | X190689047Y-125481904D01*
49 | X190736666Y-125577142D01*
50 | X190784285Y-125624761D01*
51 | X190879523Y-125672380D01*
52 | X191070000Y-125672380D01*
53 | X191165238Y-125624761D01*
54 | X190308095Y-125624761D02*
55 | X190212857Y-125672380D01*
56 | X190022380Y-125672380D01*
57 | X189927142Y-125624761D01*
58 | X189879523Y-125529523D01*
59 | X189879523Y-125481904D01*
60 | X189927142Y-125386666D01*
61 | X190022380Y-125339047D01*
62 | X190165238Y-125339047D01*
63 | X190260476Y-125291428D01*
64 | X190308095Y-125196190D01*
65 | X190308095Y-125148571D01*
66 | X190260476Y-125053333D01*
67 | X190165238Y-125005714D01*
68 | X190022380Y-125005714D01*
69 | X189927142Y-125053333D01*
70 | X189450952Y-125577142D02*
71 | X189403333Y-125624761D01*
72 | X189450952Y-125672380D01*
73 | X189498571Y-125624761D01*
74 | X189450952Y-125577142D01*
75 | X189450952Y-125672380D01*
76 | X189450952Y-125053333D02*
77 | X189403333Y-125100952D01*
78 | X189450952Y-125148571D01*
79 | X189498571Y-125100952D01*
80 | X189450952Y-125053333D01*
81 | X189450952Y-125148571D01*
82 | X188260476Y-124624761D02*
83 | X189117619Y-125910476D01*
84 | X187212857Y-124624761D02*
85 | X188070000Y-125910476D01*
86 | X186879523Y-125672380D02*
87 | X186879523Y-124672380D01*
88 | X186879523Y-125053333D02*
89 | X186784285Y-125005714D01*
90 | X186593809Y-125005714D01*
91 | X186498571Y-125053333D01*
92 | X186450952Y-125100952D01*
93 | X186403333Y-125196190D01*
94 | X186403333Y-125481904D01*
95 | X186450952Y-125577142D01*
96 | X186498571Y-125624761D01*
97 | X186593809Y-125672380D01*
98 | X186784285Y-125672380D01*
99 | X186879523Y-125624761D01*
100 | X185974761Y-125672380D02*
101 | X185974761Y-124672380D01*
102 | X185974761Y-125053333D02*
103 | X185879523Y-125005714D01*
104 | X185689047Y-125005714D01*
105 | X185593809Y-125053333D01*
106 | X185546190Y-125100952D01*
107 | X185498571Y-125196190D01*
108 | X185498571Y-125481904D01*
109 | X185546190Y-125577142D01*
110 | X185593809Y-125624761D01*
111 | X185689047Y-125672380D01*
112 | X185879523Y-125672380D01*
113 | X185974761Y-125624761D01*
114 | X185117619Y-125624761D02*
115 | X185022380Y-125672380D01*
116 | X184831904Y-125672380D01*
117 | X184736666Y-125624761D01*
118 | X184689047Y-125529523D01*
119 | X184689047Y-125481904D01*
120 | X184736666Y-125386666D01*
121 | X184831904Y-125339047D01*
122 | X184974761Y-125339047D01*
123 | X185070000Y-125291428D01*
124 | X185117619Y-125196190D01*
125 | X185117619Y-125148571D01*
126 | X185070000Y-125053333D01*
127 | X184974761Y-125005714D01*
128 | X184831904Y-125005714D01*
129 | X184736666Y-125053333D01*
130 | X184260476Y-125577142D02*
131 | X184212857Y-125624761D01*
132 | X184260476Y-125672380D01*
133 | X184308095Y-125624761D01*
134 | X184260476Y-125577142D01*
135 | X184260476Y-125672380D01*
136 | X183784285Y-125672380D02*
137 | X183784285Y-125005714D01*
138 | X183784285Y-124672380D02*
139 | X183831904Y-124720000D01*
140 | X183784285Y-124767619D01*
141 | X183736666Y-124720000D01*
142 | X183784285Y-124672380D01*
143 | X183784285Y-124767619D01*
144 | X183165238Y-125672380D02*
145 | X183260476Y-125624761D01*
146 | X183308095Y-125577142D01*
147 | X183355714Y-125481904D01*
148 | X183355714Y-125196190D01*
149 | X183308095Y-125100952D01*
150 | X183260476Y-125053333D01*
151 | X183165238Y-125005714D01*
152 | X183022380Y-125005714D01*
153 | X182927142Y-125053333D01*
154 | X182879523Y-125100952D01*
155 | X182831904Y-125196190D01*
156 | X182831904Y-125481904D01*
157 | X182879523Y-125577142D01*
158 | X182927142Y-125624761D01*
159 | X183022380Y-125672380D01*
160 | X183165238Y-125672380D01*
161 | X182403333Y-125672380D02*
162 | X182403333Y-124672380D01*
163 | X182403333Y-125053333D02*
164 | X182308095Y-125005714D01*
165 | X182117619Y-125005714D01*
166 | X182022380Y-125053333D01*
167 | X181974761Y-125100952D01*
168 | X181927142Y-125196190D01*
169 | X181927142Y-125481904D01*
170 | X181974761Y-125577142D01*
171 | X182022380Y-125624761D01*
172 | X182117619Y-125672380D01*
173 | X182308095Y-125672380D01*
174 | X182403333Y-125624761D01*
175 | X181498571Y-125672380D02*
176 | X181498571Y-125005714D01*
177 | X181498571Y-125196190D02*
178 | X181450952Y-125100952D01*
179 | X181403333Y-125053333D01*
180 | X181308095Y-125005714D01*
181 | X181212857Y-125005714D01*
182 | X180736666Y-125672380D02*
183 | X180831904Y-125624761D01*
184 | X180879523Y-125577142D01*
185 | X180927142Y-125481904D01*
186 | X180927142Y-125196190D01*
187 | X180879523Y-125100952D01*
188 | X180831904Y-125053333D01*
189 | X180736666Y-125005714D01*
190 | X180593809Y-125005714D01*
191 | X180498571Y-125053333D01*
192 | X180450952Y-125100952D01*
193 | X180403333Y-125196190D01*
194 | X180403333Y-125481904D01*
195 | X180450952Y-125577142D01*
196 | X180498571Y-125624761D01*
197 | X180593809Y-125672380D01*
198 | X180736666Y-125672380D01*
199 | X179974761Y-125672380D02*
200 | X179974761Y-124672380D01*
201 | X179879523Y-125291428D02*
202 | X179593809Y-125672380D01*
203 | X179593809Y-125005714D02*
204 | X179974761Y-125386666D01*
205 | X178784285Y-125624761D02*
206 | X178879523Y-125672380D01*
207 | X179070000Y-125672380D01*
208 | X179165238Y-125624761D01*
209 | X179212857Y-125529523D01*
210 | X179212857Y-125148571D01*
211 | X179165238Y-125053333D01*
212 | X179070000Y-125005714D01*
213 | X178879523Y-125005714D01*
214 | X178784285Y-125053333D01*
215 | X178736666Y-125148571D01*
216 | X178736666Y-125243809D01*
217 | X179212857Y-125339047D01*
218 | X178308095Y-125672380D02*
219 | X178308095Y-125005714D01*
220 | X178308095Y-125196190D02*
221 | X178260476Y-125100952D01*
222 | X178212857Y-125053333D01*
223 | X178117619Y-125005714D01*
224 | X178022380Y-125005714D01*
225 | X177689047Y-125577142D02*
226 | X177641428Y-125624761D01*
227 | X177689047Y-125672380D01*
228 | X177736666Y-125624761D01*
229 | X177689047Y-125577142D01*
230 | X177689047Y-125672380D01*
231 | X176784285Y-125624761D02*
232 | X176879523Y-125672380D01*
233 | X177070000Y-125672380D01*
234 | X177165238Y-125624761D01*
235 | X177212857Y-125577142D01*
236 | X177260476Y-125481904D01*
237 | X177260476Y-125196190D01*
238 | X177212857Y-125100952D01*
239 | X177165238Y-125053333D01*
240 | X177070000Y-125005714D01*
241 | X176879523Y-125005714D01*
242 | X176784285Y-125053333D01*
243 | X176355714Y-125005714D02*
244 | X176355714Y-125672380D01*
245 | X176355714Y-125100952D02*
246 | X176308095Y-125053333D01*
247 | X176212857Y-125005714D01*
248 | X176070000Y-125005714D01*
249 | X175974761Y-125053333D01*
250 | X175927142Y-125148571D01*
251 | X175927142Y-125672380D01*
252 | X194978571Y-123522380D02*
253 | X194978571Y-122522380D01*
254 | X194740476Y-122522380D01*
255 | X194597619Y-122570000D01*
256 | X194502380Y-122665238D01*
257 | X194454761Y-122760476D01*
258 | X194407142Y-122950952D01*
259 | X194407142Y-123093809D01*
260 | X194454761Y-123284285D01*
261 | X194502380Y-123379523D01*
262 | X194597619Y-123474761D01*
263 | X194740476Y-123522380D01*
264 | X194978571Y-123522380D01*
265 | X193597619Y-123474761D02*
266 | X193692857Y-123522380D01*
267 | X193883333Y-123522380D01*
268 | X193978571Y-123474761D01*
269 | X194026190Y-123379523D01*
270 | X194026190Y-122998571D01*
271 | X193978571Y-122903333D01*
272 | X193883333Y-122855714D01*
273 | X193692857Y-122855714D01*
274 | X193597619Y-122903333D01*
275 | X193550000Y-122998571D01*
276 | X193550000Y-123093809D01*
277 | X194026190Y-123189047D01*
278 | X193169047Y-123474761D02*
279 | X193073809Y-123522380D01*
280 | X192883333Y-123522380D01*
281 | X192788095Y-123474761D01*
282 | X192740476Y-123379523D01*
283 | X192740476Y-123331904D01*
284 | X192788095Y-123236666D01*
285 | X192883333Y-123189047D01*
286 | X193026190Y-123189047D01*
287 | X193121428Y-123141428D01*
288 | X193169047Y-123046190D01*
289 | X193169047Y-122998571D01*
290 | X193121428Y-122903333D01*
291 | X193026190Y-122855714D01*
292 | X192883333Y-122855714D01*
293 | X192788095Y-122903333D01*
294 | X192311904Y-123522380D02*
295 | X192311904Y-122855714D01*
296 | X192311904Y-122522380D02*
297 | X192359523Y-122570000D01*
298 | X192311904Y-122617619D01*
299 | X192264285Y-122570000D01*
300 | X192311904Y-122522380D01*
301 | X192311904Y-122617619D01*
302 | X191407142Y-122855714D02*
303 | X191407142Y-123665238D01*
304 | X191454761Y-123760476D01*
305 | X191502380Y-123808095D01*
306 | X191597619Y-123855714D01*
307 | X191740476Y-123855714D01*
308 | X191835714Y-123808095D01*
309 | X191407142Y-123474761D02*
310 | X191502380Y-123522380D01*
311 | X191692857Y-123522380D01*
312 | X191788095Y-123474761D01*
313 | X191835714Y-123427142D01*
314 | X191883333Y-123331904D01*
315 | X191883333Y-123046190D01*
316 | X191835714Y-122950952D01*
317 | X191788095Y-122903333D01*
318 | X191692857Y-122855714D01*
319 | X191502380Y-122855714D01*
320 | X191407142Y-122903333D01*
321 | X190930952Y-122855714D02*
322 | X190930952Y-123522380D01*
323 | X190930952Y-122950952D02*
324 | X190883333Y-122903333D01*
325 | X190788095Y-122855714D01*
326 | X190645238Y-122855714D01*
327 | X190550000Y-122903333D01*
328 | X190502380Y-122998571D01*
329 | X190502380Y-123522380D01*
330 | X189645238Y-123474761D02*
331 | X189740476Y-123522380D01*
332 | X189930952Y-123522380D01*
333 | X190026190Y-123474761D01*
334 | X190073809Y-123379523D01*
335 | X190073809Y-122998571D01*
336 | X190026190Y-122903333D01*
337 | X189930952Y-122855714D01*
338 | X189740476Y-122855714D01*
339 | X189645238Y-122903333D01*
340 | X189597619Y-122998571D01*
341 | X189597619Y-123093809D01*
342 | X190073809Y-123189047D01*
343 | X188740476Y-123522380D02*
344 | X188740476Y-122522380D01*
345 | X188740476Y-123474761D02*
346 | X188835714Y-123522380D01*
347 | X189026190Y-123522380D01*
348 | X189121428Y-123474761D01*
349 | X189169047Y-123427142D01*
350 | X189216666Y-123331904D01*
351 | X189216666Y-123046190D01*
352 | X189169047Y-122950952D01*
353 | X189121428Y-122903333D01*
354 | X189026190Y-122855714D01*
355 | X188835714Y-122855714D01*
356 | X188740476Y-122903333D01*
357 | X187502380Y-123522380D02*
358 | X187502380Y-122522380D01*
359 | X187502380Y-122903333D02*
360 | X187407142Y-122855714D01*
361 | X187216666Y-122855714D01*
362 | X187121428Y-122903333D01*
363 | X187073809Y-122950952D01*
364 | X187026190Y-123046190D01*
365 | X187026190Y-123331904D01*
366 | X187073809Y-123427142D01*
367 | X187121428Y-123474761D01*
368 | X187216666Y-123522380D01*
369 | X187407142Y-123522380D01*
370 | X187502380Y-123474761D01*
371 | X186692857Y-122855714D02*
372 | X186454761Y-123522380D01*
373 | X186216666Y-122855714D02*
374 | X186454761Y-123522380D01*
375 | X186550000Y-123760476D01*
376 | X186597619Y-123808095D01*
377 | X186692857Y-123855714D01*
378 | X185121428Y-123474761D02*
379 | X185026190Y-123522380D01*
380 | X184835714Y-123522380D01*
381 | X184740476Y-123474761D01*
382 | X184692857Y-123379523D01*
383 | X184692857Y-123331904D01*
384 | X184740476Y-123236666D01*
385 | X184835714Y-123189047D01*
386 | X184978571Y-123189047D01*
387 | X185073809Y-123141428D01*
388 | X185121428Y-123046190D01*
389 | X185121428Y-122998571D01*
390 | X185073809Y-122903333D01*
391 | X184978571Y-122855714D01*
392 | X184835714Y-122855714D01*
393 | X184740476Y-122903333D01*
394 | X184264285Y-123522380D02*
395 | X184264285Y-122855714D01*
396 | X184264285Y-122950952D02*
397 | X184216666Y-122903333D01*
398 | X184121428Y-122855714D01*
399 | X183978571Y-122855714D01*
400 | X183883333Y-122903333D01*
401 | X183835714Y-122998571D01*
402 | X183835714Y-123522380D01*
403 | X183835714Y-122998571D02*
404 | X183788095Y-122903333D01*
405 | X183692857Y-122855714D01*
406 | X183550000Y-122855714D01*
407 | X183454761Y-122903333D01*
408 | X183407142Y-122998571D01*
409 | X183407142Y-123522380D01*
410 | X182502380Y-123522380D02*
411 | X182502380Y-122998571D01*
412 | X182550000Y-122903333D01*
413 | X182645238Y-122855714D01*
414 | X182835714Y-122855714D01*
415 | X182930952Y-122903333D01*
416 | X182502380Y-123474761D02*
417 | X182597619Y-123522380D01*
418 | X182835714Y-123522380D01*
419 | X182930952Y-123474761D01*
420 | X182978571Y-123379523D01*
421 | X182978571Y-123284285D01*
422 | X182930952Y-123189047D01*
423 | X182835714Y-123141428D01*
424 | X182597619Y-123141428D01*
425 | X182502380Y-123093809D01*
426 | X182026190Y-123522380D02*
427 | X182026190Y-122855714D01*
428 | X182026190Y-123046190D02*
429 | X181978571Y-122950952D01*
430 | X181930952Y-122903333D01*
431 | X181835714Y-122855714D01*
432 | X181740476Y-122855714D01*
433 | X181550000Y-122855714D02*
434 | X181169047Y-122855714D01*
435 | X181407142Y-122522380D02*
436 | X181407142Y-123379523D01*
437 | X181359523Y-123474761D01*
438 | X181264285Y-123522380D01*
439 | X181169047Y-123522380D01*
440 | X180835714Y-123522380D02*
441 | X180835714Y-122522380D01*
442 | X180407142Y-123522380D02*
443 | X180407142Y-122998571D01*
444 | X180454761Y-122903333D01*
445 | X180550000Y-122855714D01*
446 | X180692857Y-122855714D01*
447 | X180788095Y-122903333D01*
448 | X180835714Y-122950952D01*
449 | X179788095Y-123522380D02*
450 | X179883333Y-123474761D01*
451 | X179930952Y-123427142D01*
452 | X179978571Y-123331904D01*
453 | X179978571Y-123046190D01*
454 | X179930952Y-122950952D01*
455 | X179883333Y-122903333D01*
456 | X179788095Y-122855714D01*
457 | X179645238Y-122855714D01*
458 | X179550000Y-122903333D01*
459 | X179502380Y-122950952D01*
460 | X179454761Y-123046190D01*
461 | X179454761Y-123331904D01*
462 | X179502380Y-123427142D01*
463 | X179550000Y-123474761D01*
464 | X179645238Y-123522380D01*
465 | X179788095Y-123522380D01*
466 | X179026190Y-123522380D02*
467 | X179026190Y-122855714D01*
468 | X179026190Y-122950952D02*
469 | X178978571Y-122903333D01*
470 | X178883333Y-122855714D01*
471 | X178740476Y-122855714D01*
472 | X178645238Y-122903333D01*
473 | X178597619Y-122998571D01*
474 | X178597619Y-123522380D01*
475 | X178597619Y-122998571D02*
476 | X178550000Y-122903333D01*
477 | X178454761Y-122855714D01*
478 | X178311904Y-122855714D01*
479 | X178216666Y-122903333D01*
480 | X178169047Y-122998571D01*
481 | X178169047Y-123522380D01*
482 | X177311904Y-123474761D02*
483 | X177407142Y-123522380D01*
484 | X177597619Y-123522380D01*
485 | X177692857Y-123474761D01*
486 | X177740476Y-123379523D01*
487 | X177740476Y-122998571D01*
488 | X177692857Y-122903333D01*
489 | X177597619Y-122855714D01*
490 | X177407142Y-122855714D01*
491 | X177311904Y-122903333D01*
492 | X177264285Y-122998571D01*
493 | X177264285Y-123093809D01*
494 | X177740476Y-123189047D01*
495 | X176978571Y-122855714D02*
496 | X176597619Y-122855714D01*
497 | X176835714Y-123522380D02*
498 | X176835714Y-122665238D01*
499 | X176788095Y-122570000D01*
500 | X176692857Y-122522380D01*
501 | X176597619Y-122522380D01*
502 | X175835714Y-123522380D02*
503 | X175835714Y-122998571D01*
504 | X175883333Y-122903333D01*
505 | X175978571Y-122855714D01*
506 | X176169047Y-122855714D01*
507 | X176264285Y-122903333D01*
508 | X175835714Y-123474761D02*
509 | X175930952Y-123522380D01*
510 | X176169047Y-123522380D01*
511 | X176264285Y-123474761D01*
512 | X176311904Y-123379523D01*
513 | X176311904Y-123284285D01*
514 | X176264285Y-123189047D01*
515 | X176169047Y-123141428D01*
516 | X175930952Y-123141428D01*
517 | X175835714Y-123093809D01*
518 | X175359523Y-122855714D02*
519 | X175359523Y-123522380D01*
520 | X175359523Y-122950952D02*
521 | X175311904Y-122903333D01*
522 | X175216666Y-122855714D01*
523 | X175073809Y-122855714D01*
524 | X174978571Y-122903333D01*
525 | X174930952Y-122998571D01*
526 | X174930952Y-123522380D01*
527 | X174502380Y-123474761D02*
528 | X174407142Y-123522380D01*
529 | X174216666Y-123522380D01*
530 | X174121428Y-123474761D01*
531 | X174073809Y-123379523D01*
532 | X174073809Y-123331904D01*
533 | X174121428Y-123236666D01*
534 | X174216666Y-123189047D01*
535 | X174359523Y-123189047D01*
536 | X174454761Y-123141428D01*
537 | X174502380Y-123046190D01*
538 | X174502380Y-122998571D01*
539 | X174454761Y-122903333D01*
540 | X174359523Y-122855714D01*
541 | X174216666Y-122855714D01*
542 | X174121428Y-122903333D01*
543 | X191474761Y-120995714D02*
544 | X190950952Y-120995714D01*
545 | X191474761Y-121662380D01*
546 | X190950952Y-121662380D01*
547 | X190617619Y-120757619D02*
548 | X190570000Y-120710000D01*
549 | X190474761Y-120662380D01*
550 | X190236666Y-120662380D01*
551 | X190141428Y-120710000D01*
552 | X190093809Y-120757619D01*
553 | X190046190Y-120852857D01*
554 | X190046190Y-120948095D01*
555 | X190093809Y-121090952D01*
556 | X190665238Y-121662380D01*
557 | X190046190Y-121662380D01*
558 | X189617619Y-121662380D02*
559 | X189617619Y-120995714D01*
560 | X189617619Y-121090952D02*
561 | X189570000Y-121043333D01*
562 | X189474761Y-120995714D01*
563 | X189331904Y-120995714D01*
564 | X189236666Y-121043333D01*
565 | X189189047Y-121138571D01*
566 | X189189047Y-121662380D01*
567 | X189189047Y-121138571D02*
568 | X189141428Y-121043333D01*
569 | X189046190Y-120995714D01*
570 | X188903333Y-120995714D01*
571 | X188808095Y-121043333D01*
572 | X188760476Y-121138571D01*
573 | X188760476Y-121662380D01*
574 | X187522380Y-120995714D02*
575 | X187522380Y-121995714D01*
576 | X187522380Y-121043333D02*
577 | X187427142Y-120995714D01*
578 | X187236666Y-120995714D01*
579 | X187141428Y-121043333D01*
580 | X187093809Y-121090952D01*
581 | X187046190Y-121186190D01*
582 | X187046190Y-121471904D01*
583 | X187093809Y-121567142D01*
584 | X187141428Y-121614761D01*
585 | X187236666Y-121662380D01*
586 | X187427142Y-121662380D01*
587 | X187522380Y-121614761D01*
588 | X186189047Y-121662380D02*
589 | X186189047Y-121138571D01*
590 | X186236666Y-121043333D01*
591 | X186331904Y-120995714D01*
592 | X186522380Y-120995714D01*
593 | X186617619Y-121043333D01*
594 | X186189047Y-121614761D02*
595 | X186284285Y-121662380D01*
596 | X186522380Y-121662380D01*
597 | X186617619Y-121614761D01*
598 | X186665238Y-121519523D01*
599 | X186665238Y-121424285D01*
600 | X186617619Y-121329047D01*
601 | X186522380Y-121281428D01*
602 | X186284285Y-121281428D01*
603 | X186189047Y-121233809D01*
604 | X185712857Y-121662380D02*
605 | X185712857Y-120995714D01*
606 | X185712857Y-121186190D02*
607 | X185665238Y-121090952D01*
608 | X185617619Y-121043333D01*
609 | X185522380Y-120995714D01*
610 | X185427142Y-120995714D01*
611 | X185236666Y-120995714D02*
612 | X184855714Y-120995714D01*
613 | X185093809Y-120662380D02*
614 | X185093809Y-121519523D01*
615 | X185046190Y-121614761D01*
616 | X184950952Y-121662380D01*
617 | X184855714Y-121662380D01*
618 | X184522380Y-120995714D02*
619 | X184522380Y-121662380D01*
620 | X184522380Y-121090952D02*
621 | X184474761Y-121043333D01*
622 | X184379523Y-120995714D01*
623 | X184236666Y-120995714D01*
624 | X184141428Y-121043333D01*
625 | X184093809Y-121138571D01*
626 | X184093809Y-121662380D01*
627 | X183236666Y-121614761D02*
628 | X183331904Y-121662380D01*
629 | X183522380Y-121662380D01*
630 | X183617619Y-121614761D01*
631 | X183665238Y-121519523D01*
632 | X183665238Y-121138571D01*
633 | X183617619Y-121043333D01*
634 | X183522380Y-120995714D01*
635 | X183331904Y-120995714D01*
636 | X183236666Y-121043333D01*
637 | X183189047Y-121138571D01*
638 | X183189047Y-121233809D01*
639 | X183665238Y-121329047D01*
640 | X182760476Y-121662380D02*
641 | X182760476Y-120995714D01*
642 | X182760476Y-121186190D02*
643 | X182712857Y-121090952D01*
644 | X182665238Y-121043333D01*
645 | X182570000Y-120995714D01*
646 | X182474761Y-120995714D01*
647 | X181474761Y-120995714D02*
648 | X181236666Y-121662380D01*
649 | X180998571Y-120995714D01*
650 | X180427142Y-120662380D02*
651 | X180331904Y-120662380D01*
652 | X180236666Y-120710000D01*
653 | X180189047Y-120757619D01*
654 | X180141428Y-120852857D01*
655 | X180093809Y-121043333D01*
656 | X180093809Y-121281428D01*
657 | X180141428Y-121471904D01*
658 | X180189047Y-121567142D01*
659 | X180236666Y-121614761D01*
660 | X180331904Y-121662380D01*
661 | X180427142Y-121662380D01*
662 | X180522380Y-121614761D01*
663 | X180570000Y-121567142D01*
664 | X180617619Y-121471904D01*
665 | X180665238Y-121281428D01*
666 | X180665238Y-121043333D01*
667 | X180617619Y-120852857D01*
668 | X180570000Y-120757619D01*
669 | X180522380Y-120710000D01*
670 | X180427142Y-120662380D01*
671 | X179712857Y-120757619D02*
672 | X179665238Y-120710000D01*
673 | X179570000Y-120662380D01*
674 | X179331904Y-120662380D01*
675 | X179236666Y-120710000D01*
676 | X179189047Y-120757619D01*
677 | X179141428Y-120852857D01*
678 | X179141428Y-120948095D01*
679 | X179189047Y-121090952D01*
680 | X179760476Y-121662380D01*
681 | X179141428Y-121662380D01*
682 | X178712857Y-121567142D02*
683 | X178665238Y-121614761D01*
684 | X178712857Y-121662380D01*
685 | X178760476Y-121614761D01*
686 | X178712857Y-121567142D01*
687 | X178712857Y-121662380D01*
688 | X177712857Y-121662380D02*
689 | X178284285Y-121662380D01*
690 | X177998571Y-121662380D02*
691 | X177998571Y-120662380D01*
692 | X178093809Y-120805238D01*
693 | X178189047Y-120900476D01*
694 | X178284285Y-120948095D01*
695 | D11*
696 | X177853733Y-103160000D02*
697 | X178196267Y-103160000D01*
698 | X177853733Y-104180000D02*
699 | X178196267Y-104180000D01*
700 | X188200000Y-100120000D02*
701 | X188200000Y-101270000D01*
702 | X180900000Y-100120000D02*
703 | X188200000Y-100120000D01*
704 | X180900000Y-105620000D02*
705 | X188200000Y-105620000D01*
706 | X179585000Y-104460000D02*
707 | X179585000Y-102000000D01*
708 | X181055000Y-104460000D02*
709 | X179585000Y-104460000D01*
710 | X181055000Y-102000000D02*
711 | X181055000Y-104460000D01*
712 | X184786267Y-94010000D02*
713 | X184443733Y-94010000D01*
714 | X184786267Y-92990000D02*
715 | X184443733Y-92990000D01*
716 | X177662039Y-106911678D02*
717 | X177833306Y-107208322D01*
718 | X176778694Y-107421678D02*
719 | X176949961Y-107718322D01*
720 | X191496694Y-107335322D02*
721 | X191667961Y-107038678D01*
722 | X192380039Y-107845322D02*
723 | X192551306Y-107548678D01*
724 | X182550000Y-89120000D02*
725 | X186550000Y-89120000D01*
726 | X185550000Y-89120000D02*
727 | X185550000Y-89620000D01*
728 | X184550000Y-89120000D02*
729 | X184550000Y-89620000D01*
730 | X183550000Y-89120000D02*
731 | X183550000Y-89620000D01*
732 | X182550000Y-89120000D02*
733 | X183050000Y-89620000D01*
734 | X183050000Y-89620000D02*
735 | X186050000Y-89620000D01*
736 | X186050000Y-89620000D02*
737 | X186550000Y-89120000D01*
738 | X197449519Y-108032949D02*
739 | X195449519Y-111497051D01*
740 | X195949519Y-110631025D02*
741 | X195516506Y-110381025D01*
742 | X196449519Y-109765000D02*
743 | X196016506Y-109515000D01*
744 | X196949519Y-108898975D02*
745 | X196516506Y-108648975D01*
746 | X197449519Y-108032949D02*
747 | X196766506Y-108215962D01*
748 | X196766506Y-108215962D02*
749 | X195266506Y-110814038D01*
750 | X195266506Y-110814038D02*
751 | X195449519Y-111497051D01*
752 | X173650481Y-111487051D02*
753 | X171650481Y-108022949D01*
754 | X172150481Y-108888975D02*
755 | X172583494Y-108638975D01*
756 | X172650481Y-109755000D02*
757 | X173083494Y-109505000D01*
758 | X173150481Y-110621025D02*
759 | X173583494Y-110371025D01*
760 | X173650481Y-111487051D02*
761 | X173833494Y-110804038D01*
762 | X173833494Y-110804038D02*
763 | X172333494Y-108205962D01*
764 | X172333494Y-108205962D02*
765 | X171650481Y-108022949D01*
766 | X193437306Y-97493322D02*
767 | X193266039Y-97196678D01*
768 | X192553961Y-98003322D02*
769 | X192382694Y-97706678D01*
770 | X184358733Y-111570000D02*
771 | X184701267Y-111570000D01*
772 | X184358733Y-112590000D02*
773 | X184701267Y-112590000D01*
774 | X176073961Y-98486678D02*
775 | X175902694Y-98783322D01*
776 | X176957306Y-98996678D02*
777 | X176786039Y-99293322D01*
778 | X173543494Y-95685962D02*
779 | X173360481Y-95002949D01*
780 | X172043494Y-98284038D02*
781 | X173543494Y-95685962D01*
782 | X171360481Y-98467051D02*
783 | X172043494Y-98284038D01*
784 | X171860481Y-97601025D02*
785 | X172293494Y-97851025D01*
786 | X172360481Y-96735000D02*
787 | X172793494Y-96985000D01*
788 | X172860481Y-95868975D02*
789 | X173293494Y-96118975D01*
790 | X171360481Y-98467051D02*
791 | X173360481Y-95002949D01*
792 | X197076506Y-96824038D02*
793 | X197759519Y-97007051D01*
794 | X195576506Y-94225962D02*
795 | X197076506Y-96824038D01*
796 | X195759519Y-93542949D02*
797 | X195576506Y-94225962D01*
798 | X196259519Y-94408975D02*
799 | X195826506Y-94658975D01*
800 | X196759519Y-95275000D02*
801 | X196326506Y-95525000D01*
802 | X197259519Y-96141025D02*
803 | X196826506Y-96391025D01*
804 | X195759519Y-93542949D02*
805 | X197759519Y-97007051D01*
806 | X186530000Y-116620000D02*
807 | X182530000Y-116620000D01*
808 | X183530000Y-116620000D02*
809 | X183530000Y-116120000D01*
810 | X184530000Y-116620000D02*
811 | X184530000Y-116120000D01*
812 | X185530000Y-116620000D02*
813 | X185530000Y-116120000D01*
814 | X186530000Y-116620000D02*
815 | X186030000Y-116120000D01*
816 | X186030000Y-116120000D02*
817 | X183030000Y-116120000D01*
818 | X183030000Y-116120000D02*
819 | X182530000Y-116620000D01*
820 | D10*
821 | X179509523Y-81900000D02*
822 | X179433333Y-81938095D01*
823 | X179319047Y-81938095D01*
824 | X179204761Y-81900000D01*
825 | X179128571Y-81823809D01*
826 | X179090476Y-81747619D01*
827 | X179052380Y-81595238D01*
828 | X179052380Y-81480952D01*
829 | X179090476Y-81328571D01*
830 | X179128571Y-81252380D01*
831 | X179204761Y-81176190D01*
832 | X179319047Y-81138095D01*
833 | X179395238Y-81138095D01*
834 | X179509523Y-81176190D01*
835 | X179547619Y-81214285D01*
836 | X179547619Y-81480952D01*
837 | X179395238Y-81480952D01*
838 | X181719047Y-81138095D02*
839 | X181719047Y-81938095D01*
840 | X181909523Y-81938095D01*
841 | X182023809Y-81900000D01*
842 | X182100000Y-81823809D01*
843 | X182138095Y-81747619D01*
844 | X182176190Y-81595238D01*
845 | X182176190Y-81480952D01*
846 | X182138095Y-81328571D01*
847 | X182100000Y-81252380D01*
848 | X182023809Y-81176190D01*
849 | X181909523Y-81138095D01*
850 | X181719047Y-81138095D01*
851 | X184804761Y-81214285D02*
852 | X184766666Y-81176190D01*
853 | X184652380Y-81138095D01*
854 | X184576190Y-81138095D01*
855 | X184461904Y-81176190D01*
856 | X184385714Y-81252380D01*
857 | X184347619Y-81328571D01*
858 | X184309523Y-81480952D01*
859 | X184309523Y-81595238D01*
860 | X184347619Y-81747619D01*
861 | X184385714Y-81823809D01*
862 | X184461904Y-81900000D01*
863 | X184576190Y-81938095D01*
864 | X184652380Y-81938095D01*
865 | X184766666Y-81900000D01*
866 | X184804761Y-81861904D01*
867 | X187433333Y-81138095D02*
868 | X187166666Y-81519047D01*
869 | X186976190Y-81138095D02*
870 | X186976190Y-81938095D01*
871 | X187280952Y-81938095D01*
872 | X187357142Y-81900000D01*
873 | X187395238Y-81861904D01*
874 | X187433333Y-81785714D01*
875 | X187433333Y-81671428D01*
876 | X187395238Y-81595238D01*
877 | X187357142Y-81557142D01*
878 | X187280952Y-81519047D01*
879 | X186976190Y-81519047D01*
880 | X189490476Y-81938095D02*
881 | X189757142Y-81138095D01*
882 | X190023809Y-81938095D01*
883 | X178466666Y-102657142D02*
884 | X178514285Y-102704761D01*
885 | X178657142Y-102752380D01*
886 | X178752380Y-102752380D01*
887 | X178895238Y-102704761D01*
888 | X178990476Y-102609523D01*
889 | X179038095Y-102514285D01*
890 | X179085714Y-102323809D01*
891 | X179085714Y-102180952D01*
892 | X179038095Y-101990476D01*
893 | X178990476Y-101895238D01*
894 | X178895238Y-101800000D01*
895 | X178752380Y-101752380D01*
896 | X178657142Y-101752380D01*
897 | X178514285Y-101800000D01*
898 | X178466666Y-101847619D01*
899 | X177514285Y-102752380D02*
900 | X178085714Y-102752380D01*
901 | X177800000Y-102752380D02*
902 | X177800000Y-101752380D01*
903 | X177895238Y-101895238D01*
904 | X177990476Y-101990476D01*
905 | X178085714Y-102038095D01*
906 | X184838095Y-99952380D02*
907 | X184838095Y-98952380D01*
908 | X184600000Y-98952380D01*
909 | X184457142Y-99000000D01*
910 | X184361904Y-99095238D01*
911 | X184314285Y-99190476D01*
912 | X184266666Y-99380952D01*
913 | X184266666Y-99523809D01*
914 | X184314285Y-99714285D01*
915 | X184361904Y-99809523D01*
916 | X184457142Y-99904761D01*
917 | X184600000Y-99952380D01*
918 | X184838095Y-99952380D01*
919 | X183314285Y-99952380D02*
920 | X183885714Y-99952380D01*
921 | X183600000Y-99952380D02*
922 | X183600000Y-98952380D01*
923 | X183695238Y-99095238D01*
924 | X183790476Y-99190476D01*
925 | X183885714Y-99238095D01*
926 | X180552380Y-99561904D02*
927 | X179552380Y-99561904D01*
928 | X179552380Y-99800000D01*
929 | X179600000Y-99942857D01*
930 | X179695238Y-100038095D01*
931 | X179790476Y-100085714D01*
932 | X179980952Y-100133333D01*
933 | X180123809Y-100133333D01*
934 | X180314285Y-100085714D01*
935 | X180409523Y-100038095D01*
936 | X180504761Y-99942857D01*
937 | X180552380Y-99800000D01*
938 | X180552380Y-99561904D01*
939 | X179647619Y-100514285D02*
940 | X179600000Y-100561904D01*
941 | X179552380Y-100657142D01*
942 | X179552380Y-100895238D01*
943 | X179600000Y-100990476D01*
944 | X179647619Y-101038095D01*
945 | X179742857Y-101085714D01*
946 | X179838095Y-101085714D01*
947 | X179980952Y-101038095D01*
948 | X180552380Y-100466666D01*
949 | X180552380Y-101085714D01*
950 | X184566666Y-95157142D02*
951 | X184614285Y-95204761D01*
952 | X184757142Y-95252380D01*
953 | X184852380Y-95252380D01*
954 | X184995238Y-95204761D01*
955 | X185090476Y-95109523D01*
956 | X185138095Y-95014285D01*
957 | X185185714Y-94823809D01*
958 | X185185714Y-94680952D01*
959 | X185138095Y-94490476D01*
960 | X185090476Y-94395238D01*
961 | X184995238Y-94300000D01*
962 | X184852380Y-94252380D01*
963 | X184757142Y-94252380D01*
964 | X184614285Y-94300000D01*
965 | X184566666Y-94347619D01*
966 | X184185714Y-94347619D02*
967 | X184138095Y-94300000D01*
968 | X184042857Y-94252380D01*
969 | X183804761Y-94252380D01*
970 | X183709523Y-94300000D01*
971 | X183661904Y-94347619D01*
972 | X183614285Y-94442857D01*
973 | X183614285Y-94538095D01*
974 | X183661904Y-94680952D01*
975 | X184233333Y-95252380D01*
976 | X183614285Y-95252380D01*
977 | X178274038Y-107122908D02*
978 | X178256608Y-107187957D01*
979 | X178286798Y-107335485D01*
980 | X178334417Y-107417963D01*
981 | X178447084Y-107517872D01*
982 | X178577182Y-107552731D01*
983 | X178683470Y-107546352D01*
984 | X178872237Y-107492353D01*
985 | X178995955Y-107420924D01*
986 | X179137103Y-107284447D01*
987 | X179195772Y-107195588D01*
988 | X179230631Y-107065491D01*
989 | X179200442Y-106917963D01*
990 | X179152823Y-106835485D01*
991 | X179040155Y-106735576D01*
992 | X178975106Y-106718147D01*
993 | X178400717Y-106389942D02*
994 | X178489575Y-106448611D01*
995 | X178554624Y-106466040D01*
996 | X178660912Y-106459661D01*
997 | X178702151Y-106435851D01*
998 | X178760821Y-106346993D01*
999 | X178778250Y-106281944D01*
1000 | X178771871Y-106175656D01*
1001 | X178676632Y-106010699D01*
1002 | X178587774Y-105952030D01*
1003 | X178522725Y-105934600D01*
1004 | X178416437Y-105940980D01*
1005 | X178375198Y-105964789D01*
1006 | X178316529Y-106053647D01*
1007 | X178299099Y-106118696D01*
1008 | X178305479Y-106224984D01*
1009 | X178400717Y-106389942D01*
1010 | X178407097Y-106496230D01*
1011 | X178389667Y-106561279D01*
1012 | X178330998Y-106650137D01*
1013 | X178166040Y-106745375D01*
1014 | X178059752Y-106751755D01*
1015 | X177994704Y-106734325D01*
1016 | X177905845Y-106675656D01*
1017 | X177810607Y-106510699D01*
1018 | X177804227Y-106404411D01*
1019 | X177821657Y-106339362D01*
1020 | X177880326Y-106250503D01*
1021 | X178045283Y-106155265D01*
1022 | X178151572Y-106148886D01*
1023 | X178216620Y-106166315D01*
1024 | X178305479Y-106224984D01*
1025 | X191292628Y-106934233D02*
1026 | X191357676Y-106916804D01*
1027 | X191470344Y-106816895D01*
1028 | X191517963Y-106734417D01*
1029 | X191548153Y-106586889D01*
1030 | X191513293Y-106456791D01*
1031 | X191454624Y-106367933D01*
1032 | X191313476Y-106231456D01*
1033 | X191189758Y-106160027D01*
1034 | X191000992Y-106106028D01*
1035 | X190894704Y-106099649D01*
1036 | X190764606Y-106134508D01*
1037 | X190651938Y-106234417D01*
1038 | X190604319Y-106316895D01*
1039 | X190574130Y-106464423D01*
1040 | X190591559Y-106529471D01*
1041 | X191137011Y-107394245D02*
1042 | X191041773Y-107559203D01*
1043 | X190952915Y-107617872D01*
1044 | X190887866Y-107635302D01*
1045 | X190716529Y-107646352D01*
1046 | X190527762Y-107592353D01*
1047 | X190197848Y-107401877D01*
1048 | X190139178Y-107313018D01*
1049 | X190121749Y-107247969D01*
1050 | X190128128Y-107141681D01*
1051 | X190223367Y-106976724D01*
1052 | X190312225Y-106918055D01*
1053 | X190377274Y-106900625D01*
1054 | X190483562Y-106907005D01*
1055 | X190689758Y-107026053D01*
1056 | X190748427Y-107114911D01*
1057 | X190765857Y-107179960D01*
1058 | X190759478Y-107286248D01*
1059 | X190664239Y-107451205D01*
1060 | X190575381Y-107509874D01*
1061 | X190510332Y-107527304D01*
1062 | X190404044Y-107520924D01*
1063 | X185438095Y-92752380D02*
1064 | X185438095Y-91752380D01*
1065 | X185200000Y-91752380D01*
1066 | X185057142Y-91800000D01*
1067 | X184961904Y-91895238D01*
1068 | X184914285Y-91990476D01*
1069 | X184866666Y-92180952D01*
1070 | X184866666Y-92323809D01*
1071 | X184914285Y-92514285D01*
1072 | X184961904Y-92609523D01*
1073 | X185057142Y-92704761D01*
1074 | X185200000Y-92752380D01*
1075 | X185438095Y-92752380D01*
1076 | X184533333Y-91752380D02*
1077 | X183914285Y-91752380D01*
1078 | X184247619Y-92133333D01*
1079 | X184104761Y-92133333D01*
1080 | X184009523Y-92180952D01*
1081 | X183961904Y-92228571D01*
1082 | X183914285Y-92323809D01*
1083 | X183914285Y-92561904D01*
1084 | X183961904Y-92657142D01*
1085 | X184009523Y-92704761D01*
1086 | X184104761Y-92752380D01*
1087 | X184390476Y-92752380D01*
1088 | X184485714Y-92704761D01*
1089 | X184533333Y-92657142D01*
1090 | X194460821Y-107986981D02*
1091 | X193594795Y-107486981D01*
1092 | X193475747Y-107693177D01*
1093 | X193445558Y-107840705D01*
1094 | X193480418Y-107970802D01*
1095 | X193539087Y-108059661D01*
1096 | X193680235Y-108196138D01*
1097 | X193803952Y-108267567D01*
1098 | X193992719Y-108321565D01*
1099 | X194099007Y-108327945D01*
1100 | X194229105Y-108293086D01*
1101 | X194341773Y-108193177D01*
1102 | X194460821Y-107986981D01*
1103 | X193169185Y-108890827D02*
1104 | X193746535Y-109224160D01*
1105 | X192958318Y-108494154D02*
1106 | X193695955Y-108645100D01*
1107 | X193386431Y-109181211D01*
1108 | X175177274Y-108965399D02*
1109 | X176043299Y-108465399D01*
1110 | X175924252Y-108259203D01*
1111 | X175811584Y-108159294D01*
1112 | X175681486Y-108124435D01*
1113 | X175575198Y-108130814D01*
1114 | X175386431Y-108184813D01*
1115 | X175262713Y-108256242D01*
1116 | X175121565Y-108392719D01*
1117 | X175062896Y-108481578D01*
1118 | X175028037Y-108611675D01*
1119 | X175058226Y-108759203D01*
1120 | X175177274Y-108965399D01*
1121 | X175305204Y-107186981D02*
1122 | X175543299Y-107599374D01*
1123 | X175154716Y-107878708D01*
1124 | X175172145Y-107813660D01*
1125 | X175165766Y-107707371D01*
1126 | X175046718Y-107501175D01*
1127 | X174957860Y-107442506D01*
1128 | X174892811Y-107425076D01*
1129 | X174786523Y-107431456D01*
1130 | X174580326Y-107550503D01*
1131 | X174521657Y-107639362D01*
1132 | X174504227Y-107704411D01*
1133 | X174510607Y-107810699D01*
1134 | X174629655Y-108016895D01*
1135 | X174718513Y-108075564D01*
1136 | X174783562Y-108092994D01*
1137 | X191712133Y-99135302D02*
1138 | X191694704Y-99200350D01*
1139 | X191724893Y-99347878D01*
1140 | X191772512Y-99430356D01*
1141 | X191885180Y-99530265D01*
1142 | X192015277Y-99565124D01*
1143 | X192121565Y-99558745D01*
1144 | X192310332Y-99504746D01*
1145 | X192434050Y-99433317D01*
1146 | X192575198Y-99296840D01*
1147 | X192633867Y-99207982D01*
1148 | X192668726Y-99077884D01*
1149 | X192638537Y-98930356D01*
1150 | X192590918Y-98847878D01*
1151 | X192478250Y-98747969D01*
1152 | X192413201Y-98730540D01*
1153 | X191153464Y-98358134D02*
1154 | X191439178Y-98853006D01*
1155 | X191296321Y-98605570D02*
1156 | X192162347Y-98105570D01*
1157 | X192086248Y-98259478D01*
1158 | X192051388Y-98389575D01*
1159 | X192057768Y-98495863D01*
1160 | X191709966Y-97322024D02*
1161 | X191662347Y-97239545D01*
1162 | X191573488Y-97180876D01*
1163 | X191508440Y-97163446D01*
1164 | X191402151Y-97169826D01*
1165 | X191213385Y-97223825D01*
1166 | X191007188Y-97342872D01*
1167 | X190866040Y-97479350D01*
1168 | X190807371Y-97568208D01*
1169 | X190789942Y-97633257D01*
1170 | X190796321Y-97739545D01*
1171 | X190843940Y-97822024D01*
1172 | X190932799Y-97880693D01*
1173 | X190997848Y-97898122D01*
1174 | X191104136Y-97891743D01*
1175 | X191292902Y-97837744D01*
1176 | X191499099Y-97718696D01*
1177 | X191640247Y-97582219D01*
1178 | X191698916Y-97493360D01*
1179 | X191716346Y-97428312D01*
1180 | X191709966Y-97322024D01*
1181 | X185142857Y-111157142D02*
1182 | X185190476Y-111204761D01*
1183 | X185333333Y-111252380D01*
1184 | X185428571Y-111252380D01*
1185 | X185571428Y-111204761D01*
1186 | X185666666Y-111109523D01*
1187 | X185714285Y-111014285D01*
1188 | X185761904Y-110823809D01*
1189 | X185761904Y-110680952D01*
1190 | X185714285Y-110490476D01*
1191 | X185666666Y-110395238D01*
1192 | X185571428Y-110300000D01*
1193 | X185428571Y-110252380D01*
1194 | X185333333Y-110252380D01*
1195 | X185190476Y-110300000D01*
1196 | X185142857Y-110347619D01*
1197 | X184190476Y-111252380D02*
1198 | X184761904Y-111252380D01*
1199 | X184476190Y-111252380D02*
1200 | X184476190Y-110252380D01*
1201 | X184571428Y-110395238D01*
1202 | X184666666Y-110490476D01*
1203 | X184761904Y-110538095D01*
1204 | X183238095Y-111252380D02*
1205 | X183809523Y-111252380D01*
1206 | X183523809Y-111252380D02*
1207 | X183523809Y-110252380D01*
1208 | X183619047Y-110395238D01*
1209 | X183714285Y-110490476D01*
1210 | X183809523Y-110538095D01*
1211 | X178330723Y-99121839D02*
1212 | X178395772Y-99104410D01*
1213 | X178508440Y-99004501D01*
1214 | X178556059Y-98922023D01*
1215 | X178586248Y-98774495D01*
1216 | X178551388Y-98644397D01*
1217 | X178492719Y-98555539D01*
1218 | X178351572Y-98419062D01*
1219 | X178227854Y-98347633D01*
1220 | X178039087Y-98293634D01*
1221 | X177932799Y-98287255D01*
1222 | X177802701Y-98322114D01*
1223 | X177690033Y-98422023D01*
1224 | X177642414Y-98504501D01*
1225 | X177612225Y-98652029D01*
1226 | X177629655Y-98717077D01*
1227 | X177937011Y-99994244D02*
1228 | X178222725Y-99499373D01*
1229 | X178079868Y-99746809D02*
1230 | X177213843Y-99246809D01*
1231 | X177385180Y-99235759D01*
1232 | X177515277Y-99200899D01*
1233 | X177604136Y-99142230D01*
1234 | X176962988Y-99871778D02*
1235 | X176897939Y-99889208D01*
1236 | X176809081Y-99947877D01*
1237 | X176690033Y-100154073D01*
1238 | X176683653Y-100260361D01*
1239 | X176701083Y-100325410D01*
1240 | X176759752Y-100414269D01*
1241 | X176842231Y-100461888D01*
1242 | X176989758Y-100492077D01*
1243 | X177770344Y-100282920D01*
1244 | X177460821Y-100819031D01*
1245 | X176160821Y-97486981D02*
1246 | X175294795Y-96986981D01*
1247 | X175175747Y-97193177D01*
1248 | X175145558Y-97340705D01*
1249 | X175180418Y-97470802D01*
1250 | X175239087Y-97559661D01*
1251 | X175380235Y-97696138D01*
1252 | X175503952Y-97767567D01*
1253 | X175692719Y-97821565D01*
1254 | X175799007Y-97827945D01*
1255 | X175929105Y-97793086D01*
1256 | X176041773Y-97693177D01*
1257 | X176160821Y-97486981D01*
1258 | X174580509Y-98224160D02*
1259 | X174675747Y-98059203D01*
1260 | X174764606Y-98000534D01*
1261 | X174829655Y-97983104D01*
1262 | X175000992Y-97972054D01*
1263 | X175189758Y-98026053D01*
1264 | X175519673Y-98216529D01*
1265 | X175578342Y-98305387D01*
1266 | X175595772Y-98370436D01*
1267 | X175589392Y-98476724D01*
1268 | X175494154Y-98641681D01*
1269 | X175405295Y-98700350D01*
1270 | X175340247Y-98717780D01*
1271 | X175233959Y-98711400D01*
1272 | X175027762Y-98592353D01*
1273 | X174969093Y-98503494D01*
1274 | X174951663Y-98438446D01*
1275 | X174958043Y-98332157D01*
1276 | X175053281Y-98167200D01*
1277 | X175142139Y-98108531D01*
1278 | X175207188Y-98091101D01*
1279 | X175313476Y-98097481D01*
1280 | X194077274Y-97765399D02*
1281 | X194943299Y-97265399D01*
1282 | X194824252Y-97059203D01*
1283 | X194711584Y-96959294D01*
1284 | X194581486Y-96924435D01*
1285 | X194475198Y-96930814D01*
1286 | X194286431Y-96984813D01*
1287 | X194162713Y-97056242D01*
1288 | X194021565Y-97192719D01*
1289 | X193962896Y-97281578D01*
1290 | X193928037Y-97411675D01*
1291 | X193958226Y-97559203D01*
1292 | X194077274Y-97765399D01*
1293 | X194490918Y-96481852D02*
1294 | X194157585Y-95904502D01*
1295 | X193505845Y-96775656D01*
1296 | X185238095Y-114052380D02*
1297 | X185238095Y-113052380D01*
1298 | X185000000Y-113052380D01*
1299 | X184857142Y-113100000D01*
1300 | X184761904Y-113195238D01*
1301 | X184714285Y-113290476D01*
1302 | X184666666Y-113480952D01*
1303 | X184666666Y-113623809D01*
1304 | X184714285Y-113814285D01*
1305 | X184761904Y-113909523D01*
1306 | X184857142Y-114004761D01*
1307 | X185000000Y-114052380D01*
1308 | X185238095Y-114052380D01*
1309 | X184095238Y-113480952D02*
1310 | X184190476Y-113433333D01*
1311 | X184238095Y-113385714D01*
1312 | X184285714Y-113290476D01*
1313 | X184285714Y-113242857D01*
1314 | X184238095Y-113147619D01*
1315 | X184190476Y-113100000D01*
1316 | X184095238Y-113052380D01*
1317 | X183904761Y-113052380D01*
1318 | X183809523Y-113100000D01*
1319 | X183761904Y-113147619D01*
1320 | X183714285Y-113242857D01*
1321 | X183714285Y-113290476D01*
1322 | X183761904Y-113385714D01*
1323 | X183809523Y-113433333D01*
1324 | X183904761Y-113480952D01*
1325 | X184095238Y-113480952D01*
1326 | X184190476Y-113528571D01*
1327 | X184238095Y-113576190D01*
1328 | X184285714Y-113671428D01*
1329 | X184285714Y-113861904D01*
1330 | X184238095Y-113957142D01*
1331 | X184190476Y-114004761D01*
1332 | X184095238Y-114052380D01*
1333 | X183904761Y-114052380D01*
1334 | X183809523Y-114004761D01*
1335 | X183761904Y-113957142D01*
1336 | X183714285Y-113861904D01*
1337 | X183714285Y-113671428D01*
1338 | X183761904Y-113576190D01*
1339 | X183809523Y-113528571D01*
1340 | X183904761Y-113480952D01*
1341 | M02*
1342 |
--------------------------------------------------------------------------------
/project/gerber/z2m_partner-EdgeCuts.gbr:
--------------------------------------------------------------------------------
1 | %TF.GenerationSoftware,KiCad,Pcbnew,(5.1.4-0-10_14)*%
2 | %TF.CreationDate,2019-11-29T01:48:41+08:00*%
3 | %TF.ProjectId,z2m_partner,7a326d5f-7061-4727-946e-65722e6b6963,rev?*%
4 | %TF.SameCoordinates,Original*%
5 | %TF.FileFunction,Profile,NP*%
6 | %FSLAX46Y46*%
7 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
8 | G04 Created by KiCad (PCBNEW (5.1.4-0-10_14)) date 2019-11-29 01:48:41*
9 | %MOMM*%
10 | %LPD*%
11 | G04 APERTURE LIST*
12 | %ADD10C,0.050000*%
13 | G04 APERTURE END LIST*
14 | D10*
15 | X197447588Y-124280891D02*
16 | X197486919Y-124256979D01*
17 | X197486919Y-124256979D02*
18 | G75*
19 | G02X198259998Y-123769998I63081J756979D01*
20 | G01*
21 | X197447588Y-124280891D02*
22 | G75*
23 | G02X198259999Y-123769999I-12897588J21410891D01*
24 | G01*
25 | M02*
26 |
--------------------------------------------------------------------------------
/project/gerber/z2m_partner-NPTH.drl:
--------------------------------------------------------------------------------
1 | M48
2 | ; DRILL file {KiCad (5.1.4-0-10_14)} date 2019 November 29, Friday 01:48:41
3 | ; FORMAT={-:-/ absolute / metric / decimal}
4 | ; #@! TF.CreationDate,2019-11-29T01:48:41+08:00
5 | ; #@! TF.GenerationSoftware,Kicad,Pcbnew,(5.1.4-0-10_14)
6 | ; #@! TF.FileFunction,NonPlated,1,2,NPTH
7 | FMAT,2
8 | METRIC
9 | T1C0.650
10 | T2C3.200
11 | %
12 | G90
13 | G05
14 | T1
15 | X165.0Y-99.98
16 | X165.0Y-105.76
17 | T2
18 | X173.1Y-102.88
19 | X196.08Y-90.36
20 | T0
21 | M30
22 |
--------------------------------------------------------------------------------
/project/gerber/z2m_partner-PTH.drl:
--------------------------------------------------------------------------------
1 | M48
2 | ; DRILL file {KiCad (5.1.4-0-10_14)} date 2019 November 29, Friday 01:48:41
3 | ; FORMAT={-:-/ absolute / metric / decimal}
4 | ; #@! TF.CreationDate,2019-11-29T01:48:41+08:00
5 | ; #@! TF.GenerationSoftware,Kicad,Pcbnew,(5.1.4-0-10_14)
6 | ; #@! TF.FileFunction,Plated,1,2,PTH
7 | FMAT,2
8 | METRIC
9 | T1C0.254
10 | T2C0.400
11 | T3C0.600
12 | T4C1.000
13 | %
14 | G90
15 | G05
16 | T1
17 | X160.59Y-101.98
18 | X160.77Y-102.79
19 | X161.42Y-102.01
20 | X161.56Y-102.77
21 | X162.86Y-110.42
22 | X163.9Y-95.32
23 | X164.08Y-96.13
24 | X164.73Y-95.35
25 | X164.87Y-96.11
26 | X167.19Y-90.87
27 | X168.26Y-116.74
28 | X168.68Y-95.17
29 | X169.12Y-117.67
30 | X169.29Y-99.89
31 | X169.46Y-106.8
32 | X169.48Y-99.06
33 | X170.69Y-108.0
34 | X172.62Y-118.85
35 | X172.74Y-106.86
36 | X172.98Y-113.82
37 | X173.43Y-85.0
38 | X173.62Y-94.28
39 | X173.79Y-114.8
40 | X174.484Y-112.06
41 | X174.78Y-83.56
42 | X174.96Y-84.37
43 | X174.97Y-85.76
44 | X174.99Y-96.8
45 | X175.463Y-91.093
46 | X175.61Y-83.59
47 | X175.7Y-118.52
48 | X175.75Y-84.35
49 | X176.113Y-91.193
50 | X176.14Y-80.41
51 | X176.32Y-81.22
52 | X176.97Y-80.44
53 | X177.11Y-81.2
54 | X177.25Y-118.55
55 | X177.32Y-91.37
56 | X177.43Y-88.13
57 | X177.61Y-88.94
58 | X177.73Y-97.42
59 | X177.75Y-104.94
60 | X178.03Y-105.82
61 | X178.06Y-115.34
62 | X178.26Y-88.16
63 | X178.33Y-84.88
64 | X178.36Y-112.57
65 | X178.4Y-88.92
66 | X178.65Y-109.76
67 | X178.98Y-84.1
68 | X179.261Y-112.476
69 | X179.8Y-111.599
70 | X180.25Y-95.67
71 | X180.32Y-97.88
72 | X180.38Y-87.89
73 | X180.43Y-96.48
74 | X180.5Y-98.69
75 | X180.56Y-88.7
76 | X180.7Y-118.5
77 | X180.72Y-86.2
78 | X180.88Y-119.31
79 | X180.9Y-87.01
80 | X180.92Y-113.24
81 | X181.08Y-95.7
82 | X181.15Y-97.91
83 | X181.21Y-87.92
84 | X181.22Y-96.46
85 | X181.29Y-98.67
86 | X181.35Y-88.68
87 | X181.53Y-118.53
88 | X181.54Y-114.08
89 | X181.55Y-86.23
90 | X181.67Y-119.29
91 | X181.69Y-86.99
92 | X182.44Y-116.28
93 | X182.53Y-108.21
94 | X182.54Y-109.06
95 | X182.54Y-118.52
96 | X182.72Y-119.33
97 | X182.83Y-87.29
98 | X182.86Y-95.74
99 | X182.86Y-97.84
100 | X183.01Y-85.49
101 | X183.01Y-88.1
102 | X183.04Y-96.55
103 | X183.04Y-98.65
104 | X183.19Y-86.3
105 | X183.28Y-108.2
106 | X183.33Y-108.99
107 | X183.37Y-118.55
108 | X183.51Y-119.31
109 | X183.66Y-87.32
110 | X183.69Y-95.77
111 | X183.69Y-97.87
112 | X183.8Y-88.08
113 | X183.83Y-96.53
114 | X183.83Y-98.63
115 | X183.84Y-85.52
116 | X183.98Y-86.28
117 | X184.08Y-108.19
118 | X184.19Y-109.01
119 | X184.55Y-118.48
120 | X184.73Y-119.29
121 | X184.88Y-108.2
122 | X185.06Y-109.01
123 | X185.18Y-81.49
124 | X185.36Y-99.43
125 | X185.36Y-100.8
126 | X185.37Y-87.0
127 | X185.38Y-118.51
128 | X185.52Y-119.27
129 | X185.55Y-87.81
130 | X185.58Y-94.93
131 | X185.71Y-108.23
132 | X185.85Y-108.99
133 | X186.2Y-87.03
134 | X186.34Y-87.79
135 | X186.47Y-118.44
136 | X186.6Y-116.23
137 | X186.65Y-119.25
138 | X187.01Y-109.55
139 | X187.3Y-118.47
140 | X187.36Y-92.05
141 | X187.44Y-119.23
142 | X187.96Y-95.49
143 | X187.96Y-115.6
144 | X188.01Y-93.71
145 | X188.14Y-96.3
146 | X188.19Y-94.52
147 | X188.25Y-107.69
148 | X188.27Y-97.26
149 | X188.43Y-108.5
150 | X188.45Y-98.07
151 | X188.66Y-118.46
152 | X188.69Y-101.06
153 | X188.79Y-95.52
154 | X188.84Y-93.74
155 | X188.84Y-119.27
156 | X188.92Y-84.24
157 | X188.93Y-96.28
158 | X188.98Y-94.5
159 | X189.08Y-107.72
160 | X189.1Y-85.05
161 | X189.1Y-97.29
162 | X189.22Y-108.48
163 | X189.22Y-115.27
164 | X189.24Y-98.05
165 | X189.49Y-118.49
166 | X189.63Y-119.25
167 | X189.75Y-84.27
168 | X189.89Y-85.03
169 | X190.01Y-115.25
170 | X190.65Y-86.34
171 | X190.69Y-109.1
172 | X190.83Y-87.15
173 | X190.86Y-100.19
174 | X191.01Y-84.16
175 | X191.19Y-84.97
176 | X191.48Y-86.37
177 | X191.51Y-115.32
178 | X191.62Y-87.13
179 | X191.81Y-80.43
180 | X191.84Y-84.19
181 | X191.98Y-84.95
182 | X191.99Y-81.24
183 | X192.64Y-80.46
184 | X192.78Y-81.22
185 | X192.85Y-110.42
186 | X192.98Y-88.85
187 | X193.24Y-85.15
188 | X193.61Y-87.19
189 | X194.18Y-92.55
190 | X195.27Y-98.12
191 | X195.4Y-93.36
192 | X195.76Y-113.49
193 | X195.85Y-85.82
194 | X196.07Y-112.26
195 | X196.38Y-94.34
196 | X196.69Y-101.44
197 | X197.07Y-83.94
198 | X197.41Y-106.75
199 | X197.54Y-95.26
200 | X197.677Y-108.245
201 | X197.85Y-104.7
202 | X198.03Y-105.51
203 | X198.217Y-99.718
204 | X198.68Y-104.73
205 | X198.82Y-105.49
206 | X199.01Y-90.14
207 | X199.28Y-115.08
208 | X199.65Y-108.72
209 | X199.72Y-104.7
210 | X199.73Y-100.53
211 | X199.75Y-95.84
212 | X199.9Y-105.51
213 | X200.42Y-100.51
214 | X200.55Y-104.73
215 | X200.58Y-95.79
216 | X200.6Y-110.28
217 | X200.69Y-105.49
218 | X200.84Y-119.58
219 | X201.63Y-100.26
220 | X201.86Y-87.28
221 | X202.1Y-95.71
222 | X202.1Y-98.74
223 | X202.1Y-99.3
224 | X202.2Y-88.49
225 | X202.26Y-109.39
226 | X202.36Y-105.62
227 | X203.42Y-94.5
228 | X204.17Y-100.14
229 | X204.7Y-92.7
230 | X206.49Y-111.97
231 | X206.7Y-101.36
232 | T2
233 | X162.56Y-106.426
234 | X162.738Y-100.965
235 | X162.763Y-104.8
236 | X163.576Y-106.426
237 | X163.858Y-104.064
238 | X165.075Y-101.918
239 | X168.05Y-92.53
240 | X174.81Y-98.85
241 | X205.105Y-114.173
242 | T4
243 | X179.45Y-79.9
244 | X181.99Y-79.9
245 | X184.53Y-79.9
246 | X187.07Y-79.9
247 | X189.61Y-79.9
248 | T3
249 | X161.65Y-98.55
250 | X161.45Y-98.55
251 | X161.25Y-98.55
252 | X161.05Y-98.55
253 | X161.65Y-107.19
254 | X161.45Y-107.19
255 | X161.25Y-107.19
256 | X161.05Y-107.19
257 | X166.08Y-98.55
258 | X165.88Y-98.55
259 | X165.68Y-98.55
260 | X165.48Y-98.55
261 | X165.28Y-98.55
262 | X165.08Y-98.55
263 | X164.98Y-98.55
264 | X166.08Y-107.19
265 | X165.88Y-107.19
266 | X165.68Y-107.19
267 | X165.48Y-107.19
268 | X165.28Y-107.19
269 | X165.08Y-107.19
270 | X164.98Y-107.19
271 | T0
272 | M30
273 |
--------------------------------------------------------------------------------
/project/gerber/z2m_partner-Top_Silk.gbr:
--------------------------------------------------------------------------------
1 | %TF.GenerationSoftware,KiCad,Pcbnew,(5.1.4-0-10_14)*%
2 | %TF.CreationDate,2019-11-29T01:48:41+08:00*%
3 | %TF.ProjectId,z2m_partner,7a326d5f-7061-4727-946e-65722e6b6963,rev?*%
4 | %TF.SameCoordinates,Original*%
5 | %TF.FileFunction,Legend,Top*%
6 | %TF.FilePolarity,Positive*%
7 | %FSLAX46Y46*%
8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)*
9 | G04 Created by KiCad (PCBNEW (5.1.4-0-10_14)) date 2019-11-29 01:48:41*
10 | %MOMM*%
11 | %LPD*%
12 | G04 APERTURE LIST*
13 | %ADD10C,0.150000*%
14 | %ADD11C,0.152400*%
15 | %ADD12C,0.120000*%
16 | G04 APERTURE END LIST*
17 | D10*
18 | X204697153Y-90766129D02*
19 | X205033870Y-91102846D01*
20 | X204427779Y-90900816D02*
21 | X205370588Y-90429411D01*
22 | X204899183Y-91372220D01*
23 | X203917652Y-91983363D02*
24 | X203984995Y-92118050D01*
25 | X203984995Y-92185393D01*
26 | X203951324Y-92286408D01*
27 | X203850308Y-92387424D01*
28 | X203749293Y-92421095D01*
29 | X203681949Y-92421095D01*
30 | X203580934Y-92387424D01*
31 | X203311560Y-92118050D01*
32 | X204018667Y-91410943D01*
33 | X204254369Y-91646645D01*
34 | X204288041Y-91747660D01*
35 | X204288041Y-91815004D01*
36 | X204254369Y-91916019D01*
37 | X204187026Y-91983363D01*
38 | X204086011Y-92017034D01*
39 | X204018667Y-92017034D01*
40 | X203917652Y-91983363D01*
41 | X203681949Y-91747660D01*
42 | D11*
43 | X176466500Y-125730000D02*
44 | X194437000Y-125730000D01*
45 | X194437000Y-105727500D02*
46 | X176453800Y-105727500D01*
47 | X176453800Y-125730000D02*
48 | X176453800Y-119545000D01*
49 | X194437000Y-106145000D02*
50 | X194437000Y-105765600D01*
51 | X176453800Y-106145000D02*
52 | X176453800Y-105765600D01*
53 | X194437000Y-125730000D02*
54 | X194437000Y-119545000D01*
55 | D12*
56 | X163799520Y-112151729D02*
57 | X164041729Y-111909520D01*
58 | X163078271Y-111430480D02*
59 | X163320480Y-111188271D01*
60 | X197133733Y-116090000D02*
61 | X197476267Y-116090000D01*
62 | X197133733Y-115070000D02*
63 | X197476267Y-115070000D01*
64 | X167370000Y-93525000D02*
65 | X167370000Y-89140000D01*
66 | X164350000Y-93525000D02*
67 | X167370000Y-93525000D01*
68 | X164350000Y-89140000D02*
69 | X164350000Y-93525000D01*
70 | X168615000Y-88870000D02*
71 | X173000000Y-88870000D01*
72 | X168615000Y-85850000D02*
73 | X168615000Y-88870000D01*
74 | X173000000Y-85850000D02*
75 | X168615000Y-85850000D01*
76 | X175450000Y-88701267D02*
77 | X175450000Y-88358733D01*
78 | X174430000Y-88701267D02*
79 | X174430000Y-88358733D01*
80 | X165846252Y-94020000D02*
81 | X163073748Y-94020000D01*
82 | X165846252Y-97440000D02*
83 | X163073748Y-97440000D01*
84 | X178120000Y-81230000D02*
85 | X178120000Y-79900000D01*
86 | X179450000Y-81230000D02*
87 | X178120000Y-81230000D01*
88 | X180720000Y-81230000D02*
89 | X180720000Y-78570000D01*
90 | X180720000Y-78570000D02*
91 | X190940000Y-78570000D01*
92 | X180720000Y-81230000D02*
93 | X190940000Y-81230000D01*
94 | X190940000Y-81230000D02*
95 | X190940000Y-78570000D01*
96 | X193480000Y-84868733D02*
97 | X193480000Y-85211267D01*
98 | X194500000Y-84868733D02*
99 | X194500000Y-85211267D01*
100 | X206070000Y-105558733D02*
101 | X206070000Y-105901267D01*
102 | X207090000Y-105558733D02*
103 | X207090000Y-105901267D01*
104 | X196890000Y-118036267D02*
105 | X196890000Y-117693733D01*
106 | X195870000Y-118036267D02*
107 | X195870000Y-117693733D01*
108 | X198730000Y-118026267D02*
109 | X198730000Y-117683733D01*
110 | X197710000Y-118026267D02*
111 | X197710000Y-117683733D01*
112 | X196230000Y-111948733D02*
113 | X196230000Y-112291267D01*
114 | X197250000Y-111948733D02*
115 | X197250000Y-112291267D01*
116 | X198945824Y-85059946D02*
117 | X199843850Y-84161920D01*
118 | X202849054Y-88963176D02*
119 | X203747080Y-88065150D01*
120 | X197064920Y-86940850D02*
121 | X197962239Y-86043532D01*
122 | X200968150Y-90844080D02*
123 | X197064920Y-86940850D01*
124 | X200968150Y-90844080D02*
125 | X201427769Y-90384460D01*
126 | X202735917Y-91692608D02*
127 | X201427769Y-90384460D01*
128 | X203747080Y-88065150D02*
129 | X199843850Y-84161920D01*
130 | X202664553Y-113828284D02*
131 | X199553284Y-116939553D01*
132 | X199553284Y-116939553D02*
133 | X199638136Y-117024406D01*
134 | X200352314Y-117738584D02*
135 | X201158416Y-118544686D01*
136 | X201872594Y-119258864D02*
137 | X201957447Y-119343716D01*
138 | X201957447Y-119343716D02*
139 | X205068716Y-116232447D01*
140 | X205068716Y-116232447D02*
141 | X204983864Y-116147594D01*
142 | X204269686Y-115433416D02*
143 | X203463584Y-114627314D01*
144 | X202749406Y-113913136D02*
145 | X202664553Y-113828284D01*
146 | X205331553Y-107986284D02*
147 | X202220284Y-111097553D01*
148 | X202220284Y-111097553D02*
149 | X202305136Y-111182406D01*
150 | X203019314Y-111896584D02*
151 | X203825416Y-112702686D01*
152 | X204539594Y-113416864D02*
153 | X204624447Y-113501716D01*
154 | X204624447Y-113501716D02*
155 | X207735716Y-110390447D01*
156 | X207735716Y-110390447D02*
157 | X207650864Y-110305594D01*
158 | X206936686Y-109591416D02*
159 | X206130584Y-108785314D01*
160 | X205416406Y-108071136D02*
161 | X205331553Y-107986284D01*
162 | X172233960Y-119020960D02*
163 | X174673479Y-116581442D01*
164 | X172233960Y-119020960D02*
165 | X170855102Y-120399819D01*
166 | X165078040Y-111865040D02*
167 | X166456898Y-110486181D01*
168 | X165078040Y-111865040D02*
169 | X163699181Y-113243898D01*
170 | X195930000Y-99730000D02*
171 | X195930000Y-103180000D01*
172 | X195930000Y-99730000D02*
173 | X195930000Y-97780000D01*
174 | X206050000Y-99730000D02*
175 | X206050000Y-101680000D01*
176 | X206050000Y-99730000D02*
177 | X206050000Y-97780000D01*
178 | X176537000Y-81361000D02*
179 | X176537000Y-92021000D01*
180 | X192777000Y-81361000D02*
181 | X176537000Y-81361000D01*
182 | X192777000Y-92011000D02*
183 | X192777000Y-81361000D01*
184 | X192767000Y-104101000D02*
185 | X192767000Y-102531000D01*
186 | X190877000Y-104101000D02*
187 | X192767000Y-104101000D01*
188 | X176537000Y-104101000D02*
189 | X178427000Y-104101000D01*
190 | X176537000Y-104101000D02*
191 | X176537000Y-102531000D01*
192 | X200210000Y-93970000D02*
193 | X200210000Y-92570000D01*
194 | X197890000Y-92570000D02*
195 | X197890000Y-94470000D01*
196 | X202390000Y-93970000D02*
197 | X202390000Y-92570000D01*
198 | X200070000Y-92570000D02*
199 | X200070000Y-94470000D01*
200 | X167786000Y-98207000D02*
201 | X167786000Y-92197000D01*
202 | X174606000Y-95957000D02*
203 | X174606000Y-92197000D01*
204 | X167786000Y-92197000D02*
205 | X169046000Y-92197000D01*
206 | X174606000Y-92197000D02*
207 | X173346000Y-92197000D01*
208 | X169570480Y-100518271D02*
209 | X169328271Y-100760480D01*
210 | X170291729Y-101239520D02*
211 | X170049520Y-101481729D01*
212 | X170311729Y-104995480D02*
213 | X170069520Y-104753271D01*
214 | X169590480Y-105716729D02*
215 | X169348271Y-105474520D01*
216 | X200211267Y-112690000D02*
217 | X199868733Y-112690000D01*
218 | X200211267Y-113710000D02*
219 | X199868733Y-113710000D01*
220 | X202456267Y-107870000D02*
221 | X202113733Y-107870000D01*
222 | X202456267Y-108890000D02*
223 | X202113733Y-108890000D01*
224 | X171409899Y-110108528D02*
225 | X171692742Y-109825685D01*
226 | X171268478Y-109967107D02*
227 | X171551320Y-109684264D01*
228 | X168722893Y-107421522D02*
229 | X169005736Y-107138680D01*
230 | X169995685Y-111522742D02*
231 | X171409899Y-110108528D01*
232 | X170844214Y-108977157D02*
233 | X171127056Y-108694315D01*
234 | X170844214Y-108977157D02*
235 | X171551320Y-109684264D01*
236 | X171268478Y-109967107D02*
237 | X169854264Y-111381320D01*
238 | X169854264Y-111381320D02*
239 | X169147157Y-110674214D01*
240 | X167874365Y-109401421D02*
241 | X167308680Y-108835736D01*
242 | X167308680Y-108835736D02*
243 | X168722893Y-107421522D01*
244 | X169005736Y-107138680D02*
245 | X169571421Y-107704365D01*
246 | X200850000Y-104620000D02*
247 | X200850000Y-107050000D01*
248 | X200860000Y-104600000D02*
249 | X201860000Y-104600000D01*
250 | X203910000Y-104600000D02*
251 | X203910000Y-106450000D01*
252 | X202860000Y-104600000D02*
253 | X203910000Y-104600000D01*
254 | X200150000Y-109080000D02*
255 | X201200000Y-109080000D01*
256 | X201200000Y-109080000D02*
257 | X201200000Y-110930000D01*
258 | X198150000Y-109080000D02*
259 | X199150000Y-109080000D01*
260 | X198140000Y-109100000D02*
261 | X198140000Y-111530000D01*
262 | X195870000Y-84868733D02*
263 | X195870000Y-85211267D01*
264 | X194850000Y-84868733D02*
265 | X194850000Y-85211267D01*
266 | D10*
267 | X162234687Y-110370389D02*
268 | X162234687Y-110437732D01*
269 | X162167343Y-110572419D01*
270 | X162100000Y-110639763D01*
271 | X161965312Y-110707106D01*
272 | X161830625Y-110707106D01*
273 | X161729610Y-110673435D01*
274 | X161561251Y-110572419D01*
275 | X161460236Y-110471404D01*
276 | X161359221Y-110303045D01*
277 | X161325549Y-110202030D01*
278 | X161325549Y-110067343D01*
279 | X161392893Y-109932656D01*
280 | X161460236Y-109865312D01*
281 | X161594923Y-109797969D01*
282 | X161662267Y-109797969D01*
283 | X161830625Y-109494923D02*
284 | X162268358Y-109057190D01*
285 | X162302030Y-109562267D01*
286 | X162403045Y-109461251D01*
287 | X162504061Y-109427580D01*
288 | X162571404Y-109427580D01*
289 | X162672419Y-109461251D01*
290 | X162840778Y-109629610D01*
291 | X162874450Y-109730625D01*
292 | X162874450Y-109797969D01*
293 | X162840778Y-109898984D01*
294 | X162638748Y-110101015D01*
295 | X162537732Y-110134687D01*
296 | X162470389Y-110134687D01*
297 | X196266666Y-120285714D02*
298 | X196228571Y-120323809D01*
299 | X196114285Y-120361904D01*
300 | X196038095Y-120361904D01*
301 | X195923809Y-120323809D01*
302 | X195847619Y-120247619D01*
303 | X195809523Y-120171428D01*
304 | X195771428Y-120019047D01*
305 | X195771428Y-119904761D01*
306 | X195809523Y-119752380D01*
307 | X195847619Y-119676190D01*
308 | X195923809Y-119600000D01*
309 | X196038095Y-119561904D01*
310 | X196114285Y-119561904D01*
311 | X196228571Y-119600000D01*
312 | X196266666Y-119638095D01*
313 | X196952380Y-119828571D02*
314 | X196952380Y-120361904D01*
315 | X196761904Y-119523809D02*
316 | X196571428Y-120095238D01*
317 | X197066666Y-120095238D01*
318 | X163757142Y-92666666D02*
319 | X163804761Y-92714285D01*
320 | X163852380Y-92857142D01*
321 | X163852380Y-92952380D01*
322 | X163804761Y-93095238D01*
323 | X163709523Y-93190476D01*
324 | X163614285Y-93238095D01*
325 | X163423809Y-93285714D01*
326 | X163280952Y-93285714D01*
327 | X163090476Y-93238095D01*
328 | X162995238Y-93190476D01*
329 | X162900000Y-93095238D01*
330 | X162852380Y-92952380D01*
331 | X162852380Y-92857142D01*
332 | X162900000Y-92714285D01*
333 | X162947619Y-92666666D01*
334 | X162852380Y-91761904D02*
335 | X162852380Y-92238095D01*
336 | X163328571Y-92285714D01*
337 | X163280952Y-92238095D01*
338 | X163233333Y-92142857D01*
339 | X163233333Y-91904761D01*
340 | X163280952Y-91809523D01*
341 | X163328571Y-91761904D01*
342 | X163423809Y-91714285D01*
343 | X163661904Y-91714285D01*
344 | X163757142Y-91761904D01*
345 | X163804761Y-91809523D01*
346 | X163852380Y-91904761D01*
347 | X163852380Y-92142857D01*
348 | X163804761Y-92238095D01*
349 | X163757142Y-92285714D01*
350 | X171033333Y-85257142D02*
351 | X170985714Y-85304761D01*
352 | X170842857Y-85352380D01*
353 | X170747619Y-85352380D01*
354 | X170604761Y-85304761D01*
355 | X170509523Y-85209523D01*
356 | X170461904Y-85114285D01*
357 | X170414285Y-84923809D01*
358 | X170414285Y-84780952D01*
359 | X170461904Y-84590476D01*
360 | X170509523Y-84495238D01*
361 | X170604761Y-84400000D01*
362 | X170747619Y-84352380D01*
363 | X170842857Y-84352380D01*
364 | X170985714Y-84400000D01*
365 | X171033333Y-84447619D01*
366 | X171890476Y-84352380D02*
367 | X171700000Y-84352380D01*
368 | X171604761Y-84400000D01*
369 | X171557142Y-84447619D01*
370 | X171461904Y-84590476D01*
371 | X171414285Y-84780952D01*
372 | X171414285Y-85161904D01*
373 | X171461904Y-85257142D01*
374 | X171509523Y-85304761D01*
375 | X171604761Y-85352380D01*
376 | X171795238Y-85352380D01*
377 | X171890476Y-85304761D01*
378 | X171938095Y-85257142D01*
379 | X171985714Y-85161904D01*
380 | X171985714Y-84923809D01*
381 | X171938095Y-84828571D01*
382 | X171890476Y-84780952D01*
383 | X171795238Y-84733333D01*
384 | X171604761Y-84733333D01*
385 | X171509523Y-84780952D01*
386 | X171461904Y-84828571D01*
387 | X171414285Y-84923809D01*
388 | X175357142Y-85866666D02*
389 | X175404761Y-85914285D01*
390 | X175452380Y-86057142D01*
391 | X175452380Y-86152380D01*
392 | X175404761Y-86295238D01*
393 | X175309523Y-86390476D01*
394 | X175214285Y-86438095D01*
395 | X175023809Y-86485714D01*
396 | X174880952Y-86485714D01*
397 | X174690476Y-86438095D01*
398 | X174595238Y-86390476D01*
399 | X174500000Y-86295238D01*
400 | X174452380Y-86152380D01*
401 | X174452380Y-86057142D01*
402 | X174500000Y-85914285D01*
403 | X174547619Y-85866666D01*
404 | X174452380Y-85533333D02*
405 | X174452380Y-84866666D01*
406 | X175452380Y-85295238D01*
407 | X194352380Y-82566666D02*
408 | X193876190Y-82900000D01*
409 | X194352380Y-83138095D02*
410 | X193352380Y-83138095D01*
411 | X193352380Y-82757142D01*
412 | X193400000Y-82661904D01*
413 | X193447619Y-82614285D01*
414 | X193542857Y-82566666D01*
415 | X193685714Y-82566666D01*
416 | X193780952Y-82614285D01*
417 | X193828571Y-82661904D01*
418 | X193876190Y-82757142D01*
419 | X193876190Y-83138095D01*
420 | X193685714Y-81709523D02*
421 | X194352380Y-81709523D01*
422 | X193304761Y-81947619D02*
423 | X194019047Y-82185714D01*
424 | X194019047Y-81566666D01*
425 | X208552380Y-105166666D02*
426 | X208076190Y-105500000D01*
427 | X208552380Y-105738095D02*
428 | X207552380Y-105738095D01*
429 | X207552380Y-105357142D01*
430 | X207600000Y-105261904D01*
431 | X207647619Y-105214285D01*
432 | X207742857Y-105166666D01*
433 | X207885714Y-105166666D01*
434 | X207980952Y-105214285D01*
435 | X208028571Y-105261904D01*
436 | X208076190Y-105357142D01*
437 | X208076190Y-105738095D01*
438 | X207552380Y-104833333D02*
439 | X207552380Y-104166666D01*
440 | X208552380Y-104595238D01*
441 | X196361904Y-122014285D02*
442 | X195980952Y-122280952D01*
443 | X196361904Y-122471428D02*
444 | X195561904Y-122471428D01*
445 | X195561904Y-122166666D01*
446 | X195600000Y-122090476D01*
447 | X195638095Y-122052380D01*
448 | X195714285Y-122014285D01*
449 | X195828571Y-122014285D01*
450 | X195904761Y-122052380D01*
451 | X195942857Y-122090476D01*
452 | X195980952Y-122166666D01*
453 | X195980952Y-122471428D01*
454 | X196361904Y-121252380D02*
455 | X196361904Y-121709523D01*
456 | X196361904Y-121480952D02*
457 | X195561904Y-121480952D01*
458 | X195676190Y-121557142D01*
459 | X195752380Y-121633333D01*
460 | X195790476Y-121709523D01*
461 | X195561904Y-120757142D02*
462 | X195561904Y-120680952D01*
463 | X195600000Y-120604761D01*
464 | X195638095Y-120566666D01*
465 | X195714285Y-120528571D01*
466 | X195866666Y-120490476D01*
467 | X196057142Y-120490476D01*
468 | X196209523Y-120528571D01*
469 | X196285714Y-120566666D01*
470 | X196323809Y-120604761D01*
471 | X196361904Y-120680952D01*
472 | X196361904Y-120757142D01*
473 | X196323809Y-120833333D01*
474 | X196285714Y-120871428D01*
475 | X196209523Y-120909523D01*
476 | X196057142Y-120947619D01*
477 | X195866666Y-120947619D01*
478 | X195714285Y-120909523D01*
479 | X195638095Y-120871428D01*
480 | X195600000Y-120833333D01*
481 | X195561904Y-120757142D01*
482 | X197361904Y-122014285D02*
483 | X196980952Y-122280952D01*
484 | X197361904Y-122471428D02*
485 | X196561904Y-122471428D01*
486 | X196561904Y-122166666D01*
487 | X196600000Y-122090476D01*
488 | X196638095Y-122052380D01*
489 | X196714285Y-122014285D01*
490 | X196828571Y-122014285D01*
491 | X196904761Y-122052380D01*
492 | X196942857Y-122090476D01*
493 | X196980952Y-122166666D01*
494 | X196980952Y-122471428D01*
495 | X197361904Y-121252380D02*
496 | X197361904Y-121709523D01*
497 | X197361904Y-121480952D02*
498 | X196561904Y-121480952D01*
499 | X196676190Y-121557142D01*
500 | X196752380Y-121633333D01*
501 | X196790476Y-121709523D01*
502 | X197361904Y-120490476D02*
503 | X197361904Y-120947619D01*
504 | X197361904Y-120719047D02*
505 | X196561904Y-120719047D01*
506 | X196676190Y-120795238D01*
507 | X196752380Y-120871428D01*
508 | X196790476Y-120947619D01*
509 | X196752380Y-108242857D02*
510 | X196276190Y-108576190D01*
511 | X196752380Y-108814285D02*
512 | X195752380Y-108814285D01*
513 | X195752380Y-108433333D01*
514 | X195800000Y-108338095D01*
515 | X195847619Y-108290476D01*
516 | X195942857Y-108242857D01*
517 | X196085714Y-108242857D01*
518 | X196180952Y-108290476D01*
519 | X196228571Y-108338095D01*
520 | X196276190Y-108433333D01*
521 | X196276190Y-108814285D01*
522 | X196752380Y-107290476D02*
523 | X196752380Y-107861904D01*
524 | X196752380Y-107576190D02*
525 | X195752380Y-107576190D01*
526 | X195895238Y-107671428D01*
527 | X195990476Y-107766666D01*
528 | X196038095Y-107861904D01*
529 | X195847619Y-106909523D02*
530 | X195800000Y-106861904D01*
531 | X195752380Y-106766666D01*
532 | X195752380Y-106528571D01*
533 | X195800000Y-106433333D01*
534 | X195847619Y-106385714D01*
535 | X195942857Y-106338095D01*
536 | X196038095Y-106338095D01*
537 | X196180952Y-106385714D01*
538 | X196752380Y-106957142D01*
539 | X196752380Y-106338095D01*
540 | D12*
541 | X197174348Y-88386158D02*
542 | X196851099Y-88062910D01*
543 | X197012723Y-88224534D02*
544 | X197578409Y-87658849D01*
545 | X197443722Y-87685786D01*
546 | X197335972Y-87685786D01*
547 | X197255160Y-87658849D01*
548 | X199814213Y-89894653D02*
549 | X199868088Y-89948528D01*
550 | X199895025Y-90029340D01*
551 | X199895025Y-90083215D01*
552 | X199868088Y-90164027D01*
553 | X199787276Y-90298714D01*
554 | X199652589Y-90433401D01*
555 | X199517902Y-90514213D01*
556 | X199437089Y-90541150D01*
557 | X199383215Y-90541150D01*
558 | X199302402Y-90514213D01*
559 | X199248528Y-90460338D01*
560 | X199221590Y-90379526D01*
561 | X199221590Y-90325651D01*
562 | X199248528Y-90244839D01*
563 | X199329340Y-90110152D01*
564 | X199464027Y-89975465D01*
565 | X199598714Y-89894653D01*
566 | X199679526Y-89867715D01*
567 | X199733401Y-89867715D01*
568 | X199814213Y-89894653D01*
569 | D10*
570 | X199849906Y-116002902D02*
571 | X199472783Y-115625779D01*
572 | X199580532Y-115733528D02*
573 | X199553595Y-115652716D01*
574 | X199553595Y-115598841D01*
575 | X199580532Y-115518029D01*
576 | X199634407Y-115464154D01*
577 | X200146218Y-115652716D02*
578 | X200227030Y-115625779D01*
579 | X200334780Y-115518029D01*
580 | X200361717Y-115437217D01*
581 | X200334780Y-115356405D01*
582 | X200307842Y-115329467D01*
583 | X200227030Y-115302530D01*
584 | X200146218Y-115329467D01*
585 | X200065406Y-115410279D01*
586 | X199984593Y-115437217D01*
587 | X199903781Y-115410279D01*
588 | X199876844Y-115383342D01*
589 | X199849906Y-115302530D01*
590 | X199876844Y-115221718D01*
591 | X199957656Y-115140905D01*
592 | X200038468Y-115113968D01*
593 | X200200093Y-114898469D02*
594 | X200415592Y-114682970D01*
595 | X200092343Y-114629095D02*
596 | X200577216Y-115113968D01*
597 | X200658028Y-115140905D01*
598 | X200738841Y-115113968D01*
599 | X200792715Y-115060093D01*
600 | X202014688Y-110790122D02*
601 | X201449003Y-110224436D01*
602 | X201853064Y-110520748D02*
603 | X202230187Y-110574622D01*
604 | X201853064Y-110197499D02*
605 | X201853064Y-110628497D01*
606 | X202661186Y-110089749D02*
607 | X202634248Y-110170561D01*
608 | X202526499Y-110278311D01*
609 | X202445687Y-110305248D01*
610 | X202364874Y-110278311D01*
611 | X202149375Y-110062812D01*
612 | X202122438Y-109982000D01*
613 | X202149375Y-109901187D01*
614 | X202257125Y-109793438D01*
615 | X202337937Y-109766500D01*
616 | X202418749Y-109793438D01*
617 | X202472624Y-109847312D01*
618 | X202257125Y-110170561D01*
619 | X202526499Y-109524064D02*
620 | X203038309Y-109766500D01*
621 | X202795873Y-109254690D02*
622 | X203038309Y-109766500D01*
623 | X203119122Y-109955062D01*
624 | X203119122Y-110008937D01*
625 | X203092184Y-110089749D01*
626 | X164974026Y-109651522D02*
627 | X165546446Y-110223942D01*
628 | X165647461Y-110257614D01*
629 | X165714805Y-110257614D01*
630 | X165815820Y-110223942D01*
631 | X165950507Y-110089255D01*
632 | X165984179Y-109988240D01*
633 | X165984179Y-109920896D01*
634 | X165950507Y-109819881D01*
635 | X165378087Y-109247461D01*
636 | X166792301Y-109247461D02*
637 | X166388240Y-109651522D01*
638 | X166590270Y-109449492D02*
639 | X165883164Y-108742385D01*
640 | X165916835Y-108910744D01*
641 | X165916835Y-109045431D01*
642 | X165883164Y-109146446D01*
643 | X206411380Y-101888904D02*
644 | X207220904Y-101888904D01*
645 | X207316142Y-101841285D01*
646 | X207363761Y-101793666D01*
647 | X207411380Y-101698428D01*
648 | X207411380Y-101507952D01*
649 | X207363761Y-101412714D01*
650 | X207316142Y-101365095D01*
651 | X207220904Y-101317476D01*
652 | X206411380Y-101317476D01*
653 | X206506619Y-100888904D02*
654 | X206459000Y-100841285D01*
655 | X206411380Y-100746047D01*
656 | X206411380Y-100507952D01*
657 | X206459000Y-100412714D01*
658 | X206506619Y-100365095D01*
659 | X206601857Y-100317476D01*
660 | X206697095Y-100317476D01*
661 | X206839952Y-100365095D01*
662 | X207411380Y-100936523D01*
663 | X207411380Y-100317476D01*
664 | X170702030Y-102537732D02*
665 | X170129610Y-102436717D01*
666 | X170297969Y-102941793D02*
667 | X169590862Y-102234687D01*
668 | X169860236Y-101965312D01*
669 | X169961251Y-101931641D01*
670 | X170028595Y-101931641D01*
671 | X170129610Y-101965312D01*
672 | X170230625Y-102066328D01*
673 | X170264297Y-102167343D01*
674 | X170264297Y-102234687D01*
675 | X170230625Y-102335702D01*
676 | X169961251Y-102605076D01*
677 | X171375465Y-101864297D02*
678 | X170971404Y-102268358D01*
679 | X171173435Y-102066328D02*
680 | X170466328Y-101359221D01*
681 | X170500000Y-101527580D01*
682 | X170500000Y-101662267D01*
683 | X170466328Y-101763282D01*
684 | X170262266Y-104402030D02*
685 | X170363281Y-103829610D01*
686 | X169858205Y-103997969D02*
687 | X170565311Y-103290862D01*
688 | X170834686Y-103560236D01*
689 | X170868357Y-103661251D01*
690 | X170868357Y-103728595D01*
691 | X170834686Y-103829610D01*
692 | X170733670Y-103930625D01*
693 | X170632655Y-103964297D01*
694 | X170565311Y-103964297D01*
695 | X170464296Y-103930625D01*
696 | X170194922Y-103661251D01*
697 | X171171403Y-104031641D02*
698 | X171238747Y-104031641D01*
699 | X171339762Y-104065312D01*
700 | X171508121Y-104233671D01*
701 | X171541792Y-104334687D01*
702 | X171541792Y-104402030D01*
703 | X171508121Y-104503045D01*
704 | X171440777Y-104570389D01*
705 | X171306090Y-104637732D01*
706 | X170497968Y-104637732D01*
707 | X170935701Y-105075465D01*
708 | X197623333Y-108772380D02*
709 | X197290000Y-108296190D01*
710 | X197051904Y-108772380D02*
711 | X197051904Y-107772380D01*
712 | X197432857Y-107772380D01*
713 | X197528095Y-107820000D01*
714 | X197575714Y-107867619D01*
715 | X197623333Y-107962857D01*
716 | X197623333Y-108105714D01*
717 | X197575714Y-108200952D01*
718 | X197528095Y-108248571D01*
719 | X197432857Y-108296190D01*
720 | X197051904Y-108296190D01*
721 | X198528095Y-107772380D02*
722 | X198051904Y-107772380D01*
723 | X198004285Y-108248571D01*
724 | X198051904Y-108200952D01*
725 | X198147142Y-108153333D01*
726 | X198385238Y-108153333D01*
727 | X198480476Y-108200952D01*
728 | X198528095Y-108248571D01*
729 | X198575714Y-108343809D01*
730 | X198575714Y-108581904D01*
731 | X198528095Y-108677142D01*
732 | X198480476Y-108724761D01*
733 | X198385238Y-108772380D01*
734 | X198147142Y-108772380D01*
735 | X198051904Y-108724761D01*
736 | X198004285Y-108677142D01*
737 | X199533333Y-107462380D02*
738 | X199200000Y-106986190D01*
739 | X198961904Y-107462380D02*
740 | X198961904Y-106462380D01*
741 | X199342857Y-106462380D01*
742 | X199438095Y-106510000D01*
743 | X199485714Y-106557619D01*
744 | X199533333Y-106652857D01*
745 | X199533333Y-106795714D01*
746 | X199485714Y-106890952D01*
747 | X199438095Y-106938571D01*
748 | X199342857Y-106986190D01*
749 | X198961904Y-106986190D01*
750 | X200009523Y-107462380D02*
751 | X200200000Y-107462380D01*
752 | X200295238Y-107414761D01*
753 | X200342857Y-107367142D01*
754 | X200438095Y-107224285D01*
755 | X200485714Y-107033809D01*
756 | X200485714Y-106652857D01*
757 | X200438095Y-106557619D01*
758 | X200390476Y-106510000D01*
759 | X200295238Y-106462380D01*
760 | X200104761Y-106462380D01*
761 | X200009523Y-106510000D01*
762 | X199961904Y-106557619D01*
763 | X199914285Y-106652857D01*
764 | X199914285Y-106890952D01*
765 | X199961904Y-106986190D01*
766 | X200009523Y-107033809D01*
767 | X200104761Y-107081428D01*
768 | X200295238Y-107081428D01*
769 | X200390476Y-107033809D01*
770 | X200438095Y-106986190D01*
771 | X200485714Y-106890952D01*
772 | X199584761Y-106257619D02*
773 | X199489523Y-106210000D01*
774 | X199394285Y-106114761D01*
775 | X199251428Y-105971904D01*
776 | X199156190Y-105924285D01*
777 | X199060952Y-105924285D01*
778 | X199108571Y-106162380D02*
779 | X199013333Y-106114761D01*
780 | X198918095Y-106019523D01*
781 | X198870476Y-105829047D01*
782 | X198870476Y-105495714D01*
783 | X198918095Y-105305238D01*
784 | X199013333Y-105210000D01*
785 | X199108571Y-105162380D01*
786 | X199299047Y-105162380D01*
787 | X199394285Y-105210000D01*
788 | X199489523Y-105305238D01*
789 | X199537142Y-105495714D01*
790 | X199537142Y-105829047D01*
791 | X199489523Y-106019523D01*
792 | X199394285Y-106114761D01*
793 | X199299047Y-106162380D01*
794 | X199108571Y-106162380D01*
795 | X200489523Y-106162380D02*
796 | X199918095Y-106162380D01*
797 | X200203809Y-106162380D02*
798 | X200203809Y-105162380D01*
799 | X200108571Y-105305238D01*
800 | X200013333Y-105400476D01*
801 | X199918095Y-105448095D01*
802 | X197704761Y-107507619D02*
803 | X197609523Y-107460000D01*
804 | X197514285Y-107364761D01*
805 | X197371428Y-107221904D01*
806 | X197276190Y-107174285D01*
807 | X197180952Y-107174285D01*
808 | X197228571Y-107412380D02*
809 | X197133333Y-107364761D01*
810 | X197038095Y-107269523D01*
811 | X196990476Y-107079047D01*
812 | X196990476Y-106745714D01*
813 | X197038095Y-106555238D01*
814 | X197133333Y-106460000D01*
815 | X197228571Y-106412380D01*
816 | X197419047Y-106412380D01*
817 | X197514285Y-106460000D01*
818 | X197609523Y-106555238D01*
819 | X197657142Y-106745714D01*
820 | X197657142Y-107079047D01*
821 | X197609523Y-107269523D01*
822 | X197514285Y-107364761D01*
823 | X197419047Y-107412380D01*
824 | X197228571Y-107412380D01*
825 | X198038095Y-106507619D02*
826 | X198085714Y-106460000D01*
827 | X198180952Y-106412380D01*
828 | X198419047Y-106412380D01*
829 | X198514285Y-106460000D01*
830 | X198561904Y-106507619D01*
831 | X198609523Y-106602857D01*
832 | X198609523Y-106698095D01*
833 | X198561904Y-106840952D01*
834 | X197990476Y-107412380D01*
835 | X198609523Y-107412380D01*
836 | X195802380Y-82576666D02*
837 | X195326190Y-82910000D01*
838 | X195802380Y-83148095D02*
839 | X194802380Y-83148095D01*
840 | X194802380Y-82767142D01*
841 | X194850000Y-82671904D01*
842 | X194897619Y-82624285D01*
843 | X194992857Y-82576666D01*
844 | X195135714Y-82576666D01*
845 | X195230952Y-82624285D01*
846 | X195278571Y-82671904D01*
847 | X195326190Y-82767142D01*
848 | X195326190Y-83148095D01*
849 | X194802380Y-82243333D02*
850 | X194802380Y-81624285D01*
851 | X195183333Y-81957619D01*
852 | X195183333Y-81814761D01*
853 | X195230952Y-81719523D01*
854 | X195278571Y-81671904D01*
855 | X195373809Y-81624285D01*
856 | X195611904Y-81624285D01*
857 | X195707142Y-81671904D01*
858 | X195754761Y-81719523D01*
859 | X195802380Y-81814761D01*
860 | X195802380Y-82100476D01*
861 | X195754761Y-82195714D01*
862 | X195707142Y-82243333D01*
863 | M02*
864 |
--------------------------------------------------------------------------------
/project/gerber/z2m_partner_gerber.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/project/gerber/z2m_partner_gerber.zip
--------------------------------------------------------------------------------
/project/z2m_partner-bottom.pos:
--------------------------------------------------------------------------------
1 | ### Module positions - created on 2019 October 28, Monday 13:53:23 ###
2 | ### Printed by Pcbnew version kicad (5.1.4-0-10_14)
3 | ## Unit = mm, Angle = deg.
4 | ## Side : bottom
5 | # Ref Val Package PosX PosY Rot Side
6 | ## End
7 |
--------------------------------------------------------------------------------
/project/z2m_partner-cache.lib:
--------------------------------------------------------------------------------
1 | EESchema-LIBRARY Version 2.4
2 | #encoding utf-8
3 | #
4 | # 74xGxx_74LVC1G66
5 | #
6 | DEF 74xGxx_74LVC1G66 U 0 40 Y Y 1 F N
7 | F0 "U" -100 200 50 H V C CNN
8 | F1 "74xGxx_74LVC1G66" 0 -200 50 H V C CNN
9 | F2 "" 0 0 50 H I C CNN
10 | F3 "" 0 0 50 H I C CNN
11 | ALIAS 74AUC1G66
12 | $FPLIST
13 | SOT*
14 | SC*
15 | $ENDFPLIST
16 | DRAW
17 | C -140 -150 5 0 1 0 N
18 | C 0 70 15 0 1 10 N
19 | P 2 0 1 0 -150 0 -100 0 N
20 | P 2 0 1 10 -100 100 -100 -100 N
21 | P 2 0 1 0 100 0 150 0 N
22 | P 2 0 1 10 100 100 100 -100 N
23 | P 3 0 1 0 -150 -150 0 -150 0 -50 N
24 | P 3 0 1 10 -100 -100 100 0 -100 100 N
25 | P 3 0 1 10 100 100 -100 0 100 -100 N
26 | P 4 0 1 0 0 85 0 130 -140 130 -140 -150 N
27 | X ~ 1 -250 0 100 R 40 40 1 1 I
28 | X ~ 2 250 0 100 L 40 40 1 1 T
29 | X GND 3 50 -150 0 D 40 40 1 1 W N
30 | X ~ 4 -250 -150 100 R 40 40 1 1 I
31 | X VCC 5 50 150 0 U 40 40 1 1 W N
32 | ENDDRAW
33 | ENDDEF
34 | #
35 | # Analog_Switch_CD4052B
36 | #
37 | DEF Analog_Switch_CD4052B U 0 20 Y Y 1 F N
38 | F0 "U" -400 650 50 H V L CNN
39 | F1 "Analog_Switch_CD4052B" 150 650 50 H V L CNN
40 | F2 "" 150 -750 50 H I L CNN
41 | F3 "" -20 200 50 H I C CNN
42 | $FPLIST
43 | TSSOP*4.4x5mm*P0.65mm*
44 | DIP*W7.62*
45 | SOIC*3.9x9.9mm*P1.27mm*
46 | SO*5.3x10.2mm*P1.27mm*
47 | $ENDFPLIST
48 | DRAW
49 | C -240 -300 20 0 1 10 N
50 | C -240 200 20 0 1 10 N
51 | C -90 -300 20 0 1 10 N
52 | C -90 200 20 0 1 10 N
53 | C 140 -500 20 0 1 10 N
54 | C 140 -400 20 0 1 10 N
55 | C 140 -300 20 0 1 10 N
56 | C 140 -200 20 0 1 10 N
57 | C 140 0 20 0 1 10 N
58 | C 140 100 20 0 1 10 N
59 | C 140 200 20 0 1 10 N
60 | C 140 300 20 0 1 10 N
61 | S -400 350 -200 550 0 1 10 N
62 | S -400 600 400 -600 0 1 10 f
63 | P 2 0 1 10 -320 -300 -260 -300 N
64 | P 2 0 1 10 -320 200 -260 200 N
65 | P 2 0 1 10 -220 -290 -130 -260 N
66 | P 2 0 1 10 -220 210 -130 240 N
67 | P 2 0 1 10 -180 -400 -205 -400 N
68 | P 2 0 1 10 -180 -390 -180 -365 N
69 | P 2 0 1 10 -180 -340 -180 -315 N
70 | P 2 0 1 10 -180 -230 -180 -205 N
71 | P 2 0 1 10 -180 -180 -180 -155 N
72 | P 2 0 1 10 -180 -130 -180 -105 N
73 | P 2 0 1 10 -180 -80 -180 -55 N
74 | P 2 0 1 10 -180 -30 -180 -5 N
75 | P 2 0 1 10 -180 20 -180 45 N
76 | P 2 0 1 10 -180 80 -180 105 N
77 | P 2 0 1 10 -180 130 -180 155 N
78 | P 2 0 1 10 -180 180 -180 205 N
79 | P 2 0 1 10 -180 450 -200 450 N
80 | P 2 0 1 10 -150 450 -125 450 N
81 | P 2 0 1 10 -70 -290 90 -200 N
82 | P 2 0 1 10 -70 210 90 300 N
83 | P 2 0 1 10 -70 450 -90 450 N
84 | P 2 0 1 10 -20 -210 -20 -185 N
85 | P 2 0 1 10 -20 -160 -20 -135 N
86 | P 2 0 1 10 -20 -110 -20 -85 N
87 | P 2 0 1 10 -20 -60 -20 -35 N
88 | P 2 0 1 10 -20 -10 -20 15 N
89 | P 2 0 1 10 -20 50 -20 75 N
90 | P 2 0 1 10 -20 100 -20 125 N
91 | P 2 0 1 10 -20 150 -20 175 N
92 | P 2 0 1 10 -20 200 -20 225 N
93 | P 2 0 1 10 -20 250 -20 275 N
94 | P 2 0 1 10 -20 300 -20 325 N
95 | P 2 0 1 10 -20 350 -20 370 N
96 | P 2 0 1 10 -20 350 -20 375 N
97 | P 2 0 1 10 -20 390 -20 410 N
98 | P 2 0 1 10 -20 430 -20 450 N
99 | P 2 0 1 10 -20 450 -40 450 N
100 | P 2 0 1 10 160 -500 230 -500 N
101 | P 2 0 1 10 160 -400 230 -400 N
102 | P 2 0 1 10 160 -300 230 -300 N
103 | P 2 0 1 10 160 -200 230 -200 N
104 | P 2 0 1 10 160 0 230 0 N
105 | P 2 0 1 10 160 100 230 100 N
106 | P 2 0 1 10 160 200 230 200 N
107 | P 2 0 1 10 160 300 230 300 N
108 | X Y0 1 500 -200 100 L 50 50 1 1 B
109 | X A 10 -500 500 100 R 50 50 1 1 I
110 | X X3 11 500 0 100 L 50 50 1 1 B
111 | X X0 12 500 300 100 L 50 50 1 1 B
112 | X X 13 -500 200 100 R 50 50 1 1 B
113 | X X1 14 500 200 100 L 50 50 1 1 B
114 | X X2 15 500 100 100 L 50 50 1 1 B
115 | X VDD 16 100 700 100 D 50 50 1 1 W
116 | X Y2 2 500 -400 100 L 50 50 1 1 B
117 | X Y 3 -500 -300 100 R 50 50 1 1 B
118 | X Y3 4 500 -500 100 L 50 50 1 1 B
119 | X Y1 5 500 -300 100 L 50 50 1 1 B
120 | X INH 6 -500 -400 100 R 50 50 1 1 I
121 | X VEE 7 -100 -700 100 U 50 50 1 1 W
122 | X VSS 8 0 -700 100 U 50 50 1 1 W
123 | X B 9 -500 400 100 R 50 50 1 1 I
124 | ENDDRAW
125 | ENDDEF
126 | #
127 | # Connector_Generic_Conn_01x05
128 | #
129 | DEF Connector_Generic_Conn_01x05 J 0 40 Y N 1 F N
130 | F0 "J" 0 300 50 H V C CNN
131 | F1 "Connector_Generic_Conn_01x05" 0 -300 50 H V C CNN
132 | F2 "" 0 0 50 H I C CNN
133 | F3 "" 0 0 50 H I C CNN
134 | $FPLIST
135 | Connector*:*_1x??_*
136 | $ENDFPLIST
137 | DRAW
138 | S -50 -195 0 -205 1 1 6 N
139 | S -50 -95 0 -105 1 1 6 N
140 | S -50 5 0 -5 1 1 6 N
141 | S -50 105 0 95 1 1 6 N
142 | S -50 205 0 195 1 1 6 N
143 | S -50 250 50 -250 1 1 10 f
144 | X Pin_1 1 -200 200 150 R 50 50 1 1 P
145 | X Pin_2 2 -200 100 150 R 50 50 1 1 P
146 | X Pin_3 3 -200 0 150 R 50 50 1 1 P
147 | X Pin_4 4 -200 -100 150 R 50 50 1 1 P
148 | X Pin_5 5 -200 -200 150 R 50 50 1 1 P
149 | ENDDRAW
150 | ENDDEF
151 | #
152 | # Device_C
153 | #
154 | DEF Device_C C 0 10 N Y 1 F N
155 | F0 "C" 25 100 50 H V L CNN
156 | F1 "Device_C" 25 -100 50 H V L CNN
157 | F2 "" 38 -150 50 H I C CNN
158 | F3 "" 0 0 50 H I C CNN
159 | $FPLIST
160 | C_*
161 | $ENDFPLIST
162 | DRAW
163 | P 2 0 1 20 -80 -30 80 -30 N
164 | P 2 0 1 20 -80 30 80 30 N
165 | X ~ 1 0 150 110 D 50 50 1 1 P
166 | X ~ 2 0 -150 110 U 50 50 1 1 P
167 | ENDDRAW
168 | ENDDEF
169 | #
170 | # Device_CP1_Small
171 | #
172 | DEF Device_CP1_Small C 0 10 N N 1 F N
173 | F0 "C" 10 70 50 H V L CNN
174 | F1 "Device_CP1_Small" 10 -80 50 H V L CNN
175 | F2 "" 0 0 50 H I C CNN
176 | F3 "" 0 0 50 H I C CNN
177 | $FPLIST
178 | CP_*
179 | $ENDFPLIST
180 | DRAW
181 | A 0 -140 125 1186 614 0 1 12 N -60 -30 60 -30
182 | P 2 0 1 12 -60 20 60 20 N
183 | P 2 0 1 0 -50 60 -30 60 N
184 | P 2 0 1 0 -40 50 -40 70 N
185 | X ~ 1 0 100 80 D 50 50 1 1 P
186 | X ~ 2 0 -100 80 U 50 50 1 1 P
187 | ENDDRAW
188 | ENDDEF
189 | #
190 | # Device_C_Small
191 | #
192 | DEF Device_C_Small C 0 10 N N 1 F N
193 | F0 "C" 10 70 50 H V L CNN
194 | F1 "Device_C_Small" 10 -80 50 H V L CNN
195 | F2 "" 0 0 50 H I C CNN
196 | F3 "" 0 0 50 H I C CNN
197 | $FPLIST
198 | C_*
199 | $ENDFPLIST
200 | DRAW
201 | P 2 0 1 13 -60 -20 60 -20 N
202 | P 2 0 1 12 -60 20 60 20 N
203 | X ~ 1 0 100 80 D 50 50 1 1 P
204 | X ~ 2 0 -100 80 U 50 50 1 1 P
205 | ENDDRAW
206 | ENDDEF
207 | #
208 | # Device_Crystal_GND2
209 | #
210 | DEF Device_Crystal_GND2 Y 0 40 Y N 1 F N
211 | F0 "Y" 0 225 50 H V C CNN
212 | F1 "Device_Crystal_GND2" 0 150 50 H V C CNN
213 | F2 "" 0 0 50 H I C CNN
214 | F3 "" 0 0 50 H I C CNN
215 | $FPLIST
216 | Crystal*
217 | $ENDFPLIST
218 | DRAW
219 | S -45 100 45 -100 0 1 12 N
220 | P 2 0 1 0 -100 0 -75 0 N
221 | P 2 0 1 20 -75 -50 -75 50 N
222 | P 2 0 1 0 0 -150 0 -140 N
223 | P 2 0 1 0 75 0 100 0 N
224 | P 2 0 1 20 75 50 75 -50 N
225 | P 4 0 1 0 -100 -90 -100 -140 100 -140 100 -90 N
226 | X 1 1 -150 0 50 R 50 50 1 1 P
227 | X 2 2 0 -200 50 U 50 50 1 1 P
228 | X 3 3 150 0 50 L 50 50 1 1 P
229 | ENDDRAW
230 | ENDDEF
231 | #
232 | # Device_D
233 | #
234 | DEF Device_D D 0 40 N N 1 F N
235 | F0 "D" 0 100 50 H V C CNN
236 | F1 "Device_D" 0 -100 50 H V C CNN
237 | F2 "" 0 0 50 H I C CNN
238 | F3 "" 0 0 50 H I C CNN
239 | $FPLIST
240 | TO-???*
241 | *_Diode_*
242 | *SingleDiode*
243 | D_*
244 | $ENDFPLIST
245 | DRAW
246 | P 2 0 1 8 -50 50 -50 -50 N
247 | P 2 0 1 0 50 0 -50 0 N
248 | P 4 0 1 8 50 50 50 -50 -50 0 50 50 N
249 | X K 1 -150 0 100 R 50 50 1 1 P
250 | X A 2 150 0 100 L 50 50 1 1 P
251 | ENDDRAW
252 | ENDDEF
253 | #
254 | # Device_Polyfuse_Small
255 | #
256 | DEF Device_Polyfuse_Small F 0 0 N Y 1 F N
257 | F0 "F" -75 0 50 V V C CNN
258 | F1 "Device_Polyfuse_Small" 75 0 50 V V C CNN
259 | F2 "" 50 -200 50 H I L CNN
260 | F3 "" 0 0 50 H I C CNN
261 | $FPLIST
262 | *polyfuse*
263 | *PTC*
264 | $ENDFPLIST
265 | DRAW
266 | S -20 50 20 -50 0 1 0 N
267 | P 2 0 1 0 0 100 0 -100 N
268 | P 4 0 1 0 -40 50 -40 30 40 -30 40 -50 N
269 | X ~ 1 0 100 25 D 50 50 1 1 P
270 | X ~ 2 0 -100 25 U 50 50 1 1 P
271 | ENDDRAW
272 | ENDDEF
273 | #
274 | # Device_Q_NPN_BEC
275 | #
276 | DEF Device_Q_NPN_BEC Q 0 0 Y N 1 F N
277 | F0 "Q" 200 50 50 H V L CNN
278 | F1 "Device_Q_NPN_BEC" 200 -50 50 H V L CNN
279 | F2 "" 200 100 50 H I C CNN
280 | F3 "" 0 0 50 H I C CNN
281 | DRAW
282 | C 50 0 111 0 1 10 N
283 | P 2 0 1 0 25 25 100 100 N
284 | P 3 0 1 0 25 -25 100 -100 100 -100 N
285 | P 3 0 1 20 25 75 25 -75 25 -75 N
286 | P 5 0 1 0 50 -70 70 -50 90 -90 50 -70 50 -70 F
287 | X B 1 -200 0 225 R 50 50 1 1 I
288 | X E 2 100 -200 100 U 50 50 1 1 P
289 | X C 3 100 200 100 D 50 50 1 1 P
290 | ENDDRAW
291 | ENDDEF
292 | #
293 | # Device_R
294 | #
295 | DEF Device_R R 0 0 N Y 1 F N
296 | F0 "R" 80 0 50 V V C CNN
297 | F1 "Device_R" 0 0 50 V V C CNN
298 | F2 "" -70 0 50 V I C CNN
299 | F3 "" 0 0 50 H I C CNN
300 | $FPLIST
301 | R_*
302 | $ENDFPLIST
303 | DRAW
304 | S -40 -100 40 100 0 1 10 N
305 | X ~ 1 0 150 50 D 50 50 1 1 P
306 | X ~ 2 0 -150 50 U 50 50 1 1 P
307 | ENDDRAW
308 | ENDDEF
309 | #
310 | # Device_R_Small
311 | #
312 | DEF Device_R_Small R 0 10 N N 1 F N
313 | F0 "R" 30 20 50 H V L CNN
314 | F1 "Device_R_Small" 30 -40 50 H V L CNN
315 | F2 "" 0 0 50 H I C CNN
316 | F3 "" 0 0 50 H I C CNN
317 | $FPLIST
318 | R_*
319 | $ENDFPLIST
320 | DRAW
321 | S -30 70 30 -70 0 1 8 N
322 | X ~ 1 0 100 30 D 50 50 1 1 P
323 | X ~ 2 0 -100 30 U 50 50 1 1 P
324 | ENDDRAW
325 | ENDDEF
326 | #
327 | # Interface_USB_CH340G
328 | #
329 | DEF Interface_USB_CH340G U 0 20 Y Y 1 F N
330 | F0 "U" -200 550 50 H V R CNN
331 | F1 "Interface_USB_CH340G" 50 550 50 H V L CNN
332 | F2 "Package_SO:SOIC-16_3.9x9.9mm_P1.27mm" 50 -550 50 H I L CNN
333 | F3 "" -350 800 50 H I C CNN
334 | $FPLIST
335 | SOIC*3.9x9.9mm*P1.27mm*
336 | $ENDFPLIST
337 | DRAW
338 | S -300 500 300 -500 0 1 10 f
339 | X GND 1 0 -600 100 U 50 50 1 1 W
340 | X ~DSR 10 400 0 100 L 50 50 1 1 I
341 | X ~RI 11 400 -100 100 L 50 50 1 1 I
342 | X ~DCD 12 400 -200 100 L 50 50 1 1 I
343 | X ~DTR 13 400 -300 100 L 50 50 1 1 O
344 | X ~RTS 14 400 -400 100 L 50 50 1 1 O
345 | X R232 15 -400 300 100 R 50 50 1 1 I
346 | X VCC 16 0 600 100 D 50 50 1 1 W
347 | X TXD 2 400 400 100 L 50 50 1 1 O
348 | X RXD 3 400 300 100 L 50 50 1 1 I
349 | X V3 4 -100 600 100 D 50 50 1 1 P
350 | X UD+ 5 -400 100 100 R 50 50 1 1 B
351 | X UD- 6 -400 0 100 R 50 50 1 1 B
352 | X XI 7 -400 -200 100 R 50 50 1 1 I
353 | X XO 8 -400 -400 100 R 50 50 1 1 O
354 | X ~CTS 9 400 100 100 L 50 50 1 1 I
355 | ENDDRAW
356 | ENDDEF
357 | #
358 | # LED_WS2812B
359 | #
360 | DEF LED_WS2812B D 0 10 Y Y 1 F N
361 | F0 "D" 200 225 50 H V R BNN
362 | F1 "LED_WS2812B" 50 -225 50 H V L TNN
363 | F2 "LED_SMD:LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm" 50 -300 50 H I L TNN
364 | F3 "" 100 -375 50 H I L TNN
365 | $FPLIST
366 | LED*WS2812*PLCC*5.0x5.0mm*P3.2mm*
367 | $ENDFPLIST
368 | DRAW
369 | T 0 90 -165 30 0 0 0 RGB Normal 0 C C
370 | S 200 200 -200 -200 0 1 10 f
371 | P 2 0 1 0 50 -140 70 -140 N
372 | P 2 0 1 0 50 -100 70 -100 N
373 | P 2 0 1 0 185 -140 105 -140 N
374 | P 3 0 1 0 90 -100 50 -140 50 -120 N
375 | P 3 0 1 0 90 -60 50 -100 50 -80 N
376 | P 3 0 1 0 145 -40 145 -140 145 -160 N
377 | P 4 0 1 0 185 -60 105 -60 145 -140 185 -60 N
378 | X VDD 1 0 300 100 D 50 50 1 1 W
379 | X DOUT 2 300 0 100 L 50 50 1 1 O
380 | X VSS 3 0 -300 100 U 50 50 1 1 W
381 | X DIN 4 -300 0 100 R 50 50 1 1 I
382 | ENDDRAW
383 | ENDDEF
384 | #
385 | # RF_Module_E18-MS1-PCB
386 | #
387 | DEF RF_Module_E18-MS1-PCB U 0 20 Y Y 1 F N
388 | F0 "U" -100 850 50 H V R CNN
389 | F1 "RF_Module_E18-MS1-PCB" -100 750 50 H V R CNN
390 | F2 "RF_Module:E18-MS1-PCB" -200 200 50 H I C CNN
391 | F3 "" -200 200 50 H I C CNN
392 | $FPLIST
393 | E18-MS1-PCB*
394 | $ENDFPLIST
395 | DRAW
396 | S -400 700 400 -600 0 1 10 f
397 | X GND 1 0 -700 100 U 50 50 1 1 W
398 | X P1.5 10 500 100 100 L 50 50 1 1 B
399 | X P1.4 11 500 200 100 L 50 50 1 1 B
400 | X P1.3 12 500 300 100 L 50 50 1 1 B
401 | X P1.2 13 500 400 100 L 50 50 1 1 B
402 | X P1.1 14 500 500 100 L 50 50 1 1 B
403 | X P1.0 15 500 600 100 L 50 50 1 1 B
404 | X P0.7 16 -500 -300 100 R 50 50 1 1 B
405 | X P0.6 17 -500 -200 100 R 50 50 1 1 B
406 | X P0.5 18 -500 -100 100 R 50 50 1 1 B
407 | X P0.4 19 -500 0 100 R 50 50 1 1 B
408 | X VDD 2 0 800 100 D 50 50 1 1 W
409 | X P0.3 20 -500 100 100 R 50 50 1 1 B
410 | X P0.2 21 -500 200 100 R 50 50 1 1 B
411 | X P0.1 22 -500 300 100 R 50 50 1 1 B
412 | X P0.0 23 -500 400 100 R 50 50 1 1 B
413 | X ~RESET 24 -500 600 100 R 50 50 1 1 I
414 | X P2.2 3 500 -500 100 L 50 50 1 1 B
415 | X P2.1 4 500 -400 100 L 50 50 1 1 B
416 | X P2.0 5 500 -300 100 L 50 50 1 1 B
417 | X P1.7 6 500 -100 100 L 50 50 1 1 B
418 | X P1.6 7 500 0 100 L 50 50 1 1 B
419 | X NC 8 -400 -400 100 R 50 50 1 1 N N
420 | X NC 9 -400 -500 100 R 50 50 1 1 N N
421 | ENDDRAW
422 | ENDDEF
423 | #
424 | # RF_Module_ESP-WROOM-02
425 | #
426 | DEF RF_Module_ESP-WROOM-02 U 0 20 Y Y 1 F N
427 | F0 "U" -300 550 50 H V C CNN
428 | F1 "RF_Module_ESP-WROOM-02" 400 550 50 H V C CNN
429 | F2 "RF_Module:ESP-WROOM-02" 600 -550 50 H I C CNN
430 | F3 "" 50 1500 50 H I C CNN
431 | $FPLIST
432 | ESP?WROOM?02*
433 | $ENDFPLIST
434 | DRAW
435 | S 400 500 -400 -500 0 1 10 f
436 | X VDD 1 0 600 100 D 50 50 1 1 W
437 | X IO4 10 500 200 100 L 50 50 1 1 B
438 | X RXD 11 -500 -100 100 R 50 50 1 1 B
439 | X TXD 12 -500 -200 100 R 50 50 1 1 B
440 | X GND 13 0 -600 100 U 50 50 1 1 P N
441 | X IO5 14 500 100 100 L 50 50 1 1 B
442 | X RST 15 -500 300 100 R 50 50 1 1 I
443 | X TOUT 16 -500 100 100 R 50 50 1 1 I
444 | X IO16 17 500 -400 100 L 50 50 1 1 B
445 | X GND 18 0 -600 100 U 50 50 1 1 P N
446 | X GND 19 0 -600 100 U 50 50 1 1 P N
447 | X EN 2 -500 400 100 R 50 50 1 1 I
448 | X IO14 3 500 -200 100 L 50 50 1 1 B
449 | X IO12 4 500 0 100 L 50 50 1 1 B
450 | X IO13 5 500 -100 100 L 50 50 1 1 B
451 | X IO15 6 500 -300 100 L 50 50 1 1 B
452 | X IO2 7 500 300 100 L 50 50 1 1 B
453 | X IO0 8 500 400 100 L 50 50 1 1 B
454 | X GND 9 0 -600 100 U 50 50 1 1 W
455 | ENDDRAW
456 | ENDDEF
457 | #
458 | # Regulator_Linear_AP1117-33
459 | #
460 | DEF Regulator_Linear_AP1117-33 U 0 10 Y Y 1 F N
461 | F0 "U" -150 125 50 H V C CNN
462 | F1 "Regulator_Linear_AP1117-33" 0 125 50 H V L CNN
463 | F2 "Package_TO_SOT_SMD:SOT-223-3_TabPin2" 0 200 50 H I C CNN
464 | F3 "" 100 -250 50 H I C CNN
465 | ALIAS AP1117-18 AP1117-25 AP1117-33 AP1117-50 LD1117S33TR_SOT223 LD1117S12TR_SOT223 LD1117S18TR_SOT223 LD1117S25TR_SOT223 LD1117S50TR_SOT223 NCP1117-12_SOT223 NCP1117-1.5_SOT223 NCP1117-1.8_SOT223 NCP1117-2.0_SOT223 NCP1117-2.5_SOT223 NCP1117-2.85_SOT223 NCP1117-3.3_SOT223 NCP1117-5.0_SOT223 AMS1117-1.5 AMS1117-1.8 AMS1117-2.5 AMS1117-2.85 AMS1117-3.3 AMS1117-5.0
466 | $FPLIST
467 | SOT?223*TabPin2*
468 | $ENDFPLIST
469 | DRAW
470 | S -200 -200 200 75 0 1 10 f
471 | X GND 1 0 -300 100 U 50 50 1 1 W
472 | X VO 2 300 0 100 L 50 50 1 1 w
473 | X VI 3 -300 0 100 R 50 50 1 1 W
474 | ENDDRAW
475 | ENDDEF
476 | #
477 | # Switch_SW_DIP_x02
478 | #
479 | DEF Switch_SW_DIP_x02 SW 0 0 Y N 1 F N
480 | F0 "SW" 0 250 50 H V C CNN
481 | F1 "Switch_SW_DIP_x02" 0 -150 50 H V C CNN
482 | F2 "" 0 0 50 H I C CNN
483 | F3 "" 0 0 50 H I C CNN
484 | $FPLIST
485 | SW?DIP?x2*
486 | $ENDFPLIST
487 | DRAW
488 | C -80 0 20 0 0 0 N
489 | C -80 100 20 0 0 0 N
490 | C 80 0 20 0 0 0 N
491 | C 80 100 20 0 0 0 N
492 | S -150 200 150 -100 0 1 10 f
493 | P 2 0 0 0 -60 5 93 46 N
494 | P 2 0 0 0 -60 105 93 146 N
495 | X ~ 1 -300 100 200 R 50 50 1 1 P
496 | X ~ 2 -300 0 200 R 50 50 1 1 P
497 | X ~ 3 300 0 200 L 50 50 1 1 P
498 | X ~ 4 300 100 200 L 50 50 1 1 P
499 | ENDDRAW
500 | ENDDEF
501 | #
502 | # Switch_SW_Push
503 | #
504 | DEF Switch_SW_Push SW 0 40 N N 1 F N
505 | F0 "SW" 50 100 50 H V L CNN
506 | F1 "Switch_SW_Push" 0 -60 50 H V C CNN
507 | F2 "" 0 200 50 H I C CNN
508 | F3 "" 0 200 50 H I C CNN
509 | DRAW
510 | C -80 0 20 0 1 0 N
511 | C 80 0 20 0 1 0 N
512 | P 2 0 1 0 0 50 0 120 N
513 | P 2 0 1 0 100 50 -100 50 N
514 | X 1 1 -200 0 100 R 50 50 0 1 P
515 | X 2 2 200 0 100 L 50 50 0 1 P
516 | ENDDRAW
517 | ENDDEF
518 | #
519 | # power_+3V3
520 | #
521 | DEF power_+3V3 #PWR 0 0 Y Y 1 F P
522 | F0 "#PWR" 0 -150 50 H I C CNN
523 | F1 "power_+3V3" 0 140 50 H V C CNN
524 | F2 "" 0 0 50 H I C CNN
525 | F3 "" 0 0 50 H I C CNN
526 | ALIAS +3.3V
527 | DRAW
528 | P 2 0 1 0 -30 50 0 100 N
529 | P 2 0 1 0 0 0 0 100 N
530 | P 2 0 1 0 0 100 30 50 N
531 | X +3V3 1 0 0 0 U 50 50 1 1 W N
532 | ENDDRAW
533 | ENDDEF
534 | #
535 | # power_+5V
536 | #
537 | DEF power_+5V #PWR 0 0 Y Y 1 F P
538 | F0 "#PWR" 0 -150 50 H I C CNN
539 | F1 "power_+5V" 0 140 50 H V C CNN
540 | F2 "" 0 0 50 H I C CNN
541 | F3 "" 0 0 50 H I C CNN
542 | DRAW
543 | P 2 0 1 0 -30 50 0 100 N
544 | P 2 0 1 0 0 0 0 100 N
545 | P 2 0 1 0 0 100 30 50 N
546 | X +5V 1 0 0 0 U 50 50 1 1 W N
547 | ENDDRAW
548 | ENDDEF
549 | #
550 | # power_GND
551 | #
552 | DEF power_GND #PWR 0 0 Y Y 1 F P
553 | F0 "#PWR" 0 -250 50 H I C CNN
554 | F1 "power_GND" 0 -150 50 H V C CNN
555 | F2 "" 0 0 50 H I C CNN
556 | F3 "" 0 0 50 H I C CNN
557 | DRAW
558 | P 6 0 1 0 0 0 0 -50 50 -50 0 -100 -50 -50 0 -50 N
559 | X GND 1 0 0 0 D 50 50 1 1 W N
560 | ENDDRAW
561 | ENDDEF
562 | #
563 | # power_VBUS
564 | #
565 | DEF power_VBUS #PWR 0 0 Y Y 1 F P
566 | F0 "#PWR" 0 -150 50 H I C CNN
567 | F1 "power_VBUS" 0 150 50 H V C CNN
568 | F2 "" 0 0 50 H I C CNN
569 | F3 "" 0 0 50 H I C CNN
570 | DRAW
571 | P 2 0 1 0 -30 50 0 100 N
572 | P 2 0 1 0 0 0 0 100 N
573 | P 2 0 1 0 0 100 30 50 N
574 | X VBUS 1 0 0 0 U 50 50 1 1 W N
575 | ENDDRAW
576 | ENDDEF
577 | #
578 | # typeC_HRO-TYPE-C-31-M-12
579 | #
580 | DEF typeC_HRO-TYPE-C-31-M-12 USB 0 40 Y Y 1 F N
581 | F0 "USB" -200 650 60 H V C CNN
582 | F1 "typeC_HRO-TYPE-C-31-M-12" -400 -50 60 V V C CNN
583 | F2 "" 0 0 60 H I C CNN
584 | F3 "" 0 0 60 H I C CNN
585 | DRAW
586 | S -450 600 -350 -700 0 1 0 f
587 | S 0 -700 -350 600 0 1 0 f
588 | X GND 1 100 550 100 L 50 50 1 1 I
589 | X CC2 10 100 -350 100 L 50 50 1 1 I
590 | X VBUS 11 100 -450 100 L 50 50 1 1 I
591 | X GND 12 100 -550 100 L 50 50 1 1 I
592 | X SHIELD 13 100 -650 100 L 50 50 1 1 I
593 | X VBUS 2 100 450 100 L 50 50 1 1 I
594 | X SBU2 3 100 350 100 L 50 50 1 1 I
595 | X CC1 4 100 250 100 L 50 50 1 1 I
596 | X DN2 5 100 150 100 L 50 50 1 1 I
597 | X DP1 6 100 50 100 L 50 50 1 1 I
598 | X DN1 7 100 -50 100 L 50 50 1 1 I
599 | X DP2 8 100 -150 100 L 50 50 1 1 I
600 | X SBU1 9 100 -250 100 L 50 50 1 1 I
601 | ENDDRAW
602 | ENDDEF
603 | #
604 | #End Library
605 |
--------------------------------------------------------------------------------
/project/z2m_partner-top.pos:
--------------------------------------------------------------------------------
1 | ### Module positions - created on 2019 October 28, Monday 13:53:23 ###
2 | ### Printed by Pcbnew version kicad (5.1.4-0-10_14)
3 | ## Unit = mm, Angle = deg.
4 | ## Side : top
5 | # Ref Val Package PosX PosY Rot Side
6 | C3 100nF C_0603_1608Metric_Pad1.05x0.95mm_HandSolder 173.5950 -112.6490 0.0000 top
7 | C4 100nF C_0603_1608Metric_Pad1.05x0.95mm_HandSolder 200.6600 -113.1430 270.0000 top
8 | C5 10uF CP_EIA-3528-21_Kemet-B_Pad1.50x2.35mm_HandSolder 173.6090 -101.3200 270.0000 top
9 | C6 10uF CP_EIA-3528-21_Kemet-B_Pad1.50x2.35mm_HandSolder 170.1800 -101.3200 270.0000 top
10 | C7 100nF C_0603_1608Metric_Pad1.05x0.95mm_HandSolder 172.9880 -88.3920 0.0000 top
11 | D1 LED LED_1206_3216Metric_Pad1.42x1.75mm_HandSolder 163.0680 -94.9595 270.0000 top
12 | F1 MF-MSMF050 Fuse_1812_4532Metric_Pad1.30x3.40mm_HandSolder 171.7040 -106.0450 180.0000 top
13 | R1 5.1k R_0603_1608Metric_Pad1.05x0.95mm_HandSolder 173.5950 -109.3978 180.0000 top
14 | R2 5.1k R_0603_1608Metric_Pad1.05x0.95mm_HandSolder 173.5976 -111.0234 180.0000 top
15 | R3 10k R_0603_1608Metric_Pad1.05x0.95mm_HandSolder 197.4710 -96.3930 0.0000 top
16 | R4 10k R_0603_1608Metric_Pad1.05x0.95mm_HandSolder 197.4964 -97.9170 0.0000 top
17 | R5 1k R_0805_2012Metric_Pad1.15x1.40mm_HandSolder 195.8712 -83.0208 225.0000 top
18 | R6 0 R_0603_1608Metric_Pad1.05x0.95mm_HandSolder 204.8510 -105.6500 270.0000 top
19 | R7 10k R_0603_1608Metric_Pad1.05x0.95mm_HandSolder 206.3750 -105.6500 270.0000 top
20 | R8 0 R_0603_1608Metric_Pad1.05x0.95mm_HandSolder 203.3270 -105.6386 270.0000 top
21 | R9 1k R_0805_2012Metric_Pad1.15x1.40mm_HandSolder 165.3540 -95.4950 90.0000 top
22 | R10 10k R_0603_1608Metric_Pad1.05x0.95mm_HandSolder 198.8820 -113.1570 90.0000 top
23 | R11 10k R_0603_1608Metric_Pad1.05x0.95mm_HandSolder 199.6277 -120.4123 90.0000 top
24 | R12 10k R_0603_1608Metric_Pad1.05x0.95mm_HandSolder 199.7570 -110.6170 0.0000 top
25 | SW1 SW_DIP_x02 SW_DIP_SPSTx02_Slide_Copal_CHS-02B_W7.62mm_P1.27mm 200.4060 -87.5030 135.0000 top
26 | SW2 SW_Push SW_SPST_PTS810 204.9780 -110.7440 45.0000 top
27 | SW3 SW_Push SW_SPST_PTS810 202.3110 -116.5860 45.0000 top
28 | U1 CH340G SOIC-16_3.9x9.9mm_P1.27mm 168.6560 -115.4430 225.0000 top
29 | U2 CD4052B SOIC-16_3.9x9.9mm_P1.27mm 203.3270 -97.9170 180.0000 top
30 | U3 E18-MS1-PCB E18-MS1PA1-IPX 176.6570 -101.9810 0.0000 top
31 | U4 74LVC1G66 SOT-353_SC-70-5_Handsoldering 196.7230 -100.3300 0.0000 top
32 | U5 74LVC1G66 SOT-353_SC-70-5_Handsoldering 196.7230 -103.2510 0.0000 top
33 | U6 AP1117-33 SOT-223-3_TabPin2 171.1960 -94.1070 90.0000 top
34 | USB1 HRO-TYPE-C-31-M-12 HRO-TYPE-C-31-M-12-HandSoldering 158.7500 -102.8700 270.0000 top
35 | Y1 12MHz Resonator_SMD_muRata_CSTxExxV-3Pin_3.0x1.1mm_HandSoldering 163.4085 -110.5305 45.0000 top
36 | ## End
37 |
--------------------------------------------------------------------------------
/project/z2m_partner.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/smarthomefans/z2m_partner/f85b9f14ccc072c4f30a3fdd09dc15048bc7b907/project/z2m_partner.pdf
--------------------------------------------------------------------------------
/project/z2m_partner.pretty/E18-MS1PA1-IPX-24PIN.kicad_mod:
--------------------------------------------------------------------------------
1 | (module E18-MS1PA1-IPX-24PIN (layer F.Cu) (tedit 5DB575F0)
2 | (fp_text reference REF** (at 0 0.5) (layer F.SilkS)
3 | (effects (font (size 1 1) (thickness 0.15)))
4 | )
5 | (fp_text value E18-MS1PA1-IPX-24PIN (at 0 -0.5) (layer F.Fab)
6 | (effects (font (size 1 1) (thickness 0.15)))
7 | )
8 | )
9 |
--------------------------------------------------------------------------------
/project/z2m_partner.pretty/E18-MS1PA1-IPX.kicad_mod:
--------------------------------------------------------------------------------
1 | (module E18-MS1PA1-IPX (layer F.Cu) (tedit 5DB583E2)
2 | (descr http://www.ebyte.com/product-view-news.aspx?id=69)
3 | (tags Zigbee)
4 | (attr smd)
5 | (fp_text reference REF** (at 7.05 2 180) (layer F.SilkS)
6 | (effects (font (size 1 1) (thickness 0.15)))
7 | )
8 | (fp_text value E18-MS1PA1-IPX (at 7.05 -24 180) (layer F.Fab)
9 | (effects (font (size 1 1) (thickness 0.15)))
10 | )
11 | (fp_line (start 16 0) (end 0 0) (layer F.Fab) (width 0.1))
12 | (fp_line (start 0 -22.5) (end 16 -22.5) (layer F.Fab) (width 0.1))
13 | (fp_line (start 16 -22.5) (end 16 0) (layer F.Fab) (width 0.1))
14 | (fp_text user %R (at 7.05 -11.5 180) (layer F.Fab)
15 | (effects (font (size 1 1) (thickness 0.15)))
16 | )
17 | (fp_line (start -1.25 1.25) (end -1.25 -23.25) (layer F.CrtYd) (width 0.05))
18 | (fp_line (start -1.25 -23.25) (end 17.27 -23.25) (layer F.CrtYd) (width 0.05))
19 | (fp_line (start 17.27 -23.25) (end 17.27 1.25) (layer F.CrtYd) (width 0.05))
20 | (fp_line (start 17.27 1.25) (end -1.25 1.25) (layer F.CrtYd) (width 0.05))
21 | (fp_line (start -0.12 0.12) (end -0.12 -1.45) (layer F.SilkS) (width 0.12))
22 | (fp_line (start -0.12 0.12) (end 1.77 0.12) (layer F.SilkS) (width 0.12))
23 | (fp_line (start 14.22 0.12) (end 16.11 0.12) (layer F.SilkS) (width 0.12))
24 | (fp_line (start 16.11 0.12) (end 16.11 -1.45) (layer F.SilkS) (width 0.12))
25 | (fp_line (start 16.12 -11.97) (end 16.12 -22.62) (layer F.SilkS) (width 0.12))
26 | (fp_line (start 16.12 -22.62) (end -0.12 -22.62) (layer F.SilkS) (width 0.12))
27 | (fp_line (start -0.12 -22.62) (end -0.12 -11.96) (layer F.SilkS) (width 0.12))
28 | (fp_line (start 0 -22.5) (end 0 0) (layer F.Fab) (width 0.1))
29 | (pad 17 smd rect (at 16 -2.55 90) (size 0.7 2) (layers F.Cu F.Paste F.Mask))
30 | (pad 18 smd rect (at 16 -3.82 90) (size 0.7 2) (layers F.Cu F.Paste F.Mask))
31 | (pad 19 smd rect (at 16 -5.09 90) (size 0.7 2) (layers F.Cu F.Paste F.Mask))
32 | (pad 20 smd rect (at 16 -6.36 90) (size 0.7 2) (layers F.Cu F.Paste F.Mask))
33 | (pad 21 smd rect (at 16 -7.63 90) (size 0.7 2) (layers F.Cu F.Paste F.Mask))
34 | (pad 22 smd rect (at 16 -8.9 90) (size 0.7 2) (layers F.Cu F.Paste F.Mask))
35 | (pad 23 smd rect (at 16 -10.17 90) (size 0.7 2) (layers F.Cu F.Paste F.Mask))
36 | (pad 24 smd rect (at 16 -11.44 90) (size 0.7 2) (layers F.Cu F.Paste F.Mask))
37 | (pad 9 smd rect (at 3.55 0 180) (size 0.7 2) (layers F.Cu F.Paste F.Mask))
38 | (pad 10 smd rect (at 4.82 0 180) (size 0.7 2) (layers F.Cu F.Paste F.Mask))
39 | (pad 11 smd rect (at 6.09 0 180) (size 0.7 2) (layers F.Cu F.Paste F.Mask))
40 | (pad 12 smd rect (at 7.36 0 180) (size 0.7 2) (layers F.Cu F.Paste F.Mask))
41 | (pad 13 smd rect (at 8.63 0 180) (size 0.7 2) (layers F.Cu F.Paste F.Mask))
42 | (pad 14 smd rect (at 9.9 0 180) (size 0.7 2) (layers F.Cu F.Paste F.Mask))
43 | (pad 15 smd rect (at 11.17 0 180) (size 0.7 2) (layers F.Cu F.Paste F.Mask))
44 | (pad 16 smd rect (at 12.44 0 180) (size 0.7 2) (layers F.Cu F.Paste F.Mask))
45 | (pad 1 smd rect (at 0 -11.44 270) (size 0.7 2) (layers F.Cu F.Paste F.Mask))
46 | (pad 2 smd rect (at 0 -10.17 270) (size 0.7 2) (layers F.Cu F.Paste F.Mask))
47 | (pad 3 smd rect (at 0 -8.9 270) (size 0.7 2) (layers F.Cu F.Paste F.Mask))
48 | (pad 4 smd rect (at 0 -7.63 270) (size 0.7 2) (layers F.Cu F.Paste F.Mask))
49 | (pad 5 smd rect (at 0 -6.36 270) (size 0.7 2) (layers F.Cu F.Paste F.Mask))
50 | (pad 6 smd rect (at 0 -5.09 270) (size 0.7 2) (layers F.Cu F.Paste F.Mask))
51 | (pad 7 smd rect (at 0 -3.82 270) (size 0.7 2) (layers F.Cu F.Paste F.Mask))
52 | (pad 8 smd rect (at 0 -2.55 270) (size 0.7 2) (layers F.Cu F.Paste F.Mask))
53 | (model ${KISYS3DMOD}/RF_Module.3dshapes/E18-MS1-PCB.wrl
54 | (at (xyz 0 0 0))
55 | (scale (xyz 1 1 1))
56 | (rotate (xyz 0 0 0))
57 | )
58 | )
59 |
--------------------------------------------------------------------------------
/project/z2m_partner.pretty/SK6812_4020.kicad_mod:
--------------------------------------------------------------------------------
1 | (module SK6812_4020 (layer F.Cu) (tedit 5DCEE241)
2 | (attr smd)
3 | (fp_text reference REF** (at -2 -3) (layer F.SilkS)
4 | (effects (font (size 1 1) (thickness 0.15)))
5 | )
6 | (fp_text value SK6812_4020 (at -2 0.15) (layer F.Fab)
7 | (effects (font (size 1 1) (thickness 0.15)))
8 | )
9 | (fp_line (start -2 -0.75) (end -2 0.75) (layer F.CrtYd) (width 0.12))
10 | (fp_line (start -2 0.75) (end 2 0.75) (layer F.CrtYd) (width 0.12))
11 | (fp_line (start 2 0.75) (end 2 -0.75) (layer F.CrtYd) (width 0.12))
12 | (fp_line (start 2 -0.75) (end -2 -0.75) (layer F.CrtYd) (width 0.12))
13 | (fp_line (start 1.5 0.25) (end 2 0.75) (layer F.SilkS) (width 0.12))
14 | (fp_line (start -1.5 0.25) (end 1.5 0.25) (layer F.SilkS) (width 0.12))
15 | (fp_line (start -2 0.75) (end -1.5 0.25) (layer F.SilkS) (width 0.12))
16 | (fp_line (start -1 0.75) (end -1 0.25) (layer F.SilkS) (width 0.12))
17 | (fp_line (start 0 0.75) (end 0 0.25) (layer F.SilkS) (width 0.12))
18 | (fp_line (start 1 0.75) (end 1 0.25) (layer F.SilkS) (width 0.12))
19 | (fp_line (start -2 0.75) (end 2 0.75) (layer F.SilkS) (width 0.12))
20 | (pad 4 smd roundrect (at -1.275 -0.75) (size 0.45 1.5) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
21 | (pad 1 smd roundrect (at -0.3 -0.75) (size 0.6 1.5) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
22 | (pad 2 smd roundrect (at 0.575 -0.75) (size 0.35 1.5) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
23 | (pad 3 smd roundrect (at 1.4 -0.75) (size 0.5 1.5) (layers F.Cu F.Paste F.Mask) (roundrect_rratio 0.25))
24 | )
25 |
--------------------------------------------------------------------------------
/project/z2m_partner.pro:
--------------------------------------------------------------------------------
1 | update=2019 November 18, Monday 23:34:21
2 | version=1
3 | last_client=kicad
4 | [general]
5 | version=1
6 | RootSch=
7 | BoardNm=
8 | [cvpcb]
9 | version=1
10 | NetIExt=net
11 | [eeschema]
12 | version=1
13 | LibDir=
14 | [eeschema/libraries]
15 | [schematic_editor]
16 | version=1
17 | PageLayoutDescrFile=
18 | PlotDirectoryName=
19 | SubpartIdSeparator=0
20 | SubpartFirstId=65
21 | NetFmtName=Pcbnew
22 | SpiceAjustPassiveValues=0
23 | LabSize=50
24 | ERC_TestSimilarLabels=1
25 | [pcbnew]
26 | version=1
27 | PageLayoutDescrFile=
28 | LastNetListRead=z2m_partner.net
29 | CopperLayerCount=2
30 | BoardThickness=1.2
31 | AllowMicroVias=0
32 | AllowBlindVias=0
33 | RequireCourtyardDefinitions=0
34 | ProhibitOverlappingCourtyards=0
35 | MinTrackWidth=0.2
36 | MinViaDiameter=0.2
37 | MinViaDrill=0.24
38 | MinMicroViaDiameter=0.2
39 | MinMicroViaDrill=0.09999999999999999
40 | MinHoleToHole=0.25
41 | TrackWidth1=0.25
42 | TrackWidth2=0.2032
43 | TrackWidth3=0.381
44 | TrackWidth4=0.508
45 | ViaDiameter1=0.8
46 | ViaDrill1=0.4
47 | ViaDiameter2=0.4572
48 | ViaDrill2=0.254
49 | dPairWidth1=0.2
50 | dPairGap1=0.25
51 | dPairViaGap1=0.25
52 | SilkLineWidth=0.12
53 | SilkTextSizeV=1
54 | SilkTextSizeH=1
55 | SilkTextSizeThickness=0.15
56 | SilkTextItalic=0
57 | SilkTextUpright=1
58 | CopperLineWidth=0.2
59 | CopperTextSizeV=1.5
60 | CopperTextSizeH=1.5
61 | CopperTextThickness=0.3
62 | CopperTextItalic=0
63 | CopperTextUpright=1
64 | EdgeCutLineWidth=0.05
65 | CourtyardLineWidth=0.05
66 | OthersLineWidth=0.15
67 | OthersTextSizeV=1
68 | OthersTextSizeH=1
69 | OthersTextSizeThickness=0.15
70 | OthersTextItalic=0
71 | OthersTextUpright=1
72 | SolderMaskClearance=0.051
73 | SolderMaskMinWidth=0.25
74 | SolderPasteClearance=0
75 | SolderPasteRatio=-0
76 | [pcbnew/Layer.F.Cu]
77 | Name=F.Cu
78 | Type=0
79 | Enabled=1
80 | [pcbnew/Layer.In1.Cu]
81 | Name=In1.Cu
82 | Type=0
83 | Enabled=0
84 | [pcbnew/Layer.In2.Cu]
85 | Name=In2.Cu
86 | Type=0
87 | Enabled=0
88 | [pcbnew/Layer.In3.Cu]
89 | Name=In3.Cu
90 | Type=0
91 | Enabled=0
92 | [pcbnew/Layer.In4.Cu]
93 | Name=In4.Cu
94 | Type=0
95 | Enabled=0
96 | [pcbnew/Layer.In5.Cu]
97 | Name=In5.Cu
98 | Type=0
99 | Enabled=0
100 | [pcbnew/Layer.In6.Cu]
101 | Name=In6.Cu
102 | Type=0
103 | Enabled=0
104 | [pcbnew/Layer.In7.Cu]
105 | Name=In7.Cu
106 | Type=0
107 | Enabled=0
108 | [pcbnew/Layer.In8.Cu]
109 | Name=In8.Cu
110 | Type=0
111 | Enabled=0
112 | [pcbnew/Layer.In9.Cu]
113 | Name=In9.Cu
114 | Type=0
115 | Enabled=0
116 | [pcbnew/Layer.In10.Cu]
117 | Name=In10.Cu
118 | Type=0
119 | Enabled=0
120 | [pcbnew/Layer.In11.Cu]
121 | Name=In11.Cu
122 | Type=0
123 | Enabled=0
124 | [pcbnew/Layer.In12.Cu]
125 | Name=In12.Cu
126 | Type=0
127 | Enabled=0
128 | [pcbnew/Layer.In13.Cu]
129 | Name=In13.Cu
130 | Type=0
131 | Enabled=0
132 | [pcbnew/Layer.In14.Cu]
133 | Name=In14.Cu
134 | Type=0
135 | Enabled=0
136 | [pcbnew/Layer.In15.Cu]
137 | Name=In15.Cu
138 | Type=0
139 | Enabled=0
140 | [pcbnew/Layer.In16.Cu]
141 | Name=In16.Cu
142 | Type=0
143 | Enabled=0
144 | [pcbnew/Layer.In17.Cu]
145 | Name=In17.Cu
146 | Type=0
147 | Enabled=0
148 | [pcbnew/Layer.In18.Cu]
149 | Name=In18.Cu
150 | Type=0
151 | Enabled=0
152 | [pcbnew/Layer.In19.Cu]
153 | Name=In19.Cu
154 | Type=0
155 | Enabled=0
156 | [pcbnew/Layer.In20.Cu]
157 | Name=In20.Cu
158 | Type=0
159 | Enabled=0
160 | [pcbnew/Layer.In21.Cu]
161 | Name=In21.Cu
162 | Type=0
163 | Enabled=0
164 | [pcbnew/Layer.In22.Cu]
165 | Name=In22.Cu
166 | Type=0
167 | Enabled=0
168 | [pcbnew/Layer.In23.Cu]
169 | Name=In23.Cu
170 | Type=0
171 | Enabled=0
172 | [pcbnew/Layer.In24.Cu]
173 | Name=In24.Cu
174 | Type=0
175 | Enabled=0
176 | [pcbnew/Layer.In25.Cu]
177 | Name=In25.Cu
178 | Type=0
179 | Enabled=0
180 | [pcbnew/Layer.In26.Cu]
181 | Name=In26.Cu
182 | Type=0
183 | Enabled=0
184 | [pcbnew/Layer.In27.Cu]
185 | Name=In27.Cu
186 | Type=0
187 | Enabled=0
188 | [pcbnew/Layer.In28.Cu]
189 | Name=In28.Cu
190 | Type=0
191 | Enabled=0
192 | [pcbnew/Layer.In29.Cu]
193 | Name=In29.Cu
194 | Type=0
195 | Enabled=0
196 | [pcbnew/Layer.In30.Cu]
197 | Name=In30.Cu
198 | Type=0
199 | Enabled=0
200 | [pcbnew/Layer.B.Cu]
201 | Name=B.Cu
202 | Type=0
203 | Enabled=1
204 | [pcbnew/Layer.B.Adhes]
205 | Enabled=1
206 | [pcbnew/Layer.F.Adhes]
207 | Enabled=1
208 | [pcbnew/Layer.B.Paste]
209 | Enabled=1
210 | [pcbnew/Layer.F.Paste]
211 | Enabled=1
212 | [pcbnew/Layer.B.SilkS]
213 | Enabled=1
214 | [pcbnew/Layer.F.SilkS]
215 | Enabled=1
216 | [pcbnew/Layer.B.Mask]
217 | Enabled=1
218 | [pcbnew/Layer.F.Mask]
219 | Enabled=1
220 | [pcbnew/Layer.Dwgs.User]
221 | Enabled=0
222 | [pcbnew/Layer.Cmts.User]
223 | Enabled=0
224 | [pcbnew/Layer.Eco1.User]
225 | Enabled=0
226 | [pcbnew/Layer.Eco2.User]
227 | Enabled=0
228 | [pcbnew/Layer.Edge.Cuts]
229 | Enabled=1
230 | [pcbnew/Layer.Margin]
231 | Enabled=1
232 | [pcbnew/Layer.B.CrtYd]
233 | Enabled=1
234 | [pcbnew/Layer.F.CrtYd]
235 | Enabled=1
236 | [pcbnew/Layer.B.Fab]
237 | Enabled=1
238 | [pcbnew/Layer.F.Fab]
239 | Enabled=1
240 | [pcbnew/Layer.Rescue]
241 | Enabled=0
242 | [pcbnew/Netclasses]
243 | [pcbnew/Netclasses/Default]
244 | Name=Default
245 | Clearance=0.2
246 | TrackWidth=0.25
247 | ViaDiameter=0.8
248 | ViaDrill=0.4
249 | uViaDiameter=0.3
250 | uViaDrill=0.1
251 | dPairWidth=0.2
252 | dPairGap=0.25
253 | dPairViaGap=0.25
254 |
--------------------------------------------------------------------------------
/project/z2m_partner_BOM.csv:
--------------------------------------------------------------------------------
1 | "Comment","Description","Designator","Footprint","LibRef","Pins","Quantity","PartNumber","url",
2 | "100nF","desc","C3,C4,C7,","C_0603_1608Metric_Pad1.05x0.95mm_HandSolder","libref","2","3","","~",
3 | "10uF","desc","C5,C6,","CP_EIA-3528-21_Kemet-B_Pad1.50x2.35mm_HandSolder","libref","2","2","","~",
4 | "MF-MSMF050","desc","F1,","Fuse_1812_4532Metric_Pad1.30x3.40mm_HandSolder","libref","2","1","","~",
5 | "S8050","desc","Q1,Q2,","TSOT-23","libref","3","2","","~",
6 | "5.1k","desc","R1,R2,","R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","libref","2","2","","~",
7 | "10k-NC","desc","R13,","R_0402_1005Metric","libref","2","1","","~",
8 | "10k","desc","R4,R7,R10,R11,R12,R5,R9,R3,","R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","libref","2","8","","~",
9 | "0-NC","desc","R6,R14,","R_0402_1005Metric","libref","2","2","","~",
10 | "0","desc","R8,","R_0402_1005Metric","libref","2","1","","~",
11 | "SW_DIP_x02","desc","SW1,","SW_DIP_SPSTx02_Slide_Copal_CHS-02B_W7.62mm_P1.27mm","libref","4","1","","~",
12 | "SW_Push","desc","SW2,SW3,","SW_SPST_PTS810","libref","4","2","","~",
13 | "CH340C","desc","U1,","SOIC-16_3.9x9.9mm_P1.27mm","libref","16","1","","http://www.datasheet5.com/pdf-local-2195953",
14 | "CD4052B","desc","U2,","SOIC-16_3.9x9.9mm_P1.27mm","libref","16","1","","http://www.ti.com/lit/ds/symlink/cd4052b.pdf",
15 | "E18-MS1PA1-IPX","desc","U3,","E18-MS1PA1-IPX","libref","24","1","","http://www.cdebyte.com/en/downpdf.aspx?id=122",
16 | "74LVC1G66","desc","U4,U5,","SOT-353_SC-70-5_Handsoldering","libref","5","2","","http://www.ti.com/lit/sg/scyt129e/scyt129e.pdf",
17 | "AMS1117-33","desc","U6,","SOT-223-3_TabPin2","libref","4","1","","http://www.diodes.com/datasheets/AP1117.pdf",
18 | "ESP-WROOM-02","desc","U7,","ESP-13-WROOM-02","libref","19","1","","https://www.espressif.com/sites/default/files/documentation/0c-esp-wroom-02_datasheet_en.pdf",
19 | "12MHz-NC","desc","Y1,","Resonator_SMD_muRata_CSTxExxV-3Pin_3.0x1.1mm","libref","3","1","","~",
20 | "100nF","desc","C1,C2,C8,C9,C10,C11,C12,","C_0603_1608Metric_Pad1.05x0.95mm_HandSolder","libref","2","7","","~",
21 | "WS2812B","desc","D1,","LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm","libref","4","1","","https://cdn-shop.adafruit.com/datasheets/WS2812B.pdf",
22 | "D","desc","D2,","D_0603_1608Metric_Pad1.05x0.95mm_HandSolder","libref","2","1","","~",
23 | "SK6812_4020","desc","D3,D4,D5,D6,D7,D8,","SK6812_4020","libref","4","6","","https://cdn-shop.adafruit.com/datasheets/WS2812B.pdf",
24 | "Through Hole Items ",
25 | "Conn_01x05","desc","J1,","PinHeader_1x05_P2.54mm_Vertical","libref","5","1","","~",
26 | "MountingHole_3.2mm_M3_ISO14580","desc","REF**,REF**,","MountingHole_3.2mm_M3_ISO14580","libref","1","2","","",
27 | "HRO-TYPE-C-31-M-12","desc","USB1,","HRO-TYPE-C-31-M-12-HandSoldering","libref","18","1","","",
28 |
--------------------------------------------------------------------------------
/project/z2m_partner_POS.csv:
--------------------------------------------------------------------------------
1 | "Designator","Footprint","Mid X","Mid Y","Ref X","Ref Y","Pad X","Pad Y","Layer","Rotation","Comment",
2 | "C3","C_0603_1608Metric_Pad1.05x0.95mm_HandSolder","4.00548mm","16.19548mm","4.00548mm","16.19548mm","3.386762mm","15.576762mm","T","45","100nF",
3 | "C4","C_0603_1608Metric_Pad1.05x0.95mm_HandSolder","37.75048mm","12.28548mm","37.75048mm","12.28548mm","36.87548mm","12.28548mm","T","0","100nF",
4 | "C5","CP_EIA-3528-21_Kemet-B_Pad1.50x2.35mm_HandSolder","6.30548mm","36.97548mm","6.30548mm","36.97548mm","6.30548mm","35.35048mm","T","90","10uF",
5 | "C6","CP_EIA-3528-21_Kemet-B_Pad1.50x2.35mm_HandSolder","11.69548mm","40.50548mm","11.69548mm","40.50548mm","10.07048mm","40.50548mm","T","0","10uF",
6 | "C7","C_0603_1608Metric_Pad1.05x0.95mm_HandSolder","15.38548mm","39.33548mm","15.38548mm","39.33548mm","15.38548mm","38.46048mm","T","90","100nF",
7 | "F1","Fuse_1812_4532Metric_Pad1.30x3.40mm_HandSolder","4.90548mm","32.13548mm","4.90548mm","32.13548mm","7.13048mm","32.13548mm","T","180","MF-MSMF050",
8 | "Q1","TSOT-23","42.80548mm","22.31548mm","42.80548mm","22.31548mm","41.85548mm","21.00548mm","T","90","S8050",
9 | "Q2","TSOT-23","40.09548mm","17.83548mm","40.09548mm","17.83548mm","39.14548mm","16.52548mm","T","90","S8050",
10 | "R1","R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","10.25548mm","26.86548mm","10.25548mm","26.86548mm","10.874198mm","27.484198mm","T","225","5.1k",
11 | "R10","R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","36.82548mm","10.00048mm","36.82548mm","10.00048mm","36.82548mm","9.12548mm","T","90","10k",
12 | "R11","R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","38.66548mm","10.01048mm","38.66548mm","10.01048mm","38.66548mm","9.13548mm","T","90","10k",
13 | "R12","R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","37.18548mm","15.74548mm","37.18548mm","15.74548mm","37.18548mm","16.62048mm","T","270","10k",
14 | "R13","R_0402_1005Metric","36.39548mm","40.65548mm","36.39548mm","40.65548mm","36.88048mm","40.65548mm","T","180","10k-NC",
15 | "R14","R_0402_1005Metric","34.42548mm","40.66548mm","34.42548mm","40.66548mm","34.91048mm","40.66548mm","T","180","0-NC",
16 | "R2","R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","10.27548mm","22.63048mm","10.27548mm","22.63048mm","10.894198mm","22.011762mm","T","135","5.1k",
17 | "R3","R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","35.80548mm","42.82548mm","35.80548mm","42.82548mm","35.80548mm","43.70048mm","T","270","10k",
18 | "R4","R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","34.43548mm","42.82548mm","34.43548mm","42.82548mm","34.43548mm","43.70048mm","T","270","10k",
19 | "R5","R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","40.48548mm","14.66548mm","40.48548mm","14.66548mm","41.36048mm","14.66548mm","T","180","10k",
20 | "R6","R_0402_1005Metric","37.77548mm","13.62548mm","37.77548mm","13.62548mm","38.26048mm","13.62548mm","T","180","0-NC",
21 | "R7","R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","47.02548mm","22.13548mm","47.02548mm","22.13548mm","47.02548mm","23.01048mm","T","270","10k",
22 | "R8","R_0402_1005Metric","45.75548mm","21.41548mm","45.75548mm","21.41548mm","45.75548mm","20.93048mm","T","90","0",
23 | "R9","R_0603_1608Metric_Pad1.05x0.95mm_HandSolder","42.73048mm","19.48548mm","42.73048mm","19.48548mm","43.60548mm","19.48548mm","T","180","10k",
24 | "SW1","SW_DIP_SPSTx02_Slide_Copal_CHS-02B_W7.62mm_P1.27mm","40.85148mm","40.36248mm","40.85148mm","40.36248mm","43.096544mm","37.21939mm","T","135","SW_DIP_x02",
25 | "SW2","SW_SPST_PTS810","42.75648mm","11.27948mm","42.75648mm","11.27948mm","43.463587mm","13.506866mm","T","45","SW_Push",
26 | "SW3","SW_SPST_PTS810","45.42348mm","17.12148mm","45.42348mm","17.12148mm","46.130587mm","19.348866mm","T","45","SW_Push",
27 | "U1","SOIC-16_3.9x9.9mm_P1.27mm","9.10148mm","12.42248mm","9.10148mm","12.42248mm","13.994659mm","11.02948mm","T","225","CH340C",
28 | "U2","SOIC-16_3.9x9.9mm_P1.27mm","41.43548mm","28.13548mm","41.43548mm","28.13548mm","36.99048mm","25.66048mm","T","90","CD4052B",
29 | "U3","E18-MS1PA1-IPX","17.10248mm","23.88448mm","17.10248mm","23.88448mm","17.10248mm","35.32448mm","T","0","E18-MS1PA1-IPX",
30 | "U4","SOT-353_SC-70-5_Handsoldering","39.49548mm","34.59548mm","39.49548mm","34.59548mm","38.84548mm","33.26548mm","T","90","74LVC1G66",
31 | "U5","SOT-353_SC-70-5_Handsoldering","41.67548mm","34.59548mm","41.67548mm","34.59548mm","41.02548mm","33.26548mm","T","90","74LVC1G66",
32 | "U6","SOT-223-3_TabPin2","11.64148mm","33.75848mm","11.64148mm","33.75848mm","9.34148mm","30.60848mm","T","90","AMS1117-33",
33 | "U7","ESP-13-WROOM-02","34.88248mm","9.12048mm","34.88248mm","9.12048mm","34.88248mm","9.12048mm","T","180","ESP-WROOM-02",
34 | "Y1","Resonator_SMD_muRata_CSTxExxV-3Pin_3.0x1.1mm","9.87548mm","18.60548mm","9.87548mm","18.60548mm","10.724008mm","17.756952mm","T","135","12MHz-NC",
35 | "C1","C_0603_1608Metric_Pad1.05x0.95mm_HandSolder","18.47048mm","24.19548mm","18.47048mm","24.19548mm","17.59548mm","24.19548mm","B","0","100nF",
36 | "C10","C_0603_1608Metric_Pad1.05x0.95mm_HandSolder","33.35548mm","30.26548mm","33.35548mm","30.26548mm","33.79298mm","29.507708mm","B","120","100nF",
37 | "C11","C_0603_1608Metric_Pad1.05x0.95mm_HandSolder","24.97548mm","15.78548mm","24.97548mm","15.78548mm","24.10048mm","15.78548mm","B","0","100nF",
38 | "C12","C_0603_1608Metric_Pad1.05x0.95mm_HandSolder","16.87548mm","28.97548mm","16.87548mm","28.97548mm","17.31298mm","29.733252mm","B","240","100nF",
39 | "C2","C_0603_1608Metric_Pad1.05x0.95mm_HandSolder","25.06048mm","34.36548mm","25.06048mm","34.36548mm","25.93548mm","34.36548mm","B","180","100nF",
40 | "C8","C_0603_1608Metric_Pad1.05x0.95mm_HandSolder","17.75148mm","20.55048mm","17.75148mm","20.55048mm","17.31398mm","21.308252mm","B","300","100nF",
41 | "C9","C_0603_1608Metric_Pad1.05x0.95mm_HandSolder","32.46948mm","20.42348mm","32.46948mm","20.42348mm","32.03198mm","19.665708mm","B","60","100nF",
42 | "D1","LED_WS2812B_PLCC4_5.0x5.0mm_P3.2mm","24.99548mm","24.99548mm","24.99548mm","24.99548mm","22.54548mm","23.39548mm","B","0","WS2812B",
43 | "D2","D_0603_1608Metric_Pad1.05x0.95mm_HandSolder","20.76548mm","25.06548mm","20.76548mm","25.06548mm","20.76548mm","24.19048mm","B","90","D",
44 | "D3","SK6812_4020","24.99548mm","37.99548mm","24.99548mm","37.99548mm","24.69548mm","37.24548mm","B","0","SK6812_4020",
45 | "D4","SK6812_4020","36.24548mm","18.47548mm","36.24548mm","18.47548mm","35.745961mm","19.110288mm","B","240","SK6812_4020",
46 | "D5","SK6812_4020","13.74548mm","18.48548mm","13.74548mm","18.48548mm","14.544999mm","18.600672mm","B","120","SK6812_4020",
47 | "D6","SK6812_4020","13.45548mm","30.75548mm","13.45548mm","30.75548mm","13.954999mm","30.120672mm","B","60","SK6812_4020",
48 | "D7","SK6812_4020","36.55548mm","32.21548mm","36.55548mm","32.21548mm","35.755961mm","32.100288mm","B","300","SK6812_4020",
49 | "D8","SK6812_4020","24.97548mm","11.99548mm","24.97548mm","11.99548mm","25.27548mm","12.74548mm","B","180","SK6812_4020",
50 | "Through Hole Items ",
51 | "J1","PinHeader_1x05_P2.54mm_Vertical","19.89548mm","47.96548mm","19.89548mm","47.96548mm","19.89548mm","47.96548mm","T","90","Conn_01x05",
52 | "REF**","MountingHole_3.2mm_M3_ISO14580","36.52548mm","37.50548mm","36.52548mm","37.50548mm","36.52548mm","37.50548mm","T","0","MountingHole_3.2mm_M3_ISO14580",
53 | "REF**","MountingHole_3.2mm_M3_ISO14580","13.54548mm","24.98548mm","13.54548mm","24.98548mm","13.54548mm","24.98548mm","T","0","MountingHole_3.2mm_M3_ISO14580",
54 | "USB1","HRO-TYPE-C-31-M-12-HandSoldering","-0.80452mm","24.99548mm","-0.80452mm","24.99548mm","7.39048mm","28.22048mm","T","270","HRO-TYPE-C-31-M-12",
55 |
--------------------------------------------------------------------------------
/sponsor.md:
--------------------------------------------------------------------------------
1 | # Thanks to everyone who loves this project
2 |
3 | # 感谢每一个喜欢这个项目的人
4 |
5 | - li***36 6.66¥
6 |
--------------------------------------------------------------------------------