├── LICENSE ├── README.md ├── YATPGPSDO ├── README.md ├── YATPGPSDO.ino ├── tp_button.ino ├── tp_display.ino ├── tp_gpsdo.h └── tp_message.ino └── hardware ├── GPSDO-backups ├── GPSDO-2022-03-15_232258.zip ├── GPSDO-2022-03-28_073945.zip └── GPSDO-2022-04-09_113002.zip ├── GPSDO-cache.lib ├── GPSDO.kicad_pcb ├── GPSDO.kicad_prl ├── GPSDO.kicad_pro ├── GPSDO.pro ├── GPSDO.sch ├── Gerbers ├── GPSDO-B_Cu.gbr ├── GPSDO-B_Mask.gbr ├── GPSDO-B_Silkscreen.gbr ├── GPSDO-Edge_Cuts.gbr ├── GPSDO-F_Cu.gbr ├── GPSDO-F_Mask.gbr ├── GPSDO-F_Silkscreen.gbr ├── GPSDO-NPTH.drl ├── GPSDO-PTH.drl └── GPSDO-job.gbrjob ├── README.md └── fp-info-cache /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 3, 29 June 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | Preamble 9 | 10 | The GNU General Public License is a free, copyleft license for 11 | software and other kinds of works. 12 | 13 | The licenses for most software and other practical works are designed 14 | to take away your freedom to share and change the works. By contrast, 15 | the GNU General Public License is intended to guarantee your freedom to 16 | share and change all versions of a program--to make sure it remains free 17 | software for all its users. We, the Free Software Foundation, use the 18 | GNU General Public License for most of our software; it applies also to 19 | any other work released this way by its authors. You can apply it to 20 | your programs, too. 21 | 22 | When we speak of free software, we are referring to freedom, not 23 | price. Our General Public Licenses are designed to make sure that you 24 | have the freedom to distribute copies of free software (and charge for 25 | them if you wish), that you receive source code or can get it if you 26 | want it, that you can change the software or use pieces of it in new 27 | free programs, and that you know you can do these things. 28 | 29 | To protect your rights, we need to prevent others from denying you 30 | these rights or asking you to surrender the rights. Therefore, you have 31 | certain responsibilities if you distribute copies of the software, or if 32 | you modify it: responsibilities to respect the freedom of others. 33 | 34 | For example, if you distribute copies of such a program, whether 35 | gratis or for a fee, you must pass on to the recipients the same 36 | freedoms that you received. You must make sure that they, too, receive 37 | or can get the source code. And you must show them these terms so they 38 | know their rights. 39 | 40 | Developers that use the GNU GPL protect your rights with two steps: 41 | (1) assert copyright on the software, and (2) offer you this License 42 | giving you legal permission to copy, distribute and/or modify it. 43 | 44 | For the developers' and authors' protection, the GPL clearly explains 45 | that there is no warranty for this free software. For both users' and 46 | authors' sake, the GPL requires that modified versions be marked as 47 | changed, so that their problems will not be attributed erroneously to 48 | authors of previous versions. 49 | 50 | Some devices are designed to deny users access to install or run 51 | modified versions of the software inside them, although the manufacturer 52 | can do so. This is fundamentally incompatible with the aim of 53 | protecting users' freedom to change the software. The systematic 54 | pattern of such abuse occurs in the area of products for individuals to 55 | use, which is precisely where it is most unacceptable. Therefore, we 56 | have designed this version of the GPL to prohibit the practice for those 57 | products. If such problems arise substantially in other domains, we 58 | stand ready to extend this provision to those domains in future versions 59 | of the GPL, as needed to protect the freedom of users. 60 | 61 | Finally, every program is threatened constantly by software patents. 62 | States should not allow patents to restrict development and use of 63 | software on general-purpose computers, but in those that do, we wish to 64 | avoid the special danger that patents applied to a free program could 65 | make it effectively proprietary. To prevent this, the GPL assures that 66 | patents cannot be used to render the program non-free. 67 | 68 | The precise terms and conditions for copying, distribution and 69 | modification follow. 70 | 71 | TERMS AND CONDITIONS 72 | 73 | 0. Definitions. 74 | 75 | "This License" refers to version 3 of the GNU General Public License. 76 | 77 | "Copyright" also means copyright-like laws that apply to other kinds of 78 | works, such as semiconductor masks. 79 | 80 | "The Program" refers to any copyrightable work licensed under this 81 | License. Each licensee is addressed as "you". "Licensees" and 82 | "recipients" may be individuals or organizations. 83 | 84 | To "modify" a work means to copy from or adapt all or part of the work 85 | in a fashion requiring copyright permission, other than the making of an 86 | exact copy. The resulting work is called a "modified version" of the 87 | earlier work or a work "based on" the earlier work. 88 | 89 | A "covered work" means either the unmodified Program or a work based 90 | on the Program. 91 | 92 | To "propagate" a work means to do anything with it that, without 93 | permission, would make you directly or secondarily liable for 94 | infringement under applicable copyright law, except executing it on a 95 | computer or modifying a private copy. Propagation includes copying, 96 | distribution (with or without modification), making available to the 97 | public, and in some countries other activities as well. 98 | 99 | To "convey" a work means any kind of propagation that enables other 100 | parties to make or receive copies. Mere interaction with a user through 101 | a computer network, with no transfer of a copy, is not conveying. 102 | 103 | An interactive user interface displays "Appropriate Legal Notices" 104 | to the extent that it includes a convenient and prominently visible 105 | feature that (1) displays an appropriate copyright notice, and (2) 106 | tells the user that there is no warranty for the work (except to the 107 | extent that warranties are provided), that licensees may convey the 108 | work under this License, and how to view a copy of this License. If 109 | the interface presents a list of user commands or options, such as a 110 | menu, a prominent item in the list meets this criterion. 111 | 112 | 1. Source Code. 113 | 114 | The "source code" for a work means the preferred form of the work 115 | for making modifications to it. "Object code" means any non-source 116 | form of a work. 117 | 118 | A "Standard Interface" means an interface that either is an official 119 | standard defined by a recognized standards body, or, in the case of 120 | interfaces specified for a particular programming language, one that 121 | is widely used among developers working in that language. 122 | 123 | The "System Libraries" of an executable work include anything, other 124 | than the work as a whole, that (a) is included in the normal form of 125 | packaging a Major Component, but which is not part of that Major 126 | Component, and (b) serves only to enable use of the work with that 127 | Major Component, or to implement a Standard Interface for which an 128 | implementation is available to the public in source code form. A 129 | "Major Component", in this context, means a major essential component 130 | (kernel, window system, and so on) of the specific operating system 131 | (if any) on which the executable work runs, or a compiler used to 132 | produce the work, or an object code interpreter used to run it. 133 | 134 | The "Corresponding Source" for a work in object code form means all 135 | the source code needed to generate, install, and (for an executable 136 | work) run the object code and to modify the work, including scripts to 137 | control those activities. However, it does not include the work's 138 | System Libraries, or general-purpose tools or generally available free 139 | programs which are used unmodified in performing those activities but 140 | which are not part of the work. For example, Corresponding Source 141 | includes interface definition files associated with source files for 142 | the work, and the source code for shared libraries and dynamically 143 | linked subprograms that the work is specifically designed to require, 144 | such as by intimate data communication or control flow between those 145 | subprograms and other parts of the work. 146 | 147 | The Corresponding Source need not include anything that users 148 | can regenerate automatically from other parts of the Corresponding 149 | Source. 150 | 151 | The Corresponding Source for a work in source code form is that 152 | same work. 153 | 154 | 2. Basic Permissions. 155 | 156 | All rights granted under this License are granted for the term of 157 | copyright on the Program, and are irrevocable provided the stated 158 | conditions are met. This License explicitly affirms your unlimited 159 | permission to run the unmodified Program. The output from running a 160 | covered work is covered by this License only if the output, given its 161 | content, constitutes a covered work. This License acknowledges your 162 | rights of fair use or other equivalent, as provided by copyright law. 163 | 164 | You may make, run and propagate covered works that you do not 165 | convey, without conditions so long as your license otherwise remains 166 | in force. You may convey covered works to others for the sole purpose 167 | of having them make modifications exclusively for you, or provide you 168 | with facilities for running those works, provided that you comply with 169 | the terms of this License in conveying all material for which you do 170 | not control copyright. Those thus making or running the covered works 171 | for you must do so exclusively on your behalf, under your direction 172 | and control, on terms that prohibit them from making any copies of 173 | your copyrighted material outside their relationship with you. 174 | 175 | Conveying under any other circumstances is permitted solely under 176 | the conditions stated below. Sublicensing is not allowed; section 10 177 | makes it unnecessary. 178 | 179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 180 | 181 | No covered work shall be deemed part of an effective technological 182 | measure under any applicable law fulfilling obligations under article 183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or 184 | similar laws prohibiting or restricting circumvention of such 185 | measures. 186 | 187 | When you convey a covered work, you waive any legal power to forbid 188 | circumvention of technological measures to the extent such circumvention 189 | is effected by exercising rights under this License with respect to 190 | the covered work, and you disclaim any intention to limit operation or 191 | modification of the work as a means of enforcing, against the work's 192 | users, your or third parties' legal rights to forbid circumvention of 193 | technological measures. 194 | 195 | 4. Conveying Verbatim Copies. 196 | 197 | You may convey verbatim copies of the Program's source code as you 198 | receive it, in any medium, provided that you conspicuously and 199 | appropriately publish on each copy an appropriate copyright notice; 200 | keep intact all notices stating that this License and any 201 | non-permissive terms added in accord with section 7 apply to the code; 202 | keep intact all notices of the absence of any warranty; and give all 203 | recipients a copy of this License along with the Program. 204 | 205 | You may charge any price or no price for each copy that you convey, 206 | and you may offer support or warranty protection for a fee. 207 | 208 | 5. Conveying Modified Source Versions. 209 | 210 | You may convey a work based on the Program, or the modifications to 211 | produce it from the Program, in the form of source code under the 212 | terms of section 4, provided that you also meet all of these conditions: 213 | 214 | a) The work must carry prominent notices stating that you modified 215 | it, and giving a relevant date. 216 | 217 | b) The work must carry prominent notices stating that it is 218 | released under this License and any conditions added under section 219 | 7. This requirement modifies the requirement in section 4 to 220 | "keep intact all notices". 221 | 222 | c) You must license the entire work, as a whole, under this 223 | License to anyone who comes into possession of a copy. This 224 | License will therefore apply, along with any applicable section 7 225 | additional terms, to the whole of the work, and all its parts, 226 | regardless of how they are packaged. This License gives no 227 | permission to license the work in any other way, but it does not 228 | invalidate such permission if you have separately received it. 229 | 230 | d) If the work has interactive user interfaces, each must display 231 | Appropriate Legal Notices; however, if the Program has interactive 232 | interfaces that do not display Appropriate Legal Notices, your 233 | work need not make them do so. 234 | 235 | A compilation of a covered work with other separate and independent 236 | works, which are not by their nature extensions of the covered work, 237 | and which are not combined with it such as to form a larger program, 238 | in or on a volume of a storage or distribution medium, is called an 239 | "aggregate" if the compilation and its resulting copyright are not 240 | used to limit the access or legal rights of the compilation's users 241 | beyond what the individual works permit. Inclusion of a covered work 242 | in an aggregate does not cause this License to apply to the other 243 | parts of the aggregate. 244 | 245 | 6. Conveying Non-Source Forms. 246 | 247 | You may convey a covered work in object code form under the terms 248 | of sections 4 and 5, provided that you also convey the 249 | machine-readable Corresponding Source under the terms of this License, 250 | in one of these ways: 251 | 252 | a) Convey the object code in, or embodied in, a physical product 253 | (including a physical distribution medium), accompanied by the 254 | Corresponding Source fixed on a durable physical medium 255 | customarily used for software interchange. 256 | 257 | b) Convey the object code in, or embodied in, a physical product 258 | (including a physical distribution medium), accompanied by a 259 | written offer, valid for at least three years and valid for as 260 | long as you offer spare parts or customer support for that product 261 | model, to give anyone who possesses the object code either (1) a 262 | copy of the Corresponding Source for all the software in the 263 | product that is covered by this License, on a durable physical 264 | medium customarily used for software interchange, for a price no 265 | more than your reasonable cost of physically performing this 266 | conveying of source, or (2) access to copy the 267 | Corresponding Source from a network server at no charge. 268 | 269 | c) Convey individual copies of the object code with a copy of the 270 | written offer to provide the Corresponding Source. This 271 | alternative is allowed only occasionally and noncommercially, and 272 | only if you received the object code with such an offer, in accord 273 | with subsection 6b. 274 | 275 | d) Convey the object code by offering access from a designated 276 | place (gratis or for a charge), and offer equivalent access to the 277 | Corresponding Source in the same way through the same place at no 278 | further charge. You need not require recipients to copy the 279 | Corresponding Source along with the object code. If the place to 280 | copy the object code is a network server, the Corresponding Source 281 | may be on a different server (operated by you or a third party) 282 | that supports equivalent copying facilities, provided you maintain 283 | clear directions next to the object code saying where to find the 284 | Corresponding Source. Regardless of what server hosts the 285 | Corresponding Source, you remain obligated to ensure that it is 286 | available for as long as needed to satisfy these requirements. 287 | 288 | e) Convey the object code using peer-to-peer transmission, provided 289 | you inform other peers where the object code and Corresponding 290 | Source of the work are being offered to the general public at no 291 | charge under subsection 6d. 292 | 293 | A separable portion of the object code, whose source code is excluded 294 | from the Corresponding Source as a System Library, need not be 295 | included in conveying the object code work. 296 | 297 | A "User Product" is either (1) a "consumer product", which means any 298 | tangible personal property which is normally used for personal, family, 299 | or household purposes, or (2) anything designed or sold for incorporation 300 | into a dwelling. In determining whether a product is a consumer product, 301 | doubtful cases shall be resolved in favor of coverage. For a particular 302 | product received by a particular user, "normally used" refers to a 303 | typical or common use of that class of product, regardless of the status 304 | of the particular user or of the way in which the particular user 305 | actually uses, or expects or is expected to use, the product. A product 306 | is a consumer product regardless of whether the product has substantial 307 | commercial, industrial or non-consumer uses, unless such uses represent 308 | the only significant mode of use of the product. 309 | 310 | "Installation Information" for a User Product means any methods, 311 | procedures, authorization keys, or other information required to install 312 | and execute modified versions of a covered work in that User Product from 313 | a modified version of its Corresponding Source. The information must 314 | suffice to ensure that the continued functioning of the modified object 315 | code is in no case prevented or interfered with solely because 316 | modification has been made. 317 | 318 | If you convey an object code work under this section in, or with, or 319 | specifically for use in, a User Product, and the conveying occurs as 320 | part of a transaction in which the right of possession and use of the 321 | User Product is transferred to the recipient in perpetuity or for a 322 | fixed term (regardless of how the transaction is characterized), the 323 | Corresponding Source conveyed under this section must be accompanied 324 | by the Installation Information. But this requirement does not apply 325 | if neither you nor any third party retains the ability to install 326 | modified object code on the User Product (for example, the work has 327 | been installed in ROM). 328 | 329 | The requirement to provide Installation Information does not include a 330 | requirement to continue to provide support service, warranty, or updates 331 | for a work that has been modified or installed by the recipient, or for 332 | the User Product in which it has been modified or installed. Access to a 333 | network may be denied when the modification itself materially and 334 | adversely affects the operation of the network or violates the rules and 335 | protocols for communication across the network. 336 | 337 | Corresponding Source conveyed, and Installation Information provided, 338 | in accord with this section must be in a format that is publicly 339 | documented (and with an implementation available to the public in 340 | source code form), and must require no special password or key for 341 | unpacking, reading or copying. 342 | 343 | 7. Additional Terms. 344 | 345 | "Additional permissions" are terms that supplement the terms of this 346 | License by making exceptions from one or more of its conditions. 347 | Additional permissions that are applicable to the entire Program shall 348 | be treated as though they were included in this License, to the extent 349 | that they are valid under applicable law. If additional permissions 350 | apply only to part of the Program, that part may be used separately 351 | under those permissions, but the entire Program remains governed by 352 | this License without regard to the additional permissions. 353 | 354 | When you convey a copy of a covered work, you may at your option 355 | remove any additional permissions from that copy, or from any part of 356 | it. (Additional permissions may be written to require their own 357 | removal in certain cases when you modify the work.) You may place 358 | additional permissions on material, added by you to a covered work, 359 | for which you have or can give appropriate copyright permission. 360 | 361 | Notwithstanding any other provision of this License, for material you 362 | add to a covered work, you may (if authorized by the copyright holders of 363 | that material) supplement the terms of this License with terms: 364 | 365 | a) Disclaiming warranty or limiting liability differently from the 366 | terms of sections 15 and 16 of this License; or 367 | 368 | b) Requiring preservation of specified reasonable legal notices or 369 | author attributions in that material or in the Appropriate Legal 370 | Notices displayed by works containing it; or 371 | 372 | c) Prohibiting misrepresentation of the origin of that material, or 373 | requiring that modified versions of such material be marked in 374 | reasonable ways as different from the original version; or 375 | 376 | d) Limiting the use for publicity purposes of names of licensors or 377 | authors of the material; or 378 | 379 | e) Declining to grant rights under trademark law for use of some 380 | trade names, trademarks, or service marks; or 381 | 382 | f) Requiring indemnification of licensors and authors of that 383 | material by anyone who conveys the material (or modified versions of 384 | it) with contractual assumptions of liability to the recipient, for 385 | any liability that these contractual assumptions directly impose on 386 | those licensors and authors. 387 | 388 | All other non-permissive additional terms are considered "further 389 | restrictions" within the meaning of section 10. If the Program as you 390 | received it, or any part of it, contains a notice stating that it is 391 | governed by this License along with a term that is a further 392 | restriction, you may remove that term. If a license document contains 393 | a further restriction but permits relicensing or conveying under this 394 | License, you may add to a covered work material governed by the terms 395 | of that license document, provided that the further restriction does 396 | not survive such relicensing or conveying. 397 | 398 | If you add terms to a covered work in accord with this section, you 399 | must place, in the relevant source files, a statement of the 400 | additional terms that apply to those files, or a notice indicating 401 | where to find the applicable terms. 402 | 403 | Additional terms, permissive or non-permissive, may be stated in the 404 | form of a separately written license, or stated as exceptions; 405 | the above requirements apply either way. 406 | 407 | 8. Termination. 408 | 409 | You may not propagate or modify a covered work except as expressly 410 | provided under this License. Any attempt otherwise to propagate or 411 | modify it is void, and will automatically terminate your rights under 412 | this License (including any patent licenses granted under the third 413 | paragraph of section 11). 414 | 415 | However, if you cease all violation of this License, then your 416 | license from a particular copyright holder is reinstated (a) 417 | provisionally, unless and until the copyright holder explicitly and 418 | finally terminates your license, and (b) permanently, if the copyright 419 | holder fails to notify you of the violation by some reasonable means 420 | prior to 60 days after the cessation. 421 | 422 | Moreover, your license from a particular copyright holder is 423 | reinstated permanently if the copyright holder notifies you of the 424 | violation by some reasonable means, this is the first time you have 425 | received notice of violation of this License (for any work) from that 426 | copyright holder, and you cure the violation prior to 30 days after 427 | your receipt of the notice. 428 | 429 | Termination of your rights under this section does not terminate the 430 | licenses of parties who have received copies or rights from you under 431 | this License. If your rights have been terminated and not permanently 432 | reinstated, you do not qualify to receive new licenses for the same 433 | material under section 10. 434 | 435 | 9. Acceptance Not Required for Having Copies. 436 | 437 | You are not required to accept this License in order to receive or 438 | run a copy of the Program. Ancillary propagation of a covered work 439 | occurring solely as a consequence of using peer-to-peer transmission 440 | to receive a copy likewise does not require acceptance. However, 441 | nothing other than this License grants you permission to propagate or 442 | modify any covered work. These actions infringe copyright if you do 443 | not accept this License. Therefore, by modifying or propagating a 444 | covered work, you indicate your acceptance of this License to do so. 445 | 446 | 10. Automatic Licensing of Downstream Recipients. 447 | 448 | Each time you convey a covered work, the recipient automatically 449 | receives a license from the original licensors, to run, modify and 450 | propagate that work, subject to this License. You are not responsible 451 | for enforcing compliance by third parties with this License. 452 | 453 | An "entity transaction" is a transaction transferring control of an 454 | organization, or substantially all assets of one, or subdividing an 455 | organization, or merging organizations. If propagation of a covered 456 | work results from an entity transaction, each party to that 457 | transaction who receives a copy of the work also receives whatever 458 | licenses to the work the party's predecessor in interest had or could 459 | give under the previous paragraph, plus a right to possession of the 460 | Corresponding Source of the work from the predecessor in interest, if 461 | the predecessor has it or can get it with reasonable efforts. 462 | 463 | You may not impose any further restrictions on the exercise of the 464 | rights granted or affirmed under this License. For example, you may 465 | not impose a license fee, royalty, or other charge for exercise of 466 | rights granted under this License, and you may not initiate litigation 467 | (including a cross-claim or counterclaim in a lawsuit) alleging that 468 | any patent claim is infringed by making, using, selling, offering for 469 | sale, or importing the Program or any portion of it. 470 | 471 | 11. Patents. 472 | 473 | A "contributor" is a copyright holder who authorizes use under this 474 | License of the Program or a work on which the Program is based. The 475 | work thus licensed is called the contributor's "contributor version". 476 | 477 | A contributor's "essential patent claims" are all patent claims 478 | owned or controlled by the contributor, whether already acquired or 479 | hereafter acquired, that would be infringed by some manner, permitted 480 | by this License, of making, using, or selling its contributor version, 481 | but do not include claims that would be infringed only as a 482 | consequence of further modification of the contributor version. For 483 | purposes of this definition, "control" includes the right to grant 484 | patent sublicenses in a manner consistent with the requirements of 485 | this License. 486 | 487 | Each contributor grants you a non-exclusive, worldwide, royalty-free 488 | patent license under the contributor's essential patent claims, to 489 | make, use, sell, offer for sale, import and otherwise run, modify and 490 | propagate the contents of its contributor version. 491 | 492 | In the following three paragraphs, a "patent license" is any express 493 | agreement or commitment, however denominated, not to enforce a patent 494 | (such as an express permission to practice a patent or covenant not to 495 | sue for patent infringement). To "grant" such a patent license to a 496 | party means to make such an agreement or commitment not to enforce a 497 | patent against the party. 498 | 499 | If you convey a covered work, knowingly relying on a patent license, 500 | and the Corresponding Source of the work is not available for anyone 501 | to copy, free of charge and under the terms of this License, through a 502 | publicly available network server or other readily accessible means, 503 | then you must either (1) cause the Corresponding Source to be so 504 | available, or (2) arrange to deprive yourself of the benefit of the 505 | patent license for this particular work, or (3) arrange, in a manner 506 | consistent with the requirements of this License, to extend the patent 507 | license to downstream recipients. "Knowingly relying" means you have 508 | actual knowledge that, but for the patent license, your conveying the 509 | covered work in a country, or your recipient's use of the covered work 510 | in a country, would infringe one or more identifiable patents in that 511 | country that you have reason to believe are valid. 512 | 513 | If, pursuant to or in connection with a single transaction or 514 | arrangement, you convey, or propagate by procuring conveyance of, a 515 | covered work, and grant a patent license to some of the parties 516 | receiving the covered work authorizing them to use, propagate, modify 517 | or convey a specific copy of the covered work, then the patent license 518 | you grant is automatically extended to all recipients of the covered 519 | work and works based on it. 520 | 521 | A patent license is "discriminatory" if it does not include within 522 | the scope of its coverage, prohibits the exercise of, or is 523 | conditioned on the non-exercise of one or more of the rights that are 524 | specifically granted under this License. You may not convey a covered 525 | work if you are a party to an arrangement with a third party that is 526 | in the business of distributing software, under which you make payment 527 | to the third party based on the extent of your activity of conveying 528 | the work, and under which the third party grants, to any of the 529 | parties who would receive the covered work from you, a discriminatory 530 | patent license (a) in connection with copies of the covered work 531 | conveyed by you (or copies made from those copies), or (b) primarily 532 | for and in connection with specific products or compilations that 533 | contain the covered work, unless you entered into that arrangement, 534 | or that patent license was granted, prior to 28 March 2007. 535 | 536 | Nothing in this License shall be construed as excluding or limiting 537 | any implied license or other defenses to infringement that may 538 | otherwise be available to you under applicable patent law. 539 | 540 | 12. No Surrender of Others' Freedom. 541 | 542 | If conditions are imposed on you (whether by court order, agreement or 543 | otherwise) that contradict the conditions of this License, they do not 544 | excuse you from the conditions of this License. If you cannot convey a 545 | covered work so as to satisfy simultaneously your obligations under this 546 | License and any other pertinent obligations, then as a consequence you may 547 | not convey it at all. For example, if you agree to terms that obligate you 548 | to collect a royalty for further conveying from those to whom you convey 549 | the Program, the only way you could satisfy both those terms and this 550 | License would be to refrain entirely from conveying the Program. 551 | 552 | 13. Use with the GNU Affero General Public License. 553 | 554 | Notwithstanding any other provision of this License, you have 555 | permission to link or combine any covered work with a work licensed 556 | under version 3 of the GNU Affero General Public License into a single 557 | combined work, and to convey the resulting work. The terms of this 558 | License will continue to apply to the part which is the covered work, 559 | but the special requirements of the GNU Affero General Public License, 560 | section 13, concerning interaction through a network will apply to the 561 | combination as such. 562 | 563 | 14. Revised Versions of this License. 564 | 565 | The Free Software Foundation may publish revised and/or new versions of 566 | the GNU General Public License from time to time. Such new versions will 567 | be similar in spirit to the present version, but may differ in detail to 568 | address new problems or concerns. 569 | 570 | Each version is given a distinguishing version number. If the 571 | Program specifies that a certain numbered version of the GNU General 572 | Public License "or any later version" applies to it, you have the 573 | option of following the terms and conditions either of that numbered 574 | version or of any later version published by the Free Software 575 | Foundation. If the Program does not specify a version number of the 576 | GNU General Public License, you may choose any version ever published 577 | by the Free Software Foundation. 578 | 579 | If the Program specifies that a proxy can decide which future 580 | versions of the GNU General Public License can be used, that proxy's 581 | public statement of acceptance of a version permanently authorizes you 582 | to choose that version for the Program. 583 | 584 | Later license versions may give you additional or different 585 | permissions. However, no additional obligations are imposed on any 586 | author or copyright holder as a result of your choosing to follow a 587 | later version. 588 | 589 | 15. Disclaimer of Warranty. 590 | 591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 599 | 600 | 16. Limitation of Liability. 601 | 602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 610 | SUCH DAMAGES. 611 | 612 | 17. Interpretation of Sections 15 and 16. 613 | 614 | If the disclaimer of warranty and limitation of liability provided 615 | above cannot be given local legal effect according to their terms, 616 | reviewing courts shall apply local law that most closely approximates 617 | an absolute waiver of all civil liability in connection with the 618 | Program, unless a warranty or assumption of liability accompanies a 619 | copy of the Program in return for a fee. 620 | 621 | END OF TERMS AND CONDITIONS 622 | 623 | How to Apply These Terms to Your New Programs 624 | 625 | If you develop a new program, and you want it to be of the greatest 626 | possible use to the public, the best way to achieve this is to make it 627 | free software which everyone can redistribute and change under these terms. 628 | 629 | To do so, attach the following notices to the program. It is safest 630 | to attach them to the start of each source file to most effectively 631 | state the exclusion of warranty; and each file should have at least 632 | the "copyright" line and a pointer to where the full notice is found. 633 | 634 | 635 | Copyright (C) 636 | 637 | This program is free software: you can redistribute it and/or modify 638 | it under the terms of the GNU General Public License as published by 639 | the Free Software Foundation, either version 3 of the License, or 640 | (at your option) any later version. 641 | 642 | This program is distributed in the hope that it will be useful, 643 | but WITHOUT ANY WARRANTY; without even the implied warranty of 644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 645 | GNU General Public License for more details. 646 | 647 | You should have received a copy of the GNU General Public License 648 | along with this program. If not, see . 649 | 650 | Also add information on how to contact you by electronic and paper mail. 651 | 652 | If the program does terminal interaction, make it output a short 653 | notice like this when it starts in an interactive mode: 654 | 655 | Copyright (C) 656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 657 | This is free software, and you are welcome to redistribute it 658 | under certain conditions; type `show c' for details. 659 | 660 | The hypothetical commands `show w' and `show c' should show the appropriate 661 | parts of the General Public License. Of course, your program's commands 662 | might be different; for a GUI interface, you would use an "about box". 663 | 664 | You should also get your employer (if you work as a programmer) or school, 665 | if any, to sign a "copyright disclaimer" for the program, if necessary. 666 | For more information on this, and how to apply and follow the GNU GPL, see 667 | . 668 | 669 | The GNU General Public License does not permit incorporating your program 670 | into proprietary programs. If your program is a subroutine library, you 671 | may consider it more useful to permit linking proprietary applications with 672 | the library. If this is what you want to do, use the GNU Lesser General 673 | Public License instead of this License. But first, please read 674 | . 675 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # YATPGPSDO 2 | ## Yet Another TruePosition GPSDO 3 | 4 | This is a hardware and the corresponding firmware implemented on an STM32 BluePill board that drives a TruePosition 5 | GPS Disciplined Oscillator board to provide frequency reference. 6 | 7 | For details see [my blog](https://diysquared.blogspot.com/2021/02/yatg-yet-another-trueposition-gpsdo.html). 8 | -------------------------------------------------------------------------------- /YATPGPSDO/README.md: -------------------------------------------------------------------------------- 1 | # Source for YATPGPSDO 2 | ## Yet Another TruePosition GPSDO 3 | Arduino ide source code 4 | Compile with 'Genetric STM32F103C Series' device under Arduino. 5 | -------------------------------------------------------------------------------- /YATPGPSDO/YATPGPSDO.ino: -------------------------------------------------------------------------------- 1 | /* 2 | (c) Copyright Szabolcs Szigeti 2020-2021 3 | 4 | Redistribution under GPL V3. See the LICENSE file for details. 5 | 6 | 7 | Board: Generic STM32F103C series 8 | Display: 128x64 ST7920 based bitmap display in serial mode, connected to hw spi 9 | 10 | Additional libraries: Time and U8G2 11 | 12 | */ 13 | /* 14 | Main program for the TruePosition GPSDO 15 | */ 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | #include 22 | 23 | #include "TP_GPSDO.h" 24 | 25 | struct CLOCK gpsdoClock; // Clock related data 26 | struct STATUS gpsdoStatus; // Everything about the status of the GPSDO 27 | struct SATS gpsdoSats[NUMSAT]; // Data on the tracked satellites 28 | struct ALERTS gpsdoAlerts; // Alerts 29 | struct CONFIG gpsdoConfig; // Configuration settings 30 | 31 | char GPSmsg[MSGMAX]; // Buffer for TruePosition messages 32 | 33 | bool refresh = false; // Do we need to redraw the display? 34 | 35 | unsigned long lastMsgTime, periodicMsgTime, blinkTime, backlTime; // Timers for messages, blinking and backlight 36 | unsigned long popupTimer; // Timer for the popup message box; 37 | unsigned long lastBtnModeTime, lastBtnSelTime, btnPress; // Timers for the buttons 38 | int lastBtnMode = 1, lastBtnSel = 1; // Button state for the Mode and Select buttons 39 | enum DisplayModes displayMode = STATUS; // Current display mode 40 | enum MenuModes menuMode = SETSURVEY; // Current menu mode 41 | bool heartBeat = false; // Heartbeat led 42 | bool initPPSDBG = false; // PPSDBG command sent at init 43 | bool inAlert = false; // Is there any alert? 44 | bool blink; // The global blink used for any kind of blinking 45 | bool popupShown = false; // Is there any popup displayed? 46 | 47 | void setup() { 48 | 49 | Serial2.begin(GPSDO_BAUD); // GPSDO is on Serial 2. It is always 9600 baud. 50 | 51 | /* 52 | Set up button inputs with pull-up 53 | */ 54 | pinMode(BTN_MODE, INPUT_PULLUP); 55 | pinMode(BTN_SEL, INPUT_PULLUP); 56 | /* 57 | Setup LEDs for output 58 | */ 59 | pinMode(LED_ONBOARD, OUTPUT); 60 | pinMode(LED_HOLDOVER, OUTPUT); 61 | pinMode(LED_LOCK, OUTPUT); 62 | pinMode(LED_ALARM, OUTPUT); 63 | pinMode(LED_BACKLIGHT, OUTPUT); 64 | 65 | digitalWrite(LED_HOLDOVER, HIGH); 66 | digitalWrite(LED_LOCK, HIGH); 67 | digitalWrite(LED_ALARM, HIGH); 68 | digitalWrite(LED_BACKLIGHT, HIGH); 69 | 70 | EEPROM.init(); 71 | gpsdoStatus.status = 24; 72 | gpsdoAlerts.tenmhz = gpsdoAlerts.onepps = true; 73 | gpsdoStatus.surveyed = false; 74 | periodicMsgTime = lastMsgTime = blinkTime = backlTime = millis(); 75 | SetupDisplay(); 76 | readConfig(); 77 | 78 | } 79 | 80 | void loop() { 81 | 82 | for (;;) { 83 | 84 | if (GetGPSMsg()) { 85 | ProcessGPSMsg(); 86 | lastMsgTime = millis(); 87 | gpsdoAlerts.nogps = false; 88 | } 89 | 90 | /* 91 | This will detect if there is no message from the GPS for longer than NOMSGTIME 92 | If triggered, it will cause a GPS lost alert. 93 | */ 94 | if (millis() - lastMsgTime > NOMSGTIME && gpsdoAlerts.nogps == false) { 95 | gpsdoAlerts.nogps = true; 96 | gpsdoAlerts.tenmhz = true; 97 | gpsdoAlerts.onepps = true; 98 | gpsdoStatus.status = 24; 99 | gpsdoStatus.initialized = false; 100 | gpsdoStatus.surveyed = false; 101 | initPPSDBG = false; 102 | } 103 | 104 | /* 105 | We force the GPS to provide position report every PERIODICMSG time 106 | TruePosition normally only reports position during survey. 107 | */ 108 | if (millis() - periodicMsgTime > PERIODICMSG) { 109 | periodicMsgTime = millis(); 110 | Serial2.println("$GETPOS"); 111 | } 112 | 113 | /* 114 | Fancy blinking. This does two things: 115 | 1 - sets the blink variable to use for blinking wherever needed. 116 | 2 - blinks the onboard led for heartbeat. 117 | */ 118 | if (millis() - blinkTime > BLINKTIME) { 119 | blinkTime = millis(); 120 | blink = !blink; 121 | refresh = true; 122 | digitalWrite(LED_ONBOARD, blink ? HIGH : LOW); 123 | } 124 | 125 | /* 126 | Do the popup timer 127 | */ 128 | if (popupShown) { 129 | if (millis() - popupTimer > POPUPDURATION) { 130 | popupShown = false; 131 | } 132 | } 133 | 134 | /* 135 | Check for button presesses and do the needed action 136 | */ 137 | handleButtons(); 138 | 139 | /* 140 | Set the LEDS to the current status 141 | */ 142 | handleLEDs(); 143 | 144 | /* 145 | This handles the lock timer. Every time the GPSDO locks, it will start the timer to show 146 | how long it is in lock. Any other status clears the timer. 147 | */ 148 | if (gpsdoStatus.lockedSince == 0 && (gpsdoStatus.status == 0 )) { 149 | gpsdoStatus.lockedSince = gpsdoClock.ticks; 150 | } else { 151 | if (gpsdoStatus.status != 0 ) { 152 | gpsdoStatus.lockedSince = 0; 153 | } 154 | } 155 | /* 156 | Any failure sets the alert status. 157 | Not sure if the 10 MHz and the 1PPS alert is ever activated by the TP. 158 | */ 159 | if (gpsdoAlerts.nogps || gpsdoAlerts.tenmhz || gpsdoAlerts.onepps || gpsdoAlerts.antenna) { 160 | if (!inAlert) { 161 | inAlert = true; 162 | refresh = true; 163 | } 164 | } 165 | else { 166 | if (inAlert) { 167 | inAlert = false; 168 | refresh = true; 169 | } 170 | 171 | } 172 | /* 173 | Only refresh display if there is a reason to refresh 174 | */ 175 | if (refresh == true) { 176 | refresh = false; 177 | UpdateDisplay(); 178 | } 179 | 180 | } 181 | } 182 | 183 | /* 184 | Based on the status the front panel LEDs are lit. 185 | */ 186 | void handleLEDs() { 187 | 188 | digitalWrite(LED_ALARM, inAlert ? HIGH : LOW); // If there is an alert, light the red LED. 189 | 190 | switch (gpsdoStatus.status) { 191 | case 0: // Locked: Green lock LED on 192 | digitalWrite(LED_LOCK, HIGH); 193 | digitalWrite(LED_HOLDOVER, LOW); 194 | break; 195 | case 1: // Acquisition: Blink yellow holdover LED. 196 | digitalWrite(LED_LOCK, LOW); 197 | digitalWrite(LED_HOLDOVER, blink ? HIGH : LOW); 198 | break; 199 | case 2: // During startup both Lock and Holdover LEDs blink 200 | case 9: 201 | case 10: 202 | case 11: 203 | case 12: 204 | case 13: 205 | case 19: 206 | digitalWrite(LED_LOCK, blink ? HIGH : LOW); 207 | digitalWrite(LED_HOLDOVER, blink ? HIGH : LOW); 208 | break; 209 | case 3: // Holdover: yellow Holdover LED is on. 210 | case 4: 211 | case 5: 212 | case 8: 213 | digitalWrite(LED_HOLDOVER, HIGH); 214 | digitalWrite(LED_LOCK, LOW); 215 | break; 216 | 217 | case 6: // No ackquisition, both LEDs are off 218 | digitalWrite(LED_LOCK, LOW); 219 | digitalWrite(LED_HOLDOVER, LOW); 220 | break; 221 | case 7: // OCXO training, both LED blinks in opposite 222 | digitalWrite(LED_LOCK, blink ? HIGH : LOW); 223 | digitalWrite(LED_HOLDOVER, blink ? LOW : HIGH); 224 | break; 225 | case 14: 226 | case 15: 227 | case 16: 228 | case 17: 229 | case 18: // Transition to lock: Lock LED on, Holdover LED blinks 230 | digitalWrite(LED_LOCK, HIGH); 231 | digitalWrite(LED_HOLDOVER, blink ? LOW : HIGH); 232 | break; 233 | case 20: 234 | case 21: 235 | case 22: // Transition to acquisition: Lock LED blinks, Holdover LED on 236 | digitalWrite(LED_LOCK, blink ? LOW : HIGH); 237 | digitalWrite(LED_HOLDOVER, HIGH); 238 | break; 239 | default: ; 240 | } 241 | 242 | /* 243 | Control the backlight. 244 | off (0) - always off 245 | auto (1) - turns on with button press, automatically off after BACKLIGHTOFF ticks. 246 | on (2) - always on 247 | */ 248 | if (gpsdoConfig.backlight == 0) { 249 | digitalWrite(LED_BACKLIGHT, LOW); 250 | } else { 251 | if (gpsdoConfig.backlight == 2) { 252 | digitalWrite(LED_BACKLIGHT, HIGH); 253 | } else { 254 | digitalWrite(LED_BACKLIGHT, (millis() - backlTime > BACKLIGTHOFF) ? LOW : HIGH); 255 | } 256 | } 257 | } 258 | 259 | /* 260 | Save configuration to the EEPROM (emualted EEPROM) 261 | Simply writes the gpsdoConfig struct. 262 | */ 263 | void saveConfig() { 264 | int i; 265 | byte *p; 266 | 267 | p = (byte*)&gpsdoConfig; 268 | for (i = 0; i < sizeof(struct CONFIG); i++) { 269 | EEPROM.update(i, *p++); 270 | } 271 | 272 | } 273 | 274 | /* 275 | Read back config from EEPROM and do some sanitiy checking 276 | */ 277 | void readConfig() { 278 | int i; 279 | byte *p; 280 | struct CONFIG conf; 281 | p = (byte*)&conf; 282 | for (i = 0; i < sizeof(struct CONFIG); i++) { 283 | *p++ = EEPROM.read(i); 284 | } 285 | if (conf.timeoffset > 12 || conf.timeoffset < -12) 286 | conf.timeoffset = 0; 287 | if (conf.backlight > 2) 288 | conf.backlight = 1; 289 | if (conf.surveytime > 24) 290 | conf.surveytime = 1; 291 | gpsdoConfig = conf; 292 | 293 | } 294 | -------------------------------------------------------------------------------- /YATPGPSDO/tp_button.ino: -------------------------------------------------------------------------------- 1 | /* 2 | (c) Copyright Szabolcs Szigeti 2020-2021 3 | 4 | Redistribution under GPL V3. See the LICENSE file for details. 5 | 6 | */ 7 | /* 8 | Handle the button presses. Both buttons, the mode and the select buttons 9 | are managed. They are debounced that is only presses longer than the DBOUNCE time are detected. 10 | 11 | Once for the Mode and once for the Select button, the code is identical. 12 | The buttons' press functions are called giving the lenght of press as parameter 13 | */ 14 | 15 | void handleButtons() { 16 | 17 | if (digitalRead(BTN_MODE) == LOW && lastBtnMode == 1) { 18 | backlTime = lastBtnModeTime = millis(); 19 | lastBtnMode = 0; 20 | } 21 | 22 | if (digitalRead(BTN_MODE) == HIGH && lastBtnMode == 0) { 23 | lastBtnMode = 1; 24 | btnPress = millis() - lastBtnModeTime; 25 | if (btnPress > DEBOUNCE) { 26 | PressBtnMode(btnPress); 27 | } 28 | } 29 | 30 | 31 | if (digitalRead(BTN_SEL) == LOW && lastBtnSel == 1) { 32 | backlTime = lastBtnSelTime = millis(); 33 | lastBtnSel = 0; 34 | } 35 | 36 | if (digitalRead(BTN_SEL) == HIGH && lastBtnSel == 0) { 37 | lastBtnSel = 1; 38 | btnPress = millis() - lastBtnSelTime; 39 | if (btnPress > DEBOUNCE) { 40 | PressBtnSel(btnPress); 41 | } 42 | } 43 | 44 | } 45 | /* 46 | Handle press of the Mode button. 47 | A short press will always select a new display. 48 | Long press action depends on display mode, currently none. 49 | */ 50 | void PressBtnMode(int len) { 51 | if (len < SHORTPRESS) { 52 | nextDisplay(); // short press: go to next page 53 | } 54 | else { 55 | displayMode = STATUS; // long press: go to main status page 56 | } 57 | } 58 | 59 | /* 60 | Handle pressing of the Select button. 61 | This is a big ugly code to do whatever is needed on the current display mode 62 | */ 63 | void PressBtnSel(int len) { 64 | switch (displayMode) { 65 | case POSITION: 66 | if (len < SHORTPRESS) { 67 | if (menuMode == SHOWSURVEY) 68 | menuMode = SETSURVEY; 69 | else if (++gpsdoConfig.surveytime > 24) 70 | gpsdoConfig.surveytime = 1; 71 | } 72 | else { 73 | menuMode = SHOWSURVEY; 74 | refresh = true; 75 | showPopup("Survey start"); 76 | Serial2.print("$SURVEY "); 77 | Serial2.println(gpsdoConfig.surveytime); 78 | } 79 | break; 80 | case CONFIG: 81 | if (len < SHORTPRESS) { 82 | switch (menuMode) { 83 | case SETOFFSET: menuMode = SETBACKLIGHT; break; 84 | case SETBACKLIGHT: menuMode = SAVECONFIG; break; 85 | case SAVECONFIG: menuMode = TRAINO; break; 86 | case TRAINO: 87 | default: menuMode = SETOFFSET; break; 88 | } 89 | } 90 | else { 91 | switch (menuMode) { 92 | case SETOFFSET: 93 | if (++gpsdoConfig.timeoffset > 12) 94 | gpsdoConfig.timeoffset = -12; 95 | break; 96 | case SETBACKLIGHT: 97 | if (++gpsdoConfig.backlight > 2) 98 | gpsdoConfig.backlight = 0; 99 | break; 100 | case SAVECONFIG: 101 | showPopup("Config saved"); 102 | saveConfig(); 103 | break; 104 | case TRAINO: 105 | Serial2.println("$TRAINOXCO"); 106 | showPopup("Train OCXO"); 107 | displayMode = STATUS; 108 | break; 109 | } 110 | } 111 | break; 112 | 113 | default: ; 114 | } 115 | refresh = true; 116 | } 117 | -------------------------------------------------------------------------------- /YATPGPSDO/tp_display.ino: -------------------------------------------------------------------------------- 1 | /* 2 | (c) Copyright Szabolcs Szigeti 2020-2021 3 | 4 | Redistribution under GPL V3. See the LICENSE file for details. 5 | 6 | */ 7 | /* 8 | This file contains the display related functions. 9 | Basically there are a number of screens, which can be selected by the Mode button. 10 | Pressing the button will cycle trough the general status, the clock, the satellites, 11 | the position, and the config screens. 12 | 13 | The display is a 128x64 pixel LCD with an ST7920 driver. 14 | No attempt is made to accomodate any other display, most of the text and graphics 15 | positions are hard coded. 16 | 17 | However the U8G2 library is used so other similar sized bitmap display might be used. 18 | All display related stuff are in this file, so to use other display, make changes here. 19 | */ 20 | 21 | /* 22 | Printable strings for date and for the TruePosition status. 23 | */ 24 | const char *weekdays[] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; 25 | const char *months[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; 26 | const char *gpsstatus[] = {"Locked", "Acquisition", "Init 5/6", "Holdover", // 0 1 2 3 27 | "Force HO", "Soft HO", "No position", "Train OCXO", // 4 5 6 7 28 | "Holdover", "Init 0/6", "Init 1/6", "Init 2/6", // 8 9 10 11 29 | "Init 3/6", "Init 4/6", "Lock 1/5", "Lock 2/5", // 12 13 14 15 30 | "Lock 3/5", "Lock 4/5", "Lock 5/5", "Initializing", // 16 17 18 19 31 | "Acquire 1/3", "Acquire 2/3", "Acquire 3/3", " " // 20 21 22 23 32 | }; 33 | 34 | /* 35 | Various bitmaps for the status bar on the main page 36 | */ 37 | const uint8_t bitmapAnt[] = {16, 146, 84, 56, 16, 16, 16, 16, 16, 16, 0}; // Antenna symbol 38 | const uint8_t bitmapIAnt[] = {170, 84, 170, 84, 170, 84, 170, 84, 170, 84, 170}; // Checkerboard for antenna error 39 | const uint8_t bitmap10MHz[] = {73, 84, 0, 213, 213, 224, 85, 92, 64, 85, 84, 128, 73, 85, 224}; // 10Mhz 40 | const uint8_t bitmapI10MHz[] = {170, 170, 170, 85, 85, 85, 170, 170, 170, 85, 85, 85, 170, 170, 170}; // Bad 10Mhz 41 | const uint8_t bitmap1PPS[] = {89, 140, 213, 80, 89, 136, 81, 4, 81, 24}; // 1 PPS 42 | const uint8_t bitmapI1PPS[] = {170, 170, 85, 84, 170, 170, 85, 84, 170, 170}; // Bad 1PPS 43 | const uint8_t bitmapSurv1[] = {16, 16, 16, 16, 16, 254, 124, 56, 16, 254}; // Survey needed 44 | const uint8_t bitmapSurv2[] = {16, 254, 124, 56, 16, 0, 0, 0, 0, 254}; // Animation during survey 45 | const uint8_t bitmapSurveyed[] = {56, 108, 198, 238, 254, 124, 56, 56, 16, 16}; // Location has been surveyed 46 | #define clockface_width 49 47 | #define clockface_height 47 48 | const uint8_t clockface_bits[] = { 49 | 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x03, 0x00, 50 | 0x00, 0x00, 0x00, 0x00, 0xf0, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 51 | 0xe3, 0x01, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x01, 0x06, 0x00, 0x00, 0x00, 52 | 0x30, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x48, 0x00, 0x00, 0x24, 0x00, 53 | 0x00, 0x00, 0x84, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 54 | 0x80, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x80, 0x00, 55 | 0x00, 0x00, 0x00, 0x02, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 56 | 0x60, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 57 | 0x0a, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x11, 0x00, 0x10, 0x00, 0x00, 58 | 0x00, 0x00, 0x10, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x08, 59 | 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x20, 60 | 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x04, 0x00, 0x00, 0x00, 61 | 0x00, 0x40, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x04, 0x00, 62 | 0x00, 0x01, 0x00, 0x40, 0x00, 0x1f, 0x00, 0x80, 0x02, 0x00, 0xf0, 0x01, 63 | 0x04, 0x00, 0x00, 0x01, 0x00, 0x40, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 64 | 0x40, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x04, 0x00, 0x00, 65 | 0x00, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x08, 66 | 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x20, 67 | 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0x01, 0x00, 0x00, 68 | 0x00, 0x11, 0x00, 0xa0, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x60, 0x00, 69 | 0x00, 0x00, 0x00, 0x0c, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 70 | 0x80, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 71 | 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x84, 0x00, 72 | 0x00, 0x42, 0x00, 0x00, 0x00, 0x58, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 73 | 0x60, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x80, 0x01, 0x01, 0x03, 0x00, 74 | 0x00, 0x00, 0x00, 0x0e, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x1f, 75 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 76 | 0x00, 0x01, 0x00, 0x00, 0x00 77 | }; 78 | char popupText[POPUPLEN]; 79 | /* 80 | Initialize the display. It is in HW SPI mode, so uses the HW SPI pins 81 | PA4 is used for CS and PB0 is connected as resert. 82 | */ 83 | U8G2_ST7920_128X64_F_HW_SPI u8g2(U8G2_R0, /* CS=*/ PA4, /* reset=*/ PB0 /*U8X8_PIN_NONE */); 84 | 85 | /* 86 | Let's do some fancy initialization with Display and LED test. 87 | */ 88 | void SetupDisplay() { 89 | 90 | 91 | u8g2.begin(); 92 | u8g2.enableUTF8Print(); // that is required to properly display the degree symbol 93 | u8g2.setFont(u8g2_font_profont12_tf); 94 | u8g2.clearBuffer(); 95 | u8g2.drawBox(0, 0, 128, 64); // all pixels dark 96 | u8g2.sendBuffer(); 97 | delay(500); // and wait a little bit for fancyness 98 | } 99 | 100 | /* 101 | Print the current time in HH:MM:SS format, with blinking : 102 | This prints at the current positoion with the current font 103 | */ 104 | void printTime() { 105 | if (gpsdoClock.hour < 10) 106 | u8g2.print(" "); 107 | u8g2.print(gpsdoClock.hour); 108 | u8g2.print(blink ? ":" : " "); 109 | if (gpsdoClock.minute < 10) 110 | u8g2.print("0"); 111 | u8g2.print(gpsdoClock.minute); 112 | u8g2.print(blink ? ":" : " "); 113 | if (gpsdoClock.second < 10) 114 | u8g2.print("0"); 115 | u8g2.print(gpsdoClock.second); 116 | } 117 | 118 | /* 119 | Print a time lenght in DDD|HH:MM.SS format supressing 120 | leading zero days, hours and minutes 121 | This also prints at the current positoion with the current font 122 | */ 123 | void printInterval(uint32_t secs) { 124 | unsigned int days, hours, minutes, seconds; 125 | days = secs / 86400; 126 | secs -= days * 86400; 127 | hours = secs / 3600; 128 | secs -= hours * 3600; 129 | minutes = secs / 60; 130 | seconds = secs % 60; 131 | if (days > 0) { 132 | u8g2.print(days); 133 | u8g2.print("|"); 134 | } 135 | if (hours > 0 || days > 0) { 136 | if (hours < 10) 137 | u8g2.print(" "); 138 | u8g2.print(hours); 139 | u8g2.print(":"); 140 | } 141 | if ( minutes > 0 || hours > 0 || days > 0) { 142 | if (minutes < 10) 143 | u8g2.print("0"); 144 | u8g2.print(minutes); 145 | u8g2.print("."); 146 | } 147 | if (seconds < 10) 148 | u8g2.print("0"); 149 | u8g2.print(seconds); 150 | } 151 | 152 | /* 153 | Display popup message 154 | */ 155 | void displayPopup() { 156 | if (popupShown) { 157 | u8g2.setDrawColor(0); 158 | u8g2.drawBox(16, 16, 96, 32); 159 | u8g2.setDrawColor(1); 160 | u8g2.drawButtonUTF8(64, 32, U8G2_BTN_HCENTER | U8G2_BTN_BW1 | U8G2_BTN_SHADOW1, 0, 2, 2, popupText); 161 | } 162 | } 163 | /* 164 | Display general status of the unit 165 | */ 166 | void displayStatusPage() { 167 | int shour, smin, ssec; 168 | u8g2.clearBuffer(); 169 | u8g2.setFont(u8g2_font_profont12_tf); 170 | 171 | /* 172 | Print the status line with the TruePosition status and some 173 | icons for 10Mhz, 1PPS status 174 | */ 175 | u8g2.setCursor(0, 10); 176 | if (gpsdoAlerts.nogps) 177 | u8g2.print(blink ? "GPS Lost" : " "); 178 | else if (gpsdoStatus.status < 23) 179 | u8g2.print(gpsstatus[gpsdoStatus.status]); 180 | else 181 | u8g2.print("No status"); 182 | 183 | u8g2.drawBitmap(95, 00, 1, 11, !gpsdoAlerts.antenna ? bitmapAnt : blink ? bitmapIAnt : bitmapAnt); 184 | u8g2.drawBitmap(105, 06, 3, 5, !gpsdoAlerts.tenmhz ? bitmap10MHz : blink ? bitmapI10MHz : bitmap10MHz); 185 | u8g2.drawBitmap(105, 00, 2, 5, !gpsdoAlerts.onepps ? bitmap1PPS : blink ? bitmapI1PPS : bitmap1PPS); 186 | 187 | u8g2.drawHLine(0, 12, 128); 188 | 189 | /* 190 | If the TruePosition is up and runing print the icon for survey or normal mode 191 | Print the time 192 | Lock and holdover duration if applicable 193 | Number of satellites, DOP, DAC value and temperature. 194 | */ 195 | if (gpsdoStatus.initialized) { 196 | u8g2.drawBitmap(85, 0, 1, 10, gpsdoStatus.surveying ? blink ? bitmapSurv1 : bitmapSurv2 : gpsdoStatus.surveyed ? bitmapSurveyed : bitmapSurv1); 197 | u8g2.setCursor(0, 27); 198 | u8g2.setFont(u8g2_font_profont17_tf); 199 | printTime(); 200 | u8g2.setFont(u8g2_font_profont10_tf); 201 | if (gpsdoStatus.holdover > 0) { 202 | u8g2.setCursor(0, 40); 203 | u8g2.print("Holdover:"); 204 | printInterval(gpsdoStatus.holdover); 205 | } 206 | if (gpsdoStatus.lockedSince > 0) { 207 | u8g2.setCursor(0, 40); 208 | u8g2.print("Locked:"); 209 | printInterval(gpsdoClock.ticks - gpsdoStatus.lockedSince); 210 | } 211 | 212 | u8g2.setCursor(0, 50); 213 | u8g2.print("Sat:"); u8g2.print(gpsdoStatus.nsats); u8g2.print("/"); u8g2.print(gpsdoStatus.tsats); 214 | if (gpsdoStatus.dop > 0.0) { 215 | u8g2.print(" DOP:"); u8g2.print(gpsdoStatus.dop, 2); 216 | } else 217 | { 218 | u8g2.print (" No fix"); 219 | } 220 | if (gpsdoStatus.phaseoffset != -253) { 221 | u8g2.print(" po:"); u8g2.print(gpsdoStatus.phaseoffset); 222 | } 223 | 224 | u8g2.setCursor(0, 58); 225 | u8g2.print("DAC:"); u8g2.print(gpsdoStatus.dac, 6); u8g2.print("V"); 226 | u8g2.print(" T:"); u8g2.print(gpsdoStatus.temp, 2); u8g2.print("°C"); 227 | } else { 228 | 229 | /* 230 | If the TruePosition is not yet up, print a splash screen 231 | */ 232 | 233 | u8g2.setFont(u8g2_font_profont17_tf); 234 | u8g2.drawStr(10, 30, "YATPGPSDO"); 235 | u8g2.setFont(u8g2_font_profont10_tf); 236 | u8g2.drawStr(5, 40, "(c) Szabolcs Szigeti"); 237 | u8g2.setFont(u8g2_font_profont12_tf); 238 | u8g2.drawStr(10, 52, VERSION); 239 | u8g2.drawStr(10, 62, gpsdoStatus.TPversion); 240 | } 241 | displayPopup(); 242 | u8g2.sendBuffer(); 243 | } 244 | 245 | /* 246 | Display current time, date, time quality reported and an analog clock 247 | */ 248 | 249 | void displayTimePage() { 250 | float hourdeg, mindeg, secdeg, tickdeg; 251 | int i; 252 | 253 | u8g2.clearBuffer(); 254 | u8g2.setFont(u8g2_font_profont17_tf); 255 | u8g2.setCursor(0, 15); 256 | printTime(); 257 | u8g2.setCursor(0, 29); 258 | u8g2.setFont(u8g2_font_profont12_tf); 259 | u8g2.print(gpsdoClock.year); 260 | u8g2.print(" "); 261 | u8g2.print(months[gpsdoClock.month - 1]); 262 | u8g2.print(" "); 263 | u8g2.print(gpsdoClock.day); 264 | u8g2.print(" "); 265 | u8g2.setCursor(0, 39); 266 | u8g2.println(weekdays[gpsdoClock.weekday - 1]); 267 | u8g2.setCursor(0, 53); 268 | u8g2.setFont(u8g2_font_profont10_tf); 269 | u8g2.print("Quality:"); 270 | u8g2.print(gpsdoClock.quality); 271 | u8g2.drawFrame(0, 57, 70, 7); 272 | u8g2.drawBox(1, 58, gpsdoClock.quality * 10, 5); 273 | /* 274 | Draw the analog clock. The STM32 is fast enough to simply use trigonometrics instead of look-up tables 275 | or some approximation. This is a pretty simple and ugly looking clock. No attempt was made to use parameters for the clock. 276 | A bitmap clockface is used and coordinates are hardcoded into the code. 277 | */ 278 | u8g2.drawXBM(80, 9, clockface_width, clockface_height, clockface_bits); 279 | hourdeg = (gpsdoClock.hour * 5 + gpsdoClock.minute / 12 - 15) * 0.104719755; // magic number to convert 6 degrees to radians. 280 | mindeg = (gpsdoClock.minute - 15) * 0.104719755; 281 | secdeg = (gpsdoClock.second - 15) * 0.104719755; 282 | u8g2.drawLine(104, 32, 104 + 20 * cos(secdeg) + 0.5, 32 + 20 * sin(secdeg) + 0.5); 283 | u8g2.drawLine(104, 32, 104 + 18 * cos(mindeg) + 0.5, 32 + 18 * sin(mindeg) + 0.5); 284 | u8g2.drawLine(104, 32, 104 + 13 * cos(hourdeg) + 0.5, 32 + 13 * sin(hourdeg) + 0.5); 285 | 286 | displayPopup(); 287 | u8g2.sendBuffer(); 288 | } 289 | 290 | /* 291 | Display satellite info. 292 | Anything with non 0 SNR is listed on the right and the constellation is drawn on the left. 293 | Normal sats are drawn as a circle, WAAS/EGNOS as a square. 294 | Again, STM32 can handle trig functions just fine. 295 | */ 296 | void displaySatsPage() { 297 | int i, row; 298 | int x, y, r, snr; 299 | u8g2.clearBuffer(); 300 | u8g2.setFont(u8g2_font_profont10_tf); 301 | u8g2.setCursor(60, 63); 302 | u8g2.print(gpsdoStatus.nsats); u8g2.print("/"); u8g2.println(gpsdoStatus.tsats); 303 | u8g2.print(" DOP:"); u8g2.println(gpsdoStatus.dop, 2); 304 | row = 6; 305 | for (i = 0; i < NUMSAT; i++) 306 | if (gpsdoSats[i].snr > 0) { 307 | 308 | snr = (gpsdoSats[i].snr - 30) / 2; // Seems like SNR values are about in the 30-45 dB range 309 | if (snr < 0) snr = 0; 310 | if (snr > 7) snr = 7; // so we transform it into the height of one row. Yes, it could be better. 311 | u8g2.drawLine(64, row, 64, row - snr); 312 | 313 | u8g2.setCursor(67, row); 314 | u8g2.print(i); 315 | u8g2.print(":"); 316 | u8g2.print(gpsdoSats[i].satnum); 317 | u8g2.print(">"); 318 | u8g2.print(gpsdoSats[i].elevation); 319 | u8g2.print("/"); 320 | u8g2.print(gpsdoSats[i].azimuth); 321 | row += 7; 322 | /* 323 | Start graphic 324 | */ 325 | r = 30 * cos(0.017453 * (gpsdoSats[i].elevation)); 326 | x = 32 + r * cos(0.017453 * (gpsdoSats[i].azimuth - 90)); 327 | y = 32 + r * sin(0.017453 * (gpsdoSats[i].azimuth - 90)); 328 | 329 | if (gpsdoSats[i].iswaas) { // Circle for normal, box for WAAS satellites 330 | u8g2.drawFrame(x - 5, y - 5, 10, 10); 331 | } else { 332 | u8g2.drawCircle(x, y, 5); 333 | } 334 | 335 | u8g2.setCursor(x - 2, y + 3); 336 | u8g2.print(i); 337 | } 338 | 339 | u8g2.drawCircle(32, 32, 30, U8G2_DRAW_ALL); 340 | u8g2.drawCircle(32, 32, 10, U8G2_DRAW_ALL); 341 | u8g2.drawVLine(32, 0, 64); 342 | u8g2.drawHLine(0, 32, 64); 343 | u8g2.drawTriangle(32, 0, 29, 6, 35, 6); 344 | 345 | displayPopup(); 346 | u8g2.sendBuffer(); 347 | } 348 | 349 | /* 350 | Display position and start survey. 351 | Short press of the select button will increment the survey time, long press will start the survey. 352 | */ 353 | void displayPosPage() { 354 | long lat, lon; 355 | u8g2.clearBuffer(); 356 | u8g2.setFont(u8g2_font_profont12_tf); 357 | u8g2.setCursor(0, 10); 358 | u8g2.print("Position "); 359 | printTime(); 360 | 361 | u8g2.setCursor(0, 24); 362 | 363 | lat = gpsdoStatus.lat; 364 | lon = gpsdoStatus.lon; 365 | u8g2.setFont(u8g2_font_profont17_tf); 366 | 367 | if (lat < 0) { 368 | u8g2.print("S"); 369 | lat = -lat; 370 | } else { 371 | u8g2.print("N"); 372 | } 373 | u8g2.print(lat / 1000000); 374 | u8g2.print("°"); 375 | u8g2.print((lat % 1000000) * 6E-5, 4); 376 | u8g2.print("'"); 377 | u8g2.setCursor(0, 38); 378 | 379 | if (lon < 0) { 380 | u8g2.print("W"); 381 | lon = -lon; 382 | } else { 383 | u8g2.print("E"); 384 | } 385 | u8g2.print(lon / 1000000); 386 | u8g2.print("°"); 387 | u8g2.print((lon % 1000000) * 6E-5, 4); 388 | u8g2.print("'"); 389 | u8g2.setCursor(0, 50); 390 | u8g2.setFont(u8g2_font_profont12_tf); 391 | u8g2.print("Elev:"); 392 | u8g2.println(gpsdoStatus.elev); 393 | u8g2.print(" Sats:"); 394 | u8g2.print(gpsdoStatus.nsats); 395 | u8g2.print("/"); 396 | u8g2.println(gpsdoStatus.tsats); 397 | 398 | u8g2.setCursor(0, 60); 399 | u8g2.setFont(u8g2_font_profont10_tf); 400 | if (menuMode == SHOWSURVEY) { 401 | u8g2.print("Survey "); 402 | u8g2.print(gpsdoStatus.surveytime); 403 | u8g2.print("s remain"); 404 | } 405 | else if (menuMode == SETSURVEY) { 406 | u8g2.print("Survey for "); 407 | u8g2.print(gpsdoConfig.surveytime); 408 | u8g2.print(gpsdoConfig.surveytime == 1 ? " hour" : " hours"); 409 | } 410 | displayPopup(); 411 | u8g2.sendBuffer(); 412 | } 413 | 414 | /* 415 | Configuration page. Select selects the items, long press changes them. 416 | Save config to make it permanent. 417 | */ 418 | void displayConfigPage() { 419 | u8g2.clearBuffer(); 420 | u8g2.setFont(u8g2_font_profont12_tf); 421 | u8g2.setCursor(0, 8); 422 | u8g2.print("Config "); 423 | u8g2.setFont(u8g2_font_profont10_tf); 424 | u8g2.print(VERSION); 425 | 426 | 427 | u8g2.setCursor(00, 20); 428 | u8g2.print(menuMode == SETOFFSET ? ">" : " "); 429 | u8g2.print("Time offset:"); 430 | u8g2.print(gpsdoConfig.timeoffset); 431 | 432 | u8g2.setCursor(00, 28); 433 | u8g2.print(menuMode == SETBACKLIGHT ? ">" : " "); 434 | u8g2.print("Backlight:"); 435 | switch (gpsdoConfig.backlight) { 436 | case 0: 437 | u8g2.print("Off"); break; 438 | case 1: 439 | u8g2.print("Auto"); break; 440 | case 2: 441 | u8g2.print("On"); break; 442 | } 443 | u8g2.setCursor(00, 36); 444 | u8g2.print(menuMode == SAVECONFIG ? ">" : " "); 445 | u8g2.print("Save config "); 446 | 447 | u8g2.setCursor(00, 44); 448 | u8g2.print(menuMode == TRAINO ? ">" : " "); 449 | u8g2.print("Train OCXO"); 450 | 451 | u8g2.setCursor(00, 63); 452 | u8g2.print("Uptime: "); 453 | printInterval(millis() / 1000); 454 | displayPopup(); 455 | u8g2.sendBuffer(); 456 | } 457 | 458 | /* 459 | Select the page on the display mode. 460 | */ 461 | void UpdateDisplay() { 462 | switch (displayMode) { 463 | 464 | case STATUS: displayStatusPage(); // General Status 465 | break; 466 | case TIME: displayTimePage(); // Time 467 | break; 468 | case SATS: displaySatsPage(); // Sats 469 | break; 470 | case POSITION: displayPosPage(); // Position and survey 471 | break; 472 | case CONFIG: displayConfigPage(); // Config 473 | break; 474 | default: displayStatusPage(); 475 | } 476 | 477 | } 478 | 479 | /* 480 | Advance to next display on the press of the Mode button 481 | */ 482 | void nextDisplay() { 483 | switch (displayMode) { 484 | case STATUS: displayMode = TIME; 485 | break; 486 | case TIME: displayMode = SATS; 487 | break; 488 | case SATS: displayMode = POSITION; 489 | menuMode = gpsdoStatus.surveying ? SHOWSURVEY : SETSURVEY; 490 | break; 491 | case POSITION: displayMode = CONFIG; 492 | menuMode = SETOFFSET; 493 | break; 494 | case CONFIG: displayMode = STATUS; 495 | break; 496 | default: displayMode = STATUS; 497 | } 498 | refresh = true; // redraw 499 | popupShown = false; 500 | } 501 | 502 | void showPopup(const char *text) { 503 | popupTimer = millis(); 504 | popupShown = true; 505 | refresh = true; 506 | memset(popupText,0,POPUPLEN); 507 | strncpy(popupText, text, POPUPLEN-1); 508 | } 509 | -------------------------------------------------------------------------------- /YATPGPSDO/tp_gpsdo.h: -------------------------------------------------------------------------------- 1 | /* 2 | (c) Copyright Szabolcs Szigeti 2020-2021 3 | 4 | Redistribution under GPL V3. See the LICENSE file for details. 5 | 6 | */ 7 | /* 8 | Configuration section 9 | */ 10 | 11 | #define VERSION "V1.15 2022/06/04" 12 | 13 | #define GPSDO_BAUD 9600 // GPSDO serial speed: 9600 do not change 14 | 15 | #define BTN_MODE PB15 // mode button 16 | #define BTN_SEL PB14 // select button 17 | #define LED_ONBOARD PC13 // BluePill onboard LED - used for heartbeat indication 18 | #define LED_HOLDOVER PB6 // Yellow LED for holdover 19 | #define LED_LOCK PB5 // Green LED for lock 20 | #define LED_ALARM PB7 // Red LED for failure 21 | #define LED_BACKLIGHT PB8 // Port for controlling display backlight 22 | 23 | #define EEConfAddr 0x00 // Config address in EEPROM 24 | 25 | #define DEBOUNCE 40 // Button debounce time in miliseconds. Shorter presses are not registred. 26 | #define SHORTPRESS 500 // Limit for long button press. 27 | 28 | #define NOMSGTIME 10000 // timeout if no GPS message for 10 seconds 29 | #define PERIODICMSG 60000 // Position report every 60 seconds 30 | #define BLINKTIME 500 // How fast things on the LEDs and display blink. 31 | #define BACKLIGTHOFF 10000 // Backlight for 10 sec in auto mode 32 | #define POPUPDURATION 5000 // Duration of popup messages 33 | #define POPUPLEN 13 // Max popup text length 34 | 35 | #define TIMEOFFSET 315964800L // Magic correction for the 10 years off time from the gps. My TP reports time about 10 years off 36 | 37 | #define NUMSAT 8 // Max number of satellites to track 38 | #define MSGMAX 60 // Max msg size in chars 39 | 40 | enum DisplayModes {STATUS, TIME, SATS, POSITION, CONFIG, ENDOFMODES}; // Display screens to flip with the Mode button 41 | enum MenuModes {SHOWSURVEY, SETSURVEY, SETBACKLIGHT, SETOFFSET, SAVECONFIG, TRAINO}; // Various sub modes for the sreens 42 | 43 | void ProcessGPSMsg(); 44 | bool GetGPSMsg(); 45 | 46 | void SetupDisplay(); 47 | void UpdateDisplay(); 48 | void handleButtons(); 49 | void PressBtnMode(int); 50 | void PressBtnSel(int); 51 | void handleLEDs(); 52 | void nextDisplay(); 53 | void showPopup(const char* text); 54 | 55 | unsigned long millis(); 56 | 57 | /* 58 | System comfguration 59 | */ 60 | struct CONFIG { 61 | int timeoffset; // Timezone settings in hours 62 | unsigned int surveytime; // Default survey time 63 | unsigned int backlight; // Backlight mode 64 | }; 65 | 66 | /* 67 | Data from the CLOCK message 68 | */ 69 | struct CLOCK { 70 | int year; 71 | int month; 72 | int day; 73 | int hour; 74 | int minute; 75 | int second; 76 | int weekday; 77 | int quality; // Time quality reported by the GPS 78 | uint32_t ticks; // Unixtime ticks 79 | }; 80 | 81 | /* 82 | General status of the system, mostly form the STATUS, EXTATUS messages 83 | */ 84 | struct STATUS { 85 | bool tenmhz; // 10MHz is good. Is it ever bad??? 86 | bool onepps; // 1PPS id good. Same as above 87 | bool antenna; // Antenna is correctly connected. 88 | int holdover; // Holdover time 89 | int status; // TruePosition status 90 | bool initialized; // Has the TruePosition booted up? 91 | int nsats; // Number of sats seen 92 | int tsats; // Number of sats tracked 93 | float dop; // DOP value 94 | float temp; // Temperature of the unit 95 | int phaseoffset; // Phase offset 96 | long lat; // Latitude 97 | long lon; // Longitude 98 | int elev; // Elevation 99 | bool surveying; // Survey is in progress 100 | bool surveyed; // Survey was run since last reboot 101 | int surveytime; // Survey length 102 | float dac; // DAC value for the OCXO steering 103 | char TPversion[11]; // Version string from the TruePosition board 104 | uint32_t lockedSince; // Start time of current locked status, 0 if not locked 105 | }; 106 | 107 | /* 108 | Data on satellites 109 | */ 110 | struct SATS { 111 | int satnum; // Satellite PRN number 112 | int elevation; // Elevation in degrees 113 | int azimuth; // Azimuth in degrees 114 | int snr; // SNR value 115 | bool iswaas; // Is it a WAAS/EGNOS sat? 116 | }; 117 | 118 | /* 119 | Current alerts 120 | */ 121 | struct ALERTS { 122 | bool tenmhz; // 10MHz is bad 123 | bool onepps; // 1PPS is bad 124 | bool antenna; // Antenna not detected 125 | bool nogps; // Lost connection with TruePosition board 126 | }; 127 | -------------------------------------------------------------------------------- /YATPGPSDO/tp_message.ino: -------------------------------------------------------------------------------- 1 | /* 2 | (c) Copyright Szabolcs Szigeti 2020-2021 3 | 4 | Redistribution under GPL V3. See the LICENSE file for details. 5 | 6 | */ 7 | /* 8 | This file contains most of he code to process the messages from the TruePosition 9 | boards. 10 | Messages are read as available the parameters are identified 11 | and pocessed according to the message. 12 | */ 13 | 14 | void ProcessGETVER(); 15 | void ProcessCLOCK(uint32_t, int); 16 | void ProcessSTATUS(); 17 | void ProcessEXTSTATUS(); 18 | void ProcessSURVEY(long, long, int, int); 19 | void ProcessSAT(int chan, int sat, int elevation, int azimuth, int snr, bool iswaas); 20 | 21 | #define MAXPARAM 8 // Maximum number of GPS message parameters 22 | static char* params[MAXPARAM]; // This indexes the parameters in the message 23 | 24 | /* 25 | Read GPS serial line and push read text into the GPSmsg buffer for a maximum length of MSGMAX 26 | Return true if at the end of message, so that the main loop knows to dispatch message for processing 27 | */ 28 | bool GetGPSMsg() { 29 | static int current = 0; 30 | int Incoming; 31 | 32 | while (Serial2.available() > 0) { 33 | Incoming = Serial2.read(); 34 | 35 | if (Incoming == '\n' || current >= MSGMAX - 1) { 36 | GPSmsg[current] = '\0'; 37 | current = 0; 38 | return true; 39 | } 40 | 41 | if (Incoming == '\r') continue; // Skip NewLine 42 | 43 | GPSmsg[current++] = Incoming; 44 | 45 | } 46 | return false; 47 | } 48 | 49 | /* 50 | Procerss the message in the GPSmsg buffer 51 | 52 | First check for validity by verifying the starting $ 53 | Then break up into substrings at the parameters and put the pointers to the parameters 54 | into the params array. 55 | Then depending on the message type do whatever action is required. 56 | Set alert condition if no message for some time 57 | Also handle the special case of booting, when the TruePosition needs the $PROCEED command. 58 | */ 59 | 60 | void ProcessGPSMsg() { 61 | int i = 1; 62 | int parn = 0; 63 | 64 | if (GPSmsg[0] != '$') { 65 | 66 | return; 67 | } 68 | refresh = true; 69 | lastMsgTime = millis(); 70 | 71 | while (i < MSGMAX && GPSmsg[i] != '\0') { 72 | if (GPSmsg[i] == ' ') { 73 | GPSmsg[i] = '\0'; 74 | params[parn++] = &GPSmsg[i + 1]; 75 | if (parn >= MAXPARAM) 76 | break; 77 | } 78 | i++; 79 | } 80 | /* 81 | Kickstart the TruePosition. 82 | It keeps sending the GETVER message with BOOT as second parameter 83 | This triggers the code to send the PROCEED command which will make the board boot. 84 | Also, initialize a couple of things. 85 | */ 86 | if (strcmp(&GPSmsg[1], "GETVER") == 0) { 87 | if (strcmp(params[1], "BOOT") == 0) { 88 | Serial2.println("$PROCEED"); 89 | 90 | gpsdoStatus.TPversion[0] = 0; 91 | strncpy(gpsdoStatus.TPversion, params[0], 10); 92 | gpsdoStatus.TPversion[10] = 0; 93 | gpsdoStatus.status = atoi(params[2]); 94 | gpsdoAlerts.nogps = true; 95 | gpsdoAlerts.tenmhz = true; 96 | gpsdoAlerts.onepps = true; 97 | gpsdoStatus.status = 24; 98 | gpsdoStatus.initialized = false; 99 | gpsdoStatus.surveyed = false; 100 | initPPSDBG = false; 101 | 102 | } 103 | return; // don't process further after PROCEED 104 | } 105 | 106 | /* 107 | Send the PPSDBG command to periodically provide additional status 108 | */ 109 | if (!gpsdoStatus.initialized) { 110 | if (!initPPSDBG) { 111 | Serial2.println("$PPSDBG 1"); 112 | initPPSDBG = true; 113 | } 114 | } 115 | 116 | 117 | /* 118 | From here on verious messages are identified and processed either 119 | in this loop or via calling a function to process. 120 | */ 121 | 122 | /* 123 | $CLOCK Unixtime Leapsecs Merit 124 | */ 125 | if (strcmp(&GPSmsg[1], "CLOCK") == 0) { 126 | ProcessCLOCK(atol(params[0]), atoi(params[1]), atoi(params[2])); 127 | return; 128 | } 129 | 130 | /* 131 | $STATUS 10Mhz 1pps Antenna Holdovertime NumSats Status 132 | */ 133 | if (strcmp(&GPSmsg[1], "STATUS") == 0) { 134 | 135 | gpsdoStatus.initialized = true; // after first STATUS we consider the GPSDO fully initilaized and working 136 | gpsdoAlerts.tenmhz = (gpsdoStatus.tenmhz = atoi(params[0])); 137 | gpsdoAlerts.onepps = (gpsdoStatus.onepps = atoi(params[1])); 138 | gpsdoAlerts.antenna = (gpsdoStatus.antenna = atoi(params[2])); 139 | gpsdoStatus.holdover = atoi(params[3]); 140 | gpsdoStatus.nsats = atoi(params[4]); 141 | 142 | if (!initPPSDBG) gpsdoStatus.status = atoi(params[5]); // we only use the status from here if PPSDBG has not been initialized 143 | return; 144 | } 145 | 146 | /* 147 | $EXTSTATUS Surveying NumSats DOP Temp Discardcount 148 | */ 149 | if (strcmp(&GPSmsg[1], "EXTSTATUS") == 0) { 150 | gpsdoStatus.surveying = (atoi(params[0]) == 1); 151 | gpsdoStatus.tsats = atoi(params[1]); 152 | gpsdoStatus.dop = atof(params[2]); 153 | gpsdoStatus.temp = atof(params[3]); 154 | 155 | if (!gpsdoStatus.surveyed && gpsdoStatus.surveying) { 156 | gpsdoStatus.surveyed = true; 157 | } 158 | return; 159 | } 160 | 161 | /* 162 | $SURVEY Lat Lon Elev Elevcorrection RemainingTime 163 | */ 164 | if (strcmp(&GPSmsg[1], "SURVEY") == 0) { 165 | ProcessSURVEY(atol(params[0]), atol(params[1]), atoi(params[2]), atoi(params[4])); 166 | return; 167 | } 168 | 169 | /* 170 | $SAT Channel Satnumber Elev Azimuth SNR 171 | */ 172 | if (strcmp(&GPSmsg[1], "SAT") == 0) { 173 | ProcessSAT(atoi(params[0]), atoi(params[1]), atoi(params[2]), atoi(params[3]), atoi(params[4]), false); 174 | return; 175 | } 176 | 177 | /* 178 | $WSAT Channel Satnumber Elev Azimuth SNR 179 | */ 180 | if (strcmp(&GPSmsg[1], "WSAT") == 0) { 181 | ProcessSAT(atoi(params[0]), atoi(params[1]), atoi(params[2]), atoi(params[3]), atoi(params[4]), true); 182 | return; 183 | } 184 | /* 185 | $GETPOS Lon Lat Elev Elevcorr Traim 186 | */ 187 | if (strcmp(&GPSmsg[1], "GETPOS") == 0) { 188 | ProcessGETPOS(atol(params[0]), atol(params[1]), atoi(params[2])); 189 | return; 190 | } 191 | /* 192 | $PPSDBG Time Status DAC Phase PPSoffset PPSstatus Traim status 0.0 193 | */ 194 | if (strcmp(&GPSmsg[1], "PPSDBG") == 0) { 195 | ProcessPPSDBG(atoi(params[1]), atof(params[2]), atoi(params[3]), atoi(params[4])); 196 | return; 197 | } 198 | if (strcmp(&GPSmsg[1], "SET1PPS") == 0) { 199 | return; 200 | } 201 | 202 | refresh = false; 203 | } 204 | 205 | void ProcessGETVER() { 206 | 207 | } 208 | 209 | /* 210 | This processes the CLOCK message 211 | We save the ticks and also we save the date nad time components for simpler displaying later 212 | The user configurable timezone offset is added as well as the magic TIMEOFFSET to correct the 213 | ~10 year time difference reported by the GPSDO 214 | */ 215 | void ProcessCLOCK(uint32_t ti, int leapsec, int quality) { 216 | gpsdoClock.ticks = ti = ti - leapsec + TIMEOFFSET + 3600 * gpsdoConfig.timeoffset; 217 | gpsdoClock.year = year(ti); 218 | gpsdoClock.month = month(ti); 219 | gpsdoClock.day = day(ti); 220 | gpsdoClock.weekday = weekday(ti); 221 | gpsdoClock.hour = hour(ti); 222 | gpsdoClock.minute = minute(ti); 223 | gpsdoClock.second = second(ti); 224 | gpsdoClock.quality = 8 - quality; 225 | 226 | 227 | } 228 | 229 | /* 230 | Starightforward saving of the position data. 231 | Not really used for much 232 | */ 233 | void ProcessSURVEY(long lat, long lon, int elev, int stime) { 234 | gpsdoStatus.lat = lat; 235 | gpsdoStatus.lon = lon; 236 | gpsdoStatus.elev = elev; 237 | gpsdoStatus.surveytime = stime; 238 | 239 | } 240 | 241 | /* 242 | The same function is used to store sat data for normal and for WAAS sats, the last parameter 243 | tells the type of the satellite 244 | */ 245 | void ProcessSAT(int chan, int sat, int elevation, int azimuth, int snr, bool iswaas) { 246 | if (chan >= NUMSAT) 247 | return; 248 | gpsdoSats[chan].satnum = sat; 249 | gpsdoSats[chan].elevation = elevation; 250 | gpsdoSats[chan].azimuth = azimuth; 251 | gpsdoSats[chan].snr = snr; 252 | gpsdoSats[chan].iswaas = iswaas; 253 | } 254 | 255 | void ProcessGETPOS(long lat, long lon, int elev) { 256 | gpsdoStatus.lat = lat; 257 | gpsdoStatus.lon = lon; 258 | gpsdoStatus.elev = elev; 259 | 260 | } 261 | 262 | void ProcessPPSDBG(int status, float dac, int phaseoffset, int ppsoffset) { 263 | gpsdoStatus.status = status; 264 | gpsdoStatus.dac = dac * 6.25E-5; // V/bit value of the DAC 265 | gpsdoStatus.phaseoffset = phaseoffset; 266 | } 267 | -------------------------------------------------------------------------------- /hardware/GPSDO-backups/GPSDO-2022-03-15_232258.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/szigix/YATPGPSDO/f5d7ab6bb340e0f3caba092694e221dcf63f2024/hardware/GPSDO-backups/GPSDO-2022-03-15_232258.zip -------------------------------------------------------------------------------- /hardware/GPSDO-backups/GPSDO-2022-03-28_073945.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/szigix/YATPGPSDO/f5d7ab6bb340e0f3caba092694e221dcf63f2024/hardware/GPSDO-backups/GPSDO-2022-03-28_073945.zip -------------------------------------------------------------------------------- /hardware/GPSDO-backups/GPSDO-2022-04-09_113002.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/szigix/YATPGPSDO/f5d7ab6bb340e0f3caba092694e221dcf63f2024/hardware/GPSDO-backups/GPSDO-2022-04-09_113002.zip -------------------------------------------------------------------------------- /hardware/GPSDO-cache.lib: -------------------------------------------------------------------------------- 1 | EESchema-LIBRARY Version 2.4 2 | #encoding utf-8 3 | # 4 | # Connector_Generic_Conn_01x03 5 | # 6 | DEF Connector_Generic_Conn_01x03 J 0 40 Y N 1 F N 7 | F0 "J" 0 200 50 H V C CNN 8 | F1 "Connector_Generic_Conn_01x03" 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 | $FPLIST 12 | Connector*:*_1x??_* 13 | $ENDFPLIST 14 | DRAW 15 | S -50 -95 0 -105 1 1 6 N 16 | S -50 5 0 -5 1 1 6 N 17 | S -50 105 0 95 1 1 6 N 18 | S -50 150 50 -150 1 1 10 f 19 | X Pin_1 1 -200 100 150 R 50 50 1 1 P 20 | X Pin_2 2 -200 0 150 R 50 50 1 1 P 21 | X Pin_3 3 -200 -100 150 R 50 50 1 1 P 22 | ENDDRAW 23 | ENDDEF 24 | # 25 | # Connector_Generic_Conn_01x04 26 | # 27 | DEF Connector_Generic_Conn_01x04 J 0 40 Y N 1 F N 28 | F0 "J" 0 200 50 H V C CNN 29 | F1 "Connector_Generic_Conn_01x04" 0 -300 50 H V C CNN 30 | F2 "" 0 0 50 H I C CNN 31 | F3 "" 0 0 50 H I C CNN 32 | $FPLIST 33 | Connector*:*_1x??_* 34 | $ENDFPLIST 35 | DRAW 36 | S -50 -195 0 -205 1 1 6 N 37 | S -50 -95 0 -105 1 1 6 N 38 | S -50 5 0 -5 1 1 6 N 39 | S -50 105 0 95 1 1 6 N 40 | S -50 150 50 -250 1 1 10 f 41 | X Pin_1 1 -200 100 150 R 50 50 1 1 P 42 | X Pin_2 2 -200 0 150 R 50 50 1 1 P 43 | X Pin_3 3 -200 -100 150 R 50 50 1 1 P 44 | X Pin_4 4 -200 -200 150 R 50 50 1 1 P 45 | ENDDRAW 46 | ENDDEF 47 | # 48 | # Connector_Generic_Conn_01x09 49 | # 50 | DEF Connector_Generic_Conn_01x09 J 0 40 Y N 1 F N 51 | F0 "J" 0 500 50 H V C CNN 52 | F1 "Connector_Generic_Conn_01x09" 0 -500 50 H V C CNN 53 | F2 "" 0 0 50 H I C CNN 54 | F3 "" 0 0 50 H I C CNN 55 | $FPLIST 56 | Connector*:*_1x??_* 57 | $ENDFPLIST 58 | DRAW 59 | S -50 -395 0 -405 1 1 6 N 60 | S -50 -295 0 -305 1 1 6 N 61 | S -50 -195 0 -205 1 1 6 N 62 | S -50 -95 0 -105 1 1 6 N 63 | S -50 5 0 -5 1 1 6 N 64 | S -50 105 0 95 1 1 6 N 65 | S -50 205 0 195 1 1 6 N 66 | S -50 305 0 295 1 1 6 N 67 | S -50 405 0 395 1 1 6 N 68 | S -50 450 50 -450 1 1 10 f 69 | X Pin_1 1 -200 400 150 R 50 50 1 1 P 70 | X Pin_2 2 -200 300 150 R 50 50 1 1 P 71 | X Pin_3 3 -200 200 150 R 50 50 1 1 P 72 | X Pin_4 4 -200 100 150 R 50 50 1 1 P 73 | X Pin_5 5 -200 0 150 R 50 50 1 1 P 74 | X Pin_6 6 -200 -100 150 R 50 50 1 1 P 75 | X Pin_7 7 -200 -200 150 R 50 50 1 1 P 76 | X Pin_8 8 -200 -300 150 R 50 50 1 1 P 77 | X Pin_9 9 -200 -400 150 R 50 50 1 1 P 78 | ENDDRAW 79 | ENDDEF 80 | # 81 | # Device_C 82 | # 83 | DEF Device_C C 0 10 N Y 1 F N 84 | F0 "C" 25 100 50 H V L CNN 85 | F1 "Device_C" 25 -100 50 H V L CNN 86 | F2 "" 38 -150 50 H I C CNN 87 | F3 "" 0 0 50 H I C CNN 88 | $FPLIST 89 | C_* 90 | $ENDFPLIST 91 | DRAW 92 | P 2 0 1 20 -80 -30 80 -30 N 93 | P 2 0 1 20 -80 30 80 30 N 94 | X ~ 1 0 150 110 D 50 50 1 1 P 95 | X ~ 2 0 -150 110 U 50 50 1 1 P 96 | ENDDRAW 97 | ENDDEF 98 | # 99 | # Device_CP 100 | # 101 | DEF Device_CP C 0 10 N Y 1 F N 102 | F0 "C" 25 100 50 H V L CNN 103 | F1 "Device_CP" 25 -100 50 H V L CNN 104 | F2 "" 38 -150 50 H I C CNN 105 | F3 "" 0 0 50 H I C CNN 106 | $FPLIST 107 | CP_* 108 | $ENDFPLIST 109 | DRAW 110 | S -90 20 90 40 0 1 0 N 111 | S 90 -20 -90 -40 0 1 0 F 112 | P 2 0 1 0 -70 90 -30 90 N 113 | P 2 0 1 0 -50 110 -50 70 N 114 | X ~ 1 0 150 110 D 50 50 1 1 P 115 | X ~ 2 0 -150 110 U 50 50 1 1 P 116 | ENDDRAW 117 | ENDDEF 118 | # 119 | # Device_LED 120 | # 121 | DEF Device_LED D 0 40 N N 1 F N 122 | F0 "D" 0 100 50 H V C CNN 123 | F1 "Device_LED" 0 -100 50 H V C CNN 124 | F2 "" 0 0 50 H I C CNN 125 | F3 "" 0 0 50 H I C CNN 126 | $FPLIST 127 | LED* 128 | LED_SMD:* 129 | LED_THT:* 130 | $ENDFPLIST 131 | DRAW 132 | P 2 0 1 10 -50 -50 -50 50 N 133 | P 2 0 1 0 -50 0 50 0 N 134 | P 4 0 1 10 50 -50 50 50 -50 0 50 -50 N 135 | P 5 0 1 0 -120 -30 -180 -90 -150 -90 -180 -90 -180 -60 N 136 | P 5 0 1 0 -70 -30 -130 -90 -100 -90 -130 -90 -130 -60 N 137 | X K 1 -150 0 100 R 50 50 1 1 P 138 | X A 2 150 0 100 L 50 50 1 1 P 139 | ENDDRAW 140 | ENDDEF 141 | # 142 | # Device_R 143 | # 144 | DEF Device_R R 0 0 N Y 1 F N 145 | F0 "R" 80 0 50 V V C CNN 146 | F1 "Device_R" 0 0 50 V V C CNN 147 | F2 "" -70 0 50 V I C CNN 148 | F3 "" 0 0 50 H I C CNN 149 | $FPLIST 150 | R_* 151 | $ENDFPLIST 152 | DRAW 153 | S -40 -100 40 100 0 1 10 N 154 | X ~ 1 0 150 50 D 50 50 1 1 P 155 | X ~ 2 0 -150 50 U 50 50 1 1 P 156 | ENDDRAW 157 | ENDDEF 158 | # 159 | # Device_R_POT 160 | # 161 | DEF Device_R_POT RV 0 40 Y N 1 F N 162 | F0 "RV" -175 0 50 V V C CNN 163 | F1 "Device_R_POT" -100 0 50 V V C CNN 164 | F2 "" 0 0 50 H I C CNN 165 | F3 "" 0 0 50 H I C CNN 166 | $FPLIST 167 | Potentiometer* 168 | $ENDFPLIST 169 | DRAW 170 | S 40 100 -40 -100 0 1 10 N 171 | P 2 0 1 0 100 0 60 0 N 172 | P 4 0 1 0 45 0 90 20 90 -20 45 0 F 173 | X 1 1 0 150 50 D 50 50 1 1 P 174 | X 2 2 150 0 50 L 50 50 1 1 P 175 | X 3 3 0 -150 50 U 50 50 1 1 P 176 | ENDDRAW 177 | ENDDEF 178 | # 179 | # Device_Transformer_1P_1S 180 | # 181 | DEF Device_Transformer_1P_1S T 0 40 Y N 1 F N 182 | F0 "T" 0 250 50 H V C CNN 183 | F1 "Device_Transformer_1P_1S" 0 -300 50 H V C CNN 184 | F2 "" 0 0 50 H I C CNN 185 | F3 "" 0 0 50 H I C CNN 186 | DRAW 187 | A -100 -150 50 899 1 0 1 0 N -100 -100 -50 -150 188 | A -100 -150 50 -1 -899 0 1 0 N -50 -150 -100 -199 189 | A -100 -50 50 899 1 0 1 0 N -100 0 -50 -50 190 | A -100 -50 50 -1 -899 0 1 0 N -50 -50 -100 -99 191 | A -100 50 50 899 1 0 1 0 N -100 100 -50 50 192 | A -100 50 50 -1 -899 0 1 0 N -50 50 -100 1 193 | A -100 150 50 899 1 0 1 0 N -100 200 -50 150 194 | A -100 150 50 -1 -899 0 1 0 N -50 150 -100 101 195 | A 100 -50 50 899 -1799 0 1 0 N 100 0 51 -50 196 | A 100 -50 50 1799 -899 0 1 0 N 51 -50 100 -99 197 | A 100 50 50 899 -1799 0 1 0 N 100 100 51 50 198 | A 100 50 50 1799 -899 0 1 0 N 51 50 100 1 199 | A 100 150 50 899 -1799 0 1 0 N 100 200 51 150 200 | A 100 150 50 1799 -899 0 1 0 N 51 150 100 101 201 | A 101 -150 50 910 -1799 0 1 0 N 101 -100 52 -150 202 | A 101 -150 50 -912 -1799 0 1 0 N 101 -199 52 -150 203 | P 2 0 1 0 -25 200 -25 -200 N 204 | P 2 0 1 0 25 -200 25 200 N 205 | X AA 1 -400 200 300 R 50 50 1 1 P 206 | X AB 2 -400 -200 300 R 50 50 1 1 P 207 | X SA 3 400 -200 300 L 50 50 1 1 P 208 | X SB 4 400 200 300 L 50 50 1 1 P 209 | ENDDRAW 210 | ENDDEF 211 | # 212 | # Diode_Bridge_B250C1500G 213 | # 214 | DEF Diode_Bridge_B250C1500G D 0 0 Y Y 1 F N 215 | F0 "D" 100 275 50 H V L CNN 216 | F1 "Diode_Bridge_B250C1500G" 100 200 50 H V L CNN 217 | F2 "Diode_THT:Diode_Bridge_Round_D9.8mm" 150 125 50 H I L CNN 218 | F3 "" 0 0 50 H I C CNN 219 | ALIAS B80C1500G B125C1500G B250C1500G B380C1500G W005G W01G W02G W04G W06G W08G W10G 220 | $FPLIST 221 | D*Bridge*Round*D9.8mm* 222 | $ENDFPLIST 223 | DRAW 224 | P 2 0 1 0 -100 150 -50 100 N 225 | P 2 0 1 0 -50 -100 -100 -150 N 226 | P 2 0 1 0 100 -50 150 -100 N 227 | P 2 0 1 0 100 50 150 100 N 228 | P 4 0 1 0 -150 100 -100 50 -75 125 -150 100 N 229 | P 4 0 1 0 -100 -50 -150 -100 -75 -125 -100 -50 N 230 | P 4 0 1 0 50 100 100 150 125 75 50 100 N 231 | P 4 0 1 0 125 -75 50 -100 100 -150 125 -75 N 232 | P 5 0 1 0 -200 0 0 -200 200 0 0 200 -200 0 N 233 | X + 1 300 0 100 L 50 50 1 1 P 234 | X ~~ 2 0 -300 100 U 50 50 1 1 P 235 | X - 3 -300 0 100 R 50 50 1 1 P 236 | X ~~ 4 0 300 100 D 50 50 1 1 P 237 | ENDDRAW 238 | ENDDEF 239 | # 240 | # Mechanical_MountingHole 241 | # 242 | DEF Mechanical_MountingHole H 0 40 Y Y 1 F N 243 | F0 "H" 0 200 50 H V C CNN 244 | F1 "Mechanical_MountingHole" 0 125 50 H V C CNN 245 | F2 "" 0 0 50 H I C CNN 246 | F3 "" 0 0 50 H I C CNN 247 | $FPLIST 248 | MountingHole* 249 | $ENDFPLIST 250 | DRAW 251 | C 0 0 50 0 1 50 N 252 | ENDDRAW 253 | ENDDEF 254 | # 255 | # Mechanical_MountingHole_Pad 256 | # 257 | DEF Mechanical_MountingHole_Pad H 0 40 N N 1 F N 258 | F0 "H" 0 250 50 H V C CNN 259 | F1 "Mechanical_MountingHole_Pad" 0 175 50 H V C CNN 260 | F2 "" 0 0 50 H I C CNN 261 | F3 "" 0 0 50 H I C CNN 262 | $FPLIST 263 | MountingHole*Pad* 264 | $ENDFPLIST 265 | DRAW 266 | C 0 50 50 0 1 50 N 267 | X 1 1 0 -100 100 U 50 50 1 1 I 268 | ENDDRAW 269 | ENDDEF 270 | # 271 | # MyLib_BluePill_1 272 | # 273 | DEF MyLib_BluePill_1 BP? 0 40 Y Y 1 F N 274 | F0 "BP?" 650 50 50 H V C CNN 275 | F1 "MyLib_BluePill_1" 300 50 50 H V C CNN 276 | F2 "" 1250 -1950 50 H I C CNN 277 | F3 "" 1250 -1950 50 H I C CNN 278 | DRAW 279 | C -20 -1750 14 0 0 0 F 280 | C -20 -1650 14 0 0 0 F 281 | C -20 -1550 14 0 0 0 F 282 | C -20 -1450 14 0 0 0 F 283 | C -20 -1350 14 0 0 0 F 284 | C -20 -1250 14 0 0 0 F 285 | C -20 -1150 14 0 0 0 F 286 | C -20 -1050 14 0 0 0 F 287 | C -20 -950 14 0 0 0 F 288 | C -20 -850 14 0 0 0 F 289 | C -20 -750 14 0 0 0 F 290 | C -20 -650 14 0 0 0 F 291 | C -20 -550 14 0 0 0 F 292 | C -20 -450 14 0 0 0 F 293 | C -20 -350 14 0 0 0 F 294 | C -20 -250 14 0 0 0 F 295 | C -20 -50 14 0 0 0 F 296 | C 305 -1925 5 0 0 0 F 297 | C 305 -1925 10 0 0 0 N 298 | C 305 -1925 14 0 0 0 N 299 | C 1170 -550 10 0 0 0 F 300 | C 1170 -550 14 0 0 0 N 301 | C 1170 -450 10 0 0 0 F 302 | C 1170 -450 14 0 0 0 N 303 | C -20 -150 14 1 1 0 F 304 | T 0 520 -1760 39 0 0 0 "30pF 2MHz" Normal 0 C C 305 | T 0 520 -1925 39 0 0 0 "5V tolerant" Normal 0 C C 306 | T 0 855 -1550 39 0 0 0 ADC0 Normal 0 C C 307 | T 0 855 -1450 39 0 0 0 ADC1 Normal 0 C C 308 | T 0 855 -1350 39 0 0 0 ADC2 Normal 0 C C 309 | T 0 855 -1255 39 0 0 0 ADC3 Normal 0 C C 310 | T 0 855 -1150 39 0 0 0 ADC4 Normal 0 C C 311 | T 0 850 -750 39 0 0 0 ADC8 Normal 0 C C 312 | T 0 850 -650 39 0 0 0 ADC9 Normal 0 C C 313 | T 0 840 -1845 39 0 0 0 LED Normal 0 C C 314 | T 0 845 -950 39 0 0 0 MISO1 Normal 0 C C 315 | T 0 845 -850 39 0 0 0 MOSI1 Normal 0 C C 316 | T 0 330 -945 39 0 0 0 NSS1 Normal 0 C C 317 | T 0 475 -1845 39 0 0 0 "PWM pin" Normal 0 C C 318 | T 0 310 -655 39 0 0 0 RX1 Normal 0 C C 319 | T 0 710 -1255 39 0 0 0 RX2 Normal 0 C C 320 | T 0 830 -450 39 0 0 0 RX3 Normal 0 C C 321 | T 0 855 -1050 39 0 0 0 SCK1 Normal 0 C C 322 | T 0 325 -1345 39 0 0 0 SCL1 Normal 0 C C 323 | T 0 325 -1450 39 0 0 0 SDA1 Normal 0 C C 324 | T 0 485 -1640 39 0 0 0 "sink 3mA" Normal 0 C C 325 | T 0 525 -1695 39 0 0 0 "source 0mA" Normal 0 C C 326 | T 0 305 -550 39 0 0 0 TX1 Normal 0 C C 327 | T 0 705 -1350 39 0 0 0 TX2 Normal 0 C C 328 | T 0 835 -550 39 0 0 0 TX3 Normal 0 C C 329 | T 0 600 -100 50 0 0 0 USB Normal 0 C C 330 | T 0 335 -850 39 0 0 0 USB+ Normal 0 C C 331 | T 0 335 -750 39 0 0 0 USB- Normal 0 C C 332 | T 0 515 -20 20 0 0 0 Y@@J Normal 0 C C 333 | S 0 0 1150 -2000 0 0 0 N 334 | S 750 0 450 -200 0 1 0 N 335 | P 18 0 0 0 280 -1665 305 -1625 330 -1665 280 -1665 305 -1630 325 -1665 285 -1660 305 -1635 320 -1665 290 -1655 310 -1640 315 -1665 295 -1650 315 -1645 310 -1660 300 -1650 310 -1655 305 -1645 N 336 | P 18 0 0 0 1275 -1865 1300 -1825 1325 -1865 1275 -1865 1300 -1830 1320 -1865 1280 -1860 1300 -1835 1315 -1865 1285 -1855 1305 -1840 1310 -1865 1290 -1850 1310 -1845 1305 -1860 1295 -1850 1305 -1855 1300 -1845 N 337 | P 18 0 0 0 1275 -1765 1300 -1725 1325 -1765 1275 -1765 1300 -1730 1320 -1765 1280 -1760 1300 -1735 1315 -1765 1285 -1755 1305 -1740 1310 -1765 1290 -1750 1310 -1745 1305 -1760 1295 -1750 1305 -1755 1300 -1745 N 338 | P 18 0 0 0 1275 -1665 1300 -1625 1325 -1665 1275 -1665 1300 -1630 1320 -1665 1280 -1660 1300 -1635 1315 -1665 1285 -1655 1305 -1640 1310 -1665 1290 -1650 1310 -1645 1305 -1660 1295 -1650 1305 -1655 1300 -1645 N 339 | P 6 0 1 0 -140 -1650 -140 -1670 -160 -1670 -160 -1630 -180 -1630 -180 -1650 N 340 | P 6 0 1 0 -140 -1550 -140 -1570 -160 -1570 -160 -1530 -180 -1530 -180 -1550 N 341 | P 6 0 1 0 -140 -1450 -140 -1470 -160 -1470 -160 -1430 -180 -1430 -180 -1450 N 342 | P 6 0 1 0 -140 -1350 -140 -1370 -160 -1370 -160 -1330 -180 -1330 -180 -1350 N 343 | P 6 0 1 0 -140 -650 -140 -670 -160 -670 -160 -630 -180 -630 -180 -650 N 344 | P 6 0 1 0 -140 -550 -140 -570 -160 -570 -160 -530 -180 -530 -180 -550 N 345 | P 6 0 1 0 -140 -450 -140 -470 -160 -470 -160 -430 -180 -430 -180 -450 N 346 | P 6 0 1 0 320 -1845 320 -1865 300 -1865 300 -1825 280 -1825 280 -1845 N 347 | P 6 0 1 0 1330 -1550 1330 -1570 1310 -1570 1310 -1530 1290 -1530 1290 -1550 N 348 | P 6 0 1 0 1330 -1450 1330 -1470 1310 -1470 1310 -1430 1290 -1430 1290 -1450 N 349 | P 6 0 1 0 1330 -1350 1330 -1370 1310 -1370 1310 -1330 1290 -1330 1290 -1350 N 350 | P 6 0 1 0 1330 -1250 1330 -1270 1310 -1270 1310 -1230 1290 -1230 1290 -1250 N 351 | P 6 0 1 0 1330 -950 1330 -970 1310 -970 1310 -930 1290 -930 1290 -950 N 352 | P 6 0 1 0 1330 -850 1330 -870 1310 -870 1310 -830 1290 -830 1290 -850 N 353 | P 6 0 1 0 1330 -750 1330 -770 1310 -770 1310 -730 1290 -730 1290 -750 N 354 | P 6 0 1 0 1330 -650 1330 -670 1310 -670 1310 -630 1290 -630 1290 -650 N 355 | X PB12 1 -200 -50 200 R 50 50 1 1 B 356 | X PA15 10 -200 -950 200 R 50 50 1 1 B 357 | X PB3 11 -200 -1050 200 R 50 50 1 1 B 358 | X PB4 12 -200 -1150 200 R 50 50 1 1 B 359 | X PB5 13 -200 -1250 200 R 50 50 1 1 B 360 | X PB6 14 -200 -1350 200 R 50 50 1 1 B 361 | X PB7 15 -200 -1450 200 R 50 50 1 1 B 362 | X PB8 16 -200 -1550 200 R 50 50 1 1 B 363 | X PB9 17 -200 -1650 200 R 50 50 1 1 B 364 | X 5V 18 -200 -1750 200 R 50 50 1 1 w 365 | X GND 19 -200 -1850 200 R 50 50 1 1 W 366 | X PB13 2 -200 -150 200 R 50 50 1 1 B 367 | X 3V3 20 -200 -1950 200 R 50 50 1 1 w 368 | X VBat 21 1350 -1950 200 L 50 50 1 1 W 369 | X PC13 22 1350 -1850 200 L 50 50 1 1 B 370 | X PC14 23 1350 -1750 200 L 50 50 1 1 B 371 | X PC15 24 1350 -1650 200 L 50 50 1 1 B 372 | X PA0 25 1350 -1550 200 L 50 50 1 1 B 373 | X PA1 26 1350 -1450 200 L 50 50 1 1 B 374 | X PA2 27 1350 -1350 200 L 50 50 1 1 B 375 | X PA3 28 1350 -1250 200 L 50 50 1 1 B 376 | X PA4 29 1350 -1150 200 L 50 50 1 1 B 377 | X PB14 3 -200 -250 200 R 50 50 1 1 B 378 | X PA5 30 1350 -1050 200 L 50 50 1 1 B 379 | X PA6 31 1350 -950 200 L 50 50 1 1 B 380 | X PA7 32 1350 -850 200 L 50 50 1 1 B 381 | X PB0 33 1350 -750 200 L 50 50 1 1 B 382 | X PB1 34 1350 -650 200 L 50 50 1 1 B 383 | X PB10 35 1350 -550 200 L 50 50 1 1 B 384 | X PB11 36 1350 -450 200 L 50 50 1 1 B 385 | X RST 37 1350 -350 200 L 50 50 1 1 I 386 | X 3V3 38 1350 -250 200 L 50 50 1 1 w 387 | X GND 39 1350 -150 200 L 50 50 1 1 W 388 | X PB15 4 -200 -350 200 R 50 50 1 1 B 389 | X GND 40 1350 -50 200 L 50 50 1 1 W 390 | X PA8 5 -200 -450 200 R 50 50 1 1 B 391 | X PA9 6 -200 -550 200 R 50 50 1 1 B 392 | X PA10 7 -200 -650 200 R 50 50 1 1 B 393 | X PA11 8 -200 -750 200 R 50 50 1 1 B 394 | X PA12 9 -200 -850 200 R 50 50 1 1 B 395 | ENDDRAW 396 | ENDDEF 397 | # 398 | # Regulator_Linear_L7805 399 | # 400 | DEF Regulator_Linear_L7805 U 0 10 Y Y 1 F N 401 | F0 "U" -150 125 50 H V C CNN 402 | F1 "Regulator_Linear_L7805" 0 125 50 H V L CNN 403 | F2 "" 25 -150 50 H I L CIN 404 | F3 "" 0 -50 50 H I C CNN 405 | ALIAS L7806 L7808 L7885 L7809 L7812 L7815 L7818 L7824 406 | $FPLIST 407 | TO?252* 408 | TO?263* 409 | TO?220* 410 | $ENDFPLIST 411 | DRAW 412 | S -200 75 200 -200 0 1 10 f 413 | X IN 1 -300 0 100 R 50 50 1 1 W 414 | X GND 2 0 -300 100 U 50 50 1 1 W 415 | X OUT 3 300 0 100 L 50 50 1 1 w 416 | ENDDRAW 417 | ENDDEF 418 | # 419 | # Regulator_Linear_LM7810_TO220 420 | # 421 | DEF Regulator_Linear_LM7810_TO220 U 0 10 Y Y 1 F N 422 | F0 "U" -150 125 50 H V C CNN 423 | F1 "Regulator_Linear_LM7810_TO220" 0 125 50 H V L CNN 424 | F2 "Package_TO_SOT_THT:TO-220-3_Vertical" 0 225 50 H I C CIN 425 | F3 "" 0 -50 50 H I C CNN 426 | ALIAS LM7806_TO220 LM7808_TO220 LM7809_TO220 LM7810_TO220 LM7812_TO220 LM7815_TO220 LM7818_TO220 LM7824_TO220 LM78M05_TO220 SPX2920U-3.3_TO220 SPX2920U-5.0_TO220 LF15_TO220 LF18_TO220 LF25_TO220 LF33_TO220 LF50_TO220 LF60_TO220 LF80_TO220 LF85_TO220 LF120_TO220 LF47_TO220 LF90_TO220 LM341T-05_TO220 LM341T-12_TO220 LM341T-15_TO220 LM2937xT LM2931-3.3_TO220 LM2931-5.0_TO220 427 | $FPLIST 428 | TO?220* 429 | $ENDFPLIST 430 | DRAW 431 | S -200 75 200 -200 0 1 10 f 432 | X VI 1 -300 0 100 R 50 50 1 1 W 433 | X GND 2 0 -300 100 U 50 50 1 1 W 434 | X VO 3 300 0 100 L 50 50 1 1 w 435 | ENDDRAW 436 | ENDDEF 437 | # 438 | # Switch_SW_Push 439 | # 440 | DEF Switch_SW_Push SW 0 40 N N 1 F N 441 | F0 "SW" 50 100 50 H V L CNN 442 | F1 "Switch_SW_Push" 0 -60 50 H V C CNN 443 | F2 "" 0 200 50 H I C CNN 444 | F3 "" 0 200 50 H I C CNN 445 | DRAW 446 | C -80 0 20 0 1 0 N 447 | C 80 0 20 0 1 0 N 448 | P 2 0 1 0 0 50 0 120 N 449 | P 2 0 1 0 100 50 -100 50 N 450 | X 1 1 -200 0 100 R 50 50 0 1 P 451 | X 2 2 200 0 100 L 50 50 0 1 P 452 | ENDDRAW 453 | ENDDEF 454 | # 455 | # Transistor_BJT_BC237 456 | # 457 | DEF Transistor_BJT_BC237 Q 0 0 Y N 1 F N 458 | F0 "Q" 200 75 50 H V L CNN 459 | F1 "Transistor_BJT_BC237" 200 0 50 H V L CNN 460 | F2 "Package_TO_SOT_THT:TO-92_Inline" 200 -75 50 H I L CIN 461 | F3 "" 0 0 50 H I L CNN 462 | $FPLIST 463 | TO?92* 464 | $ENDFPLIST 465 | DRAW 466 | C 50 0 111 0 1 10 N 467 | P 2 0 1 0 0 0 25 0 N 468 | P 2 0 1 0 25 25 100 100 N 469 | P 3 0 1 0 25 -25 100 -100 100 -100 N 470 | P 3 0 1 20 25 75 25 -75 25 -75 N 471 | P 5 0 1 0 50 -70 70 -50 90 -90 50 -70 50 -70 F 472 | X C 1 100 200 100 D 50 50 1 1 P 473 | X B 2 -200 0 200 R 50 50 1 1 I 474 | X E 3 100 -200 100 U 50 50 1 1 P 475 | ENDDRAW 476 | ENDDEF 477 | # 478 | # power_+10V 479 | # 480 | DEF power_+10V #PWR 0 0 Y Y 1 F P 481 | F0 "#PWR" 0 -150 50 H I C CNN 482 | F1 "power_+10V" 0 140 50 H V C CNN 483 | F2 "" 0 0 50 H I C CNN 484 | F3 "" 0 0 50 H I C CNN 485 | DRAW 486 | P 2 0 1 0 -30 50 0 100 N 487 | P 2 0 1 0 0 0 0 100 N 488 | P 2 0 1 0 0 100 30 50 N 489 | X +10V 1 0 0 0 U 50 50 1 1 W N 490 | ENDDRAW 491 | ENDDEF 492 | # 493 | # power_+5V 494 | # 495 | DEF power_+5V #PWR 0 0 Y Y 1 F P 496 | F0 "#PWR" 0 -150 50 H I C CNN 497 | F1 "power_+5V" 0 140 50 H V C CNN 498 | F2 "" 0 0 50 H I C CNN 499 | F3 "" 0 0 50 H I C CNN 500 | DRAW 501 | P 2 0 1 0 -30 50 0 100 N 502 | P 2 0 1 0 0 0 0 100 N 503 | P 2 0 1 0 0 100 30 50 N 504 | X +5V 1 0 0 0 U 50 50 1 1 W N 505 | ENDDRAW 506 | ENDDEF 507 | # 508 | # power_GND 509 | # 510 | DEF power_GND #PWR 0 0 Y Y 1 F P 511 | F0 "#PWR" 0 -250 50 H I C CNN 512 | F1 "power_GND" 0 -150 50 H V C CNN 513 | F2 "" 0 0 50 H I C CNN 514 | F3 "" 0 0 50 H I C CNN 515 | DRAW 516 | P 6 0 1 0 0 0 0 -50 50 -50 0 -100 -50 -50 0 -50 N 517 | X GND 1 0 0 0 D 50 50 1 1 W N 518 | ENDDRAW 519 | ENDDEF 520 | # 521 | #End Library 522 | -------------------------------------------------------------------------------- /hardware/GPSDO.kicad_prl: -------------------------------------------------------------------------------- 1 | { 2 | "board": { 3 | "active_layer": 0, 4 | "active_layer_preset": "", 5 | "auto_track_width": true, 6 | "hidden_nets": [], 7 | "high_contrast_mode": 0, 8 | "net_color_mode": 1, 9 | "opacity": { 10 | "pads": 1.0, 11 | "tracks": 1.0, 12 | "vias": 1.0, 13 | "zones": 0.6 14 | }, 15 | "ratsnest_display_mode": 0, 16 | "selection_filter": { 17 | "dimensions": true, 18 | "footprints": true, 19 | "graphics": true, 20 | "keepouts": true, 21 | "lockedItems": true, 22 | "otherItems": true, 23 | "pads": true, 24 | "text": true, 25 | "tracks": true, 26 | "vias": true, 27 | "zones": true 28 | }, 29 | "visible_items": [ 30 | 0, 31 | 1, 32 | 2, 33 | 3, 34 | 4, 35 | 5, 36 | 6, 37 | 7, 38 | 8, 39 | 9, 40 | 10, 41 | 11, 42 | 12, 43 | 13, 44 | 14, 45 | 15, 46 | 16, 47 | 17, 48 | 18, 49 | 19, 50 | 20, 51 | 21, 52 | 22, 53 | 23, 54 | 24, 55 | 25, 56 | 26, 57 | 27, 58 | 28, 59 | 29, 60 | 30, 61 | 32, 62 | 33, 63 | 34, 64 | 35, 65 | 36 66 | ], 67 | "visible_layers": "000ffff_80000001", 68 | "zone_display_mode": 0 69 | }, 70 | "meta": { 71 | "filename": "GPSDO.kicad_prl", 72 | "version": 3 73 | }, 74 | "project": { 75 | "files": [] 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /hardware/GPSDO.kicad_pro: -------------------------------------------------------------------------------- 1 | { 2 | "board": { 3 | "design_settings": { 4 | "defaults": { 5 | "board_outline_line_width": 0.049999999999999996, 6 | "copper_line_width": 0.19999999999999998, 7 | "copper_text_italic": false, 8 | "copper_text_size_h": 1.5, 9 | "copper_text_size_v": 1.5, 10 | "copper_text_thickness": 0.3, 11 | "copper_text_upright": false, 12 | "courtyard_line_width": 0.049999999999999996, 13 | "dimension_precision": 4, 14 | "dimension_units": 3, 15 | "dimensions": { 16 | "arrow_length": 1270000, 17 | "extension_offset": 500000, 18 | "keep_text_aligned": true, 19 | "suppress_zeroes": false, 20 | "text_position": 0, 21 | "units_format": 1 22 | }, 23 | "fab_line_width": 0.09999999999999999, 24 | "fab_text_italic": false, 25 | "fab_text_size_h": 1.0, 26 | "fab_text_size_v": 1.0, 27 | "fab_text_thickness": 0.15, 28 | "fab_text_upright": false, 29 | "other_line_width": 0.09999999999999999, 30 | "other_text_italic": false, 31 | "other_text_size_h": 1.0, 32 | "other_text_size_v": 1.0, 33 | "other_text_thickness": 0.15, 34 | "other_text_upright": false, 35 | "pads": { 36 | "drill": 0.762, 37 | "height": 1.524, 38 | "width": 1.524 39 | }, 40 | "silk_line_width": 0.12, 41 | "silk_text_italic": false, 42 | "silk_text_size_h": 1.0, 43 | "silk_text_size_v": 1.0, 44 | "silk_text_thickness": 0.15, 45 | "silk_text_upright": false, 46 | "zones": { 47 | "45_degree_only": false, 48 | "min_clearance": 0.508 49 | } 50 | }, 51 | "diff_pair_dimensions": [], 52 | "drc_exclusions": [], 53 | "meta": { 54 | "filename": "board_design_settings.json", 55 | "version": 2 56 | }, 57 | "rule_severities": { 58 | "annular_width": "error", 59 | "clearance": "error", 60 | "copper_edge_clearance": "error", 61 | "courtyards_overlap": "error", 62 | "diff_pair_gap_out_of_range": "error", 63 | "diff_pair_uncoupled_length_too_long": "error", 64 | "drill_out_of_range": "error", 65 | "duplicate_footprints": "warning", 66 | "extra_footprint": "warning", 67 | "footprint_type_mismatch": "error", 68 | "hole_clearance": "error", 69 | "hole_near_hole": "error", 70 | "invalid_outline": "error", 71 | "item_on_disabled_layer": "error", 72 | "items_not_allowed": "error", 73 | "length_out_of_range": "error", 74 | "malformed_courtyard": "error", 75 | "microvia_drill_out_of_range": "error", 76 | "missing_courtyard": "ignore", 77 | "missing_footprint": "warning", 78 | "net_conflict": "warning", 79 | "npth_inside_courtyard": "ignore", 80 | "padstack": "error", 81 | "pth_inside_courtyard": "ignore", 82 | "shorting_items": "error", 83 | "silk_over_copper": "warning", 84 | "silk_overlap": "warning", 85 | "skew_out_of_range": "error", 86 | "through_hole_pad_without_hole": "error", 87 | "too_many_vias": "error", 88 | "track_dangling": "warning", 89 | "track_width": "error", 90 | "tracks_crossing": "error", 91 | "unconnected_items": "error", 92 | "unresolved_variable": "error", 93 | "via_dangling": "warning", 94 | "zone_has_empty_net": "error", 95 | "zones_intersect": "error" 96 | }, 97 | "rule_severitieslegacy_courtyards_overlap": true, 98 | "rule_severitieslegacy_no_courtyard_defined": false, 99 | "rules": { 100 | "allow_blind_buried_vias": false, 101 | "allow_microvias": false, 102 | "max_error": 0.005, 103 | "min_clearance": 0.0, 104 | "min_copper_edge_clearance": 0.024999999999999998, 105 | "min_hole_clearance": 0.25, 106 | "min_hole_to_hole": 0.25, 107 | "min_microvia_diameter": 0.19999999999999998, 108 | "min_microvia_drill": 0.09999999999999999, 109 | "min_silk_clearance": 0.0, 110 | "min_through_hole_diameter": 0.3, 111 | "min_track_width": 0.19999999999999998, 112 | "min_via_annular_width": 0.049999999999999996, 113 | "min_via_diameter": 0.39999999999999997, 114 | "use_height_for_length_calcs": true 115 | }, 116 | "track_widths": [ 117 | 0.0, 118 | 0.25, 119 | 0.5, 120 | 1.0, 121 | 2.0 122 | ], 123 | "via_dimensions": [], 124 | "zones_allow_external_fillets": false, 125 | "zones_use_no_outline": true 126 | }, 127 | "layer_presets": [] 128 | }, 129 | "boards": [], 130 | "cvpcb": { 131 | "equivalence_files": [] 132 | }, 133 | "libraries": { 134 | "pinned_footprint_libs": [], 135 | "pinned_symbol_libs": [] 136 | }, 137 | "meta": { 138 | "filename": "GPSDO.kicad_pro", 139 | "version": 1 140 | }, 141 | "net_settings": { 142 | "classes": [ 143 | { 144 | "bus_width": 12.0, 145 | "clearance": 0.2, 146 | "diff_pair_gap": 0.25, 147 | "diff_pair_via_gap": 0.25, 148 | "diff_pair_width": 0.2, 149 | "line_style": 0, 150 | "microvia_diameter": 0.3, 151 | "microvia_drill": 0.1, 152 | "name": "Default", 153 | "pcb_color": "rgba(0, 0, 0, 0.000)", 154 | "schematic_color": "rgba(0, 0, 0, 0.000)", 155 | "track_width": 0.25, 156 | "via_diameter": 0.8, 157 | "via_drill": 0.4, 158 | "wire_width": 6.0 159 | } 160 | ], 161 | "meta": { 162 | "version": 2 163 | }, 164 | "net_colors": null 165 | }, 166 | "pcbnew": { 167 | "last_paths": { 168 | "gencad": "", 169 | "idf": "", 170 | "netlist": "GPSDO.net", 171 | "specctra_dsn": "", 172 | "step": "", 173 | "vrml": "" 174 | }, 175 | "page_layout_descr_file": "" 176 | }, 177 | "schematic": { 178 | "drawing": { 179 | "default_text_size": 50, 180 | "label_size_ratio": 0.25, 181 | "pin_symbol_size": 0, 182 | "text_offset_ratio": 0.08 183 | }, 184 | "legacy_lib_dir": "", 185 | "legacy_lib_list": [], 186 | "net_format_name": "Pcbnew", 187 | "page_layout_descr_file": "", 188 | "plot_directory": "", 189 | "spice_adjust_passive_values": false, 190 | "subpart_first_id": 65, 191 | "subpart_id_separator": 0 192 | }, 193 | "sheets": [], 194 | "text_variables": {} 195 | } 196 | -------------------------------------------------------------------------------- /hardware/GPSDO.pro: -------------------------------------------------------------------------------- 1 | update=02/12/2020 18:41:36 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=GPSDO.net 29 | CopperLayerCount=2 30 | BoardThickness=1.6 31 | AllowMicroVias=0 32 | AllowBlindVias=0 33 | RequireCourtyardDefinitions=0 34 | ProhibitOverlappingCourtyards=1 35 | MinTrackWidth=0.2 36 | MinViaDiameter=0.4 37 | MinViaDrill=0.3 38 | MinMicroViaDiameter=0.2 39 | MinMicroViaDrill=0.09999999999999999 40 | MinHoleToHole=0.25 41 | TrackWidth1=0.25 42 | TrackWidth2=0.25 43 | TrackWidth3=0.5 44 | TrackWidth4=1 45 | TrackWidth5=2 46 | ViaDiameter1=0.8 47 | ViaDrill1=0.4 48 | dPairWidth1=0.2 49 | dPairGap1=0.25 50 | dPairViaGap1=0.25 51 | SilkLineWidth=0.12 52 | SilkTextSizeV=1 53 | SilkTextSizeH=1 54 | SilkTextSizeThickness=0.15 55 | SilkTextItalic=0 56 | SilkTextUpright=1 57 | CopperLineWidth=0.2 58 | CopperTextSizeV=1.5 59 | CopperTextSizeH=1.5 60 | CopperTextThickness=0.3 61 | CopperTextItalic=0 62 | CopperTextUpright=1 63 | EdgeCutLineWidth=0.05 64 | CourtyardLineWidth=0.05 65 | OthersLineWidth=0.15 66 | OthersTextSizeV=1 67 | OthersTextSizeH=1 68 | OthersTextSizeThickness=0.15 69 | OthersTextItalic=0 70 | OthersTextUpright=1 71 | SolderMaskClearance=0 72 | SolderMaskMinWidth=0 73 | SolderPasteClearance=0 74 | SolderPasteRatio=-0 75 | [pcbnew/Layer.F.Cu] 76 | Name=F.Cu 77 | Type=0 78 | Enabled=1 79 | [pcbnew/Layer.In1.Cu] 80 | Name=In1.Cu 81 | Type=0 82 | Enabled=0 83 | [pcbnew/Layer.In2.Cu] 84 | Name=In2.Cu 85 | Type=0 86 | Enabled=0 87 | [pcbnew/Layer.In3.Cu] 88 | Name=In3.Cu 89 | Type=0 90 | Enabled=0 91 | [pcbnew/Layer.In4.Cu] 92 | Name=In4.Cu 93 | Type=0 94 | Enabled=0 95 | [pcbnew/Layer.In5.Cu] 96 | Name=In5.Cu 97 | Type=0 98 | Enabled=0 99 | [pcbnew/Layer.In6.Cu] 100 | Name=In6.Cu 101 | Type=0 102 | Enabled=0 103 | [pcbnew/Layer.In7.Cu] 104 | Name=In7.Cu 105 | Type=0 106 | Enabled=0 107 | [pcbnew/Layer.In8.Cu] 108 | Name=In8.Cu 109 | Type=0 110 | Enabled=0 111 | [pcbnew/Layer.In9.Cu] 112 | Name=In9.Cu 113 | Type=0 114 | Enabled=0 115 | [pcbnew/Layer.In10.Cu] 116 | Name=In10.Cu 117 | Type=0 118 | Enabled=0 119 | [pcbnew/Layer.In11.Cu] 120 | Name=In11.Cu 121 | Type=0 122 | Enabled=0 123 | [pcbnew/Layer.In12.Cu] 124 | Name=In12.Cu 125 | Type=0 126 | Enabled=0 127 | [pcbnew/Layer.In13.Cu] 128 | Name=In13.Cu 129 | Type=0 130 | Enabled=0 131 | [pcbnew/Layer.In14.Cu] 132 | Name=In14.Cu 133 | Type=0 134 | Enabled=0 135 | [pcbnew/Layer.In15.Cu] 136 | Name=In15.Cu 137 | Type=0 138 | Enabled=0 139 | [pcbnew/Layer.In16.Cu] 140 | Name=In16.Cu 141 | Type=0 142 | Enabled=0 143 | [pcbnew/Layer.In17.Cu] 144 | Name=In17.Cu 145 | Type=0 146 | Enabled=0 147 | [pcbnew/Layer.In18.Cu] 148 | Name=In18.Cu 149 | Type=0 150 | Enabled=0 151 | [pcbnew/Layer.In19.Cu] 152 | Name=In19.Cu 153 | Type=0 154 | Enabled=0 155 | [pcbnew/Layer.In20.Cu] 156 | Name=In20.Cu 157 | Type=0 158 | Enabled=0 159 | [pcbnew/Layer.In21.Cu] 160 | Name=In21.Cu 161 | Type=0 162 | Enabled=0 163 | [pcbnew/Layer.In22.Cu] 164 | Name=In22.Cu 165 | Type=0 166 | Enabled=0 167 | [pcbnew/Layer.In23.Cu] 168 | Name=In23.Cu 169 | Type=0 170 | Enabled=0 171 | [pcbnew/Layer.In24.Cu] 172 | Name=In24.Cu 173 | Type=0 174 | Enabled=0 175 | [pcbnew/Layer.In25.Cu] 176 | Name=In25.Cu 177 | Type=0 178 | Enabled=0 179 | [pcbnew/Layer.In26.Cu] 180 | Name=In26.Cu 181 | Type=0 182 | Enabled=0 183 | [pcbnew/Layer.In27.Cu] 184 | Name=In27.Cu 185 | Type=0 186 | Enabled=0 187 | [pcbnew/Layer.In28.Cu] 188 | Name=In28.Cu 189 | Type=0 190 | Enabled=0 191 | [pcbnew/Layer.In29.Cu] 192 | Name=In29.Cu 193 | Type=0 194 | Enabled=0 195 | [pcbnew/Layer.In30.Cu] 196 | Name=In30.Cu 197 | Type=0 198 | Enabled=0 199 | [pcbnew/Layer.B.Cu] 200 | Name=B.Cu 201 | Type=0 202 | Enabled=1 203 | [pcbnew/Layer.B.Adhes] 204 | Enabled=1 205 | [pcbnew/Layer.F.Adhes] 206 | Enabled=1 207 | [pcbnew/Layer.B.Paste] 208 | Enabled=1 209 | [pcbnew/Layer.F.Paste] 210 | Enabled=1 211 | [pcbnew/Layer.B.SilkS] 212 | Enabled=1 213 | [pcbnew/Layer.F.SilkS] 214 | Enabled=1 215 | [pcbnew/Layer.B.Mask] 216 | Enabled=1 217 | [pcbnew/Layer.F.Mask] 218 | Enabled=1 219 | [pcbnew/Layer.Dwgs.User] 220 | Enabled=1 221 | [pcbnew/Layer.Cmts.User] 222 | Enabled=1 223 | [pcbnew/Layer.Eco1.User] 224 | Enabled=1 225 | [pcbnew/Layer.Eco2.User] 226 | Enabled=1 227 | [pcbnew/Layer.Edge.Cuts] 228 | Enabled=1 229 | [pcbnew/Layer.Margin] 230 | Enabled=1 231 | [pcbnew/Layer.B.CrtYd] 232 | Enabled=1 233 | [pcbnew/Layer.F.CrtYd] 234 | Enabled=1 235 | [pcbnew/Layer.B.Fab] 236 | Enabled=1 237 | [pcbnew/Layer.F.Fab] 238 | Enabled=1 239 | [pcbnew/Layer.Rescue] 240 | Enabled=0 241 | [pcbnew/Netclasses] 242 | [pcbnew/Netclasses/Default] 243 | Name=Default 244 | Clearance=0.2 245 | TrackWidth=0.25 246 | ViaDiameter=0.8 247 | ViaDrill=0.4 248 | uViaDiameter=0.3 249 | uViaDrill=0.1 250 | dPairWidth=0.2 251 | dPairGap=0.25 252 | dPairViaGap=0.25 253 | -------------------------------------------------------------------------------- /hardware/GPSDO.sch: -------------------------------------------------------------------------------- 1 | EESchema Schematic File Version 4 2 | EELAYER 30 0 3 | EELAYER END 4 | $Descr A4 11693 8268 5 | encoding utf-8 6 | Sheet 1 1 7 | Title "TruePosition GPSDO control" 8 | Date "" 9 | Rev "A" 10 | Comp "" 11 | Comment1 "" 12 | Comment2 "" 13 | Comment3 "" 14 | Comment4 "" 15 | $EndDescr 16 | $Comp 17 | L Regulator_Linear:L7805 U1 18 | U 1 1 5E7E42AC 19 | P 5500 2000 20 | F 0 "U1" H 5500 2242 50 0000 C CNN 21 | F 1 "L7805" H 5500 2151 50 0000 C CNN 22 | F 2 "Package_TO_SOT_THT:TO-220-3_Vertical" H 5525 1850 50 0001 L CIN 23 | F 3 "http://www.st.com/content/ccc/resource/technical/document/datasheet/41/4f/b3/b0/12/d4/47/88/CD00000444.pdf/files/CD00000444.pdf/jcr:content/translations/en.CD00000444.pdf" H 5500 1950 50 0001 C CNN 24 | 1 5500 2000 25 | 1 0 0 -1 26 | $EndComp 27 | $Comp 28 | L Device:C C3 29 | U 1 1 5E7E89D9 30 | P 5000 2150 31 | F 0 "C3" H 4950 1900 50 0000 L CNN 32 | F 1 "100n" H 4900 1800 50 0000 L CNN 33 | F 2 "Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P2.50mm" H 5038 2000 50 0001 C CNN 34 | F 3 "~" H 5000 2150 50 0001 C CNN 35 | 1 5000 2150 36 | 1 0 0 -1 37 | $EndComp 38 | $Comp 39 | L Device:C C6 40 | U 1 1 5E7E9418 41 | P 6000 3000 42 | F 0 "C6" H 5950 2750 50 0000 L CNN 43 | F 1 "100n" H 5950 2650 50 0000 L CNN 44 | F 2 "Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P2.50mm" H 6038 2850 50 0001 C CNN 45 | F 3 "~" H 6000 3000 50 0001 C CNN 46 | 1 6000 3000 47 | 1 0 0 -1 48 | $EndComp 49 | $Comp 50 | L Device:C C5 51 | U 1 1 5E7E9A56 52 | P 6000 2150 53 | F 0 "C5" H 5950 1900 50 0000 L CNN 54 | F 1 "100n" H 5900 1800 50 0000 L CNN 55 | F 2 "Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P2.50mm" H 6038 2000 50 0001 C CNN 56 | F 3 "~" H 6000 2150 50 0001 C CNN 57 | 1 6000 2150 58 | 1 0 0 -1 59 | $EndComp 60 | $Comp 61 | L Device:CP C2 62 | U 1 1 5E7E9D9F 63 | P 4450 2150 64 | F 0 "C2" H 4400 2600 50 0000 L CNN 65 | F 1 "2200uF/35V" H 4350 2500 50 0000 L CNN 66 | F 2 "Capacitor_THT:CP_Radial_D16.0mm_P7.50mm" H 4488 2000 50 0001 C CNN 67 | F 3 "~" H 4450 2150 50 0001 C CNN 68 | 1 4450 2150 69 | 1 0 0 -1 70 | $EndComp 71 | $Comp 72 | L Device:CP C7 73 | U 1 1 5E7EA8E3 74 | P 6300 2150 75 | F 0 "C7" H 6250 1950 50 0000 L CNN 76 | F 1 "4,7uF/25V" H 6250 1850 50 0000 L CNN 77 | F 2 "Capacitor_THT:CP_Radial_D5.0mm_P2.00mm" H 6338 2000 50 0001 C CNN 78 | F 3 "~" H 6300 2150 50 0001 C CNN 79 | 1 6300 2150 80 | 1 0 0 -1 81 | $EndComp 82 | $Comp 83 | L Device:CP C8 84 | U 1 1 5E7EB9AE 85 | P 6300 3000 86 | F 0 "C8" H 6250 2750 50 0000 L CNN 87 | F 1 "4.7uF/25V" H 6250 2650 50 0000 L CNN 88 | F 2 "Capacitor_THT:CP_Radial_D5.0mm_P2.00mm" H 6338 2850 50 0001 C CNN 89 | F 3 "~" H 6300 3000 50 0001 C CNN 90 | 1 6300 3000 91 | 1 0 0 -1 92 | $EndComp 93 | Wire Wire Line 94 | 4450 2000 4750 2000 95 | Connection ~ 5000 2000 96 | Wire Wire Line 97 | 5000 2000 5200 2000 98 | $Comp 99 | L Device:C C4 100 | U 1 1 5E82948E 101 | P 5000 3000 102 | F 0 "C4" H 4950 2750 50 0000 L CNN 103 | F 1 "100n" H 4950 2650 50 0000 L CNN 104 | F 2 "Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P2.50mm" H 5038 2850 50 0001 C CNN 105 | F 3 "~" H 5000 3000 50 0001 C CNN 106 | 1 5000 3000 107 | 1 0 0 -1 108 | $EndComp 109 | Wire Wire Line 110 | 5200 2850 5000 2850 111 | Wire Wire Line 112 | 4750 2850 4750 2000 113 | Connection ~ 5000 2850 114 | Wire Wire Line 115 | 5000 2850 4750 2850 116 | Connection ~ 4750 2000 117 | Wire Wire Line 118 | 4750 2000 5000 2000 119 | Wire Wire Line 120 | 5800 2000 6000 2000 121 | Connection ~ 6000 2000 122 | Wire Wire Line 123 | 6000 2000 6300 2000 124 | Wire Wire Line 125 | 5800 2850 6000 2850 126 | Connection ~ 6000 2850 127 | Wire Wire Line 128 | 6000 2850 6300 2850 129 | Connection ~ 6300 2000 130 | Connection ~ 6300 2850 131 | Wire Wire Line 132 | 4450 2300 5000 2300 133 | Connection ~ 5000 2300 134 | Wire Wire Line 135 | 5000 2300 5500 2300 136 | Connection ~ 5500 2300 137 | Wire Wire Line 138 | 5500 2300 6000 2300 139 | Connection ~ 6000 2300 140 | Wire Wire Line 141 | 6000 2300 6300 2300 142 | Connection ~ 6000 3150 143 | Wire Wire Line 144 | 6300 3150 6000 3150 145 | Wire Wire Line 146 | 5000 3150 4450 3150 147 | Connection ~ 5000 3150 148 | Connection ~ 4450 2300 149 | Connection ~ 4450 3150 150 | $Comp 151 | L power:GND #PWR07 152 | U 1 1 5E8359EF 153 | P 4450 3150 154 | F 0 "#PWR07" H 4450 2900 50 0001 C CNN 155 | F 1 "GND" H 4455 2977 50 0000 C CNN 156 | F 2 "" H 4450 3150 50 0001 C CNN 157 | F 3 "" H 4450 3150 50 0001 C CNN 158 | 1 4450 3150 159 | 1 0 0 -1 160 | $EndComp 161 | $Comp 162 | L power:+5V #PWR010 163 | U 1 1 5E83605D 164 | P 6300 2000 165 | F 0 "#PWR010" H 6300 1850 50 0001 C CNN 166 | F 1 "+5V" H 6315 2173 50 0000 C CNN 167 | F 2 "" H 6300 2000 50 0001 C CNN 168 | F 3 "" H 6300 2000 50 0001 C CNN 169 | 1 6300 2000 170 | 1 0 0 -1 171 | $EndComp 172 | $Comp 173 | L power:+10V #PWR011 174 | U 1 1 5E836706 175 | P 6300 2850 176 | F 0 "#PWR011" H 6300 2700 50 0001 C CNN 177 | F 1 "+10V" H 6315 3023 50 0000 C CNN 178 | F 2 "" H 6300 2850 50 0001 C CNN 179 | F 3 "" H 6300 2850 50 0001 C CNN 180 | 1 6300 2850 181 | 1 0 0 -1 182 | $EndComp 183 | $Comp 184 | L Regulator_Linear:LM7810_TO220 U2 185 | U 1 1 5E836E30 186 | P 5500 2850 187 | F 0 "U2" H 5500 3092 50 0000 C CNN 188 | F 1 "LM7810_TO220" H 5500 3001 50 0000 C CNN 189 | F 2 "Package_TO_SOT_THT:TO-220-3_Vertical" H 5500 3075 50 0001 C CIN 190 | F 3 "http://www.fairchildsemi.com/ds/LM/LM7805.pdf" H 5500 2800 50 0001 C CNN 191 | 1 5500 2850 192 | 1 0 0 -1 193 | $EndComp 194 | Wire Wire Line 195 | 5000 3150 5500 3150 196 | Connection ~ 5500 3150 197 | Wire Wire Line 198 | 5500 3150 6000 3150 199 | $Comp 200 | L MyLib:BluePill_1 BP1 201 | U 1 1 5E83AC76 202 | P 4600 4000 203 | F 0 "BP1" H 5175 4175 50 0000 C CNN 204 | F 1 "BluePill_1" H 5175 4084 50 0000 C CNN 205 | F 2 "Cutom-modules:STM32-BluePill" H 5850 2050 50 0001 C CNN 206 | F 3 "" H 5850 2050 50 0001 C CNN 207 | 1 4600 4000 208 | 1 0 0 -1 209 | $EndComp 210 | $Comp 211 | L power:GND #PWR06 212 | U 1 1 5E83E250 213 | P 4150 6100 214 | F 0 "#PWR06" H 4150 5850 50 0001 C CNN 215 | F 1 "GND" H 4155 5927 50 0000 C CNN 216 | F 2 "" H 4150 6100 50 0001 C CNN 217 | F 3 "" H 4150 6100 50 0001 C CNN 218 | 1 4150 6100 219 | 1 0 0 -1 220 | $EndComp 221 | $Comp 222 | L power:GND #PWR08 223 | U 1 1 5E83E6BB 224 | P 6150 4050 225 | F 0 "#PWR08" H 6150 3800 50 0001 C CNN 226 | F 1 "GND" H 6155 3877 50 0000 C CNN 227 | F 2 "" H 6150 4050 50 0001 C CNN 228 | F 3 "" H 6150 4050 50 0001 C CNN 229 | 1 6150 4050 230 | 1 0 0 -1 231 | $EndComp 232 | Wire Wire Line 233 | 4400 5850 4150 5850 234 | Wire Wire Line 235 | 4150 5850 4150 6100 236 | Wire Wire Line 237 | 6150 4050 6050 4050 238 | Wire Wire Line 239 | 5950 4150 6050 4150 240 | Wire Wire Line 241 | 6050 4150 6050 4050 242 | Connection ~ 6050 4050 243 | Wire Wire Line 244 | 6050 4050 5950 4050 245 | $Comp 246 | L power:+5V #PWR05 247 | U 1 1 5E8415A0 248 | P 4150 5750 249 | F 0 "#PWR05" H 4150 5600 50 0001 C CNN 250 | F 1 "+5V" H 4165 5923 50 0000 C CNN 251 | F 2 "" H 4150 5750 50 0001 C CNN 252 | F 3 "" H 4150 5750 50 0001 C CNN 253 | 1 4150 5750 254 | 1 0 0 -1 255 | $EndComp 256 | Wire Wire Line 257 | 4400 5750 4150 5750 258 | $Comp 259 | L power:GND #PWR09 260 | U 1 1 5E85863E 261 | P 6400 5600 262 | F 0 "#PWR09" H 6400 5350 50 0001 C CNN 263 | F 1 "GND" H 6405 5427 50 0000 C CNN 264 | F 2 "" H 6400 5600 50 0001 C CNN 265 | F 3 "" H 6400 5600 50 0001 C CNN 266 | 1 6400 5600 267 | 1 0 0 -1 268 | $EndComp 269 | $Comp 270 | L Switch:SW_Push SW1 271 | U 1 1 5E84D043 272 | P 4050 4000 273 | F 0 "SW1" H 4050 4285 50 0000 C CNN 274 | F 1 "SW_Mode" H 4050 4194 50 0000 C CNN 275 | F 2 "Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical" H 4050 4200 50 0001 C CNN 276 | F 3 "~" H 4050 4200 50 0001 C CNN 277 | 1 4050 4000 278 | -1 0 0 -1 279 | $EndComp 280 | $Comp 281 | L Switch:SW_Push SW2 282 | U 1 1 5E84C9C6 283 | P 4050 4350 284 | F 0 "SW2" H 4050 4635 50 0000 C CNN 285 | F 1 "SW_Sel" H 4050 4544 50 0000 C CNN 286 | F 2 "Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical" H 4050 4550 50 0001 C CNN 287 | F 3 "~" H 4050 4550 50 0001 C CNN 288 | 1 4050 4350 289 | -1 0 0 -1 290 | $EndComp 291 | Wire Wire Line 292 | 2300 5250 2150 5250 293 | Wire Wire Line 294 | 2300 4950 2150 4950 295 | Wire Wire Line 296 | 2150 4650 2300 4650 297 | Wire Wire Line 298 | 2600 5250 2700 5250 299 | Wire Wire Line 300 | 2700 4950 2600 4950 301 | Wire Wire Line 302 | 2700 4650 2600 4650 303 | $Comp 304 | L power:GND #PWR03 305 | U 1 1 5E844B75 306 | P 2750 6100 307 | F 0 "#PWR03" H 2750 5850 50 0001 C CNN 308 | F 1 "GND" H 2755 5927 50 0000 C CNN 309 | F 2 "" H 2750 6100 50 0001 C CNN 310 | F 3 "" H 2750 6100 50 0001 C CNN 311 | 1 2750 6100 312 | -1 0 0 -1 313 | $EndComp 314 | $Comp 315 | L Device:LED D3 316 | U 1 1 5E8447A6 317 | P 2450 5250 318 | F 0 "D3" H 2443 4995 50 0000 C CNN 319 | F 1 "LED red" H 2443 5086 50 0000 C CNN 320 | F 2 "Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical" H 2450 5250 50 0001 C CNN 321 | F 3 "~" H 2450 5250 50 0001 C CNN 322 | 1 2450 5250 323 | 1 0 0 1 324 | $EndComp 325 | $Comp 326 | L Device:LED D2 327 | U 1 1 5E844296 328 | P 2450 4950 329 | F 0 "D2" H 2443 4695 50 0000 C CNN 330 | F 1 "LED yellow" H 2443 4786 50 0000 C CNN 331 | F 2 "Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical" H 2450 4950 50 0001 C CNN 332 | F 3 "~" H 2450 4950 50 0001 C CNN 333 | 1 2450 4950 334 | 1 0 0 1 335 | $EndComp 336 | $Comp 337 | L Device:LED D1 338 | U 1 1 5E843C2F 339 | P 2450 4650 340 | F 0 "D1" H 2443 4395 50 0000 C CNN 341 | F 1 "LED green" H 2443 4486 50 0000 C CNN 342 | F 2 "Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical" H 2450 4650 50 0001 C CNN 343 | F 3 "~" H 2450 4650 50 0001 C CNN 344 | 1 2450 4650 345 | 1 0 0 1 346 | $EndComp 347 | $Comp 348 | L Device:R R3 349 | U 1 1 5E8438BA 350 | P 2850 5250 351 | F 0 "R3" V 2643 5250 50 0000 C CNN 352 | F 1 "1k5" V 2734 5250 50 0000 C CNN 353 | F 2 "Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal" V 2780 5250 50 0001 C CNN 354 | F 3 "~" H 2850 5250 50 0001 C CNN 355 | 1 2850 5250 356 | 0 -1 1 0 357 | $EndComp 358 | $Comp 359 | L Device:R R2 360 | U 1 1 5E8433CE 361 | P 2850 4950 362 | F 0 "R2" V 3057 4950 50 0000 C CNN 363 | F 1 "1k5" V 2966 4950 50 0000 C CNN 364 | F 2 "Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal" V 2780 4950 50 0001 C CNN 365 | F 3 "~" H 2850 4950 50 0001 C CNN 366 | 1 2850 4950 367 | 0 1 -1 0 368 | $EndComp 369 | $Comp 370 | L Device:R R1 371 | U 1 1 5E842C41 372 | P 2850 4650 373 | F 0 "R1" V 2643 4650 50 0000 C CNN 374 | F 1 "1k5" V 2734 4650 50 0000 C CNN 375 | F 2 "Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal" V 2780 4650 50 0001 C CNN 376 | F 3 "~" H 2850 4650 50 0001 C CNN 377 | 1 2850 4650 378 | 0 -1 1 0 379 | $EndComp 380 | $Comp 381 | L Device:C C1 382 | U 1 1 5E855AC8 383 | P 4100 2150 384 | F 0 "C1" H 4050 2600 50 0000 L CNN 385 | F 1 "100nF" H 4000 2500 50 0000 L CNN 386 | F 2 "Capacitor_THT:C_Disc_D5.0mm_W2.5mm_P2.50mm" H 4138 2000 50 0001 C CNN 387 | F 3 "~" H 4100 2150 50 0001 C CNN 388 | 1 4100 2150 389 | 1 0 0 -1 390 | $EndComp 391 | Wire Wire Line 392 | 4250 4250 4250 4000 393 | Wire Wire Line 394 | 4400 5250 3500 5250 395 | Wire Wire Line 396 | 3500 5250 3500 4650 397 | Wire Wire Line 398 | 3500 4650 3000 4650 399 | Wire Wire Line 400 | 4400 5350 3350 5350 401 | Wire Wire Line 402 | 3350 5350 3350 4950 403 | Wire Wire Line 404 | 3350 4950 3000 4950 405 | Wire Wire Line 406 | 4400 5450 3150 5450 407 | Wire Wire Line 408 | 3150 5450 3150 5250 409 | Wire Wire Line 410 | 3150 5250 3000 5250 411 | $Comp 412 | L Device:R R4 413 | U 1 1 5E89BCC6 414 | P 3300 5900 415 | F 0 "R4" V 3093 5900 50 0000 C CNN 416 | F 1 "10k" V 3184 5900 50 0000 C CNN 417 | F 2 "Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal" V 3230 5900 50 0001 C CNN 418 | F 3 "~" H 3300 5900 50 0001 C CNN 419 | 1 3300 5900 420 | 0 1 1 0 421 | $EndComp 422 | Wire Wire Line 423 | 4400 5550 3650 5550 424 | Wire Wire Line 425 | 3650 5900 3450 5900 426 | Wire Wire Line 427 | 3150 5900 3050 5900 428 | Wire Wire Line 429 | 2600 5650 2750 5650 430 | Wire Wire Line 431 | 2750 5650 2750 5700 432 | Connection ~ 2150 4950 433 | Wire Wire Line 434 | 2150 4950 2150 4650 435 | Wire Wire Line 436 | 2150 5250 2150 4950 437 | $Comp 438 | L Connector_Generic:Conn_01x04 J3 439 | U 1 1 5E8C0B0A 440 | P 6700 5350 441 | F 0 "J3" H 6650 5050 50 0000 L CNN 442 | F 1 "GPSDO" H 6650 4950 50 0000 L CNN 443 | F 2 "Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical" H 6700 5350 50 0001 C CNN 444 | F 3 "~" H 6700 5350 50 0001 C CNN 445 | 1 6700 5350 446 | 1 0 0 -1 447 | $EndComp 448 | Wire Wire Line 449 | 5950 5350 6300 5350 450 | Wire Wire Line 451 | 6300 5350 6300 5450 452 | Wire Wire Line 453 | 6300 5450 6500 5450 454 | Wire Wire Line 455 | 5950 5250 6500 5250 456 | Wire Wire Line 457 | 6500 5350 6400 5350 458 | Wire Wire Line 459 | 6400 5350 6400 5550 460 | Wire Wire Line 461 | 6400 5550 6500 5550 462 | Connection ~ 6400 5550 463 | Wire Wire Line 464 | 6400 5550 6400 5600 465 | $Comp 466 | L Device:Transformer_1P_1S T1 467 | U 1 1 5ED9B0D1 468 | P 2550 2200 469 | F 0 "T1" H 2550 2581 50 0000 C CNN 470 | F 1 "230V/12V 16VA" H 2550 2490 50 0000 C CNN 471 | F 2 "Cutom-modules:Transforme_Gerth_Bv_54112" H 2550 2200 50 0001 C CNN 472 | F 3 "~" H 2550 2200 50 0001 C CNN 473 | 1 2550 2200 474 | 1 0 0 -1 475 | $EndComp 476 | Wire Wire Line 477 | 2950 2000 3050 2000 478 | Wire Wire Line 479 | 3050 2000 3050 1900 480 | Wire Wire Line 481 | 3050 1900 3500 1900 482 | Wire Wire Line 483 | 2950 2400 3050 2400 484 | Wire Wire Line 485 | 3050 2400 3050 2500 486 | Wire Wire Line 487 | 3050 2500 3500 2500 488 | Wire Wire Line 489 | 3800 2200 3800 2000 490 | Wire Wire Line 491 | 3800 2000 4100 2000 492 | Connection ~ 4450 2000 493 | Connection ~ 4100 2000 494 | Wire Wire Line 495 | 4100 2000 4450 2000 496 | Wire Wire Line 497 | 3200 2200 3200 3150 498 | Wire Wire Line 499 | 3200 3150 4100 3150 500 | Wire Wire Line 501 | 4100 2300 4450 2300 502 | Wire Wire Line 503 | 4100 2300 4100 3150 504 | Connection ~ 4100 2300 505 | Connection ~ 4100 3150 506 | Wire Wire Line 507 | 4100 3150 4450 3150 508 | $Comp 509 | L Connector_Generic:Conn_01x03 J2 510 | U 1 1 5EDBF924 511 | P 1500 2200 512 | F 0 "J2" H 1418 2517 50 0000 C CNN 513 | F 1 "Power 230V" H 1418 2426 50 0000 C CNN 514 | F 2 "Connector_Wire:SolderWire-1.5sqmm_1x03_P6mm_D1.7mm_OD3mm" H 1500 2200 50 0001 C CNN 515 | F 3 "~" H 1500 2200 50 0001 C CNN 516 | 1 1500 2200 517 | -1 0 0 -1 518 | $EndComp 519 | Wire Wire Line 520 | 1700 2100 2150 2100 521 | Wire Wire Line 522 | 2150 2100 2150 2000 523 | Wire Wire Line 524 | 1900 3150 3200 3150 525 | Connection ~ 3200 3150 526 | $Comp 527 | L Device:R R5 528 | U 1 1 5EDB2A36 529 | P 2450 5650 530 | F 0 "R5" V 2243 5650 50 0000 C CNN 531 | F 1 "220" V 2334 5650 50 0000 C CNN 532 | F 2 "Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal" V 2380 5650 50 0001 C CNN 533 | F 3 "~" H 2450 5650 50 0001 C CNN 534 | 1 2450 5650 535 | 0 1 1 0 536 | $EndComp 537 | $Comp 538 | L power:GND #PWR0101 539 | U 1 1 5EDD195E 540 | P 7400 5400 541 | F 0 "#PWR0101" H 7400 5150 50 0001 C CNN 542 | F 1 "GND" H 7405 5227 50 0000 C CNN 543 | F 2 "" H 7400 5400 50 0001 C CNN 544 | F 3 "" H 7400 5400 50 0001 C CNN 545 | 1 7400 5400 546 | 1 0 0 -1 547 | $EndComp 548 | $Comp 549 | L power:+5V #PWR0102 550 | U 1 1 5EDD2137 551 | P 7300 3750 552 | F 0 "#PWR0102" H 7300 3600 50 0001 C CNN 553 | F 1 "+5V" H 7315 3923 50 0000 C CNN 554 | F 2 "" H 7300 3750 50 0001 C CNN 555 | F 3 "" H 7300 3750 50 0001 C CNN 556 | 1 7300 3750 557 | 1 0 0 -1 558 | $EndComp 559 | Wire Wire Line 560 | 2000 5650 2300 5650 561 | Wire Wire Line 562 | 5950 5150 6650 5150 563 | Wire Wire Line 564 | 6650 5150 6650 5050 565 | Wire Wire Line 566 | 5950 5050 6550 5050 567 | Wire Wire Line 568 | 6550 5050 6550 4950 569 | Wire Wire Line 570 | 2000 3650 2000 5650 571 | Wire Wire Line 572 | 3650 5900 3650 5550 573 | Wire Wire Line 574 | 4250 4250 4400 4250 575 | Wire Wire Line 576 | 4400 4350 4250 4350 577 | Wire Wire Line 578 | 3850 4000 3850 4350 579 | Wire Wire Line 580 | 2150 4400 2300 4400 581 | Wire Wire Line 582 | 2700 4400 2600 4400 583 | $Comp 584 | L Device:LED D4 585 | U 1 1 5EE68135 586 | P 2450 4400 587 | F 0 "D4" H 2443 4145 50 0000 C CNN 588 | F 1 "LED green" H 2443 4236 50 0000 C CNN 589 | F 2 "Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical" H 2450 4400 50 0001 C CNN 590 | F 3 "~" H 2450 4400 50 0001 C CNN 591 | 1 2450 4400 592 | 1 0 0 1 593 | $EndComp 594 | $Comp 595 | L Device:R R6 596 | U 1 1 5EE6813B 597 | P 2850 4400 598 | F 0 "R6" V 2643 4400 50 0000 C CNN 599 | F 1 "1k5" V 2734 4400 50 0000 C CNN 600 | F 2 "Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal" V 2780 4400 50 0001 C CNN 601 | F 3 "~" H 2850 4400 50 0001 C CNN 602 | 1 2850 4400 603 | 0 -1 1 0 604 | $EndComp 605 | Wire Wire Line 606 | 2150 4400 2150 4650 607 | Connection ~ 2150 4650 608 | $Comp 609 | L power:+5V #PWR0103 610 | U 1 1 5EE7246A 611 | P 3050 4400 612 | F 0 "#PWR0103" H 3050 4250 50 0001 C CNN 613 | F 1 "+5V" H 3065 4573 50 0000 C CNN 614 | F 2 "" H 3050 4400 50 0001 C CNN 615 | F 3 "" H 3050 4400 50 0001 C CNN 616 | 1 3050 4400 617 | 1 0 0 -1 618 | $EndComp 619 | Wire Wire Line 620 | 2150 4400 2150 4000 621 | Wire Wire Line 622 | 2150 4000 3850 4000 623 | Connection ~ 2150 4400 624 | Connection ~ 3850 4000 625 | $Comp 626 | L power:GND #PWR0104 627 | U 1 1 5EE780CB 628 | P 2150 5250 629 | F 0 "#PWR0104" H 2150 5000 50 0001 C CNN 630 | F 1 "GND" H 2155 5077 50 0000 C CNN 631 | F 2 "" H 2150 5250 50 0001 C CNN 632 | F 3 "" H 2150 5250 50 0001 C CNN 633 | 1 2150 5250 634 | 1 0 0 -1 635 | $EndComp 636 | Connection ~ 2150 5250 637 | $Comp 638 | L Device:R_POT RV1 639 | U 1 1 5EEC4030 640 | P 7050 3850 641 | F 0 "RV1" V 6843 3850 50 0000 C CNN 642 | F 1 "10k lin" V 6934 3850 50 0000 C CNN 643 | F 2 "Potentiometer_THT:Potentiometer_ACP_CA9-H2,5_Horizontal" H 7050 3850 50 0001 C CNN 644 | F 3 "~" H 7050 3850 50 0001 C CNN 645 | 1 7050 3850 646 | 0 1 1 0 647 | $EndComp 648 | $Comp 649 | L Connector_Generic:Conn_01x09 J5 650 | U 1 1 5EEDA1D6 651 | P 7700 4950 652 | F 0 "J5" H 7650 5600 50 0000 L CNN 653 | F 1 "Display" H 7650 5500 50 0000 L CNN 654 | F 2 "Connector_PinHeader_2.54mm:PinHeader_1x09_P2.54mm_Vertical" H 7700 4950 50 0001 C CNN 655 | F 3 "~" H 7700 4950 50 0001 C CNN 656 | 1 7700 4950 657 | 1 0 0 -1 658 | $EndComp 659 | Wire Wire Line 660 | 6900 3850 6900 4150 661 | Wire Wire Line 662 | 6900 4150 7400 4150 663 | Wire Wire Line 664 | 7500 4750 7050 4750 665 | Wire Wire Line 666 | 7050 4750 7050 4000 667 | Wire Wire Line 668 | 7500 5250 6850 5250 669 | Wire Wire Line 670 | 6850 5250 6850 3650 671 | Wire Wire Line 672 | 6850 3650 2000 3650 673 | Wire Wire Line 674 | 7500 4650 7300 4650 675 | Wire Wire Line 676 | 7300 4650 7300 3850 677 | Wire Wire Line 678 | 7200 3850 7300 3850 679 | Connection ~ 7300 3850 680 | Wire Wire Line 681 | 7300 3850 7300 3750 682 | Wire Wire Line 683 | 5950 4850 7500 4850 684 | Wire Wire Line 685 | 6550 4950 7500 4950 686 | Wire Wire Line 687 | 6650 5050 7500 5050 688 | Wire Wire Line 689 | 7400 4150 7400 4550 690 | Wire Wire Line 691 | 7500 4550 7400 4550 692 | Connection ~ 7400 4550 693 | $Comp 694 | L Connector_Generic:Conn_01x03 J1 695 | U 1 1 5FCD689F 696 | P 6700 4550 697 | F 0 "J1" H 6400 4850 50 0000 L CNN 698 | F 1 "SerialPort" H 6400 4750 50 0000 L CNN 699 | F 2 "Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical" H 6700 4550 50 0001 C CNN 700 | F 3 "~" H 6700 4550 50 0001 C CNN 701 | 1 6700 4550 702 | 1 0 0 -1 703 | $EndComp 704 | Wire Wire Line 705 | 5950 4450 6500 4450 706 | Wire Wire Line 707 | 5950 4550 6500 4550 708 | $Comp 709 | L power:GND #PWR0105 710 | U 1 1 5FCE4005 711 | P 6400 4650 712 | F 0 "#PWR0105" H 6400 4400 50 0001 C CNN 713 | F 1 "GND" H 6405 4477 50 0000 C CNN 714 | F 2 "" H 6400 4650 50 0001 C CNN 715 | F 3 "" H 6400 4650 50 0001 C CNN 716 | 1 6400 4650 717 | 1 0 0 -1 718 | $EndComp 719 | Wire Wire Line 720 | 6500 4650 6400 4650 721 | $Comp 722 | L Transistor_BJT:BC237 Q1 723 | U 1 1 5FCF4084 724 | P 2850 5900 725 | F 0 "Q1" H 3041 5946 50 0000 L CNN 726 | F 1 "BC237" H 3041 5855 50 0000 L CNN 727 | F 2 "Package_TO_SOT_THT:TO-92_Inline" H 3050 5825 50 0001 L CIN 728 | F 3 "http://www.onsemi.com/pub_link/Collateral/BC237-D.PDF" H 2850 5900 50 0001 L CNN 729 | 1 2850 5900 730 | -1 0 0 -1 731 | $EndComp 732 | Wire Wire Line 733 | 5950 4750 6950 4750 734 | Wire Wire Line 735 | 6950 4750 6950 5150 736 | Wire Wire Line 737 | 6950 5150 7500 5150 738 | Wire Wire Line 739 | 7400 4550 7400 5400 740 | Wire Wire Line 741 | 7300 4650 7300 5350 742 | Wire Wire Line 743 | 7300 5350 7500 5350 744 | Connection ~ 7300 4650 745 | $Comp 746 | L Diode_Bridge:B250C1500G D5 747 | U 1 1 5FD1DE85 748 | P 3500 2200 749 | F 0 "D5" H 3400 2700 50 0000 L CNN 750 | F 1 "B250C1500G" H 3150 2600 50 0000 L CNN 751 | F 2 "Diode_THT:Diode_Bridge_Round_D9.8mm" H 3650 2325 50 0001 L CNN 752 | F 3 "https://www.vishay.com/docs/88501/b40c1500g.pdf" H 3500 2200 50 0001 C CNN 753 | 1 3500 2200 754 | 1 0 0 -1 755 | $EndComp 756 | $Comp 757 | L Mechanical:MountingHole H1 758 | U 1 1 5FD33151 759 | P 900 6500 760 | F 0 "H1" H 1000 6546 50 0000 L CNN 761 | F 1 "MountingHole" H 1000 6455 50 0000 L CNN 762 | F 2 "MountingHole:MountingHole_3.2mm_M3_Pad" H 900 6500 50 0001 C CNN 763 | F 3 "~" H 900 6500 50 0001 C CNN 764 | 1 900 6500 765 | 1 0 0 -1 766 | $EndComp 767 | $Comp 768 | L Mechanical:MountingHole H2 769 | U 1 1 5FD336F1 770 | P 900 6750 771 | F 0 "H2" H 1000 6796 50 0000 L CNN 772 | F 1 "MountingHole" H 1000 6705 50 0000 L CNN 773 | F 2 "MountingHole:MountingHole_3.2mm_M3_Pad" H 900 6750 50 0001 C CNN 774 | F 3 "~" H 900 6750 50 0001 C CNN 775 | 1 900 6750 776 | 1 0 0 -1 777 | $EndComp 778 | $Comp 779 | L Mechanical:MountingHole H3 780 | U 1 1 5FD33F46 781 | P 900 7000 782 | F 0 "H3" H 1000 7046 50 0000 L CNN 783 | F 1 "MountingHole" H 1000 6955 50 0000 L CNN 784 | F 2 "MountingHole:MountingHole_3.2mm_M3_Pad" H 900 7000 50 0001 C CNN 785 | F 3 "~" H 900 7000 50 0001 C CNN 786 | 1 900 7000 787 | 1 0 0 -1 788 | $EndComp 789 | $Comp 790 | L Mechanical:MountingHole_Pad H4 791 | U 1 1 5FD3487E 792 | P 900 7300 793 | F 0 "H4" H 1000 7349 50 0000 L CNN 794 | F 1 "MountingHole_Pad" H 1000 7258 50 0000 L CNN 795 | F 2 "MountingHole:MountingHole_3.2mm_M3_Pad_Via" H 900 7300 50 0001 C CNN 796 | F 3 "~" H 900 7300 50 0001 C CNN 797 | 1 900 7300 798 | 1 0 0 -1 799 | $EndComp 800 | $Comp 801 | L power:GND #PWR01 802 | U 1 1 5FD35555 803 | P 900 7400 804 | F 0 "#PWR01" H 900 7150 50 0001 C CNN 805 | F 1 "GND" H 905 7227 50 0000 C CNN 806 | F 2 "" H 900 7400 50 0001 C CNN 807 | F 3 "" H 900 7400 50 0001 C CNN 808 | 1 900 7400 809 | 1 0 0 -1 810 | $EndComp 811 | $Comp 812 | L Mechanical:MountingHole H5 813 | U 1 1 5FD4558C 814 | P 1250 6500 815 | F 0 "H5" H 1350 6546 50 0000 L CNN 816 | F 1 "MountingHole" H 1350 6455 50 0000 L CNN 817 | F 2 "MountingHole:MountingHole_3.2mm_M3_Pad" H 1250 6500 50 0001 C CNN 818 | F 3 "~" H 1250 6500 50 0001 C CNN 819 | 1 1250 6500 820 | 1 0 0 -1 821 | $EndComp 822 | $Comp 823 | L Mechanical:MountingHole H6 824 | U 1 1 5FD45592 825 | P 1250 6750 826 | F 0 "H6" H 1350 6796 50 0000 L CNN 827 | F 1 "MountingHole" H 1350 6705 50 0000 L CNN 828 | F 2 "MountingHole:MountingHole_3.2mm_M3_Pad" H 1250 6750 50 0001 C CNN 829 | F 3 "~" H 1250 6750 50 0001 C CNN 830 | 1 1250 6750 831 | 1 0 0 -1 832 | $EndComp 833 | $Comp 834 | L Connector_Generic:Conn_01x03 J4 835 | U 1 1 5FCB183B 836 | P 7700 2950 837 | F 0 "J4" H 7780 2992 50 0000 L CNN 838 | F 1 "GPSDO Power" H 7780 2901 50 0000 L CNN 839 | F 2 "Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical" H 7700 2950 50 0001 C CNN 840 | F 3 "~" H 7700 2950 50 0001 C CNN 841 | 1 7700 2950 842 | 1 0 0 -1 843 | $EndComp 844 | Wire Wire Line 845 | 6300 2850 7500 2850 846 | Wire Wire Line 847 | 6300 3150 7400 3150 848 | Wire Wire Line 849 | 7400 3150 7400 3050 850 | Wire Wire Line 851 | 7400 2950 7500 2950 852 | Connection ~ 6300 3150 853 | Wire Wire Line 854 | 7500 3050 7400 3050 855 | Connection ~ 7400 3050 856 | Wire Wire Line 857 | 7400 3050 7400 2950 858 | Wire Wire Line 859 | 3000 4400 3050 4400 860 | NoConn ~ 4400 4050 861 | NoConn ~ 4400 4150 862 | NoConn ~ 4400 4450 863 | NoConn ~ 4400 4550 864 | NoConn ~ 4400 4650 865 | NoConn ~ 4400 4750 866 | NoConn ~ 4400 4850 867 | NoConn ~ 4400 4950 868 | NoConn ~ 4400 5050 869 | NoConn ~ 4400 5150 870 | NoConn ~ 4400 5650 871 | NoConn ~ 4400 5950 872 | NoConn ~ 5950 5950 873 | NoConn ~ 5950 5850 874 | NoConn ~ 5950 5750 875 | NoConn ~ 5950 5650 876 | NoConn ~ 5950 5550 877 | NoConn ~ 5950 5450 878 | NoConn ~ 5950 4950 879 | NoConn ~ 5950 4650 880 | NoConn ~ 5950 4350 881 | NoConn ~ 5950 4250 882 | Wire Wire Line 883 | 1700 2200 2150 2200 884 | Wire Wire Line 885 | 2150 2200 2150 2400 886 | Wire Wire Line 887 | 1900 3150 1900 2300 888 | Wire Wire Line 889 | 1900 2300 1700 2300 890 | $EndSCHEMATC 891 | -------------------------------------------------------------------------------- /hardware/Gerbers/GPSDO-B_Cu.gbr: -------------------------------------------------------------------------------- 1 | %TF.GenerationSoftware,KiCad,Pcbnew,(6.0.2)*% 2 | %TF.CreationDate,2022-03-15T19:59:36+01:00*% 3 | %TF.ProjectId,GPSDO,47505344-4f2e-46b6-9963-61645f706362,rev?*% 4 | %TF.SameCoordinates,Original*% 5 | %TF.FileFunction,Copper,L2,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 (6.0.2)) date 2022-03-15 19:59:36* 10 | %MOMM*% 11 | %LPD*% 12 | G01* 13 | G04 APERTURE LIST* 14 | G04 Aperture macros list* 15 | %AMRoundRect* 16 | 0 Rectangle with rounded corners* 17 | 0 $1 Rounding radius* 18 | 0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners* 19 | 0 Add a 4 corners polygon primitive as box body* 20 | 4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0* 21 | 0 Add four circle primitives for the rounded corners* 22 | 1,1,$1+$1,$2,$3* 23 | 1,1,$1+$1,$4,$5* 24 | 1,1,$1+$1,$6,$7* 25 | 1,1,$1+$1,$8,$9* 26 | 0 Add four rect primitives between the rounded corners* 27 | 20,1,$1+$1,$2,$3,$4,$5,0* 28 | 20,1,$1+$1,$4,$5,$6,$7,0* 29 | 20,1,$1+$1,$6,$7,$8,$9,0* 30 | 20,1,$1+$1,$8,$9,$2,$3,0*% 31 | G04 Aperture macros list end* 32 | %TA.AperFunction,ComponentPad*% 33 | %ADD10R,1.600000X1.600000*% 34 | %TD*% 35 | %TA.AperFunction,ComponentPad*% 36 | %ADD11O,1.600000X1.600000*% 37 | %TD*% 38 | %TA.AperFunction,ComponentPad*% 39 | %ADD12O,1.700000X1.700000*% 40 | %TD*% 41 | %TA.AperFunction,ComponentPad*% 42 | %ADD13R,1.700000X1.700000*% 43 | %TD*% 44 | %TA.AperFunction,ComponentPad*% 45 | %ADD14C,3.000000*% 46 | %TD*% 47 | %TA.AperFunction,ComponentPad*% 48 | %ADD15C,6.400000*% 49 | %TD*% 50 | %TA.AperFunction,ComponentPad*% 51 | %ADD16O,1.905000X2.000000*% 52 | %TD*% 53 | %TA.AperFunction,ComponentPad*% 54 | %ADD17R,1.905000X2.000000*% 55 | %TD*% 56 | %TA.AperFunction,ComponentPad*% 57 | %ADD18C,1.600000*% 58 | %TD*% 59 | %TA.AperFunction,ComponentPad*% 60 | %ADD19R,2.400000X2.400000*% 61 | %TD*% 62 | %TA.AperFunction,ComponentPad*% 63 | %ADD20C,2.400000*% 64 | %TD*% 65 | %TA.AperFunction,ComponentPad*% 66 | %ADD21O,2.000000X2.000000*% 67 | %TD*% 68 | %TA.AperFunction,ComponentPad*% 69 | %ADD22R,2.000000X2.000000*% 70 | %TD*% 71 | %TA.AperFunction,ComponentPad*% 72 | %ADD23C,0.800000*% 73 | %TD*% 74 | %TA.AperFunction,ComponentPad*% 75 | %ADD24RoundRect,0.249999X-1.300001X1.300001X-1.300001X-1.300001X1.300001X-1.300001X1.300001X1.300001X0*% 76 | %TD*% 77 | %TA.AperFunction,ComponentPad*% 78 | %ADD25C,3.100000*% 79 | %TD*% 80 | %TA.AperFunction,ComponentPad*% 81 | %ADD26O,1.050000X1.500000*% 82 | %TD*% 83 | %TA.AperFunction,ComponentPad*% 84 | %ADD27R,1.050000X1.500000*% 85 | %TD*% 86 | %TA.AperFunction,ComponentPad*% 87 | %ADD28C,2.340000*% 88 | %TD*% 89 | %TA.AperFunction,ViaPad*% 90 | %ADD29C,0.800000*% 91 | %TD*% 92 | %TA.AperFunction,Conductor*% 93 | %ADD30C,0.250000*% 94 | %TD*% 95 | %TA.AperFunction,Conductor*% 96 | %ADD31C,0.500000*% 97 | %TD*% 98 | %TA.AperFunction,Conductor*% 99 | %ADD32C,1.000000*% 100 | %TD*% 101 | %TA.AperFunction,Conductor*% 102 | %ADD33C,2.000000*% 103 | %TD*% 104 | G04 APERTURE END LIST* 105 | D10* 106 | %TO.P,BP1,1*% 107 | %TO.N,Net-(BP1-Pad1)*% 108 | X150495000Y-45720000D03* 109 | D11* 110 | %TO.P,BP1,21*% 111 | %TO.N,Net-(BP1-Pad21)*% 112 | X165735000Y-93980000D03* 113 | %TO.P,BP1,2*% 114 | %TO.N,Net-(BP1-Pad2)*% 115 | X150495000Y-48260000D03* 116 | %TO.P,BP1,22*% 117 | %TO.N,Net-(BP1-Pad22)*% 118 | X165735000Y-91440000D03* 119 | %TO.P,BP1,3*% 120 | %TO.N,Net-(BP1-Pad3)*% 121 | X150495000Y-50800000D03* 122 | %TO.P,BP1,23*% 123 | %TO.N,Net-(BP1-Pad23)*% 124 | X165735000Y-88900000D03* 125 | %TO.P,BP1,4*% 126 | %TO.N,Net-(BP1-Pad4)*% 127 | X150495000Y-53340000D03* 128 | %TO.P,BP1,24*% 129 | %TO.N,Net-(BP1-Pad24)*% 130 | X165735000Y-86360000D03* 131 | %TO.P,BP1,5*% 132 | %TO.N,Net-(BP1-Pad5)*% 133 | X150495000Y-55880000D03* 134 | %TO.P,BP1,25*% 135 | %TO.N,Net-(BP1-Pad25)*% 136 | X165735000Y-83820000D03* 137 | %TO.P,BP1,6*% 138 | %TO.N,Net-(BP1-Pad6)*% 139 | X150495000Y-58420000D03* 140 | %TO.P,BP1,26*% 141 | %TO.N,Net-(BP1-Pad26)*% 142 | X165735000Y-81280000D03* 143 | %TO.P,BP1,7*% 144 | %TO.N,Net-(BP1-Pad7)*% 145 | X150495000Y-60960000D03* 146 | %TO.P,BP1,27*% 147 | %TO.N,Net-(BP1-Pad27)*% 148 | X165735000Y-78740000D03* 149 | %TO.P,BP1,8*% 150 | %TO.N,Net-(BP1-Pad8)*% 151 | X150495000Y-63500000D03* 152 | %TO.P,BP1,28*% 153 | %TO.N,Net-(BP1-Pad28)*% 154 | X165735000Y-76200000D03* 155 | %TO.P,BP1,9*% 156 | %TO.N,Net-(BP1-Pad9)*% 157 | X150495000Y-66040000D03* 158 | %TO.P,BP1,29*% 159 | %TO.N,Net-(BP1-Pad29)*% 160 | X165735000Y-73660000D03* 161 | %TO.P,BP1,10*% 162 | %TO.N,Net-(BP1-Pad10)*% 163 | X150495000Y-68580000D03* 164 | %TO.P,BP1,30*% 165 | %TO.N,Net-(BP1-Pad30)*% 166 | X165735000Y-71120000D03* 167 | %TO.P,BP1,11*% 168 | %TO.N,Net-(BP1-Pad11)*% 169 | X150495000Y-71120000D03* 170 | %TO.P,BP1,31*% 171 | %TO.N,Net-(BP1-Pad31)*% 172 | X165735000Y-68580000D03* 173 | %TO.P,BP1,12*% 174 | %TO.N,Net-(BP1-Pad12)*% 175 | X150495000Y-73660000D03* 176 | %TO.P,BP1,32*% 177 | %TO.N,Net-(BP1-Pad32)*% 178 | X165735000Y-66040000D03* 179 | %TO.P,BP1,13*% 180 | %TO.N,Net-(BP1-Pad13)*% 181 | X150495000Y-76200000D03* 182 | %TO.P,BP1,33*% 183 | %TO.N,Net-(BP1-Pad33)*% 184 | X165735000Y-63500000D03* 185 | %TO.P,BP1,14*% 186 | %TO.N,Net-(BP1-Pad14)*% 187 | X150495000Y-78740000D03* 188 | %TO.P,BP1,34*% 189 | %TO.N,Net-(BP1-Pad34)*% 190 | X165735000Y-60960000D03* 191 | %TO.P,BP1,15*% 192 | %TO.N,Net-(BP1-Pad15)*% 193 | X150495000Y-81280000D03* 194 | %TO.P,BP1,35*% 195 | %TO.N,Net-(BP1-Pad35)*% 196 | X165735000Y-58420000D03* 197 | %TO.P,BP1,16*% 198 | %TO.N,Net-(BP1-Pad16)*% 199 | X150495000Y-83820000D03* 200 | %TO.P,BP1,36*% 201 | %TO.N,Net-(BP1-Pad36)*% 202 | X165735000Y-55880000D03* 203 | %TO.P,BP1,17*% 204 | %TO.N,Net-(BP1-Pad17)*% 205 | X150495000Y-86360000D03* 206 | %TO.P,BP1,37*% 207 | %TO.N,Net-(BP1-Pad37)*% 208 | X165735000Y-53340000D03* 209 | %TO.P,BP1,18*% 210 | %TO.N,+5V*% 211 | X150495000Y-88900000D03* 212 | %TO.P,BP1,38*% 213 | %TO.N,Net-(BP1-Pad38)*% 214 | X165735000Y-50800000D03* 215 | %TO.P,BP1,19*% 216 | %TO.N,GND*% 217 | X150495000Y-91440000D03* 218 | %TO.P,BP1,39*% 219 | X165735000Y-48260000D03* 220 | %TO.P,BP1,20*% 221 | %TO.N,Net-(BP1-Pad20)*% 222 | X150495000Y-93980000D03* 223 | %TO.P,BP1,40*% 224 | %TO.N,GND*% 225 | X165735000Y-45720000D03* 226 | %TD*% 227 | D12* 228 | %TO.P,J4,3*% 229 | %TO.N,GND*% 230 | X127000000Y-99695000D03* 231 | %TO.P,J4,2*% 232 | X124460000Y-99695000D03* 233 | D13* 234 | %TO.P,J4,1*% 235 | %TO.N,+10V*% 236 | X121920000Y-99695000D03* 237 | %TD*% 238 | D14* 239 | %TO.P,T1,3*% 240 | %TO.N,Net-(D5-Pad2)*% 241 | X67230000Y-87785000D03* 242 | %TO.P,T1,4*% 243 | %TO.N,Net-(D5-Pad4)*% 244 | X87230000Y-87785000D03* 245 | %TO.P,T1,2*% 246 | %TO.N,Net-(J2-Pad2)*% 247 | X92230000Y-57785000D03* 248 | %TO.P,T1,1*% 249 | %TO.N,Net-(J2-Pad1)*% 250 | X62230000Y-57785000D03* 251 | %TD*% 252 | D15* 253 | %TO.P,H6,1*% 254 | %TO.N,N/C*% 255 | X110490000Y-36195000D03* 256 | %TD*% 257 | %TO.P,H5,1*% 258 | %TO.N,N/C*% 259 | X193675000Y-102235000D03* 260 | %TD*% 261 | %TO.P,H3,1*% 262 | %TO.N,N/C*% 263 | X193675000Y-36195000D03* 264 | %TD*% 265 | %TO.P,H2,1*% 266 | %TO.N,N/C*% 267 | X42545000Y-36195000D03* 268 | %TD*% 269 | %TO.P,H1,1*% 270 | %TO.N,N/C*% 271 | X110490000Y-102235000D03* 272 | %TD*% 273 | D16* 274 | %TO.P,U1,3*% 275 | %TO.N,+5V*% 276 | X140335000Y-36830000D03* 277 | %TO.P,U1,2*% 278 | %TO.N,GND*% 279 | X137795000Y-36830000D03* 280 | D17* 281 | %TO.P,U1,1*% 282 | %TO.N,Net-(C1-Pad1)*% 283 | X135255000Y-36830000D03* 284 | %TD*% 285 | D12* 286 | %TO.P,D4,2*% 287 | %TO.N,Net-(D4-Pad2)*% 288 | X192405000Y-92710000D03* 289 | D13* 290 | %TO.P,D4,1*% 291 | %TO.N,GND*% 292 | X192405000Y-90170000D03* 293 | %TD*% 294 | D12* 295 | %TO.P,D3,2*% 296 | %TO.N,Net-(D3-Pad2)*% 297 | X192405000Y-78740000D03* 298 | D13* 299 | %TO.P,D3,1*% 300 | %TO.N,GND*% 301 | X192405000Y-76200000D03* 302 | %TD*% 303 | D12* 304 | %TO.P,D2,2*% 305 | %TO.N,Net-(D2-Pad2)*% 306 | X192405000Y-71755000D03* 307 | D13* 308 | %TO.P,D2,1*% 309 | %TO.N,GND*% 310 | X192405000Y-69215000D03* 311 | %TD*% 312 | D12* 313 | %TO.P,D1,2*% 314 | %TO.N,Net-(D1-Pad2)*% 315 | X192405000Y-85725000D03* 316 | D13* 317 | %TO.P,D1,1*% 318 | %TO.N,GND*% 319 | X192405000Y-83185000D03* 320 | %TD*% 321 | D18* 322 | %TO.P,C1,1*% 323 | %TO.N,Net-(C1-Pad1)*% 324 | X124460000Y-80645000D03* 325 | %TO.P,C1,2*% 326 | %TO.N,GND*% 327 | X121960000Y-80645000D03* 328 | %TD*% 329 | D19* 330 | %TO.P,C2,1*% 331 | %TO.N,Net-(C1-Pad1)*% 332 | X134620000Y-66040000D03* 333 | D20* 334 | %TO.P,C2,2*% 335 | %TO.N,GND*% 336 | X127120000Y-66040000D03* 337 | %TD*% 338 | D18* 339 | %TO.P,C3,1*% 340 | %TO.N,Net-(C1-Pad1)*% 341 | X133390000Y-41910000D03* 342 | %TO.P,C3,2*% 343 | %TO.N,GND*% 344 | X135890000Y-41910000D03* 345 | %TD*% 346 | %TO.P,C4,2*% 347 | %TO.N,GND*% 348 | X123150000Y-41910000D03* 349 | %TO.P,C4,1*% 350 | %TO.N,Net-(C1-Pad1)*% 351 | X120650000Y-41910000D03* 352 | %TD*% 353 | %TO.P,C5,1*% 354 | %TO.N,+5V*% 355 | X142240000Y-41910000D03* 356 | %TO.P,C5,2*% 357 | %TO.N,GND*% 358 | X139740000Y-41910000D03* 359 | %TD*% 360 | %TO.P,C6,2*% 361 | %TO.N,GND*% 362 | X127000000Y-41910000D03* 363 | %TO.P,C6,1*% 364 | %TO.N,+10V*% 365 | X129500000Y-41910000D03* 366 | %TD*% 367 | %TO.P,C7,2*% 368 | %TO.N,GND*% 369 | X136430000Y-49530000D03* 370 | D10* 371 | %TO.P,C7,1*% 372 | %TO.N,+5V*% 373 | X138430000Y-49530000D03* 374 | %TD*% 375 | %TO.P,C8,1*% 376 | %TO.N,+10V*% 377 | X126365000Y-49530000D03* 378 | D18* 379 | %TO.P,C8,2*% 380 | %TO.N,GND*% 381 | X124365000Y-49530000D03* 382 | %TD*% 383 | D21* 384 | %TO.P,D5,4*% 385 | %TO.N,Net-(D5-Pad4)*% 386 | X127000000Y-90170000D03* 387 | %TO.P,D5,2*% 388 | %TO.N,Net-(D5-Pad2)*% 389 | X121920000Y-85090000D03* 390 | %TO.P,D5,3*% 391 | %TO.N,GND*% 392 | X121920000Y-90170000D03* 393 | D22* 394 | %TO.P,D5,1*% 395 | %TO.N,Net-(C1-Pad1)*% 396 | X127000000Y-85090000D03* 397 | %TD*% 398 | D23* 399 | %TO.P,H4,1*% 400 | %TO.N,GND*% 401 | X44242056Y-100537944D03* 402 | X42545000Y-99835000D03* 403 | X40847944Y-100537944D03* 404 | X40145000Y-102235000D03* 405 | X40847944Y-103932056D03* 406 | X42545000Y-104635000D03* 407 | X44242056Y-103932056D03* 408 | X44945000Y-102235000D03* 409 | D15* 410 | X42545000Y-102235000D03* 411 | %TD*% 412 | D13* 413 | %TO.P,J1,1*% 414 | %TO.N,Net-(BP1-Pad36)*% 415 | X173990000Y-52705000D03* 416 | D12* 417 | %TO.P,J1,2*% 418 | %TO.N,Net-(BP1-Pad35)*% 419 | X173990000Y-55245000D03* 420 | %TO.P,J1,3*% 421 | %TO.N,GND*% 422 | X173990000Y-57785000D03* 423 | %TD*% 424 | D24* 425 | %TO.P,J2,1*% 426 | %TO.N,Net-(J2-Pad1)*% 427 | X44450000Y-66390000D03* 428 | D25* 429 | %TO.P,J2,2*% 430 | %TO.N,Net-(J2-Pad2)*% 431 | X44450000Y-72390000D03* 432 | %TO.P,J2,3*% 433 | %TO.N,GND*% 434 | X44450000Y-78390000D03* 435 | %TD*% 436 | D13* 437 | %TO.P,J3,1*% 438 | %TO.N,Net-(BP1-Pad28)*% 439 | X132715000Y-99695000D03* 440 | D12* 441 | %TO.P,J3,2*% 442 | %TO.N,GND*% 443 | X135255000Y-99695000D03* 444 | %TO.P,J3,3*% 445 | %TO.N,Net-(BP1-Pad27)*% 446 | X137795000Y-99695000D03* 447 | %TO.P,J3,4*% 448 | %TO.N,GND*% 449 | X140335000Y-99695000D03* 450 | %TD*% 451 | D13* 452 | %TO.P,J5,1*% 453 | %TO.N,GND*% 454 | X192405000Y-43815000D03* 455 | D12* 456 | %TO.P,J5,2*% 457 | %TO.N,+5V*% 458 | X192405000Y-46355000D03* 459 | %TO.P,J5,3*% 460 | %TO.N,Net-(J5-Pad3)*% 461 | X192405000Y-48895000D03* 462 | %TO.P,J5,4*% 463 | %TO.N,Net-(BP1-Pad32)*% 464 | X192405000Y-51435000D03* 465 | %TO.P,J5,5*% 466 | %TO.N,Net-(BP1-Pad30)*% 467 | X192405000Y-53975000D03* 468 | %TO.P,J5,6*% 469 | %TO.N,Net-(BP1-Pad29)*% 470 | X192405000Y-56515000D03* 471 | %TO.P,J5,7*% 472 | %TO.N,Net-(BP1-Pad33)*% 473 | X192405000Y-59055000D03* 474 | %TO.P,J5,8*% 475 | %TO.N,Net-(J5-Pad8)*% 476 | X192405000Y-61595000D03* 477 | %TO.P,J5,9*% 478 | %TO.N,+5V*% 479 | X192405000Y-64135000D03* 480 | %TD*% 481 | D26* 482 | %TO.P,Q1,2*% 483 | %TO.N,Net-(Q1-Pad2)*% 484 | X186055000Y-47625000D03* 485 | %TO.P,Q1,3*% 486 | %TO.N,GND*% 487 | X187325000Y-47625000D03* 488 | D27* 489 | %TO.P,Q1,1*% 490 | %TO.N,Net-(Q1-Pad1)*% 491 | X184785000Y-47625000D03* 492 | %TD*% 493 | D11* 494 | %TO.P,R1,2*% 495 | %TO.N,Net-(BP1-Pad13)*% 496 | X173355000Y-80645000D03* 497 | D18* 498 | %TO.P,R1,1*% 499 | %TO.N,Net-(D1-Pad2)*% 500 | X183515000Y-80645000D03* 501 | %TD*% 502 | %TO.P,R2,1*% 503 | %TO.N,Net-(BP1-Pad14)*% 504 | X173355000Y-71755000D03* 505 | D11* 506 | %TO.P,R2,2*% 507 | %TO.N,Net-(D2-Pad2)*% 508 | X183515000Y-71755000D03* 509 | %TD*% 510 | %TO.P,R3,2*% 511 | %TO.N,Net-(BP1-Pad15)*% 512 | X173355000Y-76200000D03* 513 | D18* 514 | %TO.P,R3,1*% 515 | %TO.N,Net-(D3-Pad2)*% 516 | X183515000Y-76200000D03* 517 | %TD*% 518 | D11* 519 | %TO.P,R4,2*% 520 | %TO.N,Net-(Q1-Pad2)*% 521 | X177800000Y-47625000D03* 522 | D18* 523 | %TO.P,R4,1*% 524 | %TO.N,Net-(BP1-Pad16)*% 525 | X177800000Y-57785000D03* 526 | %TD*% 527 | %TO.P,R5,1*% 528 | %TO.N,Net-(Q1-Pad1)*% 529 | X181610000Y-47625000D03* 530 | D11* 531 | %TO.P,R5,2*% 532 | %TO.N,Net-(J5-Pad8)*% 533 | X181610000Y-57785000D03* 534 | %TD*% 535 | D18* 536 | %TO.P,R6,1*% 537 | %TO.N,Net-(D4-Pad2)*% 538 | X183515000Y-85090000D03* 539 | D11* 540 | %TO.P,R6,2*% 541 | %TO.N,+5V*% 542 | X173355000Y-85090000D03* 543 | %TD*% 544 | D28* 545 | %TO.P,RV1,3*% 546 | %TO.N,GND*% 547 | X181530000Y-42545000D03* 548 | %TO.P,RV1,2*% 549 | %TO.N,Net-(J5-Pad3)*% 550 | X179030000Y-40045000D03* 551 | %TO.P,RV1,1*% 552 | %TO.N,+5V*% 553 | X176530000Y-42545000D03* 554 | %TD*% 555 | D12* 556 | %TO.P,SW1,2*% 557 | %TO.N,GND*% 558 | X177165000Y-92710000D03* 559 | D13* 560 | %TO.P,SW1,1*% 561 | %TO.N,Net-(BP1-Pad3)*% 562 | X177165000Y-90170000D03* 563 | %TD*% 564 | %TO.P,SW2,1*% 565 | %TO.N,Net-(BP1-Pad4)*% 566 | X182880000Y-90170000D03* 567 | D12* 568 | %TO.P,SW2,2*% 569 | %TO.N,GND*% 570 | X182880000Y-92710000D03* 571 | %TD*% 572 | D17* 573 | %TO.P,U2,1*% 574 | %TO.N,Net-(C1-Pad1)*% 575 | X123190000Y-36830000D03* 576 | D16* 577 | %TO.P,U2,2*% 578 | %TO.N,GND*% 579 | X125730000Y-36830000D03* 580 | %TO.P,U2,3*% 581 | %TO.N,+10V*% 582 | X128270000Y-36830000D03* 583 | %TD*% 584 | D29* 585 | %TO.N,Net-(BP1-Pad28)*% 586 | X158750000Y-99060000D03* 587 | %TO.N,Net-(BP1-Pad33)*% 588 | X174625000Y-67310000D03* 589 | %TO.N,Net-(J5-Pad3)*% 590 | X172085000Y-43815000D03* 591 | %TD*% 592 | D30* 593 | %TO.N,Net-(BP1-Pad3)*% 594 | X161925000Y-60960000D02* 595 | X161925000Y-53975000D01* 596 | X163339999Y-62374999D02* 597 | X161925000Y-60960000D01* 598 | X186690000Y-69215000D02* 599 | X179849999Y-62374999D01* 600 | X158750000Y-50800000D02* 601 | X150495000Y-50800000D01* 602 | X186690000Y-90170000D02* 603 | X186690000Y-69215000D01* 604 | X185420000Y-91440000D02* 605 | X186690000Y-90170000D01* 606 | X179705000Y-90170000D02* 607 | X180975000Y-91440000D01* 608 | X161925000Y-53975000D02* 609 | X158750000Y-50800000D01* 610 | X179849999Y-62374999D02* 611 | X163339999Y-62374999D01* 612 | X180975000Y-91440000D02* 613 | X185420000Y-91440000D01* 614 | X177165000Y-90170000D02* 615 | X179705000Y-90170000D01* 616 | %TO.N,Net-(BP1-Pad4)*% 617 | X182880000Y-90170000D02* 618 | X182245000Y-90170000D01* 619 | X182245000Y-90170000D02* 620 | X180340000Y-88265000D01* 621 | X167495001Y-67165001D02* 622 | X161780001Y-67165001D01* 623 | X169545000Y-69215000D02* 624 | X167495001Y-67165001D01* 625 | X161780001Y-67165001D02* 626 | X159385000Y-64770000D01* 627 | X159385000Y-64770000D02* 628 | X159385000Y-55880000D01* 629 | X156845000Y-53340000D02* 630 | X150495000Y-53340000D01* 631 | X159385000Y-55880000D02* 632 | X156845000Y-53340000D01* 633 | X180340000Y-73025000D02* 634 | X176530000Y-69215000D01* 635 | X176530000Y-69215000D02* 636 | X169545000Y-69215000D01* 637 | X180340000Y-88265000D02* 638 | X180340000Y-73025000D01* 639 | D31* 640 | %TO.N,Net-(BP1-Pad27)*% 641 | X165735000Y-78740000D02* 642 | X164465000Y-78740000D01* 643 | X164465000Y-78740000D02* 644 | X161925000Y-81280000D01* 645 | X161925000Y-81280000D02* 646 | X161925000Y-100965000D01* 647 | X161925000Y-100965000D02* 648 | X160655000Y-102235000D01* 649 | X140335000Y-102235000D02* 650 | X137795000Y-99695000D01* 651 | X160655000Y-102235000D02* 652 | X140335000Y-102235000D01* 653 | %TO.N,Net-(BP1-Pad28)*% 654 | X165735000Y-76200000D02* 655 | X163195000Y-76200000D01* 656 | X158750000Y-80645000D02* 657 | X158750000Y-99060000D01* 658 | X163195000Y-76200000D02* 659 | X158750000Y-80645000D01* 660 | D30* 661 | %TO.N,Net-(BP1-Pad33)*% 662 | X174625000Y-67310000D02* 663 | X174625000Y-64770000D01* 664 | X174625000Y-64770000D02* 665 | X173355000Y-63500000D01* 666 | X173355000Y-63500000D02* 667 | X165735000Y-63500000D01* 668 | %TO.N,Net-(BP1-Pad15)*% 669 | X173355000Y-76200000D02* 670 | X172085000Y-76200000D01* 671 | X172085000Y-76200000D02* 672 | X170815000Y-74930000D01* 673 | X170815000Y-74930000D02* 674 | X159385000Y-74930000D01* 675 | X153035000Y-81280000D02* 676 | X150495000Y-81280000D01* 677 | X159385000Y-74930000D02* 678 | X153035000Y-81280000D01* 679 | D32* 680 | %TO.N,+5V*% 681 | X140335000Y-36830000D02* 682 | X142240000Y-38735000D01* 683 | X142240000Y-38735000D02* 684 | X142240000Y-41910000D01* 685 | D31* 686 | X175895000Y-41910000D02* 687 | X176530000Y-42545000D01* 688 | X142240000Y-41910000D02* 689 | X175895000Y-41910000D01* 690 | D32* 691 | X150495000Y-88900000D02* 692 | X147320000Y-88900000D01* 693 | X147320000Y-88900000D02* 694 | X142240000Y-83820000D01* 695 | X142240000Y-43815000D02* 696 | X142240000Y-41910000D01* 697 | X138430000Y-49530000D02* 698 | X142240000Y-49530000D01* 699 | X142240000Y-49530000D02* 700 | X142240000Y-43815000D01* 701 | X142240000Y-83820000D02* 702 | X142240000Y-49530000D01* 703 | D31* 704 | X176530000Y-42545000D02* 705 | X179070000Y-45085000D01* 706 | X179070000Y-45085000D02* 707 | X189865000Y-45085000D01* 708 | X191135000Y-46355000D02* 709 | X192405000Y-46355000D01* 710 | X189865000Y-45085000D02* 711 | X191135000Y-46355000D01* 712 | X192405000Y-64135000D02* 713 | X193675000Y-64135000D01* 714 | X193675000Y-64135000D02* 715 | X194945000Y-62865000D01* 716 | X194945000Y-62865000D02* 717 | X194945000Y-46990000D01* 718 | X194310000Y-46355000D02* 719 | X192405000Y-46355000D01* 720 | X194945000Y-46990000D02* 721 | X194310000Y-46355000D01* 722 | D33* 723 | %TO.N,GND*% 724 | X121920000Y-90170000D02* 725 | X116205000Y-95885000D01* 726 | X48895000Y-95885000D02* 727 | X42545000Y-102235000D01* 728 | X44450000Y-78390000D02* 729 | X49530000Y-83470000D01* 730 | X49530000Y-83470000D02* 731 | X49530000Y-95885000D01* 732 | X49530000Y-95885000D02* 733 | X48895000Y-95885000D01* 734 | X116205000Y-95885000D02* 735 | X49530000Y-95885000D01* 736 | D32* 737 | X125730000Y-36830000D02* 738 | X125730000Y-41910000D01* 739 | X125730000Y-41910000D02* 740 | X127000000Y-41910000D01* 741 | X123150000Y-41910000D02* 742 | X125730000Y-41910000D01* 743 | X137795000Y-36830000D02* 744 | X137795000Y-41910000D01* 745 | X135890000Y-41910000D02* 746 | X137795000Y-41910000D01* 747 | X139740000Y-41910000D02* 748 | X137795000Y-41910000D01* 749 | X135890000Y-48990000D02* 750 | X136430000Y-49530000D01* 751 | X135890000Y-41910000D02* 752 | X135890000Y-48990000D01* 753 | X123150000Y-48315000D02* 754 | X124365000Y-49530000D01* 755 | X123150000Y-41910000D02* 756 | X123150000Y-48315000D01* 757 | X124365000Y-63285000D02* 758 | X127120000Y-66040000D01* 759 | X124365000Y-49530000D02* 760 | X124365000Y-63285000D01* 761 | X136430000Y-56730000D02* 762 | X127120000Y-66040000D01* 763 | X136430000Y-49530000D02* 764 | X136430000Y-56730000D01* 765 | X124460000Y-99695000D02* 766 | X127000000Y-99695000D01* 767 | X150495000Y-91440000D02* 768 | X144780000Y-91440000D01* 769 | X140335000Y-95885000D02* 770 | X140335000Y-99695000D01* 771 | X144780000Y-91440000D02* 772 | X140335000Y-95885000D01* 773 | X135255000Y-99695000D02* 774 | X135255000Y-95885000D01* 775 | X135255000Y-95885000D02* 776 | X140335000Y-95885000D01* 777 | D33* 778 | X127000000Y-99695000D02* 779 | X127000000Y-95885000D01* 780 | D32* 781 | X127000000Y-95885000D02* 782 | X135255000Y-95885000D01* 783 | D33* 784 | X116205000Y-95885000D02* 785 | X127000000Y-95885000D01* 786 | D31* 787 | X182880000Y-92710000D02* 788 | X186690000Y-92710000D01* 789 | X189230000Y-90170000D02* 790 | X192405000Y-90170000D01* 791 | X186690000Y-92710000D02* 792 | X189230000Y-90170000D01* 793 | D32* 794 | %TO.N,Net-(C1-Pad1)*% 795 | X123190000Y-36830000D02* 796 | X122555000Y-36830000D01* 797 | X120650000Y-38735000D02* 798 | X120650000Y-41910000D01* 799 | X122555000Y-36830000D02* 800 | X120650000Y-38735000D01* 801 | D33* 802 | X127000000Y-73660000D02* 803 | X134620000Y-66040000D01* 804 | X126365000Y-80645000D02* 805 | X127000000Y-80010000D01* 806 | X124460000Y-80645000D02* 807 | X126365000Y-80645000D01* 808 | X127000000Y-80010000D02* 809 | X127000000Y-73660000D01* 810 | X127000000Y-85090000D02* 811 | X127000000Y-80010000D01* 812 | D32* 813 | %TO.N,+10V*% 814 | X128270000Y-36830000D02* 815 | X129540000Y-38100000D01* 816 | X129500000Y-38140000D02* 817 | X129500000Y-41910000D01* 818 | X129540000Y-38100000D02* 819 | X129500000Y-38140000D01* 820 | X129500000Y-41910000D02* 821 | X129500000Y-45045000D01* 822 | X129500000Y-45045000D02* 823 | X129540000Y-45085000D01* 824 | X129540000Y-46355000D02* 825 | X126365000Y-49530000D01* 826 | X129540000Y-45085000D02* 827 | X129540000Y-46355000D01* 828 | D33* 829 | %TO.N,Net-(D5-Pad2)*% 830 | X67230000Y-87785000D02* 831 | X71830000Y-83185000D01* 832 | X71830000Y-83185000D02* 833 | X114935000Y-83185000D01* 834 | X116840000Y-85090000D02* 835 | X121920000Y-85090000D01* 836 | X114935000Y-83185000D02* 837 | X116840000Y-85090000D01* 838 | %TO.N,Net-(J2-Pad1)*% 839 | X53625000Y-66390000D02* 840 | X62230000Y-57785000D01* 841 | X44450000Y-66390000D02* 842 | X53625000Y-66390000D01* 843 | D30* 844 | %TO.N,Net-(J5-Pad3)*% 845 | X192405000Y-48895000D02* 846 | X190500000Y-48895000D01* 847 | X190500000Y-48895000D02* 848 | X188595000Y-50800000D01* 849 | X188595000Y-50800000D02* 850 | X177165000Y-50800000D01* 851 | X172085000Y-45720000D02* 852 | X172085000Y-43815000D01* 853 | X177165000Y-50800000D02* 854 | X172085000Y-45720000D01* 855 | D32* 856 | %TO.N,Net-(J5-Pad8)*% 857 | X185420000Y-61595000D02* 858 | X181610000Y-57785000D01* 859 | X192405000Y-61595000D02* 860 | X185420000Y-61595000D01* 861 | %TO.N,Net-(Q1-Pad1)*% 862 | X184785000Y-47625000D02* 863 | X181610000Y-47625000D01* 864 | D33* 865 | %TO.N,Net-(J2-Pad2)*% 866 | X44450000Y-72390000D02* 867 | X59690000Y-72390000D01* 868 | X74295000Y-57785000D02* 869 | X92230000Y-57785000D01* 870 | X59690000Y-72390000D02* 871 | X74295000Y-57785000D01* 872 | %TD*% 873 | M02* 874 | -------------------------------------------------------------------------------- /hardware/Gerbers/GPSDO-B_Mask.gbr: -------------------------------------------------------------------------------- 1 | %TF.GenerationSoftware,KiCad,Pcbnew,(6.0.2)*% 2 | %TF.CreationDate,2022-03-15T19:59:36+01:00*% 3 | %TF.ProjectId,GPSDO,47505344-4f2e-46b6-9963-61645f706362,rev?*% 4 | %TF.SameCoordinates,Original*% 5 | %TF.FileFunction,Soldermask,Bot*% 6 | %TF.FilePolarity,Negative*% 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (6.0.2)) date 2022-03-15 19:59:36* 10 | %MOMM*% 11 | %LPD*% 12 | G01* 13 | G04 APERTURE LIST* 14 | G04 Aperture macros list* 15 | %AMRoundRect* 16 | 0 Rectangle with rounded corners* 17 | 0 $1 Rounding radius* 18 | 0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners* 19 | 0 Add a 4 corners polygon primitive as box body* 20 | 4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0* 21 | 0 Add four circle primitives for the rounded corners* 22 | 1,1,$1+$1,$2,$3* 23 | 1,1,$1+$1,$4,$5* 24 | 1,1,$1+$1,$6,$7* 25 | 1,1,$1+$1,$8,$9* 26 | 0 Add four rect primitives between the rounded corners* 27 | 20,1,$1+$1,$2,$3,$4,$5,0* 28 | 20,1,$1+$1,$4,$5,$6,$7,0* 29 | 20,1,$1+$1,$6,$7,$8,$9,0* 30 | 20,1,$1+$1,$8,$9,$2,$3,0*% 31 | G04 Aperture macros list end* 32 | %ADD10R,1.600000X1.600000*% 33 | %ADD11O,1.600000X1.600000*% 34 | %ADD12O,1.700000X1.700000*% 35 | %ADD13R,1.700000X1.700000*% 36 | %ADD14C,4.500000*% 37 | %ADD15C,3.000000*% 38 | %ADD16C,6.400000*% 39 | %ADD17O,1.905000X2.000000*% 40 | %ADD18R,1.905000X2.000000*% 41 | %ADD19C,1.600000*% 42 | %ADD20R,2.400000X2.400000*% 43 | %ADD21C,2.400000*% 44 | %ADD22O,2.000000X2.000000*% 45 | %ADD23R,2.000000X2.000000*% 46 | %ADD24C,0.800000*% 47 | %ADD25RoundRect,0.249999X-1.300001X1.300001X-1.300001X-1.300001X1.300001X-1.300001X1.300001X1.300001X0*% 48 | %ADD26C,3.100000*% 49 | %ADD27O,1.050000X1.500000*% 50 | %ADD28R,1.050000X1.500000*% 51 | %ADD29C,2.340000*% 52 | G04 APERTURE END LIST* 53 | D10* 54 | %TO.C,BP1*% 55 | X150495000Y-45720000D03* 56 | D11* 57 | X165735000Y-93980000D03* 58 | X150495000Y-48260000D03* 59 | X165735000Y-91440000D03* 60 | X150495000Y-50800000D03* 61 | X165735000Y-88900000D03* 62 | X150495000Y-53340000D03* 63 | X165735000Y-86360000D03* 64 | X150495000Y-55880000D03* 65 | X165735000Y-83820000D03* 66 | X150495000Y-58420000D03* 67 | X165735000Y-81280000D03* 68 | X150495000Y-60960000D03* 69 | X165735000Y-78740000D03* 70 | X150495000Y-63500000D03* 71 | X165735000Y-76200000D03* 72 | X150495000Y-66040000D03* 73 | X165735000Y-73660000D03* 74 | X150495000Y-68580000D03* 75 | X165735000Y-71120000D03* 76 | X150495000Y-71120000D03* 77 | X165735000Y-68580000D03* 78 | X150495000Y-73660000D03* 79 | X165735000Y-66040000D03* 80 | X150495000Y-76200000D03* 81 | X165735000Y-63500000D03* 82 | X150495000Y-78740000D03* 83 | X165735000Y-60960000D03* 84 | X150495000Y-81280000D03* 85 | X165735000Y-58420000D03* 86 | X150495000Y-83820000D03* 87 | X165735000Y-55880000D03* 88 | X150495000Y-86360000D03* 89 | X165735000Y-53340000D03* 90 | X150495000Y-88900000D03* 91 | X165735000Y-50800000D03* 92 | X150495000Y-91440000D03* 93 | X165735000Y-48260000D03* 94 | X150495000Y-93980000D03* 95 | X165735000Y-45720000D03* 96 | %TD*% 97 | D12* 98 | %TO.C,J4*% 99 | X127000000Y-99695000D03* 100 | X124460000Y-99695000D03* 101 | D13* 102 | X121920000Y-99695000D03* 103 | %TD*% 104 | D14* 105 | %TO.C,T1*% 106 | X109730000Y-54285000D03* 107 | X109730000Y-91285000D03* 108 | X44730000Y-91285000D03* 109 | X44730000Y-54285000D03* 110 | D15* 111 | X67230000Y-87785000D03* 112 | X87230000Y-87785000D03* 113 | X92230000Y-57785000D03* 114 | X62230000Y-57785000D03* 115 | %TD*% 116 | D16* 117 | %TO.C,H6*% 118 | X110490000Y-36195000D03* 119 | %TD*% 120 | %TO.C,H5*% 121 | X193675000Y-102235000D03* 122 | %TD*% 123 | %TO.C,H3*% 124 | X193675000Y-36195000D03* 125 | %TD*% 126 | %TO.C,H2*% 127 | X42545000Y-36195000D03* 128 | %TD*% 129 | %TO.C,H1*% 130 | X110490000Y-102235000D03* 131 | %TD*% 132 | D17* 133 | %TO.C,U1*% 134 | X140335000Y-36830000D03* 135 | X137795000Y-36830000D03* 136 | D18* 137 | X135255000Y-36830000D03* 138 | %TD*% 139 | D12* 140 | %TO.C,D4*% 141 | X192405000Y-92710000D03* 142 | D13* 143 | X192405000Y-90170000D03* 144 | %TD*% 145 | D12* 146 | %TO.C,D3*% 147 | X192405000Y-78740000D03* 148 | D13* 149 | X192405000Y-76200000D03* 150 | %TD*% 151 | D12* 152 | %TO.C,D2*% 153 | X192405000Y-71755000D03* 154 | D13* 155 | X192405000Y-69215000D03* 156 | %TD*% 157 | D12* 158 | %TO.C,D1*% 159 | X192405000Y-85725000D03* 160 | D13* 161 | X192405000Y-83185000D03* 162 | %TD*% 163 | D19* 164 | %TO.C,C1*% 165 | X124460000Y-80645000D03* 166 | X121960000Y-80645000D03* 167 | %TD*% 168 | D20* 169 | %TO.C,C2*% 170 | X134620000Y-66040000D03* 171 | D21* 172 | X127120000Y-66040000D03* 173 | %TD*% 174 | D19* 175 | %TO.C,C3*% 176 | X133390000Y-41910000D03* 177 | X135890000Y-41910000D03* 178 | %TD*% 179 | %TO.C,C4*% 180 | X123150000Y-41910000D03* 181 | X120650000Y-41910000D03* 182 | %TD*% 183 | %TO.C,C5*% 184 | X142240000Y-41910000D03* 185 | X139740000Y-41910000D03* 186 | %TD*% 187 | %TO.C,C6*% 188 | X127000000Y-41910000D03* 189 | X129500000Y-41910000D03* 190 | %TD*% 191 | %TO.C,C7*% 192 | X136430000Y-49530000D03* 193 | D10* 194 | X138430000Y-49530000D03* 195 | %TD*% 196 | %TO.C,C8*% 197 | X126365000Y-49530000D03* 198 | D19* 199 | X124365000Y-49530000D03* 200 | %TD*% 201 | D22* 202 | %TO.C,D5*% 203 | X127000000Y-90170000D03* 204 | X121920000Y-85090000D03* 205 | X121920000Y-90170000D03* 206 | D23* 207 | X127000000Y-85090000D03* 208 | %TD*% 209 | D24* 210 | %TO.C,H4*% 211 | X44242056Y-100537944D03* 212 | X42545000Y-99835000D03* 213 | X40847944Y-100537944D03* 214 | X40145000Y-102235000D03* 215 | X40847944Y-103932056D03* 216 | X42545000Y-104635000D03* 217 | X44242056Y-103932056D03* 218 | X44945000Y-102235000D03* 219 | D16* 220 | X42545000Y-102235000D03* 221 | %TD*% 222 | D13* 223 | %TO.C,J1*% 224 | X173990000Y-52705000D03* 225 | D12* 226 | X173990000Y-55245000D03* 227 | X173990000Y-57785000D03* 228 | %TD*% 229 | D25* 230 | %TO.C,J2*% 231 | X44450000Y-66390000D03* 232 | D26* 233 | X44450000Y-72390000D03* 234 | X44450000Y-78390000D03* 235 | %TD*% 236 | D13* 237 | %TO.C,J3*% 238 | X132715000Y-99695000D03* 239 | D12* 240 | X135255000Y-99695000D03* 241 | X137795000Y-99695000D03* 242 | X140335000Y-99695000D03* 243 | %TD*% 244 | D13* 245 | %TO.C,J5*% 246 | X192405000Y-43815000D03* 247 | D12* 248 | X192405000Y-46355000D03* 249 | X192405000Y-48895000D03* 250 | X192405000Y-51435000D03* 251 | X192405000Y-53975000D03* 252 | X192405000Y-56515000D03* 253 | X192405000Y-59055000D03* 254 | X192405000Y-61595000D03* 255 | X192405000Y-64135000D03* 256 | %TD*% 257 | D27* 258 | %TO.C,Q1*% 259 | X186055000Y-47625000D03* 260 | X187325000Y-47625000D03* 261 | D28* 262 | X184785000Y-47625000D03* 263 | %TD*% 264 | D11* 265 | %TO.C,R1*% 266 | X173355000Y-80645000D03* 267 | D19* 268 | X183515000Y-80645000D03* 269 | %TD*% 270 | %TO.C,R2*% 271 | X173355000Y-71755000D03* 272 | D11* 273 | X183515000Y-71755000D03* 274 | %TD*% 275 | %TO.C,R3*% 276 | X173355000Y-76200000D03* 277 | D19* 278 | X183515000Y-76200000D03* 279 | %TD*% 280 | D11* 281 | %TO.C,R4*% 282 | X177800000Y-47625000D03* 283 | D19* 284 | X177800000Y-57785000D03* 285 | %TD*% 286 | %TO.C,R5*% 287 | X181610000Y-47625000D03* 288 | D11* 289 | X181610000Y-57785000D03* 290 | %TD*% 291 | D19* 292 | %TO.C,R6*% 293 | X183515000Y-85090000D03* 294 | D11* 295 | X173355000Y-85090000D03* 296 | %TD*% 297 | D29* 298 | %TO.C,RV1*% 299 | X181530000Y-42545000D03* 300 | X179030000Y-40045000D03* 301 | X176530000Y-42545000D03* 302 | %TD*% 303 | D12* 304 | %TO.C,SW1*% 305 | X177165000Y-92710000D03* 306 | D13* 307 | X177165000Y-90170000D03* 308 | %TD*% 309 | %TO.C,SW2*% 310 | X182880000Y-90170000D03* 311 | D12* 312 | X182880000Y-92710000D03* 313 | %TD*% 314 | D18* 315 | %TO.C,U2*% 316 | X123190000Y-36830000D03* 317 | D17* 318 | X125730000Y-36830000D03* 319 | X128270000Y-36830000D03* 320 | %TD*% 321 | M02* 322 | -------------------------------------------------------------------------------- /hardware/Gerbers/GPSDO-B_Silkscreen.gbr: -------------------------------------------------------------------------------- 1 | %TF.GenerationSoftware,KiCad,Pcbnew,(6.0.2)*% 2 | %TF.CreationDate,2022-03-15T19:59:36+01:00*% 3 | %TF.ProjectId,GPSDO,47505344-4f2e-46b6-9963-61645f706362,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 (6.0.2)) date 2022-03-15 19:59:36* 10 | %MOMM*% 11 | %LPD*% 12 | G01* 13 | G04 APERTURE LIST* 14 | G04 APERTURE END LIST* 15 | M02* 16 | -------------------------------------------------------------------------------- /hardware/Gerbers/GPSDO-Edge_Cuts.gbr: -------------------------------------------------------------------------------- 1 | %TF.GenerationSoftware,KiCad,Pcbnew,(6.0.2)*% 2 | %TF.CreationDate,2022-03-15T19:59:36+01:00*% 3 | %TF.ProjectId,GPSDO,47505344-4f2e-46b6-9963-61645f706362,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 (6.0.2)) date 2022-03-15 19:59:36* 9 | %MOMM*% 10 | %LPD*% 11 | G01* 12 | G04 APERTURE LIST* 13 | %TA.AperFunction,Profile*% 14 | %ADD10C,0.050000*% 15 | %TD*% 16 | G04 APERTURE END LIST* 17 | D10* 18 | X198120000Y-31750000D02* 19 | X188595000Y-31750000D01* 20 | X198120000Y-106680000D02* 21 | X198120000Y-31750000D01* 22 | X38100000Y-106680000D02* 23 | X198120000Y-106680000D01* 24 | X38100000Y-101600000D02* 25 | X38100000Y-106680000D01* 26 | X38100000Y-31750000D02* 27 | X38100000Y-101600000D01* 28 | X188595000Y-31750000D02* 29 | X38100000Y-31750000D01* 30 | M02* 31 | -------------------------------------------------------------------------------- /hardware/Gerbers/GPSDO-F_Cu.gbr: -------------------------------------------------------------------------------- 1 | %TF.GenerationSoftware,KiCad,Pcbnew,(6.0.2)*% 2 | %TF.CreationDate,2022-03-15T19:59:36+01:00*% 3 | %TF.ProjectId,GPSDO,47505344-4f2e-46b6-9963-61645f706362,rev?*% 4 | %TF.SameCoordinates,Original*% 5 | %TF.FileFunction,Copper,L1,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 (6.0.2)) date 2022-03-15 19:59:36* 10 | %MOMM*% 11 | %LPD*% 12 | G01* 13 | G04 APERTURE LIST* 14 | G04 Aperture macros list* 15 | %AMRoundRect* 16 | 0 Rectangle with rounded corners* 17 | 0 $1 Rounding radius* 18 | 0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners* 19 | 0 Add a 4 corners polygon primitive as box body* 20 | 4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0* 21 | 0 Add four circle primitives for the rounded corners* 22 | 1,1,$1+$1,$2,$3* 23 | 1,1,$1+$1,$4,$5* 24 | 1,1,$1+$1,$6,$7* 25 | 1,1,$1+$1,$8,$9* 26 | 0 Add four rect primitives between the rounded corners* 27 | 20,1,$1+$1,$2,$3,$4,$5,0* 28 | 20,1,$1+$1,$4,$5,$6,$7,0* 29 | 20,1,$1+$1,$6,$7,$8,$9,0* 30 | 20,1,$1+$1,$8,$9,$2,$3,0*% 31 | G04 Aperture macros list end* 32 | %ADD10C,0.150000*% 33 | %TA.AperFunction,NonConductor*% 34 | %ADD11C,0.150000*% 35 | %TD*% 36 | %TA.AperFunction,ComponentPad*% 37 | %ADD12R,1.600000X1.600000*% 38 | %TD*% 39 | %TA.AperFunction,ComponentPad*% 40 | %ADD13O,1.600000X1.600000*% 41 | %TD*% 42 | %TA.AperFunction,ComponentPad*% 43 | %ADD14O,1.700000X1.700000*% 44 | %TD*% 45 | %TA.AperFunction,ComponentPad*% 46 | %ADD15R,1.700000X1.700000*% 47 | %TD*% 48 | %TA.AperFunction,ComponentPad*% 49 | %ADD16C,3.000000*% 50 | %TD*% 51 | %TA.AperFunction,ComponentPad*% 52 | %ADD17C,6.400000*% 53 | %TD*% 54 | %TA.AperFunction,ComponentPad*% 55 | %ADD18O,1.905000X2.000000*% 56 | %TD*% 57 | %TA.AperFunction,ComponentPad*% 58 | %ADD19R,1.905000X2.000000*% 59 | %TD*% 60 | %TA.AperFunction,ComponentPad*% 61 | %ADD20C,1.600000*% 62 | %TD*% 63 | %TA.AperFunction,ComponentPad*% 64 | %ADD21R,2.400000X2.400000*% 65 | %TD*% 66 | %TA.AperFunction,ComponentPad*% 67 | %ADD22C,2.400000*% 68 | %TD*% 69 | %TA.AperFunction,ComponentPad*% 70 | %ADD23O,2.000000X2.000000*% 71 | %TD*% 72 | %TA.AperFunction,ComponentPad*% 73 | %ADD24R,2.000000X2.000000*% 74 | %TD*% 75 | %TA.AperFunction,ComponentPad*% 76 | %ADD25C,0.800000*% 77 | %TD*% 78 | %TA.AperFunction,ComponentPad*% 79 | %ADD26RoundRect,0.249999X-1.300001X1.300001X-1.300001X-1.300001X1.300001X-1.300001X1.300001X1.300001X0*% 80 | %TD*% 81 | %TA.AperFunction,ComponentPad*% 82 | %ADD27C,3.100000*% 83 | %TD*% 84 | %TA.AperFunction,ComponentPad*% 85 | %ADD28O,1.050000X1.500000*% 86 | %TD*% 87 | %TA.AperFunction,ComponentPad*% 88 | %ADD29R,1.050000X1.500000*% 89 | %TD*% 90 | %TA.AperFunction,ComponentPad*% 91 | %ADD30C,2.340000*% 92 | %TD*% 93 | %TA.AperFunction,ViaPad*% 94 | %ADD31C,0.800000*% 95 | %TD*% 96 | %TA.AperFunction,Conductor*% 97 | %ADD32C,0.500000*% 98 | %TD*% 99 | %TA.AperFunction,Conductor*% 100 | %ADD33C,0.250000*% 101 | %TD*% 102 | %TA.AperFunction,Conductor*% 103 | %ADD34C,2.000000*% 104 | %TD*% 105 | %TA.AperFunction,Conductor*% 106 | %ADD35C,1.000000*% 107 | %TD*% 108 | G04 APERTURE END LIST* 109 | D10* 110 | D11* 111 | X58350714Y-34166071D02* 112 | X59207857Y-34166071D01* 113 | X58779285Y-35666071D02* 114 | X58779285Y-34166071D01* 115 | X59707857Y-35666071D02* 116 | X59707857Y-34666071D01* 117 | X59707857Y-34951785D02* 118 | X59779285Y-34808928D01* 119 | X59850714Y-34737500D01* 120 | X59993571Y-34666071D01* 121 | X60136428Y-34666071D01* 122 | X61279285Y-34666071D02* 123 | X61279285Y-35666071D01* 124 | X60636428Y-34666071D02* 125 | X60636428Y-35451785D01* 126 | X60707857Y-35594642D01* 127 | X60850714Y-35666071D01* 128 | X61064999Y-35666071D01* 129 | X61207857Y-35594642D01* 130 | X61279285Y-35523214D01* 131 | X62564999Y-35594642D02* 132 | X62422142Y-35666071D01* 133 | X62136428Y-35666071D01* 134 | X61993571Y-35594642D01* 135 | X61922142Y-35451785D01* 136 | X61922142Y-34880357D01* 137 | X61993571Y-34737500D01* 138 | X62136428Y-34666071D01* 139 | X62422142Y-34666071D01* 140 | X62564999Y-34737500D01* 141 | X62636428Y-34880357D01* 142 | X62636428Y-35023214D01* 143 | X61922142Y-35166071D01* 144 | X63279285Y-35666071D02* 145 | X63279285Y-34166071D01* 146 | X63850714Y-34166071D01* 147 | X63993571Y-34237500D01* 148 | X64064999Y-34308928D01* 149 | X64136428Y-34451785D01* 150 | X64136428Y-34666071D01* 151 | X64064999Y-34808928D01* 152 | X63993571Y-34880357D01* 153 | X63850714Y-34951785D01* 154 | X63279285Y-34951785D01* 155 | X64993571Y-35666071D02* 156 | X64850714Y-35594642D01* 157 | X64779285Y-35523214D01* 158 | X64707857Y-35380357D01* 159 | X64707857Y-34951785D01* 160 | X64779285Y-34808928D01* 161 | X64850714Y-34737500D01* 162 | X64993571Y-34666071D01* 163 | X65207857Y-34666071D01* 164 | X65350714Y-34737500D01* 165 | X65422142Y-34808928D01* 166 | X65493571Y-34951785D01* 167 | X65493571Y-35380357D01* 168 | X65422142Y-35523214D01* 169 | X65350714Y-35594642D01* 170 | X65207857Y-35666071D01* 171 | X64993571Y-35666071D01* 172 | X66064999Y-35594642D02* 173 | X66207857Y-35666071D01* 174 | X66493571Y-35666071D01* 175 | X66636428Y-35594642D01* 176 | X66707857Y-35451785D01* 177 | X66707857Y-35380357D01* 178 | X66636428Y-35237500D01* 179 | X66493571Y-35166071D01* 180 | X66279285Y-35166071D01* 181 | X66136428Y-35094642D01* 182 | X66064999Y-34951785D01* 183 | X66064999Y-34880357D01* 184 | X66136428Y-34737500D01* 185 | X66279285Y-34666071D01* 186 | X66493571Y-34666071D01* 187 | X66636428Y-34737500D01* 188 | X67350714Y-35666071D02* 189 | X67350714Y-34666071D01* 190 | X67350714Y-34166071D02* 191 | X67279285Y-34237500D01* 192 | X67350714Y-34308928D01* 193 | X67422142Y-34237500D01* 194 | X67350714Y-34166071D01* 195 | X67350714Y-34308928D01* 196 | X67850714Y-34666071D02* 197 | X68422142Y-34666071D01* 198 | X68064999Y-34166071D02* 199 | X68064999Y-35451785D01* 200 | X68136428Y-35594642D01* 201 | X68279285Y-35666071D01* 202 | X68422142Y-35666071D01* 203 | X68922142Y-35666071D02* 204 | X68922142Y-34666071D01* 205 | X68922142Y-34166071D02* 206 | X68850714Y-34237500D01* 207 | X68922142Y-34308928D01* 208 | X68993571Y-34237500D01* 209 | X68922142Y-34166071D01* 210 | X68922142Y-34308928D01* 211 | X69850714Y-35666071D02* 212 | X69707857Y-35594642D01* 213 | X69636428Y-35523214D01* 214 | X69564999Y-35380357D01* 215 | X69564999Y-34951785D01* 216 | X69636428Y-34808928D01* 217 | X69707857Y-34737500D01* 218 | X69850714Y-34666071D01* 219 | X70064999Y-34666071D01* 220 | X70207857Y-34737500D01* 221 | X70279285Y-34808928D01* 222 | X70350714Y-34951785D01* 223 | X70350714Y-35380357D01* 224 | X70279285Y-35523214D01* 225 | X70207857Y-35594642D01* 226 | X70064999Y-35666071D01* 227 | X69850714Y-35666071D01* 228 | X70993571Y-34666071D02* 229 | X70993571Y-35666071D01* 230 | X70993571Y-34808928D02* 231 | X71064999Y-34737500D01* 232 | X71207857Y-34666071D01* 233 | X71422142Y-34666071D01* 234 | X71564999Y-34737500D01* 235 | X71636428Y-34880357D01* 236 | X71636428Y-35666071D01* 237 | X74279285Y-34237500D02* 238 | X74136428Y-34166071D01* 239 | X73922142Y-34166071D01* 240 | X73707857Y-34237500D01* 241 | X73564999Y-34380357D01* 242 | X73493571Y-34523214D01* 243 | X73422142Y-34808928D01* 244 | X73422142Y-35023214D01* 245 | X73493571Y-35308928D01* 246 | X73564999Y-35451785D01* 247 | X73707857Y-35594642D01* 248 | X73922142Y-35666071D01* 249 | X74064999Y-35666071D01* 250 | X74279285Y-35594642D01* 251 | X74350714Y-35523214D01* 252 | X74350714Y-35023214D01* 253 | X74064999Y-35023214D01* 254 | X74993571Y-35666071D02* 255 | X74993571Y-34166071D01* 256 | X75564999Y-34166071D01* 257 | X75707857Y-34237500D01* 258 | X75779285Y-34308928D01* 259 | X75850714Y-34451785D01* 260 | X75850714Y-34666071D01* 261 | X75779285Y-34808928D01* 262 | X75707857Y-34880357D01* 263 | X75564999Y-34951785D01* 264 | X74993571Y-34951785D01* 265 | X76422142Y-35594642D02* 266 | X76636428Y-35666071D01* 267 | X76993571Y-35666071D01* 268 | X77136428Y-35594642D01* 269 | X77207857Y-35523214D01* 270 | X77279285Y-35380357D01* 271 | X77279285Y-35237500D01* 272 | X77207857Y-35094642D01* 273 | X77136428Y-35023214D01* 274 | X76993571Y-34951785D01* 275 | X76707857Y-34880357D01* 276 | X76564999Y-34808928D01* 277 | X76493571Y-34737500D01* 278 | X76422142Y-34594642D01* 279 | X76422142Y-34451785D01* 280 | X76493571Y-34308928D01* 281 | X76564999Y-34237500D01* 282 | X76707857Y-34166071D01* 283 | X77064999Y-34166071D01* 284 | X77279285Y-34237500D01* 285 | X77922142Y-35666071D02* 286 | X77922142Y-34166071D01* 287 | X78279285Y-34166071D01* 288 | X78493571Y-34237500D01* 289 | X78636428Y-34380357D01* 290 | X78707857Y-34523214D01* 291 | X78779285Y-34808928D01* 292 | X78779285Y-35023214D01* 293 | X78707857Y-35308928D01* 294 | X78636428Y-35451785D01* 295 | X78493571Y-35594642D01* 296 | X78279285Y-35666071D01* 297 | X77922142Y-35666071D01* 298 | X79707857Y-34166071D02* 299 | X79993571Y-34166071D01* 300 | X80136428Y-34237500D01* 301 | X80279285Y-34380357D01* 302 | X80350714Y-34666071D01* 303 | X80350714Y-35166071D01* 304 | X80279285Y-35451785D01* 305 | X80136428Y-35594642D01* 306 | X79993571Y-35666071D01* 307 | X79707857Y-35666071D01* 308 | X79564999Y-35594642D01* 309 | X79422142Y-35451785D01* 310 | X79350714Y-35166071D01* 311 | X79350714Y-34666071D01* 312 | X79422142Y-34380357D01* 313 | X79564999Y-34237500D01* 314 | X79707857Y-34166071D01* 315 | X82993571Y-35523214D02* 316 | X82922142Y-35594642D01* 317 | X82707857Y-35666071D01* 318 | X82564999Y-35666071D01* 319 | X82350714Y-35594642D01* 320 | X82207857Y-35451785D01* 321 | X82136428Y-35308928D01* 322 | X82064999Y-35023214D01* 323 | X82064999Y-34808928D01* 324 | X82136428Y-34523214D01* 325 | X82207857Y-34380357D01* 326 | X82350714Y-34237500D01* 327 | X82564999Y-34166071D01* 328 | X82707857Y-34166071D01* 329 | X82922142Y-34237500D01* 330 | X82993571Y-34308928D01* 331 | X83850714Y-35666071D02* 332 | X83707857Y-35594642D01* 333 | X83636428Y-35523214D01* 334 | X83564999Y-35380357D01* 335 | X83564999Y-34951785D01* 336 | X83636428Y-34808928D01* 337 | X83707857Y-34737500D01* 338 | X83850714Y-34666071D01* 339 | X84064999Y-34666071D01* 340 | X84207857Y-34737500D01* 341 | X84279285Y-34808928D01* 342 | X84350714Y-34951785D01* 343 | X84350714Y-35380357D01* 344 | X84279285Y-35523214D01* 345 | X84207857Y-35594642D01* 346 | X84064999Y-35666071D01* 347 | X83850714Y-35666071D01* 348 | X84993571Y-34666071D02* 349 | X84993571Y-35666071D01* 350 | X84993571Y-34808928D02* 351 | X85064999Y-34737500D01* 352 | X85207857Y-34666071D01* 353 | X85422142Y-34666071D01* 354 | X85564999Y-34737500D01* 355 | X85636428Y-34880357D01* 356 | X85636428Y-35666071D01* 357 | X86136428Y-34666071D02* 358 | X86707857Y-34666071D01* 359 | X86350714Y-34166071D02* 360 | X86350714Y-35451785D01* 361 | X86422142Y-35594642D01* 362 | X86564999Y-35666071D01* 363 | X86707857Y-35666071D01* 364 | X87207857Y-35666071D02* 365 | X87207857Y-34666071D01* 366 | X87207857Y-34951785D02* 367 | X87279285Y-34808928D01* 368 | X87350714Y-34737500D01* 369 | X87493571Y-34666071D01* 370 | X87636428Y-34666071D01* 371 | X88350714Y-35666071D02* 372 | X88207857Y-35594642D01* 373 | X88136428Y-35523214D01* 374 | X88065000Y-35380357D01* 375 | X88065000Y-34951785D01* 376 | X88136428Y-34808928D01* 377 | X88207857Y-34737500D01* 378 | X88350714Y-34666071D01* 379 | X88565000Y-34666071D01* 380 | X88707857Y-34737500D01* 381 | X88779285Y-34808928D01* 382 | X88850714Y-34951785D01* 383 | X88850714Y-35380357D01* 384 | X88779285Y-35523214D01* 385 | X88707857Y-35594642D01* 386 | X88565000Y-35666071D01* 387 | X88350714Y-35666071D01* 388 | X89707857Y-35666071D02* 389 | X89565000Y-35594642D01* 390 | X89493571Y-35451785D01* 391 | X89493571Y-34166071D01* 392 | X90493571Y-35666071D02* 393 | X90350714Y-35594642D01* 394 | X90279285Y-35451785D01* 395 | X90279285Y-34166071D01* 396 | X91636428Y-35594642D02* 397 | X91493571Y-35666071D01* 398 | X91207857Y-35666071D01* 399 | X91065000Y-35594642D01* 400 | X90993571Y-35451785D01* 401 | X90993571Y-34880357D01* 402 | X91065000Y-34737500D01* 403 | X91207857Y-34666071D01* 404 | X91493571Y-34666071D01* 405 | X91636428Y-34737500D01* 406 | X91707857Y-34880357D01* 407 | X91707857Y-35023214D01* 408 | X90993571Y-35166071D01* 409 | X92350714Y-35666071D02* 410 | X92350714Y-34666071D01* 411 | X92350714Y-34951785D02* 412 | X92422142Y-34808928D01* 413 | X92493571Y-34737500D01* 414 | X92636428Y-34666071D01* 415 | X92779285Y-34666071D01* 416 | X61350714Y-38652500D02* 417 | X61279285Y-38581071D01* 418 | X61136428Y-38366785D01* 419 | X61065000Y-38223928D01* 420 | X60993571Y-38009642D01* 421 | X60922142Y-37652500D01* 422 | X60922142Y-37366785D01* 423 | X60993571Y-37009642D01* 424 | X61065000Y-36795357D01* 425 | X61136428Y-36652500D01* 426 | X61279285Y-36438214D01* 427 | X61350714Y-36366785D01* 428 | X62565000Y-38009642D02* 429 | X62422142Y-38081071D01* 430 | X62136428Y-38081071D01* 431 | X61993571Y-38009642D01* 432 | X61922142Y-37938214D01* 433 | X61850714Y-37795357D01* 434 | X61850714Y-37366785D01* 435 | X61922142Y-37223928D01* 436 | X61993571Y-37152500D01* 437 | X62136428Y-37081071D01* 438 | X62422142Y-37081071D01* 439 | X62565000Y-37152500D01* 440 | X63065000Y-38652500D02* 441 | X63136428Y-38581071D01* 442 | X63279285Y-38366785D01* 443 | X63350714Y-38223928D01* 444 | X63422142Y-38009642D01* 445 | X63493571Y-37652500D01* 446 | X63493571Y-37366785D01* 447 | X63422142Y-37009642D01* 448 | X63350714Y-36795357D01* 449 | X63279285Y-36652500D01* 450 | X63136428Y-36438214D01* 451 | X63065000Y-36366785D01* 452 | X65279285Y-38009642D02* 453 | X65493571Y-38081071D01* 454 | X65850714Y-38081071D01* 455 | X65993571Y-38009642D01* 456 | X66065000Y-37938214D01* 457 | X66136428Y-37795357D01* 458 | X66136428Y-37652500D01* 459 | X66065000Y-37509642D01* 460 | X65993571Y-37438214D01* 461 | X65850714Y-37366785D01* 462 | X65565000Y-37295357D01* 463 | X65422142Y-37223928D01* 464 | X65350714Y-37152500D01* 465 | X65279285Y-37009642D01* 466 | X65279285Y-36866785D01* 467 | X65350714Y-36723928D01* 468 | X65422142Y-36652500D01* 469 | X65565000Y-36581071D01* 470 | X65922142Y-36581071D01* 471 | X66136428Y-36652500D01* 472 | X66636428Y-37081071D02* 473 | X67422142Y-37081071D01* 474 | X66636428Y-38081071D01* 475 | X67422142Y-38081071D01* 476 | X68636428Y-38081071D02* 477 | X68636428Y-37295357D01* 478 | X68565000Y-37152500D01* 479 | X68422142Y-37081071D01* 480 | X68136428Y-37081071D01* 481 | X67993571Y-37152500D01* 482 | X68636428Y-38009642D02* 483 | X68493571Y-38081071D01* 484 | X68136428Y-38081071D01* 485 | X67993571Y-38009642D01* 486 | X67922142Y-37866785D01* 487 | X67922142Y-37723928D01* 488 | X67993571Y-37581071D01* 489 | X68136428Y-37509642D01* 490 | X68493571Y-37509642D01* 491 | X68636428Y-37438214D01* 492 | X69350714Y-38081071D02* 493 | X69350714Y-36581071D01* 494 | X69350714Y-37152500D02* 495 | X69493571Y-37081071D01* 496 | X69779285Y-37081071D01* 497 | X69922142Y-37152500D01* 498 | X69993571Y-37223928D01* 499 | X70065000Y-37366785D01* 500 | X70065000Y-37795357D01* 501 | X69993571Y-37938214D01* 502 | X69922142Y-38009642D01* 503 | X69779285Y-38081071D01* 504 | X69493571Y-38081071D01* 505 | X69350714Y-38009642D01* 506 | X70922142Y-38081071D02* 507 | X70779285Y-38009642D01* 508 | X70707857Y-37938214D01* 509 | X70636428Y-37795357D01* 510 | X70636428Y-37366785D01* 511 | X70707857Y-37223928D01* 512 | X70779285Y-37152500D01* 513 | X70922142Y-37081071D01* 514 | X71136428Y-37081071D01* 515 | X71279285Y-37152500D01* 516 | X71350714Y-37223928D01* 517 | X71422142Y-37366785D01* 518 | X71422142Y-37795357D01* 519 | X71350714Y-37938214D01* 520 | X71279285Y-38009642D01* 521 | X71136428Y-38081071D01* 522 | X70922142Y-38081071D01* 523 | X72279285Y-38081071D02* 524 | X72136428Y-38009642D01* 525 | X72065000Y-37866785D01* 526 | X72065000Y-36581071D01* 527 | X73493571Y-38009642D02* 528 | X73350714Y-38081071D01* 529 | X73065000Y-38081071D01* 530 | X72922142Y-38009642D01* 531 | X72850714Y-37938214D01* 532 | X72779285Y-37795357D01* 533 | X72779285Y-37366785D01* 534 | X72850714Y-37223928D01* 535 | X72922142Y-37152500D01* 536 | X73065000Y-37081071D01* 537 | X73350714Y-37081071D01* 538 | X73493571Y-37152500D01* 539 | X74065000Y-38009642D02* 540 | X74207857Y-38081071D01* 541 | X74493571Y-38081071D01* 542 | X74636428Y-38009642D01* 543 | X74707857Y-37866785D01* 544 | X74707857Y-37795357D01* 545 | X74636428Y-37652500D01* 546 | X74493571Y-37581071D01* 547 | X74279285Y-37581071D01* 548 | X74136428Y-37509642D01* 549 | X74065000Y-37366785D01* 550 | X74065000Y-37295357D01* 551 | X74136428Y-37152500D01* 552 | X74279285Y-37081071D01* 553 | X74493571Y-37081071D01* 554 | X74636428Y-37152500D01* 555 | X76422142Y-38009642D02* 556 | X76636428Y-38081071D01* 557 | X76993571Y-38081071D01* 558 | X77136428Y-38009642D01* 559 | X77207857Y-37938214D01* 560 | X77279285Y-37795357D01* 561 | X77279285Y-37652500D01* 562 | X77207857Y-37509642D01* 563 | X77136428Y-37438214D01* 564 | X76993571Y-37366785D01* 565 | X76707857Y-37295357D01* 566 | X76565000Y-37223928D01* 567 | X76493571Y-37152500D01* 568 | X76422142Y-37009642D01* 569 | X76422142Y-36866785D01* 570 | X76493571Y-36723928D01* 571 | X76565000Y-36652500D01* 572 | X76707857Y-36581071D01* 573 | X77065000Y-36581071D01* 574 | X77279285Y-36652500D01* 575 | X77779285Y-37081071D02* 576 | X78565000Y-37081071D01* 577 | X77779285Y-38081071D01* 578 | X78565000Y-38081071D01* 579 | X79136428Y-38081071D02* 580 | X79136428Y-37081071D01* 581 | X79136428Y-36581071D02* 582 | X79065000Y-36652500D01* 583 | X79136428Y-36723928D01* 584 | X79207857Y-36652500D01* 585 | X79136428Y-36581071D01* 586 | X79136428Y-36723928D01* 587 | X80493571Y-37081071D02* 588 | X80493571Y-38295357D01* 589 | X80422142Y-38438214D01* 590 | X80350714Y-38509642D01* 591 | X80207857Y-38581071D01* 592 | X79993571Y-38581071D01* 593 | X79850714Y-38509642D01* 594 | X80493571Y-38009642D02* 595 | X80350714Y-38081071D01* 596 | X80065000Y-38081071D01* 597 | X79922142Y-38009642D01* 598 | X79850714Y-37938214D01* 599 | X79779285Y-37795357D01* 600 | X79779285Y-37366785D01* 601 | X79850714Y-37223928D01* 602 | X79922142Y-37152500D01* 603 | X80065000Y-37081071D01* 604 | X80350714Y-37081071D01* 605 | X80493571Y-37152500D01* 606 | X81779285Y-38009642D02* 607 | X81636428Y-38081071D01* 608 | X81350714Y-38081071D01* 609 | X81207857Y-38009642D01* 610 | X81136428Y-37866785D01* 611 | X81136428Y-37295357D01* 612 | X81207857Y-37152500D01* 613 | X81350714Y-37081071D01* 614 | X81636428Y-37081071D01* 615 | X81779285Y-37152500D01* 616 | X81850714Y-37295357D01* 617 | X81850714Y-37438214D01* 618 | X81136428Y-37581071D01* 619 | X82279285Y-37081071D02* 620 | X82850714Y-37081071D01* 621 | X82493571Y-36581071D02* 622 | X82493571Y-37866785D01* 623 | X82565000Y-38009642D01* 624 | X82707857Y-38081071D01* 625 | X82850714Y-38081071D01* 626 | X83350714Y-38081071D02* 627 | X83350714Y-37081071D01* 628 | X83350714Y-36581071D02* 629 | X83279285Y-36652500D01* 630 | X83350714Y-36723928D01* 631 | X83422142Y-36652500D01* 632 | X83350714Y-36581071D01* 633 | X83350714Y-36723928D01* 634 | X85136428Y-36723928D02* 635 | X85207857Y-36652500D01* 636 | X85350714Y-36581071D01* 637 | X85707857Y-36581071D01* 638 | X85850714Y-36652500D01* 639 | X85922142Y-36723928D01* 640 | X85993571Y-36866785D01* 641 | X85993571Y-37009642D01* 642 | X85922142Y-37223928D01* 643 | X85065000Y-38081071D01* 644 | X85993571Y-38081071D01* 645 | X86922142Y-36581071D02* 646 | X87065000Y-36581071D01* 647 | X87207857Y-36652500D01* 648 | X87279285Y-36723928D01* 649 | X87350714Y-36866785D01* 650 | X87422142Y-37152500D01* 651 | X87422142Y-37509642D01* 652 | X87350714Y-37795357D01* 653 | X87279285Y-37938214D01* 654 | X87207857Y-38009642D01* 655 | X87065000Y-38081071D01* 656 | X86922142Y-38081071D01* 657 | X86779285Y-38009642D01* 658 | X86707857Y-37938214D01* 659 | X86636428Y-37795357D01* 660 | X86565000Y-37509642D01* 661 | X86565000Y-37152500D01* 662 | X86636428Y-36866785D01* 663 | X86707857Y-36723928D01* 664 | X86779285Y-36652500D01* 665 | X86922142Y-36581071D01* 666 | X87993571Y-36723928D02* 667 | X88065000Y-36652500D01* 668 | X88207857Y-36581071D01* 669 | X88565000Y-36581071D01* 670 | X88707857Y-36652500D01* 671 | X88779285Y-36723928D01* 672 | X88850714Y-36866785D01* 673 | X88850714Y-37009642D01* 674 | X88779285Y-37223928D01* 675 | X87922142Y-38081071D01* 676 | X88850714Y-38081071D01* 677 | X89779285Y-36581071D02* 678 | X89922142Y-36581071D01* 679 | X90065000Y-36652500D01* 680 | X90136428Y-36723928D01* 681 | X90207857Y-36866785D01* 682 | X90279285Y-37152500D01* 683 | X90279285Y-37509642D01* 684 | X90207857Y-37795357D01* 685 | X90136428Y-37938214D01* 686 | X90065000Y-38009642D01* 687 | X89922142Y-38081071D01* 688 | X89779285Y-38081071D01* 689 | X89636428Y-38009642D01* 690 | X89565000Y-37938214D01* 691 | X89493571Y-37795357D01* 692 | X89422142Y-37509642D01* 693 | X89422142Y-37152500D01* 694 | X89493571Y-36866785D01* 695 | X89565000Y-36723928D01* 696 | X89636428Y-36652500D01* 697 | X89779285Y-36581071D01* 698 | D12* 699 | %TO.P,BP1,1*% 700 | %TO.N,Net-(BP1-Pad1)*% 701 | X150495000Y-45720000D03* 702 | D13* 703 | %TO.P,BP1,21*% 704 | %TO.N,Net-(BP1-Pad21)*% 705 | X165735000Y-93980000D03* 706 | %TO.P,BP1,2*% 707 | %TO.N,Net-(BP1-Pad2)*% 708 | X150495000Y-48260000D03* 709 | %TO.P,BP1,22*% 710 | %TO.N,Net-(BP1-Pad22)*% 711 | X165735000Y-91440000D03* 712 | %TO.P,BP1,3*% 713 | %TO.N,Net-(BP1-Pad3)*% 714 | X150495000Y-50800000D03* 715 | %TO.P,BP1,23*% 716 | %TO.N,Net-(BP1-Pad23)*% 717 | X165735000Y-88900000D03* 718 | %TO.P,BP1,4*% 719 | %TO.N,Net-(BP1-Pad4)*% 720 | X150495000Y-53340000D03* 721 | %TO.P,BP1,24*% 722 | %TO.N,Net-(BP1-Pad24)*% 723 | X165735000Y-86360000D03* 724 | %TO.P,BP1,5*% 725 | %TO.N,Net-(BP1-Pad5)*% 726 | X150495000Y-55880000D03* 727 | %TO.P,BP1,25*% 728 | %TO.N,Net-(BP1-Pad25)*% 729 | X165735000Y-83820000D03* 730 | %TO.P,BP1,6*% 731 | %TO.N,Net-(BP1-Pad6)*% 732 | X150495000Y-58420000D03* 733 | %TO.P,BP1,26*% 734 | %TO.N,Net-(BP1-Pad26)*% 735 | X165735000Y-81280000D03* 736 | %TO.P,BP1,7*% 737 | %TO.N,Net-(BP1-Pad7)*% 738 | X150495000Y-60960000D03* 739 | %TO.P,BP1,27*% 740 | %TO.N,Net-(BP1-Pad27)*% 741 | X165735000Y-78740000D03* 742 | %TO.P,BP1,8*% 743 | %TO.N,Net-(BP1-Pad8)*% 744 | X150495000Y-63500000D03* 745 | %TO.P,BP1,28*% 746 | %TO.N,Net-(BP1-Pad28)*% 747 | X165735000Y-76200000D03* 748 | %TO.P,BP1,9*% 749 | %TO.N,Net-(BP1-Pad9)*% 750 | X150495000Y-66040000D03* 751 | %TO.P,BP1,29*% 752 | %TO.N,Net-(BP1-Pad29)*% 753 | X165735000Y-73660000D03* 754 | %TO.P,BP1,10*% 755 | %TO.N,Net-(BP1-Pad10)*% 756 | X150495000Y-68580000D03* 757 | %TO.P,BP1,30*% 758 | %TO.N,Net-(BP1-Pad30)*% 759 | X165735000Y-71120000D03* 760 | %TO.P,BP1,11*% 761 | %TO.N,Net-(BP1-Pad11)*% 762 | X150495000Y-71120000D03* 763 | %TO.P,BP1,31*% 764 | %TO.N,Net-(BP1-Pad31)*% 765 | X165735000Y-68580000D03* 766 | %TO.P,BP1,12*% 767 | %TO.N,Net-(BP1-Pad12)*% 768 | X150495000Y-73660000D03* 769 | %TO.P,BP1,32*% 770 | %TO.N,Net-(BP1-Pad32)*% 771 | X165735000Y-66040000D03* 772 | %TO.P,BP1,13*% 773 | %TO.N,Net-(BP1-Pad13)*% 774 | X150495000Y-76200000D03* 775 | %TO.P,BP1,33*% 776 | %TO.N,Net-(BP1-Pad33)*% 777 | X165735000Y-63500000D03* 778 | %TO.P,BP1,14*% 779 | %TO.N,Net-(BP1-Pad14)*% 780 | X150495000Y-78740000D03* 781 | %TO.P,BP1,34*% 782 | %TO.N,Net-(BP1-Pad34)*% 783 | X165735000Y-60960000D03* 784 | %TO.P,BP1,15*% 785 | %TO.N,Net-(BP1-Pad15)*% 786 | X150495000Y-81280000D03* 787 | %TO.P,BP1,35*% 788 | %TO.N,Net-(BP1-Pad35)*% 789 | X165735000Y-58420000D03* 790 | %TO.P,BP1,16*% 791 | %TO.N,Net-(BP1-Pad16)*% 792 | X150495000Y-83820000D03* 793 | %TO.P,BP1,36*% 794 | %TO.N,Net-(BP1-Pad36)*% 795 | X165735000Y-55880000D03* 796 | %TO.P,BP1,17*% 797 | %TO.N,Net-(BP1-Pad17)*% 798 | X150495000Y-86360000D03* 799 | %TO.P,BP1,37*% 800 | %TO.N,Net-(BP1-Pad37)*% 801 | X165735000Y-53340000D03* 802 | %TO.P,BP1,18*% 803 | %TO.N,+5V*% 804 | X150495000Y-88900000D03* 805 | %TO.P,BP1,38*% 806 | %TO.N,Net-(BP1-Pad38)*% 807 | X165735000Y-50800000D03* 808 | %TO.P,BP1,19*% 809 | %TO.N,GND*% 810 | X150495000Y-91440000D03* 811 | %TO.P,BP1,39*% 812 | X165735000Y-48260000D03* 813 | %TO.P,BP1,20*% 814 | %TO.N,Net-(BP1-Pad20)*% 815 | X150495000Y-93980000D03* 816 | %TO.P,BP1,40*% 817 | %TO.N,GND*% 818 | X165735000Y-45720000D03* 819 | %TD*% 820 | D14* 821 | %TO.P,J4,3*% 822 | %TO.N,GND*% 823 | X127000000Y-99695000D03* 824 | %TO.P,J4,2*% 825 | X124460000Y-99695000D03* 826 | D15* 827 | %TO.P,J4,1*% 828 | %TO.N,+10V*% 829 | X121920000Y-99695000D03* 830 | %TD*% 831 | D16* 832 | %TO.P,T1,3*% 833 | %TO.N,Net-(D5-Pad2)*% 834 | X67230000Y-87785000D03* 835 | %TO.P,T1,4*% 836 | %TO.N,Net-(D5-Pad4)*% 837 | X87230000Y-87785000D03* 838 | %TO.P,T1,2*% 839 | %TO.N,Net-(J2-Pad2)*% 840 | X92230000Y-57785000D03* 841 | %TO.P,T1,1*% 842 | %TO.N,Net-(J2-Pad1)*% 843 | X62230000Y-57785000D03* 844 | %TD*% 845 | D17* 846 | %TO.P,H6,1*% 847 | %TO.N,N/C*% 848 | X110490000Y-36195000D03* 849 | %TD*% 850 | %TO.P,H5,1*% 851 | %TO.N,N/C*% 852 | X193675000Y-102235000D03* 853 | %TD*% 854 | %TO.P,H3,1*% 855 | %TO.N,N/C*% 856 | X193675000Y-36195000D03* 857 | %TD*% 858 | %TO.P,H2,1*% 859 | %TO.N,N/C*% 860 | X42545000Y-36195000D03* 861 | %TD*% 862 | %TO.P,H1,1*% 863 | %TO.N,N/C*% 864 | X110490000Y-102235000D03* 865 | %TD*% 866 | D18* 867 | %TO.P,U1,3*% 868 | %TO.N,+5V*% 869 | X140335000Y-36830000D03* 870 | %TO.P,U1,2*% 871 | %TO.N,GND*% 872 | X137795000Y-36830000D03* 873 | D19* 874 | %TO.P,U1,1*% 875 | %TO.N,Net-(C1-Pad1)*% 876 | X135255000Y-36830000D03* 877 | %TD*% 878 | D14* 879 | %TO.P,D4,2*% 880 | %TO.N,Net-(D4-Pad2)*% 881 | X192405000Y-92710000D03* 882 | D15* 883 | %TO.P,D4,1*% 884 | %TO.N,GND*% 885 | X192405000Y-90170000D03* 886 | %TD*% 887 | D14* 888 | %TO.P,D3,2*% 889 | %TO.N,Net-(D3-Pad2)*% 890 | X192405000Y-78740000D03* 891 | D15* 892 | %TO.P,D3,1*% 893 | %TO.N,GND*% 894 | X192405000Y-76200000D03* 895 | %TD*% 896 | D14* 897 | %TO.P,D2,2*% 898 | %TO.N,Net-(D2-Pad2)*% 899 | X192405000Y-71755000D03* 900 | D15* 901 | %TO.P,D2,1*% 902 | %TO.N,GND*% 903 | X192405000Y-69215000D03* 904 | %TD*% 905 | D14* 906 | %TO.P,D1,2*% 907 | %TO.N,Net-(D1-Pad2)*% 908 | X192405000Y-85725000D03* 909 | D15* 910 | %TO.P,D1,1*% 911 | %TO.N,GND*% 912 | X192405000Y-83185000D03* 913 | %TD*% 914 | D20* 915 | %TO.P,C1,1*% 916 | %TO.N,Net-(C1-Pad1)*% 917 | X124460000Y-80645000D03* 918 | %TO.P,C1,2*% 919 | %TO.N,GND*% 920 | X121960000Y-80645000D03* 921 | %TD*% 922 | D21* 923 | %TO.P,C2,1*% 924 | %TO.N,Net-(C1-Pad1)*% 925 | X134620000Y-66040000D03* 926 | D22* 927 | %TO.P,C2,2*% 928 | %TO.N,GND*% 929 | X127120000Y-66040000D03* 930 | %TD*% 931 | D20* 932 | %TO.P,C3,1*% 933 | %TO.N,Net-(C1-Pad1)*% 934 | X133390000Y-41910000D03* 935 | %TO.P,C3,2*% 936 | %TO.N,GND*% 937 | X135890000Y-41910000D03* 938 | %TD*% 939 | %TO.P,C4,2*% 940 | %TO.N,GND*% 941 | X123150000Y-41910000D03* 942 | %TO.P,C4,1*% 943 | %TO.N,Net-(C1-Pad1)*% 944 | X120650000Y-41910000D03* 945 | %TD*% 946 | %TO.P,C5,1*% 947 | %TO.N,+5V*% 948 | X142240000Y-41910000D03* 949 | %TO.P,C5,2*% 950 | %TO.N,GND*% 951 | X139740000Y-41910000D03* 952 | %TD*% 953 | %TO.P,C6,2*% 954 | %TO.N,GND*% 955 | X127000000Y-41910000D03* 956 | %TO.P,C6,1*% 957 | %TO.N,+10V*% 958 | X129500000Y-41910000D03* 959 | %TD*% 960 | %TO.P,C7,2*% 961 | %TO.N,GND*% 962 | X136430000Y-49530000D03* 963 | D12* 964 | %TO.P,C7,1*% 965 | %TO.N,+5V*% 966 | X138430000Y-49530000D03* 967 | %TD*% 968 | %TO.P,C8,1*% 969 | %TO.N,+10V*% 970 | X126365000Y-49530000D03* 971 | D20* 972 | %TO.P,C8,2*% 973 | %TO.N,GND*% 974 | X124365000Y-49530000D03* 975 | %TD*% 976 | D23* 977 | %TO.P,D5,4*% 978 | %TO.N,Net-(D5-Pad4)*% 979 | X127000000Y-90170000D03* 980 | %TO.P,D5,2*% 981 | %TO.N,Net-(D5-Pad2)*% 982 | X121920000Y-85090000D03* 983 | %TO.P,D5,3*% 984 | %TO.N,GND*% 985 | X121920000Y-90170000D03* 986 | D24* 987 | %TO.P,D5,1*% 988 | %TO.N,Net-(C1-Pad1)*% 989 | X127000000Y-85090000D03* 990 | %TD*% 991 | D25* 992 | %TO.P,H4,1*% 993 | %TO.N,GND*% 994 | X44242056Y-100537944D03* 995 | X42545000Y-99835000D03* 996 | X40847944Y-100537944D03* 997 | X40145000Y-102235000D03* 998 | X40847944Y-103932056D03* 999 | X42545000Y-104635000D03* 1000 | X44242056Y-103932056D03* 1001 | X44945000Y-102235000D03* 1002 | D17* 1003 | X42545000Y-102235000D03* 1004 | %TD*% 1005 | D15* 1006 | %TO.P,J1,1*% 1007 | %TO.N,Net-(BP1-Pad36)*% 1008 | X173990000Y-52705000D03* 1009 | D14* 1010 | %TO.P,J1,2*% 1011 | %TO.N,Net-(BP1-Pad35)*% 1012 | X173990000Y-55245000D03* 1013 | %TO.P,J1,3*% 1014 | %TO.N,GND*% 1015 | X173990000Y-57785000D03* 1016 | %TD*% 1017 | D26* 1018 | %TO.P,J2,1*% 1019 | %TO.N,Net-(J2-Pad1)*% 1020 | X44450000Y-66390000D03* 1021 | D27* 1022 | %TO.P,J2,2*% 1023 | %TO.N,Net-(J2-Pad2)*% 1024 | X44450000Y-72390000D03* 1025 | %TO.P,J2,3*% 1026 | %TO.N,GND*% 1027 | X44450000Y-78390000D03* 1028 | %TD*% 1029 | D15* 1030 | %TO.P,J3,1*% 1031 | %TO.N,Net-(BP1-Pad28)*% 1032 | X132715000Y-99695000D03* 1033 | D14* 1034 | %TO.P,J3,2*% 1035 | %TO.N,GND*% 1036 | X135255000Y-99695000D03* 1037 | %TO.P,J3,3*% 1038 | %TO.N,Net-(BP1-Pad27)*% 1039 | X137795000Y-99695000D03* 1040 | %TO.P,J3,4*% 1041 | %TO.N,GND*% 1042 | X140335000Y-99695000D03* 1043 | %TD*% 1044 | D15* 1045 | %TO.P,J5,1*% 1046 | %TO.N,GND*% 1047 | X192405000Y-43815000D03* 1048 | D14* 1049 | %TO.P,J5,2*% 1050 | %TO.N,+5V*% 1051 | X192405000Y-46355000D03* 1052 | %TO.P,J5,3*% 1053 | %TO.N,Net-(J5-Pad3)*% 1054 | X192405000Y-48895000D03* 1055 | %TO.P,J5,4*% 1056 | %TO.N,Net-(BP1-Pad32)*% 1057 | X192405000Y-51435000D03* 1058 | %TO.P,J5,5*% 1059 | %TO.N,Net-(BP1-Pad30)*% 1060 | X192405000Y-53975000D03* 1061 | %TO.P,J5,6*% 1062 | %TO.N,Net-(BP1-Pad29)*% 1063 | X192405000Y-56515000D03* 1064 | %TO.P,J5,7*% 1065 | %TO.N,Net-(BP1-Pad33)*% 1066 | X192405000Y-59055000D03* 1067 | %TO.P,J5,8*% 1068 | %TO.N,Net-(J5-Pad8)*% 1069 | X192405000Y-61595000D03* 1070 | %TO.P,J5,9*% 1071 | %TO.N,+5V*% 1072 | X192405000Y-64135000D03* 1073 | %TD*% 1074 | D28* 1075 | %TO.P,Q1,2*% 1076 | %TO.N,Net-(Q1-Pad2)*% 1077 | X186055000Y-47625000D03* 1078 | %TO.P,Q1,3*% 1079 | %TO.N,GND*% 1080 | X187325000Y-47625000D03* 1081 | D29* 1082 | %TO.P,Q1,1*% 1083 | %TO.N,Net-(Q1-Pad1)*% 1084 | X184785000Y-47625000D03* 1085 | %TD*% 1086 | D13* 1087 | %TO.P,R1,2*% 1088 | %TO.N,Net-(BP1-Pad13)*% 1089 | X173355000Y-80645000D03* 1090 | D20* 1091 | %TO.P,R1,1*% 1092 | %TO.N,Net-(D1-Pad2)*% 1093 | X183515000Y-80645000D03* 1094 | %TD*% 1095 | %TO.P,R2,1*% 1096 | %TO.N,Net-(BP1-Pad14)*% 1097 | X173355000Y-71755000D03* 1098 | D13* 1099 | %TO.P,R2,2*% 1100 | %TO.N,Net-(D2-Pad2)*% 1101 | X183515000Y-71755000D03* 1102 | %TD*% 1103 | %TO.P,R3,2*% 1104 | %TO.N,Net-(BP1-Pad15)*% 1105 | X173355000Y-76200000D03* 1106 | D20* 1107 | %TO.P,R3,1*% 1108 | %TO.N,Net-(D3-Pad2)*% 1109 | X183515000Y-76200000D03* 1110 | %TD*% 1111 | D13* 1112 | %TO.P,R4,2*% 1113 | %TO.N,Net-(Q1-Pad2)*% 1114 | X177800000Y-47625000D03* 1115 | D20* 1116 | %TO.P,R4,1*% 1117 | %TO.N,Net-(BP1-Pad16)*% 1118 | X177800000Y-57785000D03* 1119 | %TD*% 1120 | %TO.P,R5,1*% 1121 | %TO.N,Net-(Q1-Pad1)*% 1122 | X181610000Y-47625000D03* 1123 | D13* 1124 | %TO.P,R5,2*% 1125 | %TO.N,Net-(J5-Pad8)*% 1126 | X181610000Y-57785000D03* 1127 | %TD*% 1128 | D20* 1129 | %TO.P,R6,1*% 1130 | %TO.N,Net-(D4-Pad2)*% 1131 | X183515000Y-85090000D03* 1132 | D13* 1133 | %TO.P,R6,2*% 1134 | %TO.N,+5V*% 1135 | X173355000Y-85090000D03* 1136 | %TD*% 1137 | D30* 1138 | %TO.P,RV1,3*% 1139 | %TO.N,GND*% 1140 | X181530000Y-42545000D03* 1141 | %TO.P,RV1,2*% 1142 | %TO.N,Net-(J5-Pad3)*% 1143 | X179030000Y-40045000D03* 1144 | %TO.P,RV1,1*% 1145 | %TO.N,+5V*% 1146 | X176530000Y-42545000D03* 1147 | %TD*% 1148 | D14* 1149 | %TO.P,SW1,2*% 1150 | %TO.N,GND*% 1151 | X177165000Y-92710000D03* 1152 | D15* 1153 | %TO.P,SW1,1*% 1154 | %TO.N,Net-(BP1-Pad3)*% 1155 | X177165000Y-90170000D03* 1156 | %TD*% 1157 | %TO.P,SW2,1*% 1158 | %TO.N,Net-(BP1-Pad4)*% 1159 | X182880000Y-90170000D03* 1160 | D14* 1161 | %TO.P,SW2,2*% 1162 | %TO.N,GND*% 1163 | X182880000Y-92710000D03* 1164 | %TD*% 1165 | D19* 1166 | %TO.P,U2,1*% 1167 | %TO.N,Net-(C1-Pad1)*% 1168 | X123190000Y-36830000D03* 1169 | D18* 1170 | %TO.P,U2,2*% 1171 | %TO.N,GND*% 1172 | X125730000Y-36830000D03* 1173 | %TO.P,U2,3*% 1174 | %TO.N,+10V*% 1175 | X128270000Y-36830000D03* 1176 | %TD*% 1177 | D31* 1178 | %TO.N,Net-(BP1-Pad28)*% 1179 | X158750000Y-99060000D03* 1180 | %TO.N,Net-(BP1-Pad33)*% 1181 | X174625000Y-67310000D03* 1182 | %TO.N,Net-(J5-Pad3)*% 1183 | X172085000Y-43815000D03* 1184 | %TD*% 1185 | D32* 1186 | %TO.N,Net-(BP1-Pad28)*% 1187 | X158750000Y-99060000D02* 1188 | X158750000Y-100965000D01* 1189 | X158750000Y-100965000D02* 1190 | X157480000Y-102235000D01* 1191 | X135255000Y-102235000D02* 1192 | X132715000Y-99695000D01* 1193 | X157480000Y-102235000D02* 1194 | X135255000Y-102235000D01* 1195 | D33* 1196 | %TO.N,Net-(BP1-Pad29)*% 1197 | X165735000Y-73660000D02* 1198 | X167640000Y-73660000D01* 1199 | X167640000Y-73660000D02* 1200 | X170180000Y-71120000D01* 1201 | X170180000Y-71120000D02* 1202 | X170180000Y-68580000D01* 1203 | X170180000Y-68580000D02* 1204 | X173355000Y-65405000D01* 1205 | X173355000Y-65405000D02* 1206 | X186055000Y-65405000D01* 1207 | X186055000Y-65405000D02* 1208 | X189230000Y-62230000D01* 1209 | X189230000Y-62230000D02* 1210 | X189230000Y-57785000D01* 1211 | X190500000Y-56515000D02* 1212 | X192405000Y-56515000D01* 1213 | X189230000Y-57785000D02* 1214 | X190500000Y-56515000D01* 1215 | %TO.N,Net-(BP1-Pad30)*% 1216 | X189865000Y-53975000D02* 1217 | X192405000Y-53975000D01* 1218 | X187325000Y-61595000D02* 1219 | X187325000Y-56515000D01* 1220 | X187325000Y-56515000D02* 1221 | X189865000Y-53975000D01* 1222 | X172720000Y-63500000D02* 1223 | X185420000Y-63500000D01* 1224 | X168910000Y-67310000D02* 1225 | X172720000Y-63500000D01* 1226 | X168910000Y-69850000D02* 1227 | X168910000Y-67310000D01* 1228 | X167640000Y-71120000D02* 1229 | X168910000Y-69850000D01* 1230 | X185420000Y-63500000D02* 1231 | X187325000Y-61595000D01* 1232 | X165735000Y-71120000D02* 1233 | X167640000Y-71120000D01* 1234 | %TO.N,Net-(BP1-Pad32)*% 1235 | X165735000Y-66040000D02* 1236 | X167640000Y-66040000D01* 1237 | X167640000Y-66040000D02* 1238 | X172085000Y-61595000D01* 1239 | X172085000Y-61595000D02* 1240 | X184150000Y-61595000D01* 1241 | X184150000Y-61595000D02* 1242 | X185420000Y-60325000D01* 1243 | X185420000Y-60325000D02* 1244 | X185420000Y-55880000D01* 1245 | X185420000Y-55880000D02* 1246 | X189865000Y-51435000D01* 1247 | X189865000Y-51435000D02* 1248 | X192405000Y-51435000D01* 1249 | %TO.N,Net-(BP1-Pad13)*% 1250 | X150495000Y-76200000D02* 1251 | X151765000Y-76200000D01* 1252 | X151765000Y-76200000D02* 1253 | X153035000Y-77470000D01* 1254 | X153035000Y-77470000D02* 1255 | X168275000Y-77470000D01* 1256 | X171450000Y-80645000D02* 1257 | X173355000Y-80645000D01* 1258 | X168275000Y-77470000D02* 1259 | X171450000Y-80645000D01* 1260 | %TO.N,Net-(BP1-Pad33)*% 1261 | X192405000Y-59055000D02* 1262 | X191135000Y-59055000D01* 1263 | X191135000Y-59055000D02* 1264 | X190500000Y-59690000D01* 1265 | X190500000Y-59690000D02* 1266 | X190500000Y-63500000D01* 1267 | X186690000Y-67310000D02* 1268 | X174625000Y-67310000D01* 1269 | X190500000Y-63500000D02* 1270 | X186690000Y-67310000D01* 1271 | %TO.N,Net-(BP1-Pad14)*% 1272 | X147609998Y-77759998D02* 1273 | X148590000Y-78740000D01* 1274 | X148590000Y-78740000D02* 1275 | X150495000Y-78740000D01* 1276 | X147609998Y-75565000D02* 1277 | X147609998Y-77759998D01* 1278 | X148099999Y-75074999D02* 1279 | X147609998Y-75565000D01* 1280 | X170035001Y-75074999D02* 1281 | X148099999Y-75074999D01* 1282 | X173355000Y-71755000D02* 1283 | X170035001Y-75074999D01* 1284 | %TO.N,Net-(BP1-Pad35)*% 1285 | X165735000Y-58420000D02* 1286 | X167640000Y-58420000D01* 1287 | X170815000Y-55245000D02* 1288 | X173990000Y-55245000D01* 1289 | X167640000Y-58420000D02* 1290 | X170815000Y-55245000D01* 1291 | %TO.N,Net-(BP1-Pad16)*% 1292 | X143510000Y-81915000D02* 1293 | X145415000Y-83820000D01* 1294 | X143510000Y-62230000D02* 1295 | X143510000Y-81915000D01* 1296 | X146050000Y-59690000D02* 1297 | X143510000Y-62230000D01* 1298 | X170180000Y-59690000D02* 1299 | X146050000Y-59690000D01* 1300 | X170815000Y-60325000D02* 1301 | X170180000Y-59690000D01* 1302 | X177165000Y-60325000D02* 1303 | X170815000Y-60325000D01* 1304 | X145415000Y-83820000D02* 1305 | X150495000Y-83820000D01* 1306 | X177800000Y-59690000D02* 1307 | X177165000Y-60325000D01* 1308 | X177800000Y-57785000D02* 1309 | X177800000Y-59690000D01* 1310 | %TO.N,Net-(BP1-Pad36)*% 1311 | X165735000Y-55880000D02* 1312 | X167005000Y-55880000D01* 1313 | X170180000Y-52705000D02* 1314 | X173990000Y-52705000D01* 1315 | X167005000Y-55880000D02* 1316 | X170180000Y-52705000D01* 1317 | %TO.N,+5V*% 1318 | X170670001Y-87774999D02* 1319 | X173355000Y-85090000D01* 1320 | X151620001Y-87774999D02* 1321 | X170670001Y-87774999D01* 1322 | X150495000Y-88900000D02* 1323 | X151620001Y-87774999D01* 1324 | D34* 1325 | %TO.N,GND*% 1326 | X121920000Y-90170000D02* 1327 | X120015000Y-90170000D01* 1328 | X120015000Y-90170000D02* 1329 | X117475000Y-87630000D01* 1330 | X117475000Y-85130000D02* 1331 | X121960000Y-80645000D01* 1332 | X117475000Y-87630000D02* 1333 | X117475000Y-85130000D01* 1334 | X121960000Y-68540000D02* 1335 | X121960000Y-80645000D01* 1336 | X124460000Y-66040000D02* 1337 | X121960000Y-68540000D01* 1338 | X127120000Y-66040000D02* 1339 | X124460000Y-66040000D01* 1340 | D35* 1341 | X165735000Y-45720000D02* 1342 | X165735000Y-48260000D01* 1343 | X165735000Y-45720000D02* 1344 | X163195000Y-45720000D01* 1345 | X163195000Y-45720000D02* 1346 | X156845000Y-39370000D01* 1347 | X137795000Y-38100000D02* 1348 | X137795000Y-36830000D01* 1349 | X139065000Y-39370000D02* 1350 | X137795000Y-38100000D01* 1351 | X156845000Y-39370000D02* 1352 | X139065000Y-39370000D01* 1353 | X178355000Y-45720000D02* 1354 | X181530000Y-42545000D01* 1355 | X191135000Y-42545000D02* 1356 | X192405000Y-43815000D01* 1357 | X187325000Y-47625000D02* 1358 | X187325000Y-42545000D01* 1359 | X187325000Y-42545000D02* 1360 | X191135000Y-42545000D01* 1361 | X181530000Y-42545000D02* 1362 | X187325000Y-42545000D01* 1363 | D32* 1364 | X192405000Y-43815000D02* 1365 | X194310000Y-43815000D01* 1366 | X194310000Y-43815000D02* 1367 | X194945000Y-44450000D01* 1368 | X194945000Y-87630000D02* 1369 | X192405000Y-90170000D01* 1370 | X192405000Y-83185000D02* 1371 | X194945000Y-83185000D01* 1372 | X194945000Y-83185000D02* 1373 | X194945000Y-87630000D01* 1374 | X192405000Y-76200000D02* 1375 | X194945000Y-76200000D01* 1376 | X194945000Y-76200000D02* 1377 | X194945000Y-83185000D01* 1378 | X194945000Y-44450000D02* 1379 | X194945000Y-76200000D01* 1380 | X192405000Y-69215000D02* 1381 | X194945000Y-69215000D01* 1382 | X177165000Y-92710000D02* 1383 | X182880000Y-92710000D01* 1384 | D33* 1385 | X173990000Y-57785000D02* 1386 | X175260000Y-57785000D01* 1387 | X175895000Y-57150000D02* 1388 | X175895000Y-45720000D01* 1389 | X175260000Y-57785000D02* 1390 | X175895000Y-57150000D01* 1391 | D35* 1392 | X175895000Y-45720000D02* 1393 | X178355000Y-45720000D01* 1394 | X165735000Y-45720000D02* 1395 | X175895000Y-45720000D01* 1396 | %TO.N,Net-(C1-Pad1)*% 1397 | X135255000Y-36830000D02* 1398 | X134620000Y-36830000D01* 1399 | X133390000Y-38060000D02* 1400 | X133390000Y-41910000D01* 1401 | X134620000Y-36830000D02* 1402 | X133390000Y-38060000D01* 1403 | X120650000Y-41910000D02* 1404 | X120650000Y-43815000D01* 1405 | X120650000Y-43815000D02* 1406 | X122595000Y-45760000D01* 1407 | X133390000Y-41910000D02* 1408 | X133390000Y-45760000D01* 1409 | X134620000Y-66040000D02* 1410 | X134620000Y-53975000D01* 1411 | X133310000Y-52665000D02* 1412 | X133310000Y-45760000D01* 1413 | X134620000Y-53975000D02* 1414 | X133310000Y-52665000D01* 1415 | X133310000Y-45760000D02* 1416 | X133390000Y-45760000D01* 1417 | X122595000Y-45760000D02* 1418 | X133310000Y-45760000D01* 1419 | %TO.N,+10V*% 1420 | X129020001Y-52185001D02* 1421 | X129020001Y-53455001D01* 1422 | X126365000Y-49530000D02* 1423 | X129020001Y-52185001D01* 1424 | X129020001Y-53455001D02* 1425 | X130810000Y-55245000D01* 1426 | X130810000Y-55245000D02* 1427 | X130810000Y-92075000D01* 1428 | X130810000Y-92075000D02* 1429 | X127000000Y-95885000D01* 1430 | X127000000Y-95885000D02* 1431 | X125095000Y-95885000D01* 1432 | X121920000Y-99060000D02* 1433 | X121920000Y-99695000D01* 1434 | X125095000Y-95885000D02* 1435 | X121920000Y-99060000D01* 1436 | D32* 1437 | %TO.N,Net-(D1-Pad2)*% 1438 | X183515000Y-80645000D02* 1439 | X186690000Y-80645000D01* 1440 | X186690000Y-80645000D02* 1441 | X187960000Y-81915000D01* 1442 | X187960000Y-81915000D02* 1443 | X187960000Y-84455000D01* 1444 | X189230000Y-85725000D02* 1445 | X192405000Y-85725000D01* 1446 | X187960000Y-84455000D02* 1447 | X189230000Y-85725000D01* 1448 | %TO.N,Net-(D2-Pad2)*% 1449 | X183515000Y-71755000D02* 1450 | X192405000Y-71755000D01* 1451 | %TO.N,Net-(D3-Pad2)*% 1452 | X183515000Y-76200000D02* 1453 | X187325000Y-76200000D01* 1454 | X189865000Y-78740000D02* 1455 | X192405000Y-78740000D01* 1456 | X187325000Y-76200000D02* 1457 | X189865000Y-78740000D01* 1458 | %TO.N,Net-(D4-Pad2)*% 1459 | X183515000Y-85090000D02* 1460 | X184785000Y-85090000D01* 1461 | X184785000Y-85090000D02* 1462 | X187960000Y-88265000D01* 1463 | X187960000Y-88265000D02* 1464 | X187960000Y-92075000D01* 1465 | X188595000Y-92710000D02* 1466 | X192405000Y-92710000D01* 1467 | X187960000Y-92075000D02* 1468 | X188595000Y-92710000D01* 1469 | D34* 1470 | %TO.N,Net-(D5-Pad4)*% 1471 | X127000000Y-90170000D02* 1472 | X121285000Y-95885000D01* 1473 | X95330000Y-95885000D02* 1474 | X87230000Y-87785000D01* 1475 | X121285000Y-95885000D02* 1476 | X95330000Y-95885000D01* 1477 | D33* 1478 | %TO.N,Net-(J5-Pad3)*% 1479 | X172085000Y-43815000D02* 1480 | X172085000Y-42545000D01* 1481 | X174585000Y-40045000D02* 1482 | X179030000Y-40045000D01* 1483 | X172085000Y-42545000D02* 1484 | X174585000Y-40045000D01* 1485 | D32* 1486 | %TO.N,Net-(Q1-Pad2)*% 1487 | X177800000Y-47625000D02* 1488 | X177800000Y-49530000D01* 1489 | X177800000Y-49530000D02* 1490 | X179070000Y-50800000D01* 1491 | X179070000Y-50800000D02* 1492 | X185420000Y-50800000D01* 1493 | X186055000Y-50165000D02* 1494 | X186055000Y-47625000D01* 1495 | X185420000Y-50800000D02* 1496 | X186055000Y-50165000D01* 1497 | %TD*% 1498 | M02* 1499 | -------------------------------------------------------------------------------- /hardware/Gerbers/GPSDO-F_Mask.gbr: -------------------------------------------------------------------------------- 1 | %TF.GenerationSoftware,KiCad,Pcbnew,(6.0.2)*% 2 | %TF.CreationDate,2022-03-15T19:59:36+01:00*% 3 | %TF.ProjectId,GPSDO,47505344-4f2e-46b6-9963-61645f706362,rev?*% 4 | %TF.SameCoordinates,Original*% 5 | %TF.FileFunction,Soldermask,Top*% 6 | %TF.FilePolarity,Negative*% 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (6.0.2)) date 2022-03-15 19:59:36* 10 | %MOMM*% 11 | %LPD*% 12 | G01* 13 | G04 APERTURE LIST* 14 | G04 Aperture macros list* 15 | %AMRoundRect* 16 | 0 Rectangle with rounded corners* 17 | 0 $1 Rounding radius* 18 | 0 $2 $3 $4 $5 $6 $7 $8 $9 X,Y pos of 4 corners* 19 | 0 Add a 4 corners polygon primitive as box body* 20 | 4,1,4,$2,$3,$4,$5,$6,$7,$8,$9,$2,$3,0* 21 | 0 Add four circle primitives for the rounded corners* 22 | 1,1,$1+$1,$2,$3* 23 | 1,1,$1+$1,$4,$5* 24 | 1,1,$1+$1,$6,$7* 25 | 1,1,$1+$1,$8,$9* 26 | 0 Add four rect primitives between the rounded corners* 27 | 20,1,$1+$1,$2,$3,$4,$5,0* 28 | 20,1,$1+$1,$4,$5,$6,$7,0* 29 | 20,1,$1+$1,$6,$7,$8,$9,0* 30 | 20,1,$1+$1,$8,$9,$2,$3,0*% 31 | G04 Aperture macros list end* 32 | %ADD10R,1.600000X1.600000*% 33 | %ADD11O,1.600000X1.600000*% 34 | %ADD12O,1.700000X1.700000*% 35 | %ADD13R,1.700000X1.700000*% 36 | %ADD14C,4.500000*% 37 | %ADD15C,3.000000*% 38 | %ADD16C,6.400000*% 39 | %ADD17O,1.905000X2.000000*% 40 | %ADD18R,1.905000X2.000000*% 41 | %ADD19C,1.600000*% 42 | %ADD20R,2.400000X2.400000*% 43 | %ADD21C,2.400000*% 44 | %ADD22O,2.000000X2.000000*% 45 | %ADD23R,2.000000X2.000000*% 46 | %ADD24C,0.800000*% 47 | %ADD25RoundRect,0.249999X-1.300001X1.300001X-1.300001X-1.300001X1.300001X-1.300001X1.300001X1.300001X0*% 48 | %ADD26C,3.100000*% 49 | %ADD27O,1.050000X1.500000*% 50 | %ADD28R,1.050000X1.500000*% 51 | %ADD29C,2.340000*% 52 | G04 APERTURE END LIST* 53 | D10* 54 | %TO.C,BP1*% 55 | X150495000Y-45720000D03* 56 | D11* 57 | X165735000Y-93980000D03* 58 | X150495000Y-48260000D03* 59 | X165735000Y-91440000D03* 60 | X150495000Y-50800000D03* 61 | X165735000Y-88900000D03* 62 | X150495000Y-53340000D03* 63 | X165735000Y-86360000D03* 64 | X150495000Y-55880000D03* 65 | X165735000Y-83820000D03* 66 | X150495000Y-58420000D03* 67 | X165735000Y-81280000D03* 68 | X150495000Y-60960000D03* 69 | X165735000Y-78740000D03* 70 | X150495000Y-63500000D03* 71 | X165735000Y-76200000D03* 72 | X150495000Y-66040000D03* 73 | X165735000Y-73660000D03* 74 | X150495000Y-68580000D03* 75 | X165735000Y-71120000D03* 76 | X150495000Y-71120000D03* 77 | X165735000Y-68580000D03* 78 | X150495000Y-73660000D03* 79 | X165735000Y-66040000D03* 80 | X150495000Y-76200000D03* 81 | X165735000Y-63500000D03* 82 | X150495000Y-78740000D03* 83 | X165735000Y-60960000D03* 84 | X150495000Y-81280000D03* 85 | X165735000Y-58420000D03* 86 | X150495000Y-83820000D03* 87 | X165735000Y-55880000D03* 88 | X150495000Y-86360000D03* 89 | X165735000Y-53340000D03* 90 | X150495000Y-88900000D03* 91 | X165735000Y-50800000D03* 92 | X150495000Y-91440000D03* 93 | X165735000Y-48260000D03* 94 | X150495000Y-93980000D03* 95 | X165735000Y-45720000D03* 96 | %TD*% 97 | D12* 98 | %TO.C,J4*% 99 | X127000000Y-99695000D03* 100 | X124460000Y-99695000D03* 101 | D13* 102 | X121920000Y-99695000D03* 103 | %TD*% 104 | D14* 105 | %TO.C,T1*% 106 | X109730000Y-54285000D03* 107 | X109730000Y-91285000D03* 108 | X44730000Y-91285000D03* 109 | X44730000Y-54285000D03* 110 | D15* 111 | X67230000Y-87785000D03* 112 | X87230000Y-87785000D03* 113 | X92230000Y-57785000D03* 114 | X62230000Y-57785000D03* 115 | %TD*% 116 | D16* 117 | %TO.C,H6*% 118 | X110490000Y-36195000D03* 119 | %TD*% 120 | %TO.C,H5*% 121 | X193675000Y-102235000D03* 122 | %TD*% 123 | %TO.C,H3*% 124 | X193675000Y-36195000D03* 125 | %TD*% 126 | %TO.C,H2*% 127 | X42545000Y-36195000D03* 128 | %TD*% 129 | %TO.C,H1*% 130 | X110490000Y-102235000D03* 131 | %TD*% 132 | D17* 133 | %TO.C,U1*% 134 | X140335000Y-36830000D03* 135 | X137795000Y-36830000D03* 136 | D18* 137 | X135255000Y-36830000D03* 138 | %TD*% 139 | D12* 140 | %TO.C,D4*% 141 | X192405000Y-92710000D03* 142 | D13* 143 | X192405000Y-90170000D03* 144 | %TD*% 145 | D12* 146 | %TO.C,D3*% 147 | X192405000Y-78740000D03* 148 | D13* 149 | X192405000Y-76200000D03* 150 | %TD*% 151 | D12* 152 | %TO.C,D2*% 153 | X192405000Y-71755000D03* 154 | D13* 155 | X192405000Y-69215000D03* 156 | %TD*% 157 | D12* 158 | %TO.C,D1*% 159 | X192405000Y-85725000D03* 160 | D13* 161 | X192405000Y-83185000D03* 162 | %TD*% 163 | D19* 164 | %TO.C,C1*% 165 | X124460000Y-80645000D03* 166 | X121960000Y-80645000D03* 167 | %TD*% 168 | D20* 169 | %TO.C,C2*% 170 | X134620000Y-66040000D03* 171 | D21* 172 | X127120000Y-66040000D03* 173 | %TD*% 174 | D19* 175 | %TO.C,C3*% 176 | X133390000Y-41910000D03* 177 | X135890000Y-41910000D03* 178 | %TD*% 179 | %TO.C,C4*% 180 | X123150000Y-41910000D03* 181 | X120650000Y-41910000D03* 182 | %TD*% 183 | %TO.C,C5*% 184 | X142240000Y-41910000D03* 185 | X139740000Y-41910000D03* 186 | %TD*% 187 | %TO.C,C6*% 188 | X127000000Y-41910000D03* 189 | X129500000Y-41910000D03* 190 | %TD*% 191 | %TO.C,C7*% 192 | X136430000Y-49530000D03* 193 | D10* 194 | X138430000Y-49530000D03* 195 | %TD*% 196 | %TO.C,C8*% 197 | X126365000Y-49530000D03* 198 | D19* 199 | X124365000Y-49530000D03* 200 | %TD*% 201 | D22* 202 | %TO.C,D5*% 203 | X127000000Y-90170000D03* 204 | X121920000Y-85090000D03* 205 | X121920000Y-90170000D03* 206 | D23* 207 | X127000000Y-85090000D03* 208 | %TD*% 209 | D24* 210 | %TO.C,H4*% 211 | X44242056Y-100537944D03* 212 | X42545000Y-99835000D03* 213 | X40847944Y-100537944D03* 214 | X40145000Y-102235000D03* 215 | X40847944Y-103932056D03* 216 | X42545000Y-104635000D03* 217 | X44242056Y-103932056D03* 218 | X44945000Y-102235000D03* 219 | D16* 220 | X42545000Y-102235000D03* 221 | %TD*% 222 | D13* 223 | %TO.C,J1*% 224 | X173990000Y-52705000D03* 225 | D12* 226 | X173990000Y-55245000D03* 227 | X173990000Y-57785000D03* 228 | %TD*% 229 | D25* 230 | %TO.C,J2*% 231 | X44450000Y-66390000D03* 232 | D26* 233 | X44450000Y-72390000D03* 234 | X44450000Y-78390000D03* 235 | %TD*% 236 | D13* 237 | %TO.C,J3*% 238 | X132715000Y-99695000D03* 239 | D12* 240 | X135255000Y-99695000D03* 241 | X137795000Y-99695000D03* 242 | X140335000Y-99695000D03* 243 | %TD*% 244 | D13* 245 | %TO.C,J5*% 246 | X192405000Y-43815000D03* 247 | D12* 248 | X192405000Y-46355000D03* 249 | X192405000Y-48895000D03* 250 | X192405000Y-51435000D03* 251 | X192405000Y-53975000D03* 252 | X192405000Y-56515000D03* 253 | X192405000Y-59055000D03* 254 | X192405000Y-61595000D03* 255 | X192405000Y-64135000D03* 256 | %TD*% 257 | D27* 258 | %TO.C,Q1*% 259 | X186055000Y-47625000D03* 260 | X187325000Y-47625000D03* 261 | D28* 262 | X184785000Y-47625000D03* 263 | %TD*% 264 | D11* 265 | %TO.C,R1*% 266 | X173355000Y-80645000D03* 267 | D19* 268 | X183515000Y-80645000D03* 269 | %TD*% 270 | %TO.C,R2*% 271 | X173355000Y-71755000D03* 272 | D11* 273 | X183515000Y-71755000D03* 274 | %TD*% 275 | %TO.C,R3*% 276 | X173355000Y-76200000D03* 277 | D19* 278 | X183515000Y-76200000D03* 279 | %TD*% 280 | D11* 281 | %TO.C,R4*% 282 | X177800000Y-47625000D03* 283 | D19* 284 | X177800000Y-57785000D03* 285 | %TD*% 286 | %TO.C,R5*% 287 | X181610000Y-47625000D03* 288 | D11* 289 | X181610000Y-57785000D03* 290 | %TD*% 291 | D19* 292 | %TO.C,R6*% 293 | X183515000Y-85090000D03* 294 | D11* 295 | X173355000Y-85090000D03* 296 | %TD*% 297 | D29* 298 | %TO.C,RV1*% 299 | X181530000Y-42545000D03* 300 | X179030000Y-40045000D03* 301 | X176530000Y-42545000D03* 302 | %TD*% 303 | D12* 304 | %TO.C,SW1*% 305 | X177165000Y-92710000D03* 306 | D13* 307 | X177165000Y-90170000D03* 308 | %TD*% 309 | %TO.C,SW2*% 310 | X182880000Y-90170000D03* 311 | D12* 312 | X182880000Y-92710000D03* 313 | %TD*% 314 | D18* 315 | %TO.C,U2*% 316 | X123190000Y-36830000D03* 317 | D17* 318 | X125730000Y-36830000D03* 319 | X128270000Y-36830000D03* 320 | %TD*% 321 | M02* 322 | -------------------------------------------------------------------------------- /hardware/Gerbers/GPSDO-NPTH.drl: -------------------------------------------------------------------------------- 1 | M48 2 | ; DRILL file {KiCad (6.0.2)} date Tue Mar 15 19:59:32 2022 3 | ; FORMAT={-:-/ absolute / inch / decimal} 4 | ; #@! TF.CreationDate,2022-03-15T19:59:32+01:00 5 | ; #@! TF.GenerationSoftware,Kicad,Pcbnew,(6.0.2) 6 | ; #@! TF.FileFunction,NonPlated,1,2,NPTH 7 | FMAT,2 8 | INCH 9 | ; #@! TA.AperFunction,NonPlated,NPTH,ComponentDrill 10 | T1C0.1772 11 | % 12 | G90 13 | G05 14 | T1 15 | X1.761Y-2.1372 16 | X1.761Y-3.5939 17 | X4.3201Y-2.1372 18 | X4.3201Y-3.5939 19 | T0 20 | M30 21 | -------------------------------------------------------------------------------- /hardware/Gerbers/GPSDO-PTH.drl: -------------------------------------------------------------------------------- 1 | M48 2 | ; DRILL file {KiCad (6.0.2)} date Tue Mar 15 19:59:32 2022 3 | ; FORMAT={-:-/ absolute / inch / decimal} 4 | ; #@! TF.CreationDate,2022-03-15T19:59:32+01:00 5 | ; #@! TF.GenerationSoftware,Kicad,Pcbnew,(6.0.2) 6 | ; #@! TF.FileFunction,Plated,1,2,PTH 7 | FMAT,2 8 | INCH 9 | ; #@! TA.AperFunction,Plated,PTH,ViaDrill 10 | T1C0.0157 11 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 12 | T2C0.0197 13 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 14 | T3C0.0295 15 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 16 | T4C0.0315 17 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 18 | T5C0.0394 19 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 20 | T6C0.0433 21 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 22 | T7C0.0472 23 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 24 | T8C0.0512 25 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 26 | T9C0.0827 27 | ; #@! TA.AperFunction,Plated,PTH,ComponentDrill 28 | T10C0.1260 29 | % 30 | G90 31 | G05 32 | T1 33 | X6.25Y-3.9 34 | X6.775Y-1.725 35 | X6.875Y-2.65 36 | T2 37 | X1.5805Y-4.025 38 | X1.6082Y-3.9582 39 | X1.6082Y-4.0918 40 | X1.675Y-3.9305 41 | X1.675Y-4.1195 42 | X1.7418Y-3.9582 43 | X1.7418Y-4.0918 44 | X1.7695Y-4.025 45 | T3 46 | X7.275Y-1.875 47 | X7.325Y-1.875 48 | X7.375Y-1.875 49 | T4 50 | X4.75Y-1.65 51 | X4.8016Y-3.175 52 | X4.8484Y-1.65 53 | X4.8963Y-1.95 54 | X4.9Y-3.175 55 | X4.975Y-1.95 56 | X5.0Y-1.65 57 | X5.0984Y-1.65 58 | X5.2516Y-1.65 59 | X5.35Y-1.65 60 | X5.3713Y-1.95 61 | X5.45Y-1.95 62 | X5.5016Y-1.65 63 | X5.6Y-1.65 64 | X5.925Y-1.8 65 | X5.925Y-1.9 66 | X5.925Y-2.0 67 | X5.925Y-2.1 68 | X5.925Y-2.2 69 | X5.925Y-2.3 70 | X5.925Y-2.4 71 | X5.925Y-2.5 72 | X5.925Y-2.6 73 | X5.925Y-2.7 74 | X5.925Y-2.8 75 | X5.925Y-2.9 76 | X5.925Y-3.0 77 | X5.925Y-3.1 78 | X5.925Y-3.2 79 | X5.925Y-3.3 80 | X5.925Y-3.4 81 | X5.925Y-3.5 82 | X5.925Y-3.6 83 | X5.925Y-3.7 84 | X6.525Y-1.8 85 | X6.525Y-1.9 86 | X6.525Y-2.0 87 | X6.525Y-2.1 88 | X6.525Y-2.2 89 | X6.525Y-2.3 90 | X6.525Y-2.4 91 | X6.525Y-2.5 92 | X6.525Y-2.6 93 | X6.525Y-2.7 94 | X6.525Y-2.8 95 | X6.525Y-2.9 96 | X6.525Y-3.0 97 | X6.525Y-3.1 98 | X6.525Y-3.2 99 | X6.525Y-3.3 100 | X6.525Y-3.4 101 | X6.525Y-3.5 102 | X6.525Y-3.6 103 | X6.525Y-3.7 104 | X6.825Y-2.825 105 | X6.825Y-3.0 106 | X6.825Y-3.175 107 | X6.825Y-3.35 108 | X7.0Y-1.875 109 | X7.0Y-2.275 110 | X7.15Y-1.875 111 | X7.15Y-2.275 112 | X7.225Y-2.825 113 | X7.225Y-3.0 114 | X7.225Y-3.175 115 | X7.225Y-3.35 116 | T5 117 | X4.8Y-3.35 118 | X4.8Y-3.55 119 | X4.8Y-3.925 120 | X4.9Y-3.925 121 | X5.0Y-3.35 122 | X5.0Y-3.55 123 | X5.0Y-3.925 124 | X5.225Y-3.925 125 | X5.325Y-3.925 126 | X5.425Y-3.925 127 | X5.525Y-3.925 128 | X6.85Y-2.075 129 | X6.85Y-2.175 130 | X6.85Y-2.275 131 | X6.975Y-3.55 132 | X6.975Y-3.65 133 | X7.2Y-3.55 134 | X7.2Y-3.65 135 | X7.575Y-1.725 136 | X7.575Y-1.825 137 | X7.575Y-1.925 138 | X7.575Y-2.025 139 | X7.575Y-2.125 140 | X7.575Y-2.225 141 | X7.575Y-2.325 142 | X7.575Y-2.425 143 | X7.575Y-2.525 144 | X7.575Y-2.725 145 | X7.575Y-2.825 146 | X7.575Y-3.0 147 | X7.575Y-3.1 148 | X7.575Y-3.275 149 | X7.575Y-3.375 150 | X7.575Y-3.55 151 | X7.575Y-3.65 152 | T6 153 | X4.85Y-1.45 154 | X4.95Y-1.45 155 | X5.05Y-1.45 156 | X5.325Y-1.45 157 | X5.425Y-1.45 158 | X5.525Y-1.45 159 | T7 160 | X2.45Y-2.275 161 | X2.6469Y-3.4561 162 | X3.4343Y-3.4561 163 | X3.6311Y-2.275 164 | X5.0047Y-2.6 165 | X5.3Y-2.6 166 | T8 167 | X6.95Y-1.675 168 | X7.0484Y-1.5766 169 | X7.1469Y-1.675 170 | T9 171 | X1.75Y-2.6138 172 | X1.75Y-2.85 173 | X1.75Y-3.0862 174 | T10 175 | X1.675Y-1.425 176 | X1.675Y-4.025 177 | X4.35Y-1.425 178 | X4.35Y-4.025 179 | X7.625Y-1.425 180 | X7.625Y-4.025 181 | T0 182 | M30 183 | -------------------------------------------------------------------------------- /hardware/Gerbers/GPSDO-job.gbrjob: -------------------------------------------------------------------------------- 1 | { 2 | "Header": { 3 | "GenerationSoftware": { 4 | "Vendor": "KiCad", 5 | "Application": "Pcbnew", 6 | "Version": "(6.0.2)" 7 | }, 8 | "CreationDate": "2022-03-15T19:59:36+01:00" 9 | }, 10 | "GeneralSpecs": { 11 | "ProjectId": { 12 | "Name": "GPSDO", 13 | "GUID": "47505344-4f2e-46b6-9963-61645f706362", 14 | "Revision": "rev?" 15 | }, 16 | "Size": { 17 | "X": 160.07, 18 | "Y": 74.98 19 | }, 20 | "LayerNumber": 2, 21 | "BoardThickness": 1.6, 22 | "Finish": "None" 23 | }, 24 | "DesignRules": [ 25 | { 26 | "Layers": "Outer", 27 | "PadToPad": 0.0, 28 | "PadToTrack": 0.0, 29 | "TrackToTrack": 0.2, 30 | "MinLineWidth": 0.25 31 | } 32 | ], 33 | "FilesAttributes": [ 34 | { 35 | "Path": "GPSDO-F_Cu.gbr", 36 | "FileFunction": "Copper,L1,Top", 37 | "FilePolarity": "Positive" 38 | }, 39 | { 40 | "Path": "GPSDO-B_Cu.gbr", 41 | "FileFunction": "Copper,L2,Bot", 42 | "FilePolarity": "Positive" 43 | }, 44 | { 45 | "Path": "GPSDO-F_Silkscreen.gbr", 46 | "FileFunction": "Legend,Top", 47 | "FilePolarity": "Positive" 48 | }, 49 | { 50 | "Path": "GPSDO-B_Silkscreen.gbr", 51 | "FileFunction": "Legend,Bot", 52 | "FilePolarity": "Positive" 53 | }, 54 | { 55 | "Path": "GPSDO-F_Mask.gbr", 56 | "FileFunction": "SolderMask,Top", 57 | "FilePolarity": "Negative" 58 | }, 59 | { 60 | "Path": "GPSDO-B_Mask.gbr", 61 | "FileFunction": "SolderMask,Bot", 62 | "FilePolarity": "Negative" 63 | }, 64 | { 65 | "Path": "GPSDO-Edge_Cuts.gbr", 66 | "FileFunction": "Profile", 67 | "FilePolarity": "Positive" 68 | } 69 | ], 70 | "MaterialStackup": [ 71 | { 72 | "Type": "Legend", 73 | "Name": "Top Silk Screen" 74 | }, 75 | { 76 | "Type": "SolderPaste", 77 | "Name": "Top Solder Paste" 78 | }, 79 | { 80 | "Type": "SolderMask", 81 | "Name": "Top Solder Mask" 82 | }, 83 | { 84 | "Type": "Copper", 85 | "Name": "F.Cu" 86 | }, 87 | { 88 | "Type": "Dielectric", 89 | "Material": "FR4", 90 | "Name": "F.Cu/B.Cu", 91 | "Notes": "Type: dielectric layer 1 (from F.Cu to B.Cu)" 92 | }, 93 | { 94 | "Type": "Copper", 95 | "Name": "B.Cu" 96 | }, 97 | { 98 | "Type": "SolderMask", 99 | "Name": "Bottom Solder Mask" 100 | }, 101 | { 102 | "Type": "SolderPaste", 103 | "Name": "Bottom Solder Paste" 104 | }, 105 | { 106 | "Type": "Legend", 107 | "Name": "Bottom Silk Screen" 108 | } 109 | ] 110 | } 111 | -------------------------------------------------------------------------------- /hardware/README.md: -------------------------------------------------------------------------------- 1 | # YATPGPSDO hardware 2 | Hardware design files for Yet Another TruePosition GPSDO 3 | EDA software: [KiCAD](https://kicad.org/) 4 | -------------------------------------------------------------------------------- /hardware/fp-info-cache: -------------------------------------------------------------------------------- 1 | 0 2 | --------------------------------------------------------------------------------