39 Commits

Author SHA1 Message Date
Gonçalo Pereira df15ebf8d6 EMI and buck layout placement 2024-05-23 17:58:24 +01:00
Gonçalo Pereira d4feff9014 Adjust simulation 2024-05-13 21:39:25 +01:00
Gonçalo Pereira 7365b8ebfe Add phase to EMI filter simulation results 2024-05-13 21:36:42 +01:00
Gonçalo Pereira 8deef1b8a6 Update EMI filter schematic according to simulation results 2024-05-13 21:28:44 +01:00
Gonçalo Pereira 6f9030cc3c EMI filter simulation 2024-05-13 21:25:08 +01:00
Gonçalo Pereira b9990c4e48 UART ESD protection 2024-05-10 08:28:21 +01:00
Gonçalo Pereira 66db62f22b Revert "UART connector study"
This reverts commit 1600af9792.
2024-05-10 08:16:44 +01:00
Gonçalo Pereira 1600af9792 UART connector study 2024-05-08 08:32:52 +01:00
Gonçalo Pereira 1eabcf49dd Connectors ESD protection 2024-05-08 08:30:05 +01:00
Gonçalo Pereira 2a7a18f6bb ESD protection 2024-05-08 08:03:07 +01:00
Gonçalo Pereira 77d1be4582 Update FeederFloor to KiCAD 8 2024-05-07 08:05:16 +01:00
Gonçalo Pereira af70a0e265 Fix libraries 2024-05-02 07:47:10 +01:00
Gonçalo Pereira 9dcfcc7592 Buck converter schematic complete 2024-04-27 02:06:01 +01:00
Gonçalo Pereira 221738351d Selected another buck converter 2024-04-27 01:36:56 +01:00
Gonçalo Pereira f72b464060 Update to KiCAD 8 2024-04-23 18:17:11 +01:00
Gonçalo Pereira cdb099adfd Update to KiCAD 8 2024-04-23 07:48:10 +01:00
Stephen Hawes 4999d443f7 taking Justins advice and adding a special note to prevent inquiry about board space 2023-06-28 14:07:25 -04:00
Stephen Hawes 77ff8dadfb updates silk to reference the fact this is a rev13 beta 0 2023-06-20 12:22:55 -05:00
Stephen Hawes 160c84925c adds thimble to bom 2023-05-25 11:21:59 -04:00
Stephen Hawes a497fa53e1 actually adding the spring line in the BOM, accidentally did not include it in the last commit 2023-05-24 17:22:17 -04:00
Stephen Hawes 422563d96f fixes links to fasteners, adds spring to bom 2023-05-24 17:18:38 -04:00
Stephen Hawes 205fea5cea adds pcb info to bom 2023-05-22 10:31:22 -04:00
Stephen Hawes 4937b46ded adds wheel glueing to design decisions 2023-05-22 10:31:13 -04:00
Stephen Hawes 8c4869fb68 implements atanisoft's solution of converting copper to zone rule areas to make removing countersink copper much easier 2023-05-19 11:33:49 -04:00
Stephen Hawes dc2f205042 removes copper pour from the nub protecting the spring pins to reduce the chance of exposed copper 2023-05-18 17:29:08 -04:00
Stephen Hawes f93ddf28f0 adds annotations to many sections of the schematic 2023-05-17 14:22:33 -04:00
Stephen Hawes ce0884c780 makes schematic page larger, rearranges components for readability 2023-05-17 14:12:14 -04:00
Stephen Hawes d77f599cce adds dedicated symbol for push buttons. adds them to the board 2023-05-17 13:40:47 -04:00
Stephen Hawes af06af9a1b fixes #19. adds X and Y caps on RS485 bus. 2023-05-17 12:59:16 -04:00
Stephen Hawes b06d74ba60 fixes #16. adds cap to reset line for EMI hardening 2023-05-17 12:05:46 -04:00
Stephen Hawes d3189ef4d0 helps address #13. motor driver decoupling caps match the DRV8837s recommended values in the datasheet. adds dedicated cap for the rs485 transceiver. improves routing from motor driver caps to power pads 2023-05-17 11:53:09 -04:00
Stephen Hawes ce71b40a86 fixes #9. marks LED_RGBA_ALT as DNP, adds custom symbol for MHS110FRGBCT LED 2023-05-17 11:24:14 -04:00
Stephen Hawes a2f9e1068f fixes #14. removes vias from all pads. updates STM32 QFN footprint to not have any paste layer for stencil export 2023-05-17 11:02:24 -04:00
Stephen Hawes 4a230d6c4d fixes #22. adds reasonable default design rule constraints. circular keepouts are already present for the countersink, and they're much bigger than the max diameter of the countersink 2023-05-17 10:33:53 -04:00
Stephen Hawes 749bfe5bb2 small routing tweaks 2023-05-15 12:08:43 -04:00
Stephen Hawes 4d84a8e0f6 adds inductor inline with the 24v rail to limit inrush current 2023-05-11 14:41:13 -04:00
Stephen Hawes 0511a2b487 Merge branch 'main' of github.com:opulo-inc/feeder 2023-05-08 15:19:39 -04:00
Stephen Hawes 485aaf26e6 adds design decisions document, clarifies point about drive motor in bom 2023-05-08 15:19:37 -04:00
Stephen Hawes 270650687b Update issue templates 2023-04-19 14:25:09 -04:00
18 changed files with 116883 additions and 50450 deletions
@@ -0,0 +1,20 @@
---
name: Electrical Design
about: Issue Template for the feeder's Electrical Design
title: ''
labels: triage
assignees: ''
---
# Version Number
What is the latest known version number where this issue is present?
# Bugfix or Enhancement
Is this issue a bug with the feeder, or a potential enhancement?
# Description
Please describe the issue. Be sure to include relevant parts and photos/video if possible.
# Suggested Solution
Please describe a suggested solution, if you have one in mind.
@@ -0,0 +1,20 @@
---
name: Mechanical Design
about: Issue Template for the feeder's Mechanical Design
title: ''
labels: triage
assignees: ''
---
# Version Number
What is the latest known version number where this issue is present?
# Bugfix or Enhancement
Is this issue a bug with the feeder, or a potential enhancement?
# Description
Please describe the issue. Be sure to include relevant parts and photos/video if possible.
# Suggested Solution
Please describe a suggested solution, if you have one in mind.
+154
View File
@@ -0,0 +1,154 @@
# LumenPnP Feeder Design Decisions
This page aims to illustrate the design decisions behind the LumenPnP Feeders. The design process started in early 2020, and has seen hundreds of iterations and approaches. This page gives background about why things are done the way they are, to help communicate to folks new to the project what has been tried, and why it was not chosen.
## Overview
The LumenPnP feeders are a mostly 3D printed tape feeder capable of reliably feeding 0402 components. They are designed to easily mount to a 20mm x 20mm v-slot aluminum extrusion. There are two motors in the system: a drive motor and a peel motor. The drive motor is a right-angle N20 motor with an encoder, giving us incredibly high resolution control of the motor's position. The peel motor is a standard N20 motor that peels film using a few 3D printed gears. The feeder has two buttons for tape loading and manual control. A third button puts the feeder into bootloader mode, allowing anyone to flash new firmware using a common FTDI USB to UART converter.
Feeders connect to power and communication when mounted to a rail through a "slot." Slots all connect back to a LumenPnP motherboard using an IDC cable. Each slot has a 1-Wire EEPROM onboard which holds the slot's address. This address is used to tell OpenPnP where a certain feeder has been mounted. All communication back to the motherboard happens over RS-485 using the Photon Protocol.
## Drive Subsystem
The Drive Subsystem is in charge of moving the tape forward at very precise increments. A right-angle N20 motor with a 1:1030 ratio gearbox was chosen for this task. This gear ratio provide a tremendous amount of torque for the size of the motor. An encoder on the back shaft of the motor has 14 ticks per revolution, which results in a theoretical 8.8 micron tape movement resolution. Of course, there are many other factors at play that reduce how precise the feeder is actually able to position tape, but the encoder is plenty precise enough for our application.
### Why not stepper motors?
While stepper motors are great for high-precision movement in systems like a 3D printer, they're less optimal for a small device like a feeder.
One of the main considerations with a feeder design is its width. The thinner a feeder is, the more of them you can fit on a given machine, and the more useful they become. Steppers thin enough to fit within a reasonably sized feeder suffer from a lack of torque, and would likely skip steps trying to advance tape. This is especially true when using microstepping, which would likely be necessary for the small movements required in a feeder.
Steppers also lack absolute positioning. All of their movements are relative, and without an encoder or a driver that supports skipped-step detection, we wouldn't know if the stepper has skipped steps.
It's possible to use a pancake stepper motor with a high-torque gearbox and a driver like the TMC2209 for skipped step detection, but a small DC motor with an encoder used fewer parts and had fewer points of failure.
### Why not an external gearbox/gear system?
Many feeder designs utilize a custom gear system that is mounted within the feeder itself. This can provide incredibly high torque if the gearing ratio is high enough.
We chose to avoid this for two main reasons. The first is that we trust the metal gearbox in a right-angle N20 motor much more than a (likely plastic) gear system that we designed. The N20 "standard" is ubiquitous and thoroughly tested. If we can keep our entire gearing system in metal gears, and in an easily sourced, highly tested part, it's a huge win for accessibility and reliability.
The second reason is ease of sourcing/building. If we used "off the shelf" nylon gears, not only would using a pre-existing gear be a huge design limitation, but also they might be difficult to source for the hobbyist or builder. If we went with totally custom gears, this makes the sourcing issue even worse. And even if folks could print them at home, the resolution required for the precise tape movement would be so high that the print would likely have to be SLA.
### Why not an encoder on the drive wheel itself?
In early versions of the feeder, we used a reflective sensor to watch for voids in the drive wheel. Putting our closed-loop feedback system on the last step of the drivetrain is great in theory. Monitoring as close to the actual metric you're controlling will provide a tighter coupling between your independent and dependent variables. There are three reasons we ended up switching to a magnetic encoder on the motor's back shaft.
The first is the low precision of the reflective sensor. The low/high and high/low threshold transition point of the reflective sensor was entirely dependent on how precise the cutout of the drive wheel was. Given that the wheels are made from PCBs which do not have a high tolerance with edge cuts, precision was very low. The sensor itself was also very noisy, requiring lots of signal processing to provide a useful signal. Early tests showed that *each feeder* would need its own custom calibration, which would be a tremendous effort, and discourage hacking.
On the other hand, a magnetic encoder provides 14 ticks per revolution of the motor. Because we are gearing down the motor with such a high ratio, we get an astronomically high precision of our gearbox output.
`14 ticks / 1 motor revolution * 1030 motor revolution / 1 gearbox revolution = 14420 ticks / 1 gearbox revolution`
This means that with a 128mm wheel circumference (32 teeth with 4mm spacing), we have a theoretical 8.877 micron tape positioning resolution. In practice, small tolerance stackups in the gearbox and drive wheel geometry mean we aren't this precise with actual tape position, but it's much better than the 200-500 or so micron resolution we saw with the reflective sensor.
The second reason is that any backlash error in the N20 gearbox can be accounted for by only positioning **from one side**. Backlash is only evident when there exists a reversal of the axis direction. If we only ever approach our position from one direction, backlash does not play into the tape positioning. Even when feeding backwards, we simply overshoot the final position, then approach again from the same direction.
The third reason is that with an encoder, we can move arbitrary distances. With a reflective sensor/slotted drive wheel, our resolution is limited to how far apart we've spaced the slots. With an encoder, we can command the feeder to move effectively any distance (provided it's a multiple of 8.877 microns!). This means feeding 1mm increments is fundamentally the same as feeding 4mm increments.
However, this all assumes that the encoder on the output wheel is comprised of a slotted PCB with a reflective sensor. Very thin encoder wheels and sensors exist, and might be a reasonable option for feeder tape positioning. We decided against this approach due to the lower resolution, cost, and likely need for customization that would make homebrew builds more difficult. They're also susceptible to errors due to light bleed.
### Why glue the shaft collar to the Drive Wheel?
Ideally, affixing the shaft collar to the Drive Wheel uses mechanical coupling, as glue can be finicky. We tried a screw-affixed design, but in order to have the screws fit without hitting the motor the PCB needed to be countersunk. That countersink added a bump to the opposite side of the board. When the shaft collar was mounted to it, we saw a very high sinusoidal variation in the tape position throughout the rotation of the wheel because the collar and wheel weren't coplanar anymore. Glue ended up being the most consistent approach in terms of tape positional accuracy.
We used to have a D-shaft cutout in the center of the wheel, we found that it was over-constraining the glueing process so we removed it. If we're going to glue, we should reference it to the outer profile of the teeth as much as possible, which is really what matters in this application.
## Peel Subsystem
The Peel Subsystem is comprised of a standard N20 motor with a 1:210 gear ratio, with a printed worm gear attached to the output shaft. This worm gear interfaces with a gearbox used for peeling the film. The two straight gears that perform the peeling are mounted with a positive interface, ensuring the frame holding them in place is constantly applying pressure between them. This interface is what grips the film and pulls it away from the tape.
### Why not passive peeling?
Passive peeling mechanisms have been shown to work in many instances. Allowing the force of the drive motor to remove and/or guide the film away from the tape is a great way to reduce the part count. We ultimately decided to use a dedicated peel motor instead of a passive approach for a number of reasons.
First, in our tests we found that passive film peeling methods were only reliable with highly-tuned 3D printer settings to make a working geometry. Not only do we want the design to be possible to be built at home, but it also needs to be straightforward to build in a scaled-up manufacturing setting. Scrapping a high volume of prints because of not hitting a very tight dimensional tolerance would be a frustrating and expensive experience for builders and Opulo alike.
Second, we found that passive film peeling worked better with certain types of tape, and worse with others. In situations where the film is lightly attached to the tape, depending on the method of passive film removal, *both* sides of the film could come unstuck from the tape, jamming the feeder. In the situation where the adhesion was high between the film and tape, the drive motor had to work much, much harder to both drive the tape and remove the film.
Our approach not only ensures there's plenty of force present pulling the film from the tape, but it also accommodates any type of tape as defined by the EIA-418 standard. Even if the film is strongly adhered to the tape, or stretches easily and requires more peeling, the flexture holding the peel gears together allows film to slide between the gears when overdriven.
### Aren't you worried about wear/creep with plastic gears and tensioning?
At first, we were. But the benefits of being printable are high, allowing the design to be more accessible. We ran lifetime tests with the peel mechanism and had very good results.
We tested the peel gear box to a quarter million feed cycles, resulting in a kilometer of tape fed, and saw no failure of the gearbox's ability to peel film. There is slight initial wear of the gears that is present within the first 10k cycles, but after this the system hits steady-state.
Even then, we ensured that this part is easily replaceable if need be. It's easily printable at home, and can be replaced in less than a minute with only two screws.
### Why no tension sensor?
We found that it wasn't necessary. Many feeder designs use a switch to detect when the film has reached a sufficient tension, but with our flextured peel gear box, we can simply overdrive the peel mechanism and the film will slip through the gears once it's been peeled fully and can't move any more.
## Voltage Rails
The feeders are powered by 24 volts on the slot. They step this down to 10 volts using a buck converter, then down to 3.3 volts using an LDO.
### Why 24 Volts Bus Voltage?
24 volts was chosen for the bus voltage for a few reasons. First, it's already on the motherboard given that it's the voltage of the power supply for the machine. Second, a higher voltage allows us to send more power over thinner wire. We wanted to use IDC connectors on the slot harness due to the form factor of the slot, and need for many connectors on a single cable. Using 24 volts lets us send more power for a given current limit of the cable.
Next comes the 10 volt buck converter. The N20 motors accept up to 12 volts, but the DRV8837 H-Bridge motor driver chips only accept up to 11 volts. This chip was chosen as the motor driver due to its cost and availability. Other chips with a higher acceptable voltage of course exist, but are much more expensive or can be hard to source. We also looked for 24 volts motors, but the N20 standard does not seem to accept a voltage higher than 12 volts.
Lastly is the 3.3 volt LDO. This is used for the microcontroller, encoder, switches, LEDs, etc.
## Slot Addressing
Each feeder is loaded into a slot, which is a small 3D print and PCB with a 1-Wire EEPROM. When the feeder is loaded, it reads the slot address from the EEPROM. This is what the host uses to address the feeder in most instances.
### Why is this even necessary?
This system isn't strictly necessary for feeders to operate. But it does allow the host to be much more intelligent about how it handles feeders.
If we neglected to have a slot address, then we'd be operating purely on the feeder's UUID. Assuming we've solved the problem of feeder discovery once inserted, the host would have no idea *where* the feeder is after it's mounted. This means that the user needs to manually jog the head to the feeder every time it's inserted in order to set pick position.
If we neglected to have a feeder UUID and only knew what location a feeder was mounted into, we wouldn't be able to keep track of what part the feeder has; we'd just know where it is.
By having both a feeder UUID, and an address for each location, we can dynamically find where a feeder has been inserted and know what part is at that location.
### Why not use voltage dividers?
Voltage dividers are a very inexpensive method of setting a specific value for a microcontroller. The EEPROM might seem like overkill to hold a single address. We chose to avoid voltage dividers for a couple reasons.
Firstly, the likelihood of error was very high. If we want to support up to 255 devices on the bus, we'd need that many addresses, and that many discrete voltages from the divider. With a 3.3 volt starting voltage, that means we have 12.9 millivolts per address. The precision of the resistors used would have to be incredibly high to support this resolution, and we'd be assuming no voltage loss in the spring-pin interface.
Voltage dividers also require that the feeder has an ADC as opposed to just a GPIO pin used for 1-Wire communication.
### Why not use an I2C/SPI EEPROM?
Provided that we were able to find a spring pin connector with two more wires, we absolutely could have! The benefit of 1-Wire is that it only requires one pin for both communication *and* power. I2C devices would require three dedicated pins: SDA, SCL, and VCC. The spring pin interface we chose that allows the entire feeder geometry to work only comes with up to 5 pins. With four already used for RS-485 and power, the one left is allocated to the EEPROM.
## Host Communication
At the top of the communication stack is the host. The host is what decides which feeder needs to feed, and when. OpenPnP acts as the host in this scenario. OpenPnP sends M485 commands to Marlin, and gets data from feeders back as a result. A custom OpenPnP feeder type `PhotonFeeder` supports common Photon commands such as feed, self-identify, initialize, or check for feed status.
Next comes Marlin. Marlin is the firmware on the LumenPnP and relays commands to feeders along an RS-485 bus that connects to every slot. It sends data using the Photon Protocol. A new M command for Marlin's gcode interface, M485, allows a host to send data down the RS-485 bus using Photon, and thereby communicating with feeders.
### Why RS-485?
RS-485 is an electrical standard that is widely used, particularly in industrial environments. Being a differential signal, electromagnetic interference that affects both data lines does not affect the signal integrity.
### Why not CAN?
CAN would have also been a great option for feeder communication. The decision to stick with a custom protocol over RS-485 ended up coming down to the large size of a CAN frame. The arbitration system is a bit overkill for a system with only two types of devices. Bit stuffing, plus a long CRC and end of frame section make the frame lengthy, keeping the bus noisier than necessary. CAN would have worked just fine, we just preferred to spin our own protocol that was exactly what we needed.
### Why not MODBUS?
MODBUS is a great, royalty-free protocol, and does fulfill many project requirements. There are two main reasons we decided to implement our own protocol.
The first is that MODBUS only supports the host initiating a message. We wanted to allow the possibility that feeders themselves can initiate communication back to the host, instead of only ever waiting to be queried.
The second reason is that we are not only working with a device ID, we are working with its slot address, which acts as its location on the machine. Although we could store address data in the feeder and query it with MODBUS, we couldn't scan every possible feeder ID easily. With Photon, we simply ping each of the 50 possible addresses and see which IDs come back. MODBUS is designed for systems where the ID of each device on the bus is known, and likely immutable. Feeders are easily swapped, and need to be easily recognized once inserted. This flexibility is what Photon provides.
## Microcontroller
An STM32F031C6T6 was chosen for the feeder's microcontroller. There were a few requirements of the chip in order to hit the project goals:
* Available and generally low cost (two variables that are a moving target in our modern semiconductor market)
* At least 1 UART for RS-485
* Sufficient GPIO for buttons, LED, encoder, etc.
* Internal UUID for identification by the host
As a bonus, the chip's sibling, the STM32F031K6U6, has the same die as the C6T6 but with a smaller package. This means that by using the smaller chip's GPIO count as a constraint, we have a binary-compatible drop in replacement part to help alleviate availability issues.
Although a separate EEPROM chip or a software-defined UUID could solve the same problem as having a factory-burned UUID, having it in the chip prevents UUID erasure upon reprogramming, and fewer parts in the BOM.
+11 -9
View File
@@ -7,20 +7,22 @@ peel-gear,,2,FDM,Download all 3D printed parts at the link at the top of the pag
peel-worm-gear,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,, peel-worm-gear,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
release-lever,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,, release-lever,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
spool-holder,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,, spool-holder,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
thimble,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
slot-bracket,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,, slot-bracket,,1,FDM,Download all 3D printed parts at the link at the top of the page.,,,
"PLA-filament ",https://90a1c75758623581b3f8-5c119c3de181c9857fcb2784776b17ef.ssl.cf2.rackcdn.com/611532_989269_03_front_zoom.jpg,1.2,FIL,https://www.microcenter.com/product/611532/inland-175mm-black-pla-3d-printer-filament-1kg-spool-(22-lbs),,,Units in kg. Print both nozzle-rack and 2x z-gantry in a black color. Print top-light-mount and bottom-light-mount in a white color. "PLA-filament ",https://90a1c75758623581b3f8-5c119c3de181c9857fcb2784776b17ef.ssl.cf2.rackcdn.com/611532_989269_03_front_zoom.jpg,1.2,FIL,https://www.microcenter.com/product/611532/inland-175mm-black-pla-3d-printer-filament-1kg-spool-(22-lbs),,,Units in kg. Print both nozzle-rack and 2x z-gantry in a black color. Print top-light-mount and bottom-light-mount in a white color.
M3-hex-nut,https://www.mcmaster.com/mvD/Contents/gfx/ImageCache/905/90592A085p1-b01-digitall@4x_636713274654410000.png?ver=ImageNotFound,8,FST,https://www.mcmaster.com/90592A085/,,,ISO4032 M3-hex-nut,https://www.mcmaster.com/mvD/Contents/gfx/ImageCache/905/90592A085p1-b01-digitall@4x_636713274654410000.png?ver=ImageNotFound,8,FST,https://www.mcmaster.com/90592A085/,,,ISO4032
M5-t-slot-nut,https://www.mcmaster.com/mvD/Contents/gfx/ImageCache/946/94645a102-@1x_637691238154449529.png?ver=ImageNotFound,1,FST,https://www.mcmaster.com/94645A102/,,, M5-t-slot-nut,https://www.mcmaster.com/mvD/Contents/gfx/ImageCache/946/94645a102-@1x_637691238154449529.png?ver=ImageNotFound,1,FST,https://www.mcmaster.com/94645A102/,,,
M3x12mm-flat-head,https://www.mcmaster.com/mvD/Contents/gfx/ImageCache/920/92095A181p1-b01-digitall@2x_636621119072096469.png,2,FST,https://www.mcmaster.com/92095A181/,,, M3x12mm-flat-head,https://www.mcmaster.com/mvD/Contents/gfx/ImageCache/920/92095A181p1-b01-digitall@2x_636621119072096469.png,2,FST,https://www.mcmaster.com/91294A132/,,,
M3x14mm-flat-head,https://www.mcmaster.com/mvD/Contents/gfx/ImageCache/920/92095A168p1-b01-digitall@2x_636621121852034289.png,2,FST,https://www.mcmaster.com/92095A168/,,, M3x14mm-flat-head,https://www.mcmaster.com/mvD/Contents/gfx/ImageCache/920/92095A168p1-b01-digitall@2x_636621121852034289.png,2,FST,https://www.mcmaster.com/91294A133/,,,
M3x15mm-flat-head,https://www.mcmaster.com/mvC/Contents/gfx/ImageCache/912/91292a115-@4x_637619456157301135.png,9,FST,https://www.mcmaster.com/91292A115,,, M3x15mm-flat-head,https://www.mcmaster.com/mvC/Contents/gfx/ImageCache/912/91292a115-@4x_637619456157301135.png,9,FST,https://www.mcmaster.com/92125A103/,,,
M5x10mm-socket-head,https://www.mcmaster.com/mvD/Contents/gfx/ImageCache/901/90128a234-@4x_637648793587366175.png,1,FST,https://www.mcmaster.com/90128A234/,,,ISO4762 M5x10mm-socket-head,https://www.mcmaster.com/mvD/Contents/gfx/ImageCache/901/90128a234-@4x_637648793587366175.png,1,FST,https://www.mcmaster.com/90128A234/,,,ISO4762
mobo,,1,PCA,,,,Click link above to download source mobo,,1,PCA,,,,"Click link above to download source. 1.6mm PCB, 2 layer, Black Soldermask, White Silkscreen, ENIG "
slot,,1,PCA,,,,Click link above to download source slot,,1,PCA,,,,"Click link above to download source. 1.6mm PCB, 2, layer, Black Soldermask, White Silkscreen, ENIG"
drive-wheel,,1,PCB,,,,Click link above to download source drive-wheel,,1,PCB,,,,"Click link above to download source. 1mm PCB, 2 layer, Any Color Soldermask, White Silkscreen, ENIG"
light-diffusion,,1,PCB,,,,Click link above to download source light-diffusion,,1,PCB,,,,"Click link above to download source. 0.6mm PCB, 2 layer, Matte Black Soldermask. Board has no silkscreen or copper. Only soldermask on the front and back."
photon-8mm-fid,,1,PCB,,,,Click link above to download source photon-8mm-fid,,1,PCB,,,,"Click link above to download source. 1mm PCB, 2 layer, Matte Black Soldermask, White Silkscreen, ENIG"
slot-harness,,1,CHA,,,,Click link above to download source slot-harness,,1,CHA,,,,Click link above to download source
spring,https://www.leespring.com/sites/default/files/inline-images/226%C3%97113_Compression_HomePage_2.jpg,1,MISC,https://www.leespring.com/compression-springs?search=LC026C06M,,,
n20-motor,https://www.makerfabs.com/image/cache/makerfabs/N20%20DC%20Gear%20Motor/N20%20DC%20Gear%20Motor_3-1000x750.jpg,4,MISC,https://www.servocity.com/110-rpm-micro-gear-motor/,,,1:210 gear ratio. n20-motor,https://www.makerfabs.com/image/cache/makerfabs/N20%20DC%20Gear%20Motor/N20%20DC%20Gear%20Motor_3-1000x750.jpg,4,MISC,https://www.servocity.com/110-rpm-micro-gear-motor/,,,1:210 gear ratio.
right-angle-n20,https://sharvielectronics.com/wp-content/uploads/2022/06/N20-3V-50-RPM-Micro-Metal-Gear-Motor-With-Encoder_-Sharvielectronics.jpg,2,MISC,https://www.aliexpress.com/w/wholesale-worm-n20-encoder.html?catId=0&initiative_id=SB_20230324123628&SearchText=worm+n20+encoder,,,14-tick per revolution encoder. 1:1030 gear ratio. right-angle-n20,https://sharvielectronics.com/wp-content/uploads/2022/06/N20-3V-50-RPM-Micro-Metal-Gear-Motor-With-Encoder_-Sharvielectronics.jpg,2,MISC,https://www.aliexpress.com/w/wholesale-worm-n20-encoder.html?catId=0&initiative_id=SB_20230324123628&SearchText=worm+n20+encoder,,,14-tick per revolution encoder. 1:1030 gear ratio gearbox.
shaft-collar,https://m.media-amazon.com/images/I/51dc5w8vG5L._AC_.jpg,2,MISC,https://www.amazon.com/gp/product/B01EA912P8/ref=ppx_yo_dt_b_asin_title_o09_s00?ie=UTF8,,, shaft-collar,https://m.media-amazon.com/images/I/51dc5w8vG5L._AC_.jpg,2,MISC,https://www.amazon.com/gp/product/B01EA912P8/ref=ppx_yo_dt_b_asin_title_o09_s00?ie=UTF8,,,
1 Part Name Image Quantity Part Type Source 1 Source 2 Optional Note
7 peel-worm-gear 1 FDM Download all 3D printed parts at the link at the top of the page.
8 release-lever 1 FDM Download all 3D printed parts at the link at the top of the page.
9 spool-holder 1 FDM Download all 3D printed parts at the link at the top of the page.
10 thimble 1 FDM Download all 3D printed parts at the link at the top of the page.
11 slot-bracket 1 FDM Download all 3D printed parts at the link at the top of the page.
12 PLA-filament https://90a1c75758623581b3f8-5c119c3de181c9857fcb2784776b17ef.ssl.cf2.rackcdn.com/611532_989269_03_front_zoom.jpg 1.2 FIL https://www.microcenter.com/product/611532/inland-175mm-black-pla-3d-printer-filament-1kg-spool-(22-lbs) Units in kg. Print both nozzle-rack and 2x z-gantry in a black color. Print top-light-mount and bottom-light-mount in a white color.
13 M3-hex-nut https://www.mcmaster.com/mvD/Contents/gfx/ImageCache/905/90592A085p1-b01-digitall@4x_636713274654410000.png?ver=ImageNotFound 8 FST https://www.mcmaster.com/90592A085/ ISO4032
14 M5-t-slot-nut https://www.mcmaster.com/mvD/Contents/gfx/ImageCache/946/94645a102-@1x_637691238154449529.png?ver=ImageNotFound 1 FST https://www.mcmaster.com/94645A102/
15 M3x12mm-flat-head https://www.mcmaster.com/mvD/Contents/gfx/ImageCache/920/92095A181p1-b01-digitall@2x_636621119072096469.png 2 FST https://www.mcmaster.com/92095A181/ https://www.mcmaster.com/91294A132/
16 M3x14mm-flat-head https://www.mcmaster.com/mvD/Contents/gfx/ImageCache/920/92095A168p1-b01-digitall@2x_636621121852034289.png 2 FST https://www.mcmaster.com/92095A168/ https://www.mcmaster.com/91294A133/
17 M3x15mm-flat-head https://www.mcmaster.com/mvC/Contents/gfx/ImageCache/912/91292a115-@4x_637619456157301135.png 9 FST https://www.mcmaster.com/91292A115 https://www.mcmaster.com/92125A103/
18 M5x10mm-socket-head https://www.mcmaster.com/mvD/Contents/gfx/ImageCache/901/90128a234-@4x_637648793587366175.png 1 FST https://www.mcmaster.com/90128A234/ ISO4762
19 mobo 1 PCA Click link above to download source Click link above to download source. 1.6mm PCB, 2 layer, Black Soldermask, White Silkscreen, ENIG
20 slot 1 PCA Click link above to download source Click link above to download source. 1.6mm PCB, 2, layer, Black Soldermask, White Silkscreen, ENIG
21 drive-wheel 1 PCB Click link above to download source Click link above to download source. 1mm PCB, 2 layer, Any Color Soldermask, White Silkscreen, ENIG
22 light-diffusion 1 PCB Click link above to download source Click link above to download source. 0.6mm PCB, 2 layer, Matte Black Soldermask. Board has no silkscreen or copper. Only soldermask on the front and back.
23 photon-8mm-fid 1 PCB Click link above to download source Click link above to download source. 1mm PCB, 2 layer, Matte Black Soldermask, White Silkscreen, ENIG
24 slot-harness 1 CHA Click link above to download source
25 spring https://www.leespring.com/sites/default/files/inline-images/226%C3%97113_Compression_HomePage_2.jpg 1 MISC https://www.leespring.com/compression-springs?search=LC026C06M
26 n20-motor https://www.makerfabs.com/image/cache/makerfabs/N20%20DC%20Gear%20Motor/N20%20DC%20Gear%20Motor_3-1000x750.jpg 4 MISC https://www.servocity.com/110-rpm-micro-gear-motor/ 1:210 gear ratio.
27 right-angle-n20 https://sharvielectronics.com/wp-content/uploads/2022/06/N20-3V-50-RPM-Micro-Metal-Gear-Motor-With-Encoder_-Sharvielectronics.jpg 2 MISC https://www.aliexpress.com/w/wholesale-worm-n20-encoder.html?catId=0&initiative_id=SB_20230324123628&SearchText=worm+n20+encoder 14-tick per revolution encoder. 1:1030 gear ratio. 14-tick per revolution encoder. 1:1030 gear ratio gearbox.
28 shaft-collar https://m.media-amazon.com/images/I/51dc5w8vG5L._AC_.jpg 2 MISC https://www.amazon.com/gp/product/B01EA912P8/ref=ppx_yo_dt_b_asin_title_o09_s00?ie=UTF8
+509 -42
View File
@@ -1,65 +1,532 @@
(kicad_symbol_lib (version 20211014) (generator kicad_symbol_editor) (kicad_symbol_lib
(symbol "DS28E05" (in_bom yes) (on_board yes) (version 20231120)
(property "Reference" "U" (id 0) (at -6.35 3.81 0) (generator "kicad_symbol_editor")
(effects (font (size 1.27 1.27))) (generator_version "8.0")
(symbol "1TS003B-1400-3500A-CT"
(exclude_from_sim no)
(in_bom yes)
(on_board yes)
(property "Reference" "U"
(at 0 6.35 0)
(effects
(font
(size 1.27 1.27)
) )
(property "Value" "DS28E05" (id 1) (at 0 -1.27 0)
(effects (font (size 1.27 1.27)))
) )
(property "Footprint" "" (id 2) (at 0 0 0)
(effects (font (size 1.27 1.27)) hide)
) )
(property "Datasheet" "" (id 3) (at 0 0 0) (property "Value" ""
(effects (font (size 1.27 1.27)) hide) (at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Footprint" ""
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Datasheet" ""
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Description" ""
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(symbol "1TS003B-1400-3500A-CT_0_1"
(rectangle
(start -5.08 3.81)
(end 5.08 -1.27)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
(rectangle
(start -2.54 5.08)
(end 2.54 3.81)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
)
(symbol "1TS003B-1400-3500A-CT_1_1"
(pin passive line
(at -3.81 -3.81 90)
(length 2.54)
(name "1"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "1"
(effects
(font
(size 1.27 1.27)
)
)
)
)
(pin passive line
(at 3.81 -3.81 90)
(length 2.54)
(name "2"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "2"
(effects
(font
(size 1.27 1.27)
)
)
)
)
(pin passive line
(at 7.62 2.54 180)
(length 2.54)
(name "SHIELD"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "3"
(effects
(font
(size 1.27 1.27)
)
)
)
)
)
)
(symbol "DS28E05"
(exclude_from_sim no)
(in_bom yes)
(on_board yes)
(property "Reference" "U"
(at -6.35 3.81 0)
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Value" "DS28E05"
(at 0 -1.27 0)
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Footprint" ""
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Datasheet" ""
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Description" ""
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
) )
(symbol "DS28E05_0_1" (symbol "DS28E05_0_1"
(rectangle (start -7.62 5.08) (end 7.62 -5.08) (rectangle
(stroke (width 0) (type default) (color 0 0 0 0)) (start -7.62 5.08)
(fill (type none)) (end 7.62 -5.08)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
) )
) )
(symbol "DS28E05_1_1" (symbol "DS28E05_1_1"
(pin passive line (at -6.35 -7.62 90) (length 2.54) (pin passive line
(name "IO" (effects (font (size 1.27 1.27)))) (at -6.35 -7.62 90)
(number "1" (effects (font (size 1.27 1.27)))) (length 2.54)
) (name "IO"
(pin passive line (at 6.35 -7.62 90) (length 2.54) (effects
(name "NC" (effects (font (size 1.27 1.27)))) (font
(number "2" (effects (font (size 1.27 1.27)))) (size 1.27 1.27)
)
(pin passive line (at 0 7.62 270) (length 2.54)
(name "GND" (effects (font (size 1.27 1.27))))
(number "3" (effects (font (size 1.27 1.27))))
) )
) )
) )
(symbol "DS28E07" (in_bom yes) (on_board yes) (number "1"
(property "Reference" "U" (id 0) (at 0 -3.81 0) (effects
(effects (font (size 1.27 1.27))) (font
(size 1.27 1.27)
) )
(property "Value" "DS28E07" (id 1) (at 0 -1.27 0)
(effects (font (size 1.27 1.27)))
) )
(property "Footprint" "" (id 2) (at -3.81 0 0)
(effects (font (size 1.27 1.27)) hide)
) )
(property "Datasheet" "" (id 3) (at -3.81 0 0) )
(effects (font (size 1.27 1.27)) hide) (pin passive line
(at 6.35 -7.62 90)
(length 2.54)
(name "NC"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "2"
(effects
(font
(size 1.27 1.27)
)
)
)
)
(pin passive line
(at 0 7.62 270)
(length 2.54)
(name "GND"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "3"
(effects
(font
(size 1.27 1.27)
)
)
)
)
)
)
(symbol "DS28E07"
(exclude_from_sim no)
(in_bom yes)
(on_board yes)
(property "Reference" "U"
(at 0 -3.81 0)
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Value" "DS28E07"
(at 0 -1.27 0)
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Footprint" ""
(at -3.81 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Datasheet" ""
(at -3.81 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Description" ""
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
) )
(symbol "DS28E07_0_1" (symbol "DS28E07_0_1"
(rectangle (start -6.35 5.08) (end 6.35 0) (rectangle
(stroke (width 0) (type default) (color 0 0 0 0)) (start -6.35 5.08)
(fill (type none)) (end 6.35 0)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
) )
) )
(symbol "DS28E07_1_1" (symbol "DS28E07_1_1"
(pin unspecified line (at -8.89 2.54 0) (length 2.54) (pin unspecified line
(name "GND" (effects (font (size 1.27 1.27)))) (at -8.89 2.54 0)
(number "1" (effects (font (size 1.27 1.27)))) (length 2.54)
(name "GND"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "1"
(effects
(font
(size 1.27 1.27)
)
)
)
)
(pin unspecified line
(at 8.89 2.54 180)
(length 2.54)
(name "IO"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "2"
(effects
(font
(size 1.27 1.27)
)
)
)
)
)
)
(symbol "MHS110FRGBCT"
(exclude_from_sim no)
(in_bom yes)
(on_board yes)
(property "Reference" "U"
(at 0 7.62 0)
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Value" ""
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Footprint" ""
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Datasheet" ""
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(property "Description" ""
(at 0 0 0)
(effects
(font
(size 1.27 1.27)
)
(hide yes)
)
)
(symbol "MHS110FRGBCT_0_1"
(polyline
(pts
(xy 7.62 3.81) (xy -7.62 3.81)
)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
(polyline
(pts
(xy 10.16 0) (xy -10.16 0)
)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
(polyline
(pts
(xy -7.62 3.81) (xy -10.16 3.81) (xy -10.16 0)
)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
(polyline
(pts
(xy 10.16 0) (xy 10.16 3.81) (xy 7.62 3.81)
)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
(arc
(start 7.62 3.81)
(mid 0 10.6615)
(end -7.62 3.81)
(stroke
(width 0)
(type default)
)
(fill
(type none)
)
)
)
(symbol "MHS110FRGBCT_1_1"
(pin passive line
(at 7.62 -2.54 90)
(length 2.54)
(name "VCC"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "1"
(effects
(font
(size 1.27 1.27)
)
)
)
)
(pin passive line
(at 2.54 -2.54 90)
(length 2.54)
(name "B"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "2"
(effects
(font
(size 1.27 1.27)
)
)
)
)
(pin passive line
(at -2.54 -2.54 90)
(length 2.54)
(name "G"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "3"
(effects
(font
(size 1.27 1.27)
)
)
)
)
(pin passive line
(at -7.62 -2.54 90)
(length 2.54)
(name "R"
(effects
(font
(size 1.27 1.27)
)
)
)
(number "4"
(effects
(font
(size 1.27 1.27)
)
)
) )
(pin unspecified line (at 8.89 2.54 180) (length 2.54)
(name "IO" (effects (font (size 1.27 1.27))))
(number "2" (effects (font (size 1.27 1.27))))
) )
) )
) )
@@ -1,26 +1,140 @@
(footprint "1TS003B-1400-3500A-CT" (version 20221018) (generator pcbnew) (footprint "1TS003B-1400-3500A-CT"
(version 20240108)
(generator "pcbnew")
(generator_version "8.0")
(layer "F.Cu") (layer "F.Cu")
(property "Reference" "REF**"
(at 0 5.2 0)
(unlocked yes)
(layer "F.SilkS")
(uuid "3e0b373c-bb25-432b-805f-ddc9885664ff")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Value" "1TS003B-1400-3500A-CT"
(at 0 1 0)
(unlocked yes)
(layer "F.Fab")
(uuid "c6048279-edb3-4a27-af90-5062f9caabc5")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Footprint" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "74cd110c-aede-4bea-bb51-654dcc244c2c")
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Datasheet" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "76193102-7dbb-4ed1-a52b-1d0aa703434d")
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Description" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "fde32abf-c153-4d2e-960a-5b2d4558913f")
(effects
(font
(size 1.27 1.27)
)
)
)
(attr smd) (attr smd)
(fp_text reference "REF**" (at 0 5.2 unlocked) (layer "F.SilkS") (fp_rect
(effects (font (size 1 1) (thickness 0.15))) (start -0.9 -1.2)
(tstamp 3e0b373c-bb25-432b-805f-ddc9885664ff) (end 0.9 -2.3)
(stroke
(width 0.12)
(type solid)
) )
(fp_text value "1TS003B-1400-3500A-CT" (at 0 1 unlocked) (layer "F.Fab") (fill none)
(effects (font (size 1 1) (thickness 0.15))) (layer "F.SilkS")
(tstamp c6048279-edb3-4a27-af90-5062f9caabc5) (uuid "39e826fb-d1e2-4e8c-9b30-76d0dd52edfe")
) )
(fp_text user "${REFERENCE}" (at 0 2.5 unlocked) (layer "F.Fab") (fp_circle
(effects (font (size 1 1) (thickness 0.15))) (center -0.85 0)
(tstamp 52dcad74-89f3-4525-879e-dc27e73d7aa6) (end -0.5 0)
(stroke
(width 0.12)
(type solid)
)
(fill none)
(layer "Edge.Cuts")
(uuid "c4155011-1907-40ed-8647-8c2e03340629")
)
(fp_circle
(center 0.85 0)
(end 1.2 0)
(stroke
(width 0.12)
(type solid)
)
(fill none)
(layer "Edge.Cuts")
(uuid "69c9038b-b535-4e81-b64e-81de50565e94")
)
(fp_text user "${REFERENCE}"
(at 0 2.5 0)
(unlocked yes)
(layer "F.Fab")
(uuid "52dcad74-89f3-4525-879e-dc27e73d7aa6")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(pad "1" smd roundrect
(at -1.7 1.4 180)
(size 1.15 1)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.125)
(uuid "aee1c113-38db-4c3e-8163-7136c5806d06")
)
(pad "2" smd roundrect
(at 1.7 1.4 180)
(size 1.05 1)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.125)
(uuid "bf9c7c99-d592-4099-af77-44f4e9dc7236")
)
(pad "3" smd roundrect
(at -2.4 -0.6)
(size 1.2 1.3)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.125)
(uuid "3c2e41a2-69c3-4b0f-8f8c-821502fd04a9")
)
(pad "3" smd roundrect
(at 2.4 -0.6)
(size 1.2 1.3)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.125)
(uuid "b3cfcc4e-b509-402b-9352-32ba1b98e98c")
) )
(fp_rect (start -0.9 -1.2) (end 0.9 -2.3)
(stroke (width 0.12) (type solid)) (fill none) (layer "F.SilkS") (tstamp 39e826fb-d1e2-4e8c-9b30-76d0dd52edfe))
(fp_circle (center -0.85 0) (end -0.5 0)
(stroke (width 0.12) (type solid)) (fill none) (layer "Edge.Cuts") (tstamp c4155011-1907-40ed-8647-8c2e03340629))
(fp_circle (center 0.85 0) (end 1.2 0)
(stroke (width 0.12) (type solid)) (fill none) (layer "Edge.Cuts") (tstamp 69c9038b-b535-4e81-b64e-81de50565e94))
(pad "1" smd roundrect (at -1.7 1.4 180) (size 1.15 1) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.125) (tstamp aee1c113-38db-4c3e-8163-7136c5806d06))
(pad "2" smd roundrect (at 1.7 1.4 180) (size 1.05 1) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.125) (tstamp bf9c7c99-d592-4099-af77-44f4e9dc7236))
(pad "3" smd roundrect (at 2.4 -0.6) (size 1.2 1.3) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.125) (tstamp b3cfcc4e-b509-402b-9352-32ba1b98e98c))
(pad "4" smd roundrect (at -2.4 -0.6) (size 1.2 1.3) (layers "F.Cu" "F.Paste" "F.Mask") (roundrect_rratio 0.125) (tstamp 3c2e41a2-69c3-4b0f-8f8c-821502fd04a9))
) )
@@ -0,0 +1,118 @@
(footprint "MHS110FRGBCT"
(version 20240108)
(generator "pcbnew")
(generator_version "8.0")
(layer "F.Cu")
(property "Reference" "REF**"
(at 0 -1.8 0)
(unlocked yes)
(layer "F.SilkS")
(uuid "d77a92d2-18a2-458c-9215-845c12953861")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Value" "MHS110FRGBCT"
(at 0 1 0)
(unlocked yes)
(layer "F.Fab")
(uuid "614a076b-d691-4333-80cf-0f04e2d4628a")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(property "Footprint" "MHS110FRGBCT"
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "7636f4b9-9ba1-494f-978b-5b0bb7be89e6")
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Datasheet" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "4150b0dd-9c9e-43ef-8caa-da1978e0f671")
(effects
(font
(size 1.27 1.27)
)
)
)
(property "Description" ""
(at 0 0 0)
(unlocked yes)
(layer "F.Fab")
(hide yes)
(uuid "af282e0a-7478-444f-a5c9-d6f7b43b221b")
(effects
(font
(size 1.27 1.27)
)
)
)
(attr smd)
(fp_arc
(start 1 -0.1)
(mid 0 0.9)
(end -1 -0.1)
(stroke
(width 0.1)
(type solid)
)
(layer "F.SilkS")
(uuid "2a61bdb8-9888-41e4-84e2-758585afc3aa")
)
(fp_text user "${REFERENCE}"
(at 0 2.5 0)
(unlocked yes)
(layer "F.Fab")
(uuid "e668a54c-404e-4d91-abfc-c81b8caef069")
(effects
(font
(size 1 1)
(thickness 0.15)
)
)
)
(pad "1" smd roundrect
(at -1.4 -0.4)
(size 0.7 1.2)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.1428571429)
(uuid "7f1fd432-b7a1-425c-b83b-08b6c11c3b98")
)
(pad "2" smd roundrect
(at -0.4 -0.675)
(size 0.5 0.8)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.2)
(uuid "e1a4c2f4-c8bb-457b-8c8d-ca7c86825cb6")
)
(pad "3" smd roundrect
(at 0.4 -0.675)
(size 0.5 0.8)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.2)
(uuid "43d1b323-7ec0-41e5-a084-4634d18797e6")
)
(pad "4" smd roundrect
(at 1.4 -0.4)
(size 0.7 1.2)
(layers "F.Cu" "F.Paste" "F.Mask")
(roundrect_rratio 0.1428571429)
(uuid "dbae0363-3998-4c5e-af04-028f57260c87")
)
)
@@ -1,93 +0,0 @@
(footprint "QFN-32-No-Paste" (version 20221018) (generator pcbnew)
(layer "F.Cu")
(descr "QFN, 32 Pin (http://www.analog.com/media/en/package-pcb-resources/package/pkg_pdf/ltc-legacy-qfn/QFN_32_05-08-1693.pdf), generated with kicad-footprint-generator ipc_noLead_generator.py")
(tags "QFN NoLead")
(property "Sheetfile" "mobo.kicad_sch")
(property "Sheetname" "")
(property "dnp" "")
(property "ki_description" "ARM Cortex-M0 MCU, 32KB flash, 4KB RAM, 48MHz, 2-3.6V, 27 GPIO, UFQFPN-32")
(property "ki_keywords" "ARM Cortex-M0 STM32F0 STM32F0x1")
(attr smd exclude_from_bom allow_missing_courtyard)
(fp_text reference "U2" (at 1.425 -1.1825 -90) (layer "F.SilkS") hide
(effects (font (size 0.6 0.6) (thickness 0.1)))
(tstamp 18694c76-d64c-4d02-9aa3-83bf45ce075b)
)
(fp_text value "STM32F031K6Ux" (at -0.13 7.155 -90) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 8a98512d-45b9-4f11-a10a-e7faec2c4163)
)
(fp_text user "${REFERENCE}" (at 0 0) (layer "F.Fab")
(effects (font (size 1 1) (thickness 0.15)))
(tstamp 91f4093a-797d-4d74-895a-46337b77e52d)
)
(fp_line (start -2.61 2.61) (end -2.61 2.135)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 04d06e39-cb18-47ee-8ebe-4bec882a3935))
(fp_line (start -2.135 -2.61) (end -2.61 -2.61)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp b9ba437e-c2ce-4c78-9ba2-022fa38b4242))
(fp_line (start -2.135 2.61) (end -2.61 2.61)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp fcbd222e-8a80-464f-946c-145dcc035195))
(fp_line (start 2.135 -2.61) (end 2.61 -2.61)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp b6110caf-7fa8-4a83-bfe3-f25d8c90b6c9))
(fp_line (start 2.135 2.61) (end 2.61 2.61)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 62444ec9-43e0-4a4f-8b50-f8a290f03fff))
(fp_line (start 2.61 -2.61) (end 2.61 -2.135)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 33230fe0-4d17-4600-aed1-be011d6e79cf))
(fp_line (start 2.61 2.61) (end 2.61 2.135)
(stroke (width 0.12) (type solid)) (layer "F.SilkS") (tstamp 34089325-a847-467f-90ad-e0b8574a0792))
(fp_line (start -3.12 -3.12) (end -3.12 3.12)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp 6c042d57-c853-4e47-b717-13faa14ccd38))
(fp_line (start -3.12 3.12) (end 3.12 3.12)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp c3b244bf-dab9-43a5-87cd-3a225fc55913))
(fp_line (start 3.12 -3.12) (end -3.12 -3.12)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp c46262c6-5ac3-4dcb-9eb8-4654668a695b))
(fp_line (start 3.12 3.12) (end 3.12 -3.12)
(stroke (width 0.05) (type solid)) (layer "F.CrtYd") (tstamp e789813c-e170-4c8f-9df1-1470c1dade5b))
(fp_line (start -2.5 -1.5) (end -1.5 -2.5)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 943c5278-5067-458e-9537-bcce29c44a72))
(fp_line (start -2.5 2.5) (end -2.5 -1.5)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 7fede704-8300-4dbe-8299-af5d3cd85e66))
(fp_line (start -1.5 -2.5) (end 2.5 -2.5)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 9461507b-57a2-4744-8aea-0595acbd709d))
(fp_line (start 2.5 -2.5) (end 2.5 2.5)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp 0f7961e6-92a5-4abf-9435-0a760ce816e5))
(fp_line (start 2.5 2.5) (end -2.5 2.5)
(stroke (width 0.1) (type solid)) (layer "F.Fab") (tstamp d4637756-ab90-4989-bdd0-fa4e0f09b1ad))
(pad "1" smd roundrect (at -2.4375 -1.75) (size 0.875 0.25) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp 2a9a23d3-6d1e-46c1-bb5d-ecb21ba3d4ab))
(pad "2" smd roundrect (at -2.4375 -1.25) (size 0.875 0.25) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp 41436027-350a-4731-9881-f1e981543636))
(pad "3" smd roundrect (at -2.4375 -0.75) (size 0.875 0.25) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp 6efb5a12-3ade-4d1f-9ec6-0b64f4eaa46c))
(pad "4" smd roundrect (at -2.4375 -0.25) (size 0.875 0.25) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp 580ebf8d-52e3-4c9a-b2bc-06525312d2d9))
(pad "5" smd roundrect (at -2.4375 0.25) (size 0.875 0.25) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp 8da1809f-0541-4b68-82a5-9251d98879aa))
(pad "6" smd roundrect (at -2.4375 0.75) (size 0.875 0.25) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp 40fb7cf9-d1cf-4c10-b987-325f38200547))
(pad "7" smd roundrect (at -2.4375 1.25) (size 0.875 0.25) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp 237372ba-1350-492a-bb05-f4cb8f7985d7))
(pad "8" smd roundrect (at -2.4375 1.75) (size 0.875 0.25) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp 14fa0c0f-790e-46db-95e4-8ebade6c925a))
(pad "9" smd roundrect (at -1.75 2.4375) (size 0.25 0.875) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp ce194e9f-c992-4f3e-8c12-b6670bf91d83))
(pad "10" smd roundrect (at -1.25 2.4375) (size 0.25 0.875) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp b102d8bf-cd13-4702-840f-5ea3c101610f))
(pad "11" smd roundrect (at -0.75 2.4375) (size 0.25 0.875) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp ad6c7568-046a-4b0f-a95a-ccf440760ba5))
(pad "12" smd roundrect (at -0.25 2.4375) (size 0.25 0.875) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp 934324d2-8c66-48e0-a755-21f0cf106187))
(pad "13" smd roundrect (at 0.25 2.4375) (size 0.25 0.875) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp ac4474ec-0256-4a4e-9053-747edeec41f7))
(pad "14" smd roundrect (at 0.75 2.4375) (size 0.25 0.875) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp 72ff29fe-aa27-422c-9bdb-08c2cd8d70ac))
(pad "15" smd roundrect (at 1.25 2.4375) (size 0.25 0.875) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp 94277a61-9de0-42f9-abf3-891de9c862c6))
(pad "16" smd roundrect (at 1.75 2.4375) (size 0.25 0.875) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp 21ddc2cd-05cc-4661-81cd-c796215e4f8a))
(pad "17" smd roundrect (at 2.4375 1.75) (size 0.875 0.25) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp 4998b3dd-a5eb-4c96-aa9e-a89dcd5c886c))
(pad "18" smd roundrect (at 2.4375 1.25) (size 0.875 0.25) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp b6a2ef89-8b36-4858-be77-f00380139601))
(pad "19" smd roundrect (at 2.4375 0.75) (size 0.875 0.25) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp 6a17026f-aebc-4a5f-8551-565babed0732))
(pad "20" smd roundrect (at 2.4375 0.25) (size 0.875 0.25) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp 740b38c4-6ff5-4ab5-a9f3-2b8ea3af0960))
(pad "21" smd roundrect (at 2.4375 -0.25) (size 0.875 0.25) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp 30db5446-1936-4fa5-8dd4-db4aedc2ffc0))
(pad "22" smd roundrect (at 2.4375 -0.75) (size 0.875 0.25) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp 402dd111-7647-4bd5-91bc-a70471d4a539))
(pad "23" smd roundrect (at 2.4375 -1.25) (size 0.875 0.25) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp eacd3fd0-021b-4b1b-a582-b45ae6e582f0))
(pad "24" smd roundrect (at 2.4375 -1.75) (size 0.875 0.25) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp 37d25b5f-9100-4c26-a627-e7716b92dece))
(pad "25" smd roundrect (at 1.75 -2.4375) (size 0.25 0.875) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp 6106bf97-4613-45ab-9dcf-444e185fc2b8))
(pad "26" smd roundrect (at 1.25 -2.4375) (size 0.25 0.875) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp 1694632e-dc8e-4672-b57a-464f94bda977))
(pad "27" smd roundrect (at 0.75 -2.4375) (size 0.25 0.875) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp 1ac5d97d-11cf-40a8-b1f2-f8325386bd8c))
(pad "28" smd roundrect (at 0.25 -2.4375) (size 0.25 0.875) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp 198aa063-5e93-4c53-ab53-5a0473f7b431))
(pad "29" smd roundrect (at -0.25 -2.4375) (size 0.25 0.875) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp c579012c-d088-47a9-8ae4-6faad4f2e8ba))
(pad "30" smd roundrect (at -0.75 -2.4375) (size 0.25 0.875) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp d18ea9d1-2214-464c-a650-fc66fe6cc17b))
(pad "31" smd roundrect (at -1.25 -2.4375) (size 0.25 0.875) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp b05afd13-d5d9-42a6-8921-02ed885ebb1b))
(pad "32" smd roundrect (at -1.75 -2.4375) (size 0.25 0.875) (layers "F.Cu" "F.Mask") (roundrect_rratio 0.25) (tstamp de014a73-95ca-4d44-b27f-0d82ab24ab22))
(pad "33" smd rect (at 0 0) (size 2 2) (layers "F.Cu" "F.Mask") (tstamp 5df43653-b672-4098-8d33-dd6ed7e27647))
(model "${KICAD6_3DMODEL_DIR}/Package_DFN_QFN.3dshapes/QFN-32-1EP_5x5mm_P0.5mm_EP3.45x3.45mm.wrl"
(offset (xyz 0 0 0))
(scale (xyz 1 1 1))
(rotate (xyz 0 0 0))
)
)
File diff suppressed because it is too large Load Diff
+198 -18
View File
@@ -1,15 +1,19 @@
{ {
"board": { "board": {
"3dviewports": [],
"design_settings": { "design_settings": {
"defaults": { "defaults": {
"board_outline_line_width": 0.049999999999999996, "apply_defaults_to_fp_fields": false,
"copper_line_width": 0.19999999999999998, "apply_defaults_to_fp_shapes": false,
"apply_defaults_to_fp_text": false,
"board_outline_line_width": 0.05,
"copper_line_width": 0.2,
"copper_text_italic": false, "copper_text_italic": false,
"copper_text_size_h": 1.5, "copper_text_size_h": 1.5,
"copper_text_size_v": 1.5, "copper_text_size_v": 1.5,
"copper_text_thickness": 0.3, "copper_text_thickness": 0.3,
"copper_text_upright": false, "copper_text_upright": false,
"courtyard_line_width": 0.049999999999999996, "courtyard_line_width": 0.05,
"dimension_precision": 4, "dimension_precision": 4,
"dimension_units": 3, "dimension_units": 3,
"dimensions": { "dimensions": {
@@ -20,13 +24,13 @@
"text_position": 0, "text_position": 0,
"units_format": 1 "units_format": 1
}, },
"fab_line_width": 0.09999999999999999, "fab_line_width": 0.1,
"fab_text_italic": false, "fab_text_italic": false,
"fab_text_size_h": 1.0, "fab_text_size_h": 1.0,
"fab_text_size_v": 1.0, "fab_text_size_v": 1.0,
"fab_text_thickness": 0.15, "fab_text_thickness": 0.15,
"fab_text_upright": false, "fab_text_upright": false,
"other_line_width": 0.09999999999999999, "other_line_width": 0.1,
"other_text_italic": false, "other_text_italic": false,
"other_text_size_h": 1.0, "other_text_size_h": 1.0,
"other_text_size_v": 1.0, "other_text_size_v": 1.0,
@@ -45,7 +49,7 @@
"silk_text_upright": false, "silk_text_upright": false,
"zones": { "zones": {
"45_degree_only": false, "45_degree_only": false,
"min_clearance": 0.19999999999999998 "min_clearance": 0.2
} }
}, },
"diff_pair_dimensions": [ "diff_pair_dimensions": [
@@ -63,20 +67,27 @@
"rule_severities": { "rule_severities": {
"annular_width": "error", "annular_width": "error",
"clearance": "error", "clearance": "error",
"connection_width": "warning",
"copper_edge_clearance": "error", "copper_edge_clearance": "error",
"copper_sliver": "warning",
"courtyards_overlap": "error", "courtyards_overlap": "error",
"diff_pair_gap_out_of_range": "error", "diff_pair_gap_out_of_range": "error",
"diff_pair_uncoupled_length_too_long": "error", "diff_pair_uncoupled_length_too_long": "error",
"drill_out_of_range": "error", "drill_out_of_range": "error",
"duplicate_footprints": "warning", "duplicate_footprints": "warning",
"extra_footprint": "warning", "extra_footprint": "warning",
"footprint": "error",
"footprint_symbol_mismatch": "warning",
"footprint_type_mismatch": "error", "footprint_type_mismatch": "error",
"hole_clearance": "error", "hole_clearance": "error",
"hole_near_hole": "error", "hole_near_hole": "error",
"invalid_outline": "error", "invalid_outline": "error",
"isolated_copper": "warning",
"item_on_disabled_layer": "error", "item_on_disabled_layer": "error",
"items_not_allowed": "error", "items_not_allowed": "error",
"length_out_of_range": "error", "length_out_of_range": "error",
"lib_footprint_issues": "warning",
"lib_footprint_mismatch": "warning",
"malformed_courtyard": "error", "malformed_courtyard": "error",
"microvia_drill_out_of_range": "error", "microvia_drill_out_of_range": "error",
"missing_courtyard": "ignore", "missing_courtyard": "ignore",
@@ -86,9 +97,14 @@
"padstack": "error", "padstack": "error",
"pth_inside_courtyard": "ignore", "pth_inside_courtyard": "ignore",
"shorting_items": "error", "shorting_items": "error",
"silk_edge_clearance": "warning",
"silk_over_copper": "warning", "silk_over_copper": "warning",
"silk_overlap": "warning", "silk_overlap": "warning",
"skew_out_of_range": "error", "skew_out_of_range": "error",
"solder_mask_bridge": "error",
"starved_thermal": "error",
"text_height": "warning",
"text_thickness": "warning",
"through_hole_pad_without_hole": "error", "through_hole_pad_without_hole": "error",
"too_many_vias": "error", "too_many_vias": "error",
"track_dangling": "warning", "track_dangling": "warning",
@@ -107,18 +123,66 @@
"allow_microvias": false, "allow_microvias": false,
"max_error": 0.005, "max_error": 0.005,
"min_clearance": 0.0, "min_clearance": 0.0,
"min_copper_edge_clearance": 0.024999999999999998, "min_connection": 0.0,
"min_copper_edge_clearance": 0.025,
"min_hole_clearance": 0.25, "min_hole_clearance": 0.25,
"min_hole_to_hole": 0.25, "min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.19999999999999998, "min_microvia_diameter": 0.2,
"min_microvia_drill": 0.09999999999999999, "min_microvia_drill": 0.1,
"min_resolved_spokes": 2,
"min_silk_clearance": 0.0, "min_silk_clearance": 0.0,
"min_text_height": 0.8,
"min_text_thickness": 0.08,
"min_through_hole_diameter": 0.3, "min_through_hole_diameter": 0.3,
"min_track_width": 0.19999999999999998, "min_track_width": 0.2,
"min_via_annular_width": 0.049999999999999996, "min_via_annular_width": 0.05,
"min_via_diameter": 0.39999999999999997, "min_via_diameter": 0.4,
"solder_mask_to_copper_clearance": 0.0,
"use_height_for_length_calcs": true "use_height_for_length_calcs": true
}, },
"teardrop_options": [
{
"td_onpadsmd": true,
"td_onroundshapesonly": false,
"td_ontrackend": false,
"td_onviapad": true
}
],
"teardrop_parameters": [
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_round_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_rect_shape",
"td_width_to_size_filter_ratio": 0.9
},
{
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0,
"td_height_ratio": 1.0,
"td_length_ratio": 0.5,
"td_maxheight": 2.0,
"td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_track_end",
"td_width_to_size_filter_ratio": 0.9
}
],
"track_widths": [ "track_widths": [
0.0, 0.0,
0.25, 0.25,
@@ -126,6 +190,32 @@
0.7, 0.7,
1.0 1.0
], ],
"tuning_pattern_settings": {
"diff_pair_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 1.0
},
"diff_pair_skew_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
},
"single_track_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
}
},
"via_dimensions": [ "via_dimensions": [
{ {
"diameter": 0.0, "diameter": 0.0,
@@ -135,7 +225,15 @@
"zones_allow_external_fillets": false, "zones_allow_external_fillets": false,
"zones_use_no_outline": true "zones_use_no_outline": true
}, },
"layer_presets": [] "ipc2581": {
"dist": "",
"distpn": "",
"internal_id": "",
"mfg": "",
"mpn": ""
},
"layer_presets": [],
"viewports": []
}, },
"boards": [], "boards": [],
"cvpcb": { "cvpcb": {
@@ -322,15 +420,21 @@
"bus_label_syntax": "error", "bus_label_syntax": "error",
"bus_to_bus_conflict": "error", "bus_to_bus_conflict": "error",
"bus_to_net_conflict": "error", "bus_to_net_conflict": "error",
"conflicting_netclasses": "error",
"different_unit_footprint": "error", "different_unit_footprint": "error",
"different_unit_net": "error", "different_unit_net": "error",
"duplicate_reference": "error", "duplicate_reference": "error",
"duplicate_sheet_names": "error", "duplicate_sheet_names": "error",
"endpoint_off_grid": "warning",
"extra_units": "error", "extra_units": "error",
"global_label_dangling": "warning", "global_label_dangling": "warning",
"hier_label_mismatch": "error", "hier_label_mismatch": "error",
"label_dangling": "error", "label_dangling": "error",
"lib_symbol_issues": "warning", "lib_symbol_issues": "warning",
"missing_bidi_pin": "warning",
"missing_input_pin": "warning",
"missing_power_pin": "error",
"missing_unit": "warning",
"multiple_net_names": "warning", "multiple_net_names": "warning",
"net_not_bus_member": "warning", "net_not_bus_member": "warning",
"no_connect_connected": "warning", "no_connect_connected": "warning",
@@ -340,6 +444,7 @@
"pin_to_pin": "warning", "pin_to_pin": "warning",
"power_pin_not_driven": "error", "power_pin_not_driven": "error",
"similar_labels": "warning", "similar_labels": "warning",
"simulation_model_issue": "ignore",
"unannotated": "error", "unannotated": "error",
"unit_value_mismatch": "error", "unit_value_mismatch": "error",
"unresolved_variable": "error", "unresolved_variable": "error",
@@ -357,7 +462,7 @@
"net_settings": { "net_settings": {
"classes": [ "classes": [
{ {
"bus_width": 12.0, "bus_width": 12,
"clearance": 0.2, "clearance": 0.2,
"diff_pair_gap": 0.25, "diff_pair_gap": 0.25,
"diff_pair_via_gap": 0.25, "diff_pair_via_gap": 0.25,
@@ -371,28 +476,93 @@
"track_width": 0.25, "track_width": 0.25,
"via_diameter": 0.8, "via_diameter": 0.8,
"via_drill": 0.4, "via_drill": 0.4,
"wire_width": 6.0 "wire_width": 6
} }
], ],
"meta": { "meta": {
"version": 2 "version": 3
}, },
"net_colors": null "net_colors": null,
"netclass_assignments": null,
"netclass_patterns": []
}, },
"pcbnew": { "pcbnew": {
"last_paths": { "last_paths": {
"gencad": "", "gencad": "",
"idf": "", "idf": "",
"netlist": "feederFloor.net", "netlist": "feederFloor.net",
"plot": "",
"pos_files": "",
"specctra_dsn": "", "specctra_dsn": "",
"step": "feederFloor.step", "step": "feederFloor.step",
"svg": "",
"vrml": "" "vrml": ""
}, },
"page_layout_descr_file": "" "page_layout_descr_file": ""
}, },
"schematic": { "schematic": {
"annotate_start_num": 0, "annotate_start_num": 0,
"bom_fmt_presets": [],
"bom_fmt_settings": {
"field_delimiter": ",",
"keep_line_breaks": false,
"keep_tabs": false,
"name": "CSV",
"ref_delimiter": ",",
"ref_range_delimiter": "",
"string_delimiter": "\""
},
"bom_presets": [],
"bom_settings": {
"exclude_dnp": false,
"fields_ordered": [
{
"group_by": false,
"label": "Reference",
"name": "Reference",
"show": true
},
{
"group_by": true,
"label": "Value",
"name": "Value",
"show": true
},
{
"group_by": false,
"label": "Datasheet",
"name": "Datasheet",
"show": true
},
{
"group_by": false,
"label": "Footprint",
"name": "Footprint",
"show": true
},
{
"group_by": false,
"label": "Qty",
"name": "${QUANTITY}",
"show": true
},
{
"group_by": true,
"label": "DNP",
"name": "${DNP}",
"show": true
}
],
"filter_string": "",
"group_symbols": true,
"name": "Grouped By Value",
"sort_asc": true,
"sort_field": "Reference"
},
"connection_grid_size": 50.0,
"drawing": { "drawing": {
"dashed_lines_dash_length_ratio": 12.0,
"dashed_lines_gap_length_ratio": 3.0,
"default_line_thickness": 6.0, "default_line_thickness": 6.0,
"default_text_size": 50.0, "default_text_size": 50.0,
"field_names": [], "field_names": [],
@@ -403,6 +573,11 @@
"intersheets_ref_suffix": "", "intersheets_ref_suffix": "",
"junction_size_choice": 3, "junction_size_choice": 3,
"label_size_ratio": 0.25, "label_size_ratio": 0.25,
"operating_point_overlay_i_precision": 3,
"operating_point_overlay_i_range": "~A",
"operating_point_overlay_v_precision": 3,
"operating_point_overlay_v_range": "~V",
"overbar_offset_ratio": 1.23,
"pin_symbol_size": 25.0, "pin_symbol_size": 25.0,
"text_offset_ratio": 0.08 "text_offset_ratio": 0.08
}, },
@@ -424,14 +599,19 @@
"page_layout_descr_file": "", "page_layout_descr_file": "",
"plot_directory": "", "plot_directory": "",
"spice_adjust_passive_values": false, "spice_adjust_passive_values": false,
"spice_current_sheet_as_root": false,
"spice_external_command": "spice \"%I\"", "spice_external_command": "spice \"%I\"",
"spice_model_current_sheet_as_root": true,
"spice_save_all_currents": false,
"spice_save_all_dissipations": false,
"spice_save_all_voltages": false,
"subpart_first_id": 65, "subpart_first_id": 65,
"subpart_id_separator": 0 "subpart_id_separator": 0
}, },
"sheets": [ "sheets": [
[ [
"417f13e4-c121-485a-a6b5-8b55e70350b8", "417f13e4-c121-485a-a6b5-8b55e70350b8",
"" "Root"
] ]
], ],
"text_variables": {} "text_variables": {}
File diff suppressed because it is too large Load Diff
+2 -4
View File
@@ -1,6 +1,4 @@
(fp_lib_table (fp_lib_table
(lib (name "index")(type "KiCad")(uri "/Users/stephen/lumenpnp/lib/kicad/index.pretty")(options "")(descr "")) (version 7)
(lib (name "feeder")(type "KiCad")(uri "/Users/stephen/feeder/lib/kicad/feeder.pretty")(options "")(descr "")) (lib (name "feeder")(type "KiCad")(uri "${KIPRJMOD}/../../lib/kicad/feeder.pretty")(options "")(descr ""))
(lib (name "mfg")(type "KiCad")(uri "/Users/stephen/mfg/lib/kicad/mfg.pretty")(options "")(descr ""))
(lib (name "kikit")(type "KiCad")(uri "/Users/stephen/lumenpnp/lib/kicad/kikit.pretty")(options "")(descr ""))
) )
+38430 -37363
View File
File diff suppressed because it is too large Load Diff
+162 -19
View File
@@ -23,14 +23,17 @@
], ],
"design_settings": { "design_settings": {
"defaults": { "defaults": {
"board_outline_line_width": 0.049999999999999996, "apply_defaults_to_fp_fields": false,
"copper_line_width": 0.19999999999999998, "apply_defaults_to_fp_shapes": false,
"apply_defaults_to_fp_text": false,
"board_outline_line_width": 0.05,
"copper_line_width": 0.2,
"copper_text_italic": false, "copper_text_italic": false,
"copper_text_size_h": 1.5, "copper_text_size_h": 1.5,
"copper_text_size_v": 1.5, "copper_text_size_v": 1.5,
"copper_text_thickness": 0.3, "copper_text_thickness": 0.3,
"copper_text_upright": false, "copper_text_upright": false,
"courtyard_line_width": 0.049999999999999996, "courtyard_line_width": 0.05,
"dimension_precision": 4, "dimension_precision": 4,
"dimension_units": 3, "dimension_units": 3,
"dimensions": { "dimensions": {
@@ -41,13 +44,13 @@
"text_position": 0, "text_position": 0,
"units_format": 1 "units_format": 1
}, },
"fab_line_width": 0.09999999999999999, "fab_line_width": 0.1,
"fab_text_italic": false, "fab_text_italic": false,
"fab_text_size_h": 1.0, "fab_text_size_h": 1.0,
"fab_text_size_v": 1.0, "fab_text_size_v": 1.0,
"fab_text_thickness": 0.15, "fab_text_thickness": 0.15,
"fab_text_upright": false, "fab_text_upright": false,
"other_line_width": 0.09999999999999999, "other_line_width": 0.1,
"other_text_italic": false, "other_text_italic": false,
"other_text_size_h": 1.0, "other_text_size_h": 1.0,
"other_text_size_v": 1.0, "other_text_size_v": 1.0,
@@ -66,7 +69,7 @@
"silk_text_upright": false, "silk_text_upright": false,
"zones": { "zones": {
"45_degree_only": false, "45_degree_only": false,
"min_clearance": 0.19999999999999998 "min_clearance": 0.2
} }
}, },
"diff_pair_dimensions": [ "diff_pair_dimensions": [
@@ -94,6 +97,7 @@
"duplicate_footprints": "warning", "duplicate_footprints": "warning",
"extra_footprint": "warning", "extra_footprint": "warning",
"footprint": "error", "footprint": "error",
"footprint_symbol_mismatch": "warning",
"footprint_type_mismatch": "error", "footprint_type_mismatch": "error",
"hole_clearance": "error", "hole_clearance": "error",
"hole_near_hole": "error", "hole_near_hole": "error",
@@ -139,27 +143,24 @@
"max_error": 0.005, "max_error": 0.005,
"min_clearance": 0.0, "min_clearance": 0.0,
"min_connection": 0.0, "min_connection": 0.0,
"min_copper_edge_clearance": 0.024999999999999998, "min_copper_edge_clearance": 0.025,
"min_hole_clearance": 0.25, "min_hole_clearance": 0.25,
"min_hole_to_hole": 0.25, "min_hole_to_hole": 0.25,
"min_microvia_diameter": 0.19999999999999998, "min_microvia_diameter": 0.2,
"min_microvia_drill": 0.09999999999999999, "min_microvia_drill": 0.1,
"min_resolved_spokes": 2, "min_resolved_spokes": 2,
"min_silk_clearance": 0.0, "min_silk_clearance": 0.0,
"min_text_height": 0.7999999999999999, "min_text_height": 0.8,
"min_text_thickness": 0.08, "min_text_thickness": 0.08,
"min_through_hole_diameter": 0.3, "min_through_hole_diameter": 0.3,
"min_track_width": 0.19999999999999998, "min_track_width": 0.2,
"min_via_annular_width": 0.049999999999999996, "min_via_annular_width": 0.05,
"min_via_diameter": 0.39999999999999997, "min_via_diameter": 0.4,
"solder_mask_to_copper_clearance": 0.0, "solder_mask_to_copper_clearance": 0.0,
"use_height_for_length_calcs": true "use_height_for_length_calcs": true
}, },
"teardrop_options": [ "teardrop_options": [
{ {
"td_allow_use_two_tracks": true,
"td_curve_segcount": 5,
"td_on_pad_in_zone": false,
"td_onpadsmd": true, "td_onpadsmd": true,
"td_onroundshapesonly": false, "td_onroundshapesonly": false,
"td_ontrackend": false, "td_ontrackend": false,
@@ -168,29 +169,35 @@
], ],
"teardrop_parameters": [ "teardrop_parameters": [
{ {
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0, "td_curve_segcount": 0,
"td_height_ratio": 1.0, "td_height_ratio": 1.0,
"td_length_ratio": 0.5, "td_length_ratio": 0.5,
"td_maxheight": 2.0, "td_maxheight": 2.0,
"td_maxlen": 1.0, "td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_round_shape", "td_target_name": "td_round_shape",
"td_width_to_size_filter_ratio": 0.9 "td_width_to_size_filter_ratio": 0.9
}, },
{ {
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0, "td_curve_segcount": 0,
"td_height_ratio": 1.0, "td_height_ratio": 1.0,
"td_length_ratio": 0.5, "td_length_ratio": 0.5,
"td_maxheight": 2.0, "td_maxheight": 2.0,
"td_maxlen": 1.0, "td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_rect_shape", "td_target_name": "td_rect_shape",
"td_width_to_size_filter_ratio": 0.9 "td_width_to_size_filter_ratio": 0.9
}, },
{ {
"td_allow_use_two_tracks": true,
"td_curve_segcount": 0, "td_curve_segcount": 0,
"td_height_ratio": 1.0, "td_height_ratio": 1.0,
"td_length_ratio": 0.5, "td_length_ratio": 0.5,
"td_maxheight": 2.0, "td_maxheight": 2.0,
"td_maxlen": 1.0, "td_maxlen": 1.0,
"td_on_pad_in_zone": false,
"td_target_name": "td_track_end", "td_target_name": "td_track_end",
"td_width_to_size_filter_ratio": 0.9 "td_width_to_size_filter_ratio": 0.9
} }
@@ -206,6 +213,32 @@
1.5, 1.5,
2.0 2.0
], ],
"tuning_pattern_settings": {
"diff_pair_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 1.0
},
"diff_pair_skew_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
},
"single_track_defaults": {
"corner_radius_percentage": 80,
"corner_style": 1,
"max_amplitude": 1.0,
"min_amplitude": 0.2,
"single_sided": false,
"spacing": 0.6
}
},
"via_dimensions": [ "via_dimensions": [
{ {
"diameter": 0.0, "diameter": 0.0,
@@ -215,6 +248,13 @@
"zones_allow_external_fillets": false, "zones_allow_external_fillets": false,
"zones_use_no_outline": true "zones_use_no_outline": true
}, },
"ipc2581": {
"dist": "",
"distpn": "",
"internal_id": "",
"mfg": "",
"mpn": ""
},
"layer_presets": [], "layer_presets": [],
"viewports": [] "viewports": []
}, },
@@ -400,27 +440,33 @@
"rule_severities": { "rule_severities": {
"bus_definition_conflict": "error", "bus_definition_conflict": "error",
"bus_entry_needed": "error", "bus_entry_needed": "error",
"bus_label_syntax": "error",
"bus_to_bus_conflict": "error", "bus_to_bus_conflict": "error",
"bus_to_net_conflict": "error", "bus_to_net_conflict": "error",
"conflicting_netclasses": "error",
"different_unit_footprint": "error", "different_unit_footprint": "error",
"different_unit_net": "error", "different_unit_net": "error",
"duplicate_reference": "error", "duplicate_reference": "error",
"duplicate_sheet_names": "error", "duplicate_sheet_names": "error",
"endpoint_off_grid": "warning",
"extra_units": "error", "extra_units": "error",
"global_label_dangling": "warning", "global_label_dangling": "warning",
"hier_label_mismatch": "error", "hier_label_mismatch": "error",
"label_dangling": "error", "label_dangling": "error",
"lib_symbol_issues": "warning", "lib_symbol_issues": "warning",
"missing_bidi_pin": "warning",
"missing_input_pin": "warning",
"missing_power_pin": "error",
"missing_unit": "warning",
"multiple_net_names": "warning", "multiple_net_names": "warning",
"net_not_bus_member": "warning", "net_not_bus_member": "warning",
"no_connect_connected": "warning", "no_connect_connected": "warning",
"no_connect_dangling": "warning", "no_connect_dangling": "warning",
"pin_not_connected": "error", "pin_not_connected": "error",
"pin_not_driven": "error", "pin_not_driven": "error",
"pin_to_pin": "warning", "pin_to_pin": "error",
"power_pin_not_driven": "error", "power_pin_not_driven": "error",
"similar_labels": "warning", "similar_labels": "warning",
"simulation_model_issue": "error",
"unannotated": "error", "unannotated": "error",
"unit_value_mismatch": "error", "unit_value_mismatch": "error",
"unresolved_variable": "error", "unresolved_variable": "error",
@@ -467,15 +513,102 @@
"gencad": "", "gencad": "",
"idf": "", "idf": "",
"netlist": "mobo.net", "netlist": "mobo.net",
"plot": "out/",
"pos_files": "",
"specctra_dsn": "", "specctra_dsn": "",
"step": "mobo.step", "step": "mobo.step",
"svg": "",
"vrml": "" "vrml": ""
}, },
"page_layout_descr_file": "" "page_layout_descr_file": ""
}, },
"schematic": { "schematic": {
"annotate_start_num": 0, "annotate_start_num": 0,
"bom_fmt_presets": [],
"bom_fmt_settings": {
"field_delimiter": ",",
"keep_line_breaks": false,
"keep_tabs": false,
"name": "CSV",
"ref_delimiter": ",",
"ref_range_delimiter": "",
"string_delimiter": "\""
},
"bom_presets": [],
"bom_settings": {
"exclude_dnp": false,
"fields_ordered": [
{
"group_by": true,
"label": "Reference",
"name": "Reference",
"show": true
},
{
"group_by": true,
"label": "Value",
"name": "Value",
"show": true
},
{
"group_by": false,
"label": "Datasheet",
"name": "Datasheet",
"show": true
},
{
"group_by": false,
"label": "Footprint",
"name": "Footprint",
"show": true
},
{
"group_by": false,
"label": "Qty",
"name": "${QUANTITY}",
"show": true
},
{
"group_by": true,
"label": "DNP",
"name": "${DNP}",
"show": true
},
{
"group_by": false,
"label": "#",
"name": "${ITEM_NUMBER}",
"show": false
},
{
"group_by": false,
"label": "JLCPCB",
"name": "JLCPCB",
"show": false
},
{
"group_by": false,
"label": "LCSC",
"name": "LCSC",
"show": false
},
{
"group_by": false,
"label": "Description",
"name": "Description",
"show": false
}
],
"filter_string": "",
"group_symbols": true,
"name": "",
"sort_asc": true,
"sort_field": "Reference"
},
"connection_grid_size": 50.0,
"drawing": { "drawing": {
"dashed_lines_dash_length_ratio": 12.0,
"dashed_lines_gap_length_ratio": 3.0,
"default_line_thickness": 6.0, "default_line_thickness": 6.0,
"default_text_size": 50.0, "default_text_size": 50.0,
"field_names": [], "field_names": [],
@@ -486,6 +619,11 @@
"intersheets_ref_suffix": "", "intersheets_ref_suffix": "",
"junction_size_choice": 3, "junction_size_choice": 3,
"label_size_ratio": 0.25, "label_size_ratio": 0.25,
"operating_point_overlay_i_precision": 3,
"operating_point_overlay_i_range": "~A",
"operating_point_overlay_v_precision": 3,
"operating_point_overlay_v_range": "~V",
"overbar_offset_ratio": 1.23,
"pin_symbol_size": 25.0, "pin_symbol_size": 25.0,
"text_offset_ratio": 0.08 "text_offset_ratio": 0.08
}, },
@@ -507,14 +645,19 @@
"page_layout_descr_file": "", "page_layout_descr_file": "",
"plot_directory": "", "plot_directory": "",
"spice_adjust_passive_values": false, "spice_adjust_passive_values": false,
"spice_current_sheet_as_root": false,
"spice_external_command": "spice \"%I\"", "spice_external_command": "spice \"%I\"",
"spice_model_current_sheet_as_root": true,
"spice_save_all_currents": false,
"spice_save_all_dissipations": false,
"spice_save_all_voltages": false,
"subpart_first_id": 65, "subpart_first_id": 65,
"subpart_id_separator": 0 "subpart_id_separator": 0
}, },
"sheets": [ "sheets": [
[ [
"e502d1d5-04b0-4d4b-b5c3-8c52d09668e7", "e502d1d5-04b0-4d4b-b5c3-8c52d09668e7",
"" "Root"
] ]
], ],
"text_variables": {} "text_variables": {}
+18103 -5350
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+57
View File
@@ -0,0 +1,57 @@
<Qucs Schematic 24.2.1>
<Properties>
<View=-207,10,1004,685,1.29778,0,0>
<Grid=10,10,1>
<DataSet=emi.dat>
<DataDisplay=emi.dpl>
<OpenDisplay=0>
<Script=emi.m>
<RunScript=0>
<showFrame=0>
<FrameText0=Title>
<FrameText1=Drawn By:>
<FrameText2=Date:>
<FrameText3=Revision:>
</Properties>
<Symbol>
</Symbol>
<Components>
<C C1 1 160 140 17 -26 0 1 "100 nF" 1 "" 0 "neutral" 0>
<GND * 1 160 170 0 0 0 0>
<L L1 1 250 80 -26 10 0 0 "4.7 uH" 1 "" 0>
<R R1 1 330 80 -26 15 0 0 "105 mOhm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "european" 0>
<C C4 1 70 140 17 -26 0 1 "22 uF" 1 "" 0 "neutral" 0>
<GND * 1 70 170 0 0 0 0>
<NutmegEq NutmegEq1 1 110 470 -28 17 0 0 "ALL" 1 "gaindB=dB(vin/circuit)" 1>
<GND * 1 430 170 0 0 0 0>
<C C5 1 430 140 17 -26 0 1 "4.7 uF" 1 "" 0 "neutral" 0>
<Vac V1 1 660 140 18 -26 0 1 "1 V" 1 "1 kHz" 0 "0" 0 "0" 0 "0" 0 "0" 0>
<GND * 1 660 170 0 0 0 0>
<C C6 1 530 140 17 -26 0 1 "100 nF" 1 "" 0 "neutral" 0>
<GND * 1 530 170 0 0 0 0>
<NutmegEq NutmegEq2 1 110 570 -28 17 0 0 "ALL" 1 "phase=phase(vin/circuit)*180/pi" 1>
<.AC AC1 1 90 300 0 42 0 0 "lin" 1 "100 Hz" 1 "1 MHz" 1 "10000" 1 "no" 0>
</Components>
<Wires>
<160 80 160 110 "" 0 0 0 "">
<160 80 220 80 "" 0 0 0 "">
<280 80 300 80 "" 0 0 0 "">
<70 80 160 80 "" 0 0 0 "">
<70 80 70 110 "" 0 0 0 "">
<360 80 430 80 "" 0 0 0 "">
<430 80 430 110 "" 0 0 0 "">
<660 80 660 110 "" 0 0 0 "">
<430 80 530 80 "" 0 0 0 "">
<530 80 660 80 "" 0 0 0 "">
<530 80 530 110 "" 0 0 0 "">
<160 80 160 80 "Vin" 190 50 0 "">
<660 80 660 80 "circuit" 690 50 0 "">
</Wires>
<Diagrams>
<Rect 290 522 392 232 3 #c0c0c0 1 10 1 1 1 1e+07 1 -124.752 50 25.1886 1 -200 50 17.997 315 0 225 1 0 0 "" "" "">
<"ngspice/ac.gaindb" #0000ff 0 3 0 0 0>
<"ngspice/ac.phase" #ff0000 0 3 0 0 1>
</Rect>
</Diagrams>
<Paintings>
</Paintings>
+2 -1
View File
@@ -1,3 +1,4 @@
(sym_lib_table (sym_lib_table
(lib (name "index")(type "KiCad")(uri "${KIPRJMOD}/../../../lib/kicad/index.kicad_sym")(options "")(descr "")) (version 7)
(lib (name "feeder")(type "KiCad")(uri "${KIPRJMOD}/../../lib/kicad/feeder.kicad_sym")(options "")(descr ""))
) )